类org.eclipse.jface.text.source.projection.ProjectionViewer源码实例Demo

下面列出了怎么用org.eclipse.jface.text.source.projection.ProjectionViewer的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: xtext-eclipse   文件: XbaseEditor.java
@Override
protected void handlePreferenceStoreChanged(PropertyChangeEvent event) {
	super.handlePreferenceStoreChanged(event);
	String property = event.getProperty();
	if (property.equals(org.eclipse.jdt.ui.PreferenceConstants.EDITOR_FOLDING_ENABLED)) {
		ProjectionViewer projectionViewer = (ProjectionViewer) getSourceViewer();
		if (event.getNewValue() != null && Boolean.valueOf(event.getNewValue().toString())) {
			if (!projectionViewer.isProjectionMode()) {
				installFoldingSupport(projectionViewer);
			}
		} else {
			if (projectionViewer.isProjectionMode()) {
				uninstallFoldingSupport();
				projectionViewer.disableProjection();
			}
		}
	}
}
 
源代码2 项目: texlipse   文件: BibEditor.java
public void createPartControl(Composite parent) {
    super.createPartControl(parent);
    ProjectionViewer projectionViewer = (ProjectionViewer) getSourceViewer();
    
    fProjectionSupport = new ProjectionSupport(projectionViewer,
            getAnnotationAccess(), getSharedColors());
    fProjectionSupport
    .addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.error");
    fProjectionSupport
    .addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.warning");
    fProjectionSupport.install();
    
    if (TexlipsePlugin.getDefault().getPreferenceStore().getBoolean(TexlipseProperties.BIB_CODE_FOLDING)) {
        projectionViewer.doOperation(ProjectionViewer.TOGGLE);
    }
    
    this.documentModel.update();
}
 
/**
 * Install everything necessary to get document folding working and enable
 * document folding
 * 
 * @param sourceViewer
 */
private void installProjectionSupport() {

	ProjectionViewer projectionViewer = (ProjectionViewer) getSourceViewer();
	fProjectionSupport = new ProjectionSupport(projectionViewer, getAnnotationAccess(), getSharedColors());
	fProjectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.error"); //$NON-NLS-1$
	fProjectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.warning"); //$NON-NLS-1$
	fProjectionSupport.setHoverControlCreator(new IInformationControlCreator() {
		public IInformationControl createInformationControl(Shell parent) {
			return new DefaultInformationControl(parent);
		}
	});
	fProjectionSupport.install();

	if (isFoldingEnabled()) {
		projectionViewer.doOperation(ProjectionViewer.TOGGLE);
	}
}
 
源代码4 项目: APICloud-Studio   文件: FoldingActionsGroup.java
/**
 * Constructs a new FoldingActionsGroup with a given text editor.
 * 
 * @param textEditor
 */
public FoldingActionsGroup(ITextEditor textEditor)
{
	// Initialize the actions.
	collapseAction = new TextOperationAction(Messages.getResourceBundle(),
			"Folding.Collapse.", textEditor, ProjectionViewer.COLLAPSE, true); //$NON-NLS-1$
	collapseAction.setActionDefinitionId(IFoldingCommandIds.FOLDING_COLLAPSE);
	textEditor.setAction(IFoldingCommandIds.FOLDING_COLLAPSE, collapseAction);

	expandAction = new TextOperationAction(Messages.getResourceBundle(),
			"Folding.Expand.", textEditor, ProjectionViewer.EXPAND, true); //$NON-NLS-1$
	expandAction.setActionDefinitionId(IFoldingCommandIds.FOLDING_EXPAND);
	textEditor.setAction(IFoldingCommandIds.FOLDING_EXPAND, expandAction);

	collapseAllAction = new TextOperationAction(Messages.getResourceBundle(),
			"Folding.CollapseAll.", textEditor, ProjectionViewer.COLLAPSE_ALL, true); //$NON-NLS-1$
	collapseAllAction.setActionDefinitionId(IFoldingCommandIds.FOLDING_COLLAPSE_ALL);
	textEditor.setAction(IFoldingCommandIds.FOLDING_COLLAPSE_ALL, collapseAllAction);

	expandAllAction = new TextOperationAction(Messages.getResourceBundle(),
			"Folding.ExpandAll.", textEditor, ProjectionViewer.EXPAND_ALL, true); //$NON-NLS-1$
	expandAllAction.setActionDefinitionId(IFoldingCommandIds.FOLDING_EXPAND_ALL);
	textEditor.setAction(IFoldingCommandIds.FOLDING_EXPAND_ALL, expandAllAction);
}
 
