Example #1
0
 /*
  * @see org.eclipse.jface.text.source.AnnotationPainter#findAnnotationModel(org.eclipse.jface.text.source.ISourceViewer)
  */
 protected IAnnotationModel findAnnotationModel(ISourceViewer sourceViewer) {
   if (sourceViewer instanceof ProjectionViewer) {
     ProjectionViewer projectionViewer = (ProjectionViewer) sourceViewer;
     return projectionViewer.getProjectionAnnotationModel();
   }
   return null;
 }
Example #2
0
 /**
  * Implements the contract of {@link
  * org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)} by forwarding the adapter
  * requests to the given viewer.
  *
  * @param viewer the viewer
  * @param required the required class of the adapter
  * @return the adapter or <code>null</code>
  */
 public Object getAdapter(ISourceViewer viewer, Class required) {
   if (ProjectionAnnotationModel.class.equals(required)) {
     if (viewer instanceof ProjectionViewer) {
       ProjectionViewer projectionViewer = (ProjectionViewer) viewer;
       return projectionViewer.getProjectionAnnotationModel();
     }
   }
   return null;
 }
Example #3
0
  /** Removes the projection ruler column and the painter from the projection viewer. */
  protected void doDisableProjection() {
    if (fPainter != null) {
      fViewer.removePainter(fPainter);
      fPainter.dispose();
      fPainter = null;
    }

    if (fColumn != null) {
      fViewer.removeVerticalRulerColumn(fColumn);
      fColumn = null;
    }
  }
Example #4
0
  /**
   * Enables projection mode. If not yet done, installs the projection ruler column in the viewer's
   * vertical ruler and installs a painter that indicate the locations of collapsed regions.
   */
  protected void doEnableProjection() {

    if (fPainter == null) {
      fPainter = new ProjectionAnnotationsPainter(fViewer, fAnnotationAccess);
      fPainter.addDrawingStrategy(PROJECTION, getDrawingStrategy());
      fPainter.addAnnotationType(ProjectionAnnotation.TYPE, PROJECTION);
      fPainter.setAnnotationTypeColor(
          ProjectionAnnotation.TYPE, fSharedTextColors.getColor(getColor()));
      fViewer.addPainter(fPainter);
    }

    if (fColumn == null) {
      fColumn = new ProjectionRulerColumn(9, fAnnotationAccess);
      fColumn.addAnnotationType(ProjectionAnnotation.TYPE);
      fColumn.setHover(createProjectionAnnotationHover());
      fViewer.addVerticalRulerColumn(fColumn);
    }

    fColumn.setModel(fViewer.getVisualAnnotationModel());
  }
Example #5
0
 /** Disposes this projection support. */
 public void dispose() {
   if (fProjectionListener != null) {
     fViewer.removeProjectionListener(fProjectionListener);
     fProjectionListener = null;
   }
 }
Example #6
0
  /** Installs this projection support on its viewer. */
  public void install() {
    fViewer.setProjectionSummary(createProjectionSummary());

    fProjectionListener = new ProjectionListener();
    fViewer.addProjectionListener(fProjectionListener);
  }