View Javadoc
1   package org.vaadin.aceeditor.client;
2   
3   import org.vaadin.aceeditor.client.TransportDiff.TransportRangeDiff;
4   
5   public class RangeDiff {
6   	private final int drow1;
7   	private final int dcol1;
8   	private final int drow2;
9   	private final int dcol2;
10  	
11  	public RangeDiff(int drow1, int dcol1, int drow2, int dcol2) {
12  		this.drow1 = drow1;
13  		this.dcol1 = dcol1;
14  		this.drow2 = drow2;
15  		this.dcol2 = dcol2;
16  	}
17  	
18  	public static RangeDiff diff(AceRangeef="../../../../org/vaadin/aceeditor/client/AceRange.html#AceRange">AceRange r1, AceRange r2) {
19  		return new RangeDiff(
20  				r2.getStartRow() - r1.getStartRow(),
21  				r2.getStartCol() - r1.getStartCol(),
22  				r2.getEndRow() - r1.getEndRow(),
23  				r2.getEndCol() - r1.getEndCol());
24  	}
25  	
26  	public boolean isIdentity() {
27  		return drow1==0 && dcol1==0 && drow2==0 && dcol2==0;
28  	}
29  	
30  	public AceRange../../../../org/vaadin/aceeditor/client/AceRange.html#AceRange">AceRange applyTo(AceRange r) {
31  		return new AceRange(
32  				r.getStartRow() + drow1,
33  				r.getStartCol() + dcol1,
34  				r.getEndRow() + drow2,
35  				r.getEndCol() + dcol2);
36  	}
37  	
38  	@Override
39  	public String toString() {
40  		return "(("+drow1+","+dcol1+"), ("+drow2+","+dcol2+"))";
41  	}
42  
43  	public TransportRangeDiff asTransport() {
44  		return new TransportRangeDiff(drow1, dcol1, drow2, dcol2);
45  	}
46  
47  	public static RangeDiff fromTransport(TransportRangeDiff trd) {
48  		return new RangeDiff(trd.drow1, trd.dcol1, trd.drow2, trd.dcol2);
49  	}
50  
51  }