org.vaadin.aceeditor.client.gwt.GwtAceRange - java examples

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 7

19 View Complete Implementation : AceEditorWidget.java
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
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
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
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
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
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;
}