@Override
protected void performRevert() {
	ProjectionViewer projectionViewer= (ProjectionViewer) getSourceViewer();
	projectionViewer.setRedraw(false);
	try {

		boolean projectionMode= projectionViewer.isProjectionMode();
		if (projectionMode) {
			projectionViewer.disableProjection();
			if (fProjectionModelUpdater != null)
				fProjectionModelUpdater.uninstall();
		}

		super.performRevert();

		if (projectionMode) {
			if (fProjectionModelUpdater != null)
				fProjectionModelUpdater.install(this, projectionViewer);
			projectionViewer.enableProjection();
		}

	} finally {
		projectionViewer.setRedraw(true);
	}
}
 
源代码6 项目: birt   文件: DecoratedScriptEditor.java
public void createPartControl( Composite parent )
{
	if ( input != null )
	{
		setInput( input );
	}
	super.createPartControl( parent );

	ISourceViewer viewer = getViewer( );

	if ( viewer instanceof ProjectionViewer )
	{
		// Turn projection mode on.
		( (ProjectionViewer) viewer ).doOperation( ProjectionViewer.TOGGLE );
	}
	// bidi_hcg: Force LTR orientation of the StyledText widget
	getSourceViewer( ).getTextWidget( ).setOrientation( SWT.LEFT_TO_RIGHT );
}
 
源代码7 项目: birt   文件: DecoratedScriptEditor.java
protected ISourceViewer createSourceViewer( Composite parent,
		IVerticalRuler ruler, int styles )
{
	fAnnotationAccess = getAnnotationAccess( );
	fOverviewRuler = createOverviewRuler( getSharedColors( ) );

	ProjectionViewer viewer = new ProjectionViewer( parent,
			ruler,
			getOverviewRuler( ),
			isOverviewRulerVisible( ),
			styles );

	ProjectionSupport fProjectionSupport = new ProjectionSupport( viewer,
			getAnnotationAccess( ),
			getSharedColors( ) );
	fProjectionSupport.addSummarizableAnnotationType( "org.eclipse.ui.workbench.texteditor.error" ); //$NON-NLS-1$
	fProjectionSupport.addSummarizableAnnotationType( "org.eclipse.ui.workbench.texteditor.warning" ); //$NON-NLS-1$
	fProjectionSupport.install( );

	// Ensures source viewer decoration support has been created and
	// configured.
	getSourceViewerDecorationSupport( viewer );

	return viewer;
}
 
源代码8 项目: e4macs   文件: RepositionHandler.java
/**
 * A semi-hack... This uses stuff that may change at any time in Eclipse.  
 * In the java editor, the projection annotation model contains the collapsible regions which correspond to methods (and other areas
 * such as import groups).
 * 
 * This may work in other editor types as well... TBD
 */
