@Override public boolean canDoOperation(int operation) { switch (operation) { case COLLAPSE: case COLLAPSE_ALL: case EXPAND: case EXPAND_ALL: return isProjectionMode(); case TOGGLE: return isProjectionMode() || !isSegmented(); } return super.canDoOperation(operation); }
@Override public void setVisibleRegion(int start, int length) { fWasProjectionEnabled= isProjectionMode(); disableProjection(); super.setVisibleRegion(start, length); }
@Override protected void setVisibleDocument(IDocument document) { if (!isProjectionMode()) { super.setVisibleDocument(document); return; } // In projection mode we don't want to throw away the find/replace document adapter FindReplaceDocumentAdapter adapter= fFindReplaceDocumentAdapter; super.setVisibleDocument(document); fFindReplaceDocumentAdapter= adapter; }
@Override public void setVisibleRegion(int start, int length) { fWasProjectionEnabled= isProjectionMode(); disableProjection(); super.setVisibleRegion(start, length); }
@Override protected void setVisibleDocument(IDocument document) { if (!isProjectionMode()) { super.setVisibleDocument(document); return; } // In projection mode we don't want to throw away the find/replace document adapter FindReplaceDocumentAdapter adapter= fFindReplaceDocumentAdapter; super.setVisibleDocument(document); fFindReplaceDocumentAdapter= adapter; }
/** * Enables the projection mode. */ public final void enableProjection() { if (!isProjectionMode()) { addProjectionAnnotationModel(getVisualAnnotationModel()); fFindReplaceDocumentAdapter= null; fireProjectionEnabled(); } }
@Override protected FindReplaceDocumentAdapter getFindReplaceDocumentAdapter() { if (fFindReplaceDocumentAdapter == null) { IDocument document= isProjectionMode() ? getDocument() : getVisibleDocument(); fFindReplaceDocumentAdapter= new FindReplaceDocumentAdapter(document); } return fFindReplaceDocumentAdapter; }
private void collapseAll() { int offset= 0; IDocument doc= getDocument(); int length= doc == null ? 0 : doc.getLength(); if (isProjectionMode()) { fProjectionAnnotationModel.collapseAll(offset, length); } }
/** * Enables the projection mode. */ public final void enableProjection() { if (!isProjectionMode()) { addProjectionAnnotationModel(getVisualAnnotationModel()); fFindReplaceDocumentAdapter= null; fireProjectionEnabled(); } }
private void expandAll() { int offset= 0; IDocument doc= getDocument(); int length= doc == null ? 0 : doc.getLength(); if (isProjectionMode()) { fProjectionAnnotationModel.expandAll(offset, length); } }
private void collapseAll() { int offset= 0; IDocument doc= getDocument(); int length= doc == null ? 0 : doc.getLength(); if (isProjectionMode()) { fProjectionAnnotationModel.collapseAll(offset, length); } }
@Override protected FindReplaceDocumentAdapter getFindReplaceDocumentAdapter() { if (fFindReplaceDocumentAdapter == null) { IDocument document= isProjectionMode() ? getDocument() : getVisibleDocument(); fFindReplaceDocumentAdapter= new FindReplaceDocumentAdapter(document); } return fFindReplaceDocumentAdapter; }
private void expandAll() { int offset= 0; IDocument doc= getDocument(); int length= doc == null ? 0 : doc.getLength(); if (isProjectionMode()) { fProjectionAnnotationModel.expandAll(offset, length); } }
/** * Disables the projection mode. */ public final void disableProjection() { if (isProjectionMode()) { removeProjectionAnnotationModel(getVisualAnnotationModel()); fProjectionAnnotationModel.removeAllAnnotations(); fFindReplaceDocumentAdapter= null; fireProjectionDisabled(); } }
@Override protected void handleVisibleDocumentAboutToBeChanged(DocumentEvent event) { if (fHandleProjectionChanges && event instanceof ProjectionDocumentEvent && isProjectionMode()) { int deletedLines; try { deletedLines= event.getDocument().getNumberOfLines(event.getOffset(), event.getLength()); } catch (BadLocationException e1) { deletedLines= 0; } fDeletedLines= deletedLines; } }
/** * Disables the projection mode. */ public final void disableProjection() { if (isProjectionMode()) { removeProjectionAnnotationModel(getVisualAnnotationModel()); fProjectionAnnotationModel.removeAllAnnotations(); fFindReplaceDocumentAdapter= null; fireProjectionDisabled(); } }
@Override protected void handleVisibleDocumentAboutToBeChanged(DocumentEvent event) { if (fHandleProjectionChanges && event instanceof ProjectionDocumentEvent && isProjectionMode()) { int deletedLines; try { deletedLines= event.getDocument().getNumberOfLines(event.getOffset(), event.getLength()); } catch (BadLocationException e1) { deletedLines= 0; } fDeletedLines= deletedLines; } }
private void syncProjectionModeWithPreferences() { ProjectionViewer viewer = (ProjectionViewer) getSourceViewer(); if (viewer.isProjectionMode() != WikiTextUiPlugin.getDefault().getPreferences().isEditorFolding()) { viewer.doOperation(ProjectionViewer.TOGGLE); } }
@Override public boolean exposeModelRange(IRegion modelRange) { if (isProjectionMode()) return fProjectionAnnotationModel.expandAll(modelRange.getOffset(), modelRange.getLength()); if (!overlapsWithVisibleRegion(modelRange.getOffset(), modelRange.getLength())) { resetVisibleRegion(); return true; } return false; }
@Override public boolean exposeModelRange(IRegion modelRange) { if (isProjectionMode()) return fProjectionAnnotationModel.expandAll(modelRange.getOffset(), modelRange.getLength()); if (!overlapsWithVisibleRegion(modelRange.getOffset(), modelRange.getLength())) { resetVisibleRegion(); return true; } return false; }