org.eclipse.mtl.ide.ui.editors.template
Class MTLEditor

java.lang.Object
  extended by org.eclipse.core.commands.common.EventManager
      extended by org.eclipse.ui.part.WorkbenchPart
          extended by org.eclipse.ui.part.EditorPart
              extended by org.eclipse.ui.texteditor.AbstractTextEditor
                  extended by org.eclipse.ui.texteditor.StatusTextEditor
                      extended by org.eclipse.ui.texteditor.AbstractDecoratedTextEditor
                          extended by org.eclipse.ui.editors.text.TextEditor
                              extended by org.eclipse.mtl.ide.ui.editors.template.MTLEditor
All Implemented Interfaces:
java.util.EventListener, org.eclipse.core.resources.IResourceChangeListener, org.eclipse.core.runtime.IAdaptable, org.eclipse.core.runtime.IExecutableExtension, org.eclipse.ui.IEditorPart, org.eclipse.ui.INavigationLocationProvider, org.eclipse.ui.IPersistable, org.eclipse.ui.IPersistableEditor, org.eclipse.ui.IReusableEditor, org.eclipse.ui.ISaveablePart, org.eclipse.ui.ISaveablesSource, org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.IWorkbenchPart2, org.eclipse.ui.IWorkbenchPart3, org.eclipse.ui.part.IWorkbenchPartOrientation, org.eclipse.ui.texteditor.ITextEditor, org.eclipse.ui.texteditor.ITextEditorExtension, org.eclipse.ui.texteditor.ITextEditorExtension2, org.eclipse.ui.texteditor.ITextEditorExtension3, org.eclipse.ui.texteditor.ITextEditorExtension4

public class MTLEditor
extends org.eclipse.ui.editors.text.TextEditor
implements org.eclipse.core.resources.IResourceChangeListener

The MTL template editor (MTL editor).


Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.ui.texteditor.AbstractTextEditor
org.eclipse.ui.texteditor.AbstractTextEditor.AbstractSelectionChangedListener, org.eclipse.ui.texteditor.AbstractTextEditor.ColumnSupport, org.eclipse.ui.texteditor.AbstractTextEditor.IdMapEntry, org.eclipse.ui.texteditor.AbstractTextEditor.LineEndAction, org.eclipse.ui.texteditor.AbstractTextEditor.LineStartAction, org.eclipse.ui.texteditor.AbstractTextEditor.SelectionProvider, org.eclipse.ui.texteditor.AbstractTextEditor.TextEditorSavable
 
Nested classes/interfaces inherited from interface org.eclipse.ui.texteditor.ITextEditorExtension3
org.eclipse.ui.texteditor.ITextEditorExtension3.InsertMode
 
Field Summary
protected  MTLPairMatcher blockMatcher
          The editor's blocks matcher.
protected  ColorManager colorManager
          Color manager for the syntax highlighting of this editor.
protected  MTLSourceContent content
          The source content (The semantic content for this editor).
protected  MTLOutlinePage contentOutlinePage
          Content outline page.
protected static java.lang.String MATCHING_BRACKETS
          Preference key for matching brackets.
protected static java.lang.String MATCHING_BRACKETS_COLOR
          Preference key for matching brackets color.
protected  org.eclipse.jface.viewers.ISelectionChangedListener selectionChangedListener
          A listener which is notified when the outline's selection changes.
 
Fields inherited from class org.eclipse.ui.editors.text.TextEditor
fEncodingSupport
 
Fields inherited from class org.eclipse.ui.texteditor.AbstractDecoratedTextEditor
DEFAULT_OVERVIEW_RULER_CONTEXT_MENU_ID, fAnnotationAccess, fIsUpdatingMarkerViews, fLineNumberRulerColumn, fOverviewRuler, fSourceViewerDecorationSupport
 