protected int transform(ITextEditor editor, IDocument document, ITextSelection currentSelection,
		ExecutionEvent event) throws BadLocationException {

	ITextViewerExtension viewer = MarkUtils.getITextViewer(editor);
	if (viewer instanceof ProjectionViewer) {
		ProjectionAnnotationModel projection = ((ProjectionViewer)viewer).getProjectionAnnotationModel();
		Iterator<Annotation> pit = projection.getAnnotationIterator();
		while (pit.hasNext()) {
			Position p = projection.getPosition(pit.next());
			if (p.includes(currentSelection.getOffset())) {
				if (isUniversalPresent()) {
					// Do this here to prevent subsequent scrolling once range is revealed
					MarkUtils.setSelection(editor, new TextSelection(document, p.offset, 0));
				}
				// the viewer is pretty much guaranteed to be a TextViewer
				if (viewer instanceof TextViewer) {
					((TextViewer)viewer).revealRange(p.offset, p.length);
				}
				break;
			}
		}
	}
	return NO_OFFSET;		
}
 
源代码9 项目: Pydev   文件: PyEditProjection.java
@Override
public void createPartControl(Composite parent) {
    super.createPartControl(parent);
    try {
        ProjectionViewer projectionViewer = (ProjectionViewer) getSourceViewer();

        fProjectionSupport = new ProjectionSupport(projectionViewer, getAnnotationAccess(), getSharedColors());
        fProjectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.error");
        fProjectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.warning");
        fProjectionSupport.setHoverControlCreator(new IInformationControlCreator() {
            @Override
            public IInformationControl createInformationControl(Shell shell) {
                return new DefaultInformationControl(shell);
            }
        });
        fProjectionSupport.install();

        if (isFoldingEnabled()) {
            projectionViewer.doOperation(ProjectionViewer.TOGGLE);
        }
    } catch (Exception e) {
        Log.log(e);
    }
}
 
源代码10 项目: xtext-eclipse   文件: XtextEditor.java
@Override
public void createPartControl(Composite parent) {
	super.createPartControl(parent);
	ProjectionViewer projectionViewer = (ProjectionViewer) getSourceViewer();
	projectionSupport = installProjectionSupport(projectionViewer);
	installFoldingSupport(projectionViewer);
	installHighlightingHelper();
	installSelectionChangedListener();
	initializeDirtyStateSupport();
	callback.afterCreatePartControl(this);
}
 
源代码11 项目: xtext-eclipse   文件: XtextEditor.java
protected ProjectionSupport installProjectionSupport(ProjectionViewer projectionViewer) {
	ProjectionSupport projectionSupport = new ProjectionSupport(projectionViewer, getAnnotationAccess(),
			getSharedColors());
	projectionSupport.addSummarizableAnnotationType(INFO_ANNOTATION_TYPE);
	projectionSupport.addSummarizableAnnotationType(WARNING_ANNOTATION_TYPE);
	projectionSupport.addSummarizableAnnotationType(ERROR_ANNOTATION_TYPE);
	projectionSupport.setAnnotationPainterDrawingStrategy(projectionAnnotationDrawingStrategy);
	projectionSupport.install();
	return projectionSupport;
}
 
@Override
public void install(XtextEditor editor, ProjectionViewer viewer) {
	Assert.isNotNull(editor);
	Assert.isNotNull(viewer);
	uninstall();
	this.editor = editor;
	this.viewer = viewer;
	projectionListener = new ProjectionChangeListener(viewer);
}
 
@Override
public void contributeActions(XtextEditor xtextEditor) {
	foldingActionGroup = new FoldingActionGroup(xtextEditor, xtextEditor.getInternalSourceViewer()) {
		@Override
		protected TextEditorAction createToggleFoldingAction(ITextEditor editor) {
			TextEditorAction toggle = new ResourceActionExtension(FoldingMessages.getResourceBundle(),
					"Projection.Toggle.", editor, ProjectionViewer.TOGGLE);
			toggle.setChecked(true);
			toggle.setActionDefinitionId(IFoldingCommandIds.FOLDING_TOGGLE);
			return toggle;
		}
	};
}
 
源代码14 项目: xtext-eclipse   文件: AbstractEditorTest.java
private XtextEditor getXtextEditor(IEditorPart openEditor) throws NoSuchFieldException, IllegalAccessException {
	XtextEditor xtextEditor = EditorUtils.getXtextEditor(openEditor);
	if (xtextEditor != null) {
		ISourceViewer sourceViewer = xtextEditor.getInternalSourceViewer();
		((ProjectionViewer) sourceViewer).doOperation(ProjectionViewer.EXPAND_ALL);
		return xtextEditor;
	} else if (openEditor instanceof ErrorEditorPart) {
		Field field = openEditor.getClass().getDeclaredField("error");
		field.setAccessible(true);
		throw new IllegalStateException("Couldn't open the editor.", ((Status) field.get(openEditor)).getException());
	} else {
		fail("Opened Editor with id:" + getEditorId() + ", is not an XtextEditor");
	}
	return null;
}
 
源代码15 项目: texlipse   文件: BibEditor.java
protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles) {
    fOverviewRuler = createOverviewRuler(getSharedColors());
    
    ISourceViewer viewer = new ProjectionViewer(parent,
    		ruler, getOverviewRuler(), isOverviewRulerVisible(), styles);
    
    // ensure decoration support has been created and configured.
    getSourceViewerDecorationSupport(viewer);
    return viewer;
}
 
源代码16 项目: texlipse   文件: TexEditor.java
/** 
 * Create the part control.
 * 
 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
 */
public void createPartControl(Composite parent) {
    super.createPartControl(parent);
    // enable projection support (for code folder)
    ProjectionViewer projectionViewer = (ProjectionViewer) getSourceViewer();
    fProjectionSupport = new ProjectionSupport(projectionViewer,
            getAnnotationAccess(), getSharedColors());
    fProjectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.error");
    fProjectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.warning");
    fProjectionSupport.install();

    if (TexlipsePlugin.getDefault().getPreferenceStore().getBoolean(TexlipseProperties.CODE_FOLDING)) {
    	projectionViewer.doOperation(ProjectionViewer.TOGGLE);
    }
    
    fAnnotationUpdater = new TexlipseAnnotationUpdater(this);
    
    ((IPostSelectionProvider) getSelectionProvider()).addPostSelectionChangedListener(
            new ISelectionChangedListener(){
                public void selectionChanged(SelectionChangedEvent event) {
                    //Delete all StatuslineErrors after selection changes
                    documentModel.removeStatusLineErrorMessage();
                }
            });

    // register documentModel as documentListener
    // in initializeEditor this would cause NPE
    this.getDocumentProvider().getDocument(getEditorInput()).addDocumentListener(this.documentModel);
    this.documentModel.initializeModel();
    this.documentModel.updateNow();

    ISourceViewer sourceViewer = getSourceViewer();
    if (sourceViewer instanceof ITextViewerExtension) {
        if (fBracketInserter == null)
            fBracketInserter = new BracketInserter(getSourceViewer(), this);
        ((ITextViewerExtension) sourceViewer).prependVerifyKeyListener(fBracketInserter);
    }
}
 
源代码17 项目: tlaplus   文件: TLAEditor.java
protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles)
{
    ProjectionViewer viewer = new ProjectionViewer(parent, ruler, getOverviewRuler(), isOverviewRulerVisible(),
            styles);
    // ensure decoration support has been created and configured.
    // @see org.eclipse.ui.texteditor.ExtendedTextEditor#createSourceViewer
    getSourceViewerDecorationSupport(viewer);
    return viewer;
}
 
源代码18 项目: tlaplus   文件: TLAEditor.java
@Override
  public void createPartControl(final Composite parent)
  {
      super.createPartControl(parent);
      /*
       * Add projection support (i.e. for folding) 
       */
      final ProjectionViewer viewer = (ProjectionViewer) getSourceViewer();
      projectionSupport = new ProjectionSupport(viewer, getAnnotationAccess(), getSharedColors());
      projectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.error"); //$NON-NLS-1$
      projectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.warning"); //$NON-NLS-1$
      projectionSupport.install();
      
if (viewer.canDoOperation(ProjectionViewer.TOGGLE)) {
	viewer.doOperation(ProjectionViewer.TOGGLE);
}

      // model for adding projections (folds)
      annotationModel = viewer.getProjectionAnnotationModel();

      // this must be instantiated after annotationModel so that it does
      // not call methods that use annotation model when the model is still null
      proofStructureProvider = new TLAProofFoldingStructureProvider(this);
      
      // refresh the editor in case it should be
      // read only
      refresh();

      // tlapmColoring = new TLAPMColoringOutputListener(this);
      
      service = this.getSite().getService(IEventBroker.class);
  }
 
源代码19 项目: tlaplus   文件: TLASourceViewerConfiguration.java
/**
    * 
    */
   @Override
public IReconciler getReconciler(final ISourceViewer sourceViewer) {
       final TLAReconcilingStrategy strategy = new TLAReconcilingStrategy();
       strategy.setEditor(editor);
       if (sourceViewer instanceof ProjectionViewer) {
       	strategy.setProjectionViewer((ProjectionViewer)sourceViewer);
       }
       return new MonoReconciler(strategy, false);
   }
 
源代码20 项目: tlaplus   文件: FoldAllRegionsHandler.java
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
       final TLAEditor editor = EditorUtil.getTLAEditorWithFocus();

	if (editor != null) {
		final TextOperationAction action = new TextOperationAction(RESOURCE_BUNDLE, "Projection.CollapseAll.", editor,
				ProjectionViewer.COLLAPSE_ALL, true);

		action.setActionDefinitionId(IFoldingCommandIds.FOLDING_COLLAPSE_ALL);
		action.run();
       }

       return null;
}
 
源代码21 项目: tlaplus   文件: ExpandAllRegionsHandler.java
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
       final TLAEditor editor = EditorUtil.getTLAEditorWithFocus();

	if (editor != null) {
		final TextOperationAction action = new TextOperationAction(RESOURCE_BUNDLE, "Projection.ExpandAll.", editor,
				ProjectionViewer.EXPAND_ALL, true);

		action.setActionDefinitionId(IFoldingCommandIds.FOLDING_EXPAND_ALL);
		action.run();
       }

       return null;
}
 
源代码22 项目: typescript.java   文件: IndentFoldingStrategy.java
/**
 * The folding strategy must be associated with a viewer for it to function
 * 
 * @param viewer
 *            the viewer to associate this folding strategy with
 */
public void setViewer(ProjectionViewer viewer) {
	if (viewer != null) {
		viewer.removeProjectionListener(this);
	}
	this.viewer = viewer;
	viewer.addProjectionListener(this);
	this.projectionAnnotationModel = viewer.getProjectionAnnotationModel();
}
 
protected IReconcilingStrategy getTypeScriptFoldingStrategy() {
	if ("org.eclipse.wst.jsdt.core.jsSource".equals(contentType)) {
		return super.getFoldingStrategy();
	}
	if (foldingStrategy == null) {
		ITextViewer viewer = getTextViewer();
		if (viewer instanceof ProjectionViewer) {
			foldingStrategy = new TypeScriptFoldingStrategy();
			foldingStrategy.setViewer((ProjectionViewer) viewer);
			foldingStrategy.setDocument(getDocument());
		}
	}
	return foldingStrategy;
}
 
源代码24 项目: statecharts   文件: XtextSourceViewerEx.java
/**
 * Set the private fHandleProjectionChanges field value.
 * 
 * @param value
 *            the new value.
 */
protected void setPrivateHandleProjectionChangesField(boolean value) {
	try {
		Field declaredField = ProjectionViewer.class
				.getDeclaredField("fHandleProjectionChanges");
		declaredField.setAccessible(true);
		declaredField.set(this, value);
	} catch (Exception e) {
		e.printStackTrace();
	}
}
 
源代码25 项目: KaiZen-OpenAPI-Editor   文件: JsonEditor.java
@Override
public void createPartControl(Composite parent) {
    super.createPartControl(parent);

    ProjectionViewer viewer = getProjectionViewer();

    projectionSupport = new ProjectionSupport(viewer, getAnnotationAccess(), getSharedColors());
    projectionSupport.install();

    // turn projection mode on
    viewer.doOperation(ProjectionViewer.TOGGLE);

    annotationModel = viewer.getProjectionAnnotationModel();
    getPreferenceStore().addPropertyChangeListener(preferenceChangeListener);
}
 
源代码26 项目: gama   文件: GamlEditor.java
@Override
protected void installFoldingSupport(final ProjectionViewer projectionViewer) {
	super.installFoldingSupport(projectionViewer);
	if (!isRangeIndicatorEnabled()) {
		projectionViewer.doOperation(ProjectionViewer.TOGGLE);
	}
}
 
源代码27 项目: gama   文件: GamaFoldingActionGroup.java
GamaFoldingActionGroup(final ITextEditor editor, final ITextViewer viewer) {
	super(editor, viewer);
	if (!(viewer instanceof ProjectionViewer)) { return; }
	this.pViewer = (ProjectionViewer) viewer;

	collapseStrings = new FoldingAction() { // $NON-NLS-1$
		// private final EClass type = GamlPackage.

		@Override
		public void run() {
			final ProjectionAnnotationModel model = pViewer.getProjectionAnnotationModel();
			final Iterator<?> iterator = model.getAnnotationIterator();
			final List<Annotation> toCollapse = new ArrayList<>();
			while (iterator.hasNext()) {
				final Object next = iterator.next();
				if (next instanceof ProjectionAnnotation) {
					final ProjectionAnnotation pa = (ProjectionAnnotation) next;
					final Position position = model.getPosition(pa);
					if (position instanceof TypedFoldedPosition) {
						if (((TypedFoldedPosition) position).getType().equals("__comment")) {
							pa.markCollapsed();
							toCollapse.add(pa);
						}
					}
				}
			}
			model.modifyAnnotations(null, null, toCollapse.toArray(new Annotation[0]));
		}
	};
	collapseStrings.setActionDefinitionId("org.xtext.example.folding.ui.folding.collapseStrings");
	editor.setAction("FoldingCollapseStrings", collapseStrings); //$NON-NLS-1$

}
 
源代码28 项目: APICloud-Studio   文件: AbstractFoldingEditor.java
public void createPartControl(Composite parent)
{
	super.createPartControl(parent);

	ProjectionViewer viewer = (ProjectionViewer) getSourceViewer();
	ProjectionSupport projectionSupport = new ProjectionSupport(viewer, getAnnotationAccess(), getSharedColors());
	projectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.error"); //$NON-NLS-1$
	projectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.warning"); //$NON-NLS-1$
	projectionSupport.install();

	viewer.doOperation(ProjectionViewer.TOGGLE);
}
 
源代码29 项目: APICloud-Studio   文件: AbstractFoldingEditor.java
protected ProjectionAnnotationModel getAnnotationModel()
{
	ISourceViewer viewer = getSourceViewer();
	if (viewer instanceof ProjectionViewer)
	{
		return ((ProjectionViewer) viewer).getProjectionAnnotationModel();
	}
	return null;
}
 
/**
 * {@inheritDoc}
 * <p>
 * Subclasses may extend.
 * </p>
 *
 * @param editor {@inheritDoc}
 * @param viewer {@inheritDoc}
 */
public void install(ITextEditor editor, ProjectionViewer viewer) {
	Assert.isLegal(editor != null);
	Assert.isLegal(viewer != null);

	internalUninstall();

	if (editor instanceof JavaEditor) {
		fProjectionListener= new ProjectionListener(viewer);
		fEditor= (JavaEditor)editor;
	}
}
 
 类所在包
 同包方法