View Javadoc
1   package org.vaadin.aceeditor.client;
2   
3   import org.vaadin.aceeditor.client.TransportDiff.TransportMarkerDiff;
4   
5   // TODO This is not the best way to diff markers.
6   // This is just stupid line-col diff without considering the
7   // text at all. That's why the markers don't always stay
8   // where you expect them to.
9   // Hence you can't currently use markers in anything you need to be
10  // sure their position is correct.
11  
12  public class MarkerDiff {
13  	private final RangeDiff rangeDiff;
14  	public MarkerDiff(RangeDiff rangeDiff) {
15  		this.rangeDiff = rangeDiff;
16  	}
17  	public AceMarker./../../../org/vaadin/aceeditor/client/AceMarker.html#AceMarker">AceMarker applyTo(AceMarker m) {
18  		return m.withNewPosition(rangeDiff.applyTo(m.getRange()));
19  	}
20  	public static MarkerDiff diff(AceMarkerf="../../../../org/vaadin/aceeditor/client/AceMarker.html#AceMarker">AceMarker m1, AceMarker m2) {
21  		return new MarkerDiff(RangeDiff.diff(m1.getRange(), m2.getRange()));
22  	}
23  	public boolean isIdentity() {
24  		return rangeDiff.isIdentity();
25  	}
26  	@Override
27  	public String toString() {
28  		return rangeDiff.toString();
29  	}
30  	public TransportMarkerDiff asTransport() {
31  		return new TransportMarkerDiff(rangeDiff.asTransport());
32  	}
33  	public static MarkerDiff fromTransport(TransportMarkerDiff tmd) {
34  		return new MarkerDiff(RangeDiff.fromTransport(tmd.rangeDiff));
35  	}
36  }