Here are the examples of the java api org.vaadin.aceeditor.client.gwt.GwtAceRange taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
6 Examples
19
View Complete Implementation : AceEditorWidget.java
Copyright Apache License 2.0
Author : ahn
Copyright Apache License 2.0
Author : ahn
protected static AceRange moveMarkerOnRemove(AceRange mr, GwtAceRange range) {
int[] p1 = overlapping(range, mr.getStartRow(), mr.getStartCol());
boolean changed = false;
if (p1 == null) {
p1 = new int[] { mr.getStartRow(), mr.getStartCol() };
} else {
changed = true;
}
int[] p2 = overlapping(range, mr.getEndRow(), mr.getEndCol());
if (p2 == null) {
p2 = new int[] { mr.getEndRow(), mr.getEndCol() };
} else {
changed = true;
}
return changed ? new AceRange(p1[0], p1[1], p2[0], p2[1]) : null;
}
19
View Complete Implementation : AceEditorWidget.java
Copyright Apache License 2.0
Author : ahn
Copyright Apache License 2.0
Author : ahn
protected static AceRange moveMarkerOnInsert(AceRange mr, GwtAceRange range) {
int startRow = range.getStart().getRow();
int startCol = range.getStart().getColumn();
int dRow = range.getEnd().getRow() - startRow;
int dCol = range.getEnd().getColumn() - startCol;
if (dRow == 0 && dCol == 0) {
return null;
}
if (range.getStart().getRow() > mr.getEndRow()) {
return null;
}
boolean aboveMarkerStart = startRow < mr.getStartRow();
// < or <=
boolean beforeMarkerStartOnRow = startRow == mr.getStartRow() && startCol < mr.getStartCol();
boolean aboveMarkerEnd = startRow < mr.getEndRow();
// < or <=
boolean beforeMarkerEndOnRow = startRow == mr.getEndRow() && startCol <= mr.getEndCol();
int row1 = mr.getStartRow();
int col1 = mr.getStartCol();
if (aboveMarkerStart) {
row1 += dRow;
} else if (beforeMarkerStartOnRow) {
row1 += dRow;
col1 += dCol;
}
int row2 = mr.getEndRow();
int col2 = mr.getEndCol();
if (aboveMarkerEnd) {
row2 += dRow;
} else if (beforeMarkerEndOnRow) {
row2 += dRow;
col2 += dCol;
}
return new AceRange(row1, col1, row2, col2);
}
18
View Complete Implementation : AceEditorWidget.java
Copyright Apache License 2.0
Author : ahn
Copyright Apache License 2.0
Author : ahn
protected void setSelection(AceRange s, boolean force) {
if (!isInitialized()) {
return;
}
if (s.equals(selection) && !force) {
return;
}
selection = s;
int r1 = s.getStartRow();
int c1 = s.getStartCol();
int r2 = s.getEndRow();
int c2 = s.getEndCol();
boolean backwards = r1 > r2 || (r1 == r2 && c1 > c2);
GwtAceRange range;
if (backwards) {
range = GwtAceRange.create(r2, c2, r1, c1);
} else {
range = GwtAceRange.create(r1, c1, r2, c2);
}
editor.setSelection(range, backwards);
}
17
View Complete Implementation : AceEditorWidget.java
Copyright Apache License 2.0
Author : ahn
Copyright Apache License 2.0
Author : ahn
protected static int[] overlapping(GwtAceRange range, int row, int col) {
GwtAcePosition start = range.getStart();
if (start.getRow() > row || (start.getRow() == row && start.getColumn() >= col)) {
return null;
}
GwtAcePosition end = range.getEnd();
if (end.getRow() < row) {
int dRow = end.getRow() - start.getRow();
return new int[] { row - dRow, col };
}
if (end.getRow() == row && end.getColumn() < col) {
int dRow = end.getRow() - start.getRow();
int dCol = end.getColumn() - start.getColumn();
return new int[] { row - dRow, col - dCol };
}
return new int[] { start.getRow(), start.getColumn() };
}
12
View Complete Implementation : AceEditorWidget.java
Copyright Apache License 2.0
Author : ahn
Copyright Apache License 2.0
Author : ahn
protected void adjustMarkers(GwtAceChangeEvent e) {
Action act = e.getData().getAction();
GwtAceRange range = e.getData().getRange();
Set<MarkerInEditor> moved = new HashSet<MarkerInEditor>();
Set<MarkerInEditor> removed = new HashSet<MarkerInEditor>();
if (act == Action.insertLines || act == Action.insertText) {
for (MarkerInEditor cm : markersInEditor.values()) {
if (cm.marker.getOnChange() == OnTextChange.ADJUST) {
AceRange newRange = moveMarkerOnInsert(cm.marker.getRange(), range);
if (newRange != null) {
newRange = cursorMarkerSanityCheck(cm.marker, newRange);
cm.marker = cm.marker.withNewPosition(newRange);
if (markerIsValid(cm.marker)) {
moved.add(cm);
} else {
removed.add(cm);
}
}
} else if (cm.marker.getOnChange() == OnTextChange.REMOVE) {
removed.add(cm);
}
}
} else if (act == Action.removeLines || act == Action.removeText) {
for (MarkerInEditor cm : markersInEditor.values()) {
if (cm.marker.getOnChange() == OnTextChange.ADJUST) {
AceRange newRange = moveMarkerOnRemove(cm.marker.getRange(), range);
if (newRange != null) {
newRange = cursorMarkerSanityCheck(cm.marker, newRange);
cm.marker = cm.marker.withNewPosition(newRange);
if (markerIsValid(cm.marker)) {
moved.add(cm);
} else {
removed.add(cm);
}
}
} else if (cm.marker.getOnChange() == OnTextChange.REMOVE) {
removed.add(cm);
}
}
}
removeMarkers(removed);
updateMarkers(moved);
}
10
View Complete Implementation : AceEditorWidget.java
Copyright Apache License 2.0
Author : ahn
Copyright Apache License 2.0
Author : ahn
protected void adjustInvisibleMarkers(GwtAceChangeEvent event) {
Action act = event.getData().getAction();
GwtAceRange range = event.getData().getRange();
HashMap<Integer, AceRange> newMap = new HashMap<Integer, AceRange>();
if (act == Action.insertLines || act == Action.insertText) {
for (Entry<Integer, AceRange> e : invisibleMarkers.entrySet()) {
AceRange newRange = moveMarkerOnInsert(e.getValue(), range);
newMap.put(e.getKey(), newRange == null ? e.getValue() : newRange);
}
} else if (act == Action.removeLines || act == Action.removeText) {
for (Entry<Integer, AceRange> e : invisibleMarkers.entrySet()) {
AceRange newRange = moveMarkerOnRemove(e.getValue(), range);
newMap.put(e.getKey(), newRange == null ? e.getValue() : newRange);
}
}
invisibleMarkers = newMap;
}