Fields inherited from class org.eclipse.ui.texteditor.AbstractTextEditor
ACTION_MAP, DEFAULT_EDITOR_CONTEXT_MENU_ID, DEFAULT_RULER_CONTEXT_MENU_ID, fErrorLabel, PREFERENCE_COLOR_BACKGROUND, PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT, PREFERENCE_COLOR_FIND_SCOPE, PREFERENCE_COLOR_FOREGROUND, PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT, PREFERENCE_COLOR_SELECTION_BACKGROUND, PREFERENCE_COLOR_SELECTION_BACKGROUND_SYSTEM_DEFAULT, PREFERENCE_COLOR_SELECTION_FOREGROUND, PREFERENCE_COLOR_SELECTION_FOREGROUND_SYSTEM_DEFAULT, PREFERENCE_FONT, PREFERENCE_HOVER_ENRICH_MODE, PREFERENCE_HYPERLINK_KEY_MODIFIER, PREFERENCE_HYPERLINK_KEY_MODIFIER_MASK, PREFERENCE_HYPERLINKS_ENABLED, PREFERENCE_NAVIGATION_SMART_HOME_END, PREFERENCE_RULER_CONTRIBUTIONS, PREFERENCE_SHOW_WHITESPACE_CHARACTERS, PREFERENCE_TEXT_DRAG_AND_DROP_ENABLED, PREFERENCE_USE_CUSTOM_CARETS, PREFERENCE_WIDE_CARET, TAG_SELECTION_LENGTH, TAG_SELECTION_OFFSET, VERTICAL_RULER_WIDTH
 
Fields inherited from interface org.eclipse.ui.IEditorPart
PROP_DIRTY, PROP_INPUT
 
Fields inherited from interface org.eclipse.ui.IWorkbenchPart
PROP_TITLE
 
Fields inherited from interface org.eclipse.ui.IEditorPart
PROP_DIRTY, PROP_INPUT
 
Fields inherited from interface org.eclipse.ui.IWorkbenchPart
PROP_TITLE
 
Fields inherited from interface org.eclipse.ui.texteditor.ITextEditorExtension3
INSERT, SMART_INSERT
 
Constructor Summary
MTLEditor()
          Constructor.
 
Method Summary
protected  void configureSourceViewerDecorationSupport(org.eclipse.ui.texteditor.SourceViewerDecorationSupport support)
          
protected  MTLOutlinePage createContentOutlinePage()
          Creates the content outline page.
protected  org.eclipse.ui.texteditor.IDocumentProvider createDocumentProvider()
          Creates the document provider.
 void createPartControl(org.eclipse.swt.widgets.Composite parent)
          
protected  org.eclipse.jface.viewers.ISelectionChangedListener createSelectionChangeListener()
          Creates a listener which is notified when the outline's selection changes.
protected  org.eclipse.jface.text.source.ISourceViewer createSourceViewer(org.eclipse.swt.widgets.Composite parent, org.eclipse.jface.text.source.IVerticalRuler ruler, int styles)
          
protected  org.eclipse.jface.text.source.SourceViewerConfiguration createSourceViewerConfiguration()
          Creates the source viewer configuration.
 void dispose()
          
 void doSave(org.eclipse.core.runtime.IProgressMonitor progressMonitor)
          
 void doSaveAs()
          
protected  void doSetInput(org.eclipse.ui.IEditorInput input)
          
 java.lang.Object getAdapter(java.lang.Class type)
          
 ColorManager getColorManager()
          Gets the color manager.
 MTLSourceContent getContent()
          Gets the source content.
protected  MTLOutlinePage getContentOutlinePage()
          Returns the template content outline page.
 org.eclipse.core.resources.IFile getFile()
          Get the input file for this editor.
protected  void initializeKeyBindingScopes()
          
 void resourceChanged(org.eclipse.core.resources.IResourceChangeEvent event)
          
protected  void selectionChangedDetected(org.eclipse.jface.viewers.SelectionChangedEvent event)
          Methods which is notified when the outline's selection changes.
protected  void selectRange(int begin, int end)
          Sets the highlighted range of this text editor to the specified region.
 void updateFoldingStructure(java.util.Map<org.eclipse.jface.text.source.Annotation,org.eclipse.jface.text.Position> addedAnnotations, java.util.List<org.eclipse.jface.text.source.Annotation> deletedAnnotations, java.util.Map<org.eclipse.jface.text.source.Annotation,org.eclipse.jface.text.Position> modifiedAnnotations)
          Updates the folding structure of the template.
 void updateSelection(int posBegin, int posEnd)
          Updates the outline selection by using the current offset in the text.
 
Methods inherited from class org.eclipse.ui.editors.text.TextEditor
createActions, editorContextMenuAboutToShow, getStatusBanner, getStatusHeader, getStatusMessage, handlePreferenceStoreChanged, initializeEditor, installEncodingSupport, isSaveAsAllowed, updatePropertyDependentActions
 
Methods inherited from class org.eclipse.ui.texteditor.AbstractDecoratedTextEditor
collectContextMenuPreferencePages, collectOverviewRulerMenuPreferencePages, collectRulerMenuPreferencePages, createAnnotationAccess, createAnnotationRulerColumn, createChangeHover, createChangeRulerColumn, createColumnSupport, createCompositeRuler, createContextMenuListener, createLineNumberRulerColumn, createOverviewRuler, createOverviewRulerContextMenu, createStatusControl, createVerticalRuler, disposeDocumentProvider, getAnnotationAccess, getAnnotationPreferenceLookup, getAnnotationPreferences, getDocumentProvider, getOverviewRuler, getOverviewRulerContextMenuId, getSharedColors, getSourceViewerDecorationSupport, getUndoRedoOperationApprover, gotoAnnotation, gotoMarker, hideOverviewRuler, initializeLineNumberRulerColumn, isChangeInformationShowing, isEditable, isErrorStatus, isLineNumberRulerVisible, isNavigationTarget, isOverviewRulerVisible, isOverwriteModeEnabled, isPrefQuickDiffAlwaysOn, isTabsToSpacesConversionEnabled, overviewRulerContextMenuAboutToShow, performSaveAs, rulerContextMenuAboutToShow, setDocumentProvider, setOverviewRulerContextMenuId, showChangeInformation, showOverviewRuler, showRevisionInformation, updateMarkerViews, validateEditorInputState
 
Methods inherited from class org.eclipse.ui.texteditor.StatusTextEditor
doRevertToSaved, handleEditorInputChanged, handleElementContentReplaced, sanityCheckState, updatePartControl, updateStatusField
 
Methods inherited from class org.eclipse.ui.texteditor.AbstractTextEditor
addAction, addAction, addGroup, addRulerContextMenuListener, adjustHighlightRange, affectsTextPresentation, canHandleMove, close, configureInsertMode, containsSavedState, createEmptyNavigationLocation, createNavigationActions, createNavigationLocation, createUndoRedoActions, doGetSelection, doRestoreState, doSetSelection, editorSaved, enableOverwriteMode, enableSanityChecking, enableStateValidation, findAnnotation, firePropertyChange, getAction, getActiveSaveables, getContextMenuListener, getCoverage, getCursorListener, getCursorPosition, getEditorContextMenuId, getFontPropertyPreferenceKey, getHelpContextId, getHighlightRange, getInsertMode, getLegalInsertModes, getPreferenceStore, getProgressMonitor, getRangeIndicator, getRulerContextMenuId, getRulerMouseListener, getSaveables, getSelectionChangedListener, getSelectionProvider, getSourceViewer, getSourceViewerConfiguration, getStatusField, getStatusLineManager, getVerticalRuler, handleCursorPositionChanged, handleExceptionOnSave, handleInsertModeChanged, init, initializeDragAndDrop, initializeViewerColors, installTabsToSpacesConverter, installTextDragAndDrop, internalInit, isDirty, isEditorInputIncludedInContextMenu, isEditorInputModifiable, isEditorInputReadOnly, isInInsertMode, isVisible, markAsContentDependentAction, markAsPropertyDependentAction, markAsSelectionDependentAction, markAsStateDependentAction, markInNavigationHistory, modelOffset2WidgetOffset, openSaveErrorDialog, performRevert, performSave, rememberSelection, removeActionActivationCode, removeRulerContextMenuListener, resetHighlightRange, restoreSelection, restoreState, safelySanityCheckState, saveState, selectAndReveal, selectAndReveal, setAction, setActionActivationCode, setCompatibilityMode, setDocumentProvider, setEditorContextMenuId, setFocus, setHelpContextId, setHighlightRange, setInput, setInputWithNotify, setInsertMode, setKeyBindingScopes, setPreferenceStore, setRangeIndicator, setRulerContextMenuId, setSourceViewerConfiguration, setStatusField, setStatusLineErrorMessage, setStatusLineMessage, showHighlightRangeOnly, showsHighlightRangeOnly, uninstallTabsToSpacesConverter, uninstallTextDragAndDrop, updateContentDependentActions, updateContributedRulerColumns, updateIndentPrefixes, updateSelectionDependentActions, updateState, updateStateDependentActions, updateStatusFields, validateState, widgetOffset2ModelOffset
 
Methods inherited from class org.eclipse.ui.part.EditorPart
checkSite, getEditorInput, getEditorSite, getTitleToolTip, isSaveOnCloseNeeded, setContentDescription, setInitializationData, setPartName
 
Methods inherited from class org.eclipse.ui.part.WorkbenchPart
addPartPropertyListener, addPropertyListener, firePartPropertyChanged, getConfigurationElement, getContentDescription, getDefaultImage, getOrientation, getPartName, getPartProperties, getPartProperty, getSite, getTitle, getTitleImage, removePartPropertyListener, removePropertyListener, setPartProperty, setSite, setTitle, setTitleImage, setTitleToolTip, showBusy
 
Methods inherited from class org.eclipse.core.commands.common.EventManager
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.ui.IEditorPart
getEditorInput, getEditorSite
 
Methods inherited from interface org.eclipse.ui.IWorkbenchPart
addPropertyListener, getSite, getTitle, getTitleImage, getTitleToolTip, removePropertyListener
 
Methods inherited from interface org.eclipse.ui.ISaveablePart
isSaveOnCloseNeeded
 
Methods inherited from interface org.eclipse.ui.IEditorPart
getEditorInput, getEditorSite
 
Methods inherited from interface org.eclipse.ui.IWorkbenchPart
addPropertyListener, getSite, getTitle, getTitleImage, getTitleToolTip, removePropertyListener
 
Methods inherited from interface org.eclipse.ui.ISaveablePart
isSaveOnCloseNeeded
 

Field Detail

MATCHING_BRACKETS

protected static final java.lang.String MATCHING_BRACKETS
Preference key for matching brackets.

See Also:
Constant Field Values

MATCHING_BRACKETS_COLOR

protected static final java.lang.String MATCHING_BRACKETS_COLOR
Preference key for matching brackets color.

See Also:
Constant Field Values

content

protected MTLSourceContent content
The source content (The semantic content for this editor). It is used to create a CST model and is able to do an incremental parsing of the text.


colorManager

protected ColorManager colorManager
Color manager for the syntax highlighting of this editor.


contentOutlinePage

protected MTLOutlinePage contentOutlinePage
Content outline page.


selectionChangedListener

protected org.eclipse.jface.viewers.ISelectionChangedListener selectionChangedListener
A listener which is notified when the outline's selection changes.


blockMatcher

protected MTLPairMatcher blockMatcher
The editor's blocks matcher.

Constructor Detail

MTLEditor

public MTLEditor()
Constructor.

Method Detail

getContent

public MTLSourceContent getContent()
Gets the source content. It stores the CST model that represents the semantic content of the text.

Returns:
the source content

getColorManager

public ColorManager getColorManager()
Gets the color manager. It is often used for syntax highlighting.

Returns:
the color manager

doSetInput

protected void doSetInput(org.eclipse.ui.IEditorInput input)
                   throws org.eclipse.core.runtime.CoreException

Overrides:
doSetInput in class org.eclipse.ui.editors.text.TextEditor
Throws:
org.eclipse.core.runtime.CoreException
See Also:
TextEditor.doSetInput(org.eclipse.ui.IEditorInput)

initializeKeyBindingScopes

protected void initializeKeyBindingScopes()

Overrides:
initializeKeyBindingScopes in class org.eclipse.ui.texteditor.AbstractDecoratedTextEditor
See Also:
AbstractDecoratedTextEditor.initializeKeyBindingScopes()

createSourceViewerConfiguration

protected org.eclipse.jface.text.source.SourceViewerConfiguration createSourceViewerConfiguration()
Creates the source viewer configuration.

Returns:
the source viewer configuration

createDocumentProvider

protected org.eclipse.ui.texteditor.IDocumentProvider createDocumentProvider()
Creates the document provider.

Returns:
the document provider

dispose

public void dispose()

Specified by:
dispose in interface org.eclipse.ui.IWorkbenchPart
Overrides:
dispose in class org.eclipse.ui.editors.text.TextEditor
See Also:
TextEditor.dispose()

getAdapter

public java.lang.Object getAdapter(java.lang.Class type)

Specified by:
getAdapter in interface org.eclipse.core.runtime.IAdaptable
Overrides:
getAdapter in class org.eclipse.ui.editors.text.TextEditor
See Also:
TextEditor.getAdapter(java.lang.Class)

getContentOutlinePage

protected MTLOutlinePage getContentOutlinePage()
Returns the template content outline page. Creates the listener which is notified when the outline's selection changes.

Returns:
the template content outline page

resourceChanged

public void resourceChanged(org.eclipse.core.resources.IResourceChangeEvent event)

Specified by:
resourceChanged in interface org.eclipse.core.resources.IResourceChangeListener
See Also:
IResourceChangeListener.resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)

createContentOutlinePage

protected MTLOutlinePage createContentOutlinePage()
Creates the content outline page.

Returns:
the content outline page

createSelectionChangeListener

protected org.eclipse.jface.viewers.ISelectionChangedListener createSelectionChangeListener()
Creates a listener which is notified when the outline's selection changes.

Returns:
the listener which is notified when the outline's selection changes

configureSourceViewerDecorationSupport

protected void configureSourceViewerDecorationSupport(org.eclipse.ui.texteditor.SourceViewerDecorationSupport support)

Overrides:
configureSourceViewerDecorationSupport in class org.eclipse.ui.texteditor.AbstractDecoratedTextEditor
See Also:
AbstractDecoratedTextEditor.configureSourceViewerDecorationSupport(org.eclipse.ui.texteditor.SourceViewerDecorationSupport)

selectionChangedDetected

protected void selectionChangedDetected(org.eclipse.jface.viewers.SelectionChangedEvent event)
Methods which is notified when the outline's selection changes.

Parameters:
event - is the selection changed event

updateSelection

public void updateSelection(int posBegin,
                            int posEnd)
Updates the outline selection by using the current offset in the text. It browses the CST model to find the element that is defined at the given offset.

Parameters:
posBegin - is the beginning index of the selected text
posEnd - is the ending index of the selected text

selectRange

protected void selectRange(int begin,
                           int end)
Sets the highlighted range of this text editor to the specified region.

Parameters:
begin - is the beginning index
end - is the ending index

doSave

public void doSave(org.eclipse.core.runtime.IProgressMonitor progressMonitor)

Specified by:
doSave in interface org.eclipse.ui.ISaveablePart
Overrides:
doSave in class org.eclipse.ui.texteditor.AbstractTextEditor
See Also:
AbstractTextEditor.doSave(org.eclipse.core.runtime.IProgressMonitor)

doSaveAs

public void doSaveAs()

Specified by:
doSaveAs in interface org.eclipse.ui.ISaveablePart
Overrides:
doSaveAs in class org.eclipse.ui.texteditor.AbstractTextEditor
See Also:
AbstractTextEditor.doSaveAs()

getFile

public org.eclipse.core.resources.IFile getFile()
Get the input file for this editor.

Returns:
the editor input file

updateFoldingStructure

public void updateFoldingStructure(java.util.Map<org.eclipse.jface.text.source.Annotation,org.eclipse.jface.text.Position> addedAnnotations,
                                   java.util.List<org.eclipse.jface.text.source.Annotation> deletedAnnotations,
                                   java.util.Map<org.eclipse.jface.text.source.Annotation,org.eclipse.jface.text.Position> modifiedAnnotations)
Updates the folding structure of the template. This will be called from the MTL template reconciler in order to allow the folding of blocks to the user.

Parameters:
addedAnnotations - These annotations have been added since the last reconciling operation.
deletedAnnotations - This list represents the annotations that were deleted since we last reconciled.
modifiedAnnotations - These annotations have seen their positions updated.

createPartControl

public void createPartControl(org.eclipse.swt.widgets.Composite parent)

Specified by:
createPartControl in interface org.eclipse.ui.IWorkbenchPart
Overrides:
createPartControl in class org.eclipse.ui.texteditor.AbstractDecoratedTextEditor
See Also:
AbstractDecoratedTextEditor.createPartControl(org.eclipse.swt.widgets.Composite)

createSourceViewer

protected org.eclipse.jface.text.source.ISourceViewer createSourceViewer(org.eclipse.swt.widgets.Composite parent,
                                                                         org.eclipse.jface.text.source.IVerticalRuler ruler,
                                                                         int styles)

Overrides:
createSourceViewer in class org.eclipse.ui.texteditor.AbstractDecoratedTextEditor
See Also:
AbstractDecoratedTextEditor.createSourceViewer(org.eclipse.swt.widgets.Composite, org.eclipse.jface.text.source.IVerticalRuler, int)

Copyright 2008 Obeo
All Rights Reserved.