org.eclipse.xtext.ui.editor.folding
Class DefaultFoldingStructureProvider

java.lang.Object
  extended by org.eclipse.xtext.ui.editor.folding.DefaultFoldingStructureProvider
All Implemented Interfaces:
IFoldingStructureProvider, IXtextModelListener
Direct Known Subclasses:
InitiallyCollapsableAwareFoldingStructureProvider

public class DefaultFoldingStructureProvider
extends java.lang.Object
implements IFoldingStructureProvider, IXtextModelListener

Default implementation of interface IFoldingStructureProvider/

Author:
Michael Clay - Initial contribution and API

Nested Class Summary
 class DefaultFoldingStructureProvider.ProjectionChangeListener
          Internal projection listener.
 
Constructor Summary
DefaultFoldingStructureProvider()
           
 
Method Summary
protected  void addProjectionAnnotation(boolean allowCollapse, org.eclipse.jface.text.Position foldingRegion, java.util.Map<org.eclipse.jface.text.source.projection.ProjectionAnnotation,org.eclipse.jface.text.Position> additionsMap)
           
protected  void calculateProjectionAnnotationModel(boolean allowCollapse)
           
protected  org.eclipse.jface.text.source.projection.ProjectionAnnotation createProjectionAnnotation(boolean isCollapsed, org.eclipse.jface.text.Position foldedRegion)
           
protected  void handleProjectionDisabled()
           
protected  void handleProjectionEnabled()
           
 void initialize()
          (Re-)initializes the structure provided by the receiver.
 void install(XtextEditor editor, org.eclipse.jface.text.source.projection.ProjectionViewer viewer)
          Installs this structure provider on the given editor and viewer.
protected  boolean isInstalled()
          Returns true if the provider is installed, false otherwise.
protected  org.eclipse.jface.text.source.Annotation[] mergeFoldingRegions(java.util.Collection<FoldedPosition> foldedPositions, org.eclipse.jface.text.source.projection.ProjectionAnnotationModel projectionAnnotationModel)
           
 void modelChanged(XtextResource resource)
           
 void uninstall()
          Uninstalls this structure provider.
protected  void updateFoldingRegions(boolean allowCollapse, org.eclipse.jface.text.source.projection.ProjectionAnnotationModel model, java.util.Collection<FoldedPosition> foldedPositions, org.eclipse.jface.text.source.Annotation[] deletions)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultFoldingStructureProvider

public DefaultFoldingStructureProvider()
Method Detail

install

public void install(XtextEditor editor,
                    org.eclipse.jface.text.source.projection.ProjectionViewer viewer)
Description copied from interface: IFoldingStructureProvider
Installs this structure provider on the given editor and viewer. Implementations should listen to the projection events generated by viewer and enable / disable generation of projection structure accordingly.

Specified by:
install in interface IFoldingStructureProvider
Parameters:
editor - the editor that this provider works on
viewer - the projection viewer that displays the annotations created by this structure provider

initialize

public void initialize()
Description copied from interface: IFoldingStructureProvider
(Re-)initializes the structure provided by the receiver.

Specified by:
initialize in interface IFoldingStructureProvider

uninstall

public void uninstall()
Description copied from interface: IFoldingStructureProvider
Uninstalls this structure provider. Any references to editors or viewers should be cleared.

Specified by:
uninstall in interface IFoldingStructureProvider

isInstalled

protected final boolean isInstalled()
Returns true if the provider is installed, false otherwise.

Returns:
true if the provider is installed, false otherwise

modelChanged

public void modelChanged(XtextResource resource)
Specified by:
modelChanged in interface IXtextModelListener
See Also:
IXtextModelListener.modelChanged(org.eclipse.xtext.resource.XtextResource)

handleProjectionEnabled

protected void handleProjectionEnabled()

handleProjectionDisabled

protected void handleProjectionDisabled()

calculateProjectionAnnotationModel

protected void calculateProjectionAnnotationModel(boolean allowCollapse)

mergeFoldingRegions

protected org.eclipse.jface.text.source.Annotation[] mergeFoldingRegions(java.util.Collection<FoldedPosition> foldedPositions,
                                                                         org.eclipse.jface.text.source.projection.ProjectionAnnotationModel projectionAnnotationModel)

updateFoldingRegions

protected void updateFoldingRegions(boolean allowCollapse,
                                    org.eclipse.jface.text.source.projection.ProjectionAnnotationModel model,
                                    java.util.Collection<FoldedPosition> foldedPositions,
                                    org.eclipse.jface.text.source.Annotation[] deletions)

addProjectionAnnotation

protected void addProjectionAnnotation(boolean allowCollapse,
                                       org.eclipse.jface.text.Position foldingRegion,
                                       java.util.Map<org.eclipse.jface.text.source.projection.ProjectionAnnotation,org.eclipse.jface.text.Position> additionsMap)

createProjectionAnnotation

protected org.eclipse.jface.text.source.projection.ProjectionAnnotation createProjectionAnnotation(boolean isCollapsed,
                                                                                                   org.eclipse.jface.text.Position foldedRegion)