pl.edu.agh.cast.editor
Class AbstractEditor<M extends IPresentationDataSet<? extends IPresentationElement<? extends IElement>>,V extends IVisualDataSet<? extends IVisualElement<? extends IPresentationElement<? extends IElement>>,M>,T extends IDiagram<M,V>>

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.gef.ui.parts.GraphicalEditor
                  extended by org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
                      extended by pl.edu.agh.cast.editor.AbstractEditor<M,V,T>
Type Parameters:
M - presentation data set which is base of diagram
V - visual data set which is base of diagram
T - input diagram for editor
All Implemented Interfaces:
PropertyChangeListener, EventListener, org.eclipse.core.runtime.IAdaptable, org.eclipse.core.runtime.IExecutableExtension, org.eclipse.gef.commands.CommandStackEventListener, org.eclipse.gef.commands.CommandStackListener, org.eclipse.ui.IEditorPart, org.eclipse.ui.ISaveablePart, org.eclipse.ui.ISaveablePart2, org.eclipse.ui.ISelectionListener, org.eclipse.ui.IWorkbenchPart, org.eclipse.ui.IWorkbenchPart2, org.eclipse.ui.IWorkbenchPart3, org.eclipse.ui.part.IWorkbenchPartOrientation
Direct Known Subclasses:
SchemaEditor

public abstract class AbstractEditor<M extends IPresentationDataSet<? extends IPresentationElement<? extends IElement>>,V extends IVisualDataSet<? extends IVisualElement<? extends IPresentationElement<? extends IElement>>,M>,T extends IDiagram<M,V>>
extends org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
implements PropertyChangeListener, org.eclipse.gef.commands.CommandStackEventListener, org.eclipse.ui.ISaveablePart2

Abstract graphical editor for showing CAST data.

Author:
AGH CAST Team

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette.CustomPalettePage
 
Field Summary
protected static org.apache.log4j.Logger log
          Logger for editor.
 
Fields inherited from interface org.eclipse.ui.ISaveablePart2
CANCEL, DEFAULT, NO, YES
 
Fields inherited from interface org.eclipse.ui.ISaveablePart
PROP_DIRTY
 
Fields inherited from interface org.eclipse.ui.IEditorPart
PROP_DIRTY, PROP_INPUT
 
Fields inherited from interface org.eclipse.ui.IWorkbenchPart
PROP_TITLE
 
Constructor Summary
AbstractEditor()
           
 
Method Summary
protected  void configureGraphicalViewer()
          
protected  void createActions()
          
protected  org.eclipse.gef.ui.palette.PaletteViewerProvider createPaletteViewerProvider()
          
 void dispose()
          
 void doSave(org.eclipse.core.runtime.IProgressMonitor monitor)
          Delegates save process to doSaveWithoutMessageBox(IProgressMonitor) and shows info in message box.
 void doSaveWithoutMessageBox(org.eclipse.core.runtime.IProgressMonitor monitor)
          Saves current diagram without any information to user.
 void executeCommand(org.eclipse.gef.commands.Command command)
          Executes command.
 Object getAdapter(Class type)
          
protected  org.eclipse.gef.KeyHandler getCommonKeyHandler()
           
protected abstract  org.eclipse.gef.ContextMenuProvider getContextMenuProvider()
          Return the context menu provider.
 T getDiagram()
          Gets diagram in current editor input.
 IDiagramEditorInput<M,V,T> getEditorInput()
          
 org.eclipse.draw2d.Viewport getEditorViewport()
          Returns editor's viewport.
abstract  org.eclipse.gef.EditPartFactory getEditPartsFactory()
          Gets EditPartFactory for this editor.
protected abstract  double getMaximumAllowedInitialZoom()
           
protected abstract  double getMinimumAllowedInitialZoom()
           
protected  org.eclipse.gef.ui.palette.FlyoutPaletteComposite.FlyoutPreferences getPalettePreferences()
          
protected  org.eclipse.gef.palette.PaletteRoot getPaletteRoot()
          
 String getPartName()
          
 org.eclipse.draw2d.IFigure getPrintableLayer()
          Returns editor's printable layer.
 String getTitle()
          
 String getTitleToolTip()
          
 void init(org.eclipse.ui.IEditorSite site, org.eclipse.ui.IEditorInput input)
          
protected  void initializeGraphicalViewer()
          
protected abstract  DiagramEditorInput<M,V,T> modelToDiagram(ModelEditorInput<? extends IDataSet<? extends IElement>> input)
          Convert the model editor input into diagram.
 int promptToSaveOnClose()
          
 void propertyChange(PropertyChangeEvent evt)
          
 void refresh()
          Refresh the viewer.
protected  void registerContextMenu()
          Registers context menu Can be called by subclasses to reregister the menu if the action registry is modified
 void selectElements(Collection<? extends IPresentationElement<? extends IElement>> elements)
          Selects given visual elements.
protected  void setInput(org.eclipse.ui.IEditorInput input)
          
 void stackChanged(org.eclipse.gef.commands.CommandStackEvent event)
          
 
Methods inherited from class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
createPalettePage, createPartControl, getGraphicalControl, getPaletteViewerProvider, setEditDomain
 
Methods inherited from class org.eclipse.gef.ui.parts.GraphicalEditor
commandStackChanged, createGraphicalViewer, doSaveAs, firePropertyChange, getActionRegistry, getCommandStack, getEditDomain, getGraphicalViewer, getPropertyActions, getSelectionActions, getSelectionSynchronizer, getStackActions, hookGraphicalViewer, initializeActionRegistry, isDirty, isSaveAsAllowed, selectionChanged, setActionRegistry, setFocus, setGraphicalViewer, updateActions
 
Methods inherited from class org.eclipse.ui.part.EditorPart
checkSite, getEditorSite, isSaveOnCloseNeeded, setContentDescription, setInitializationData, setInputWithNotify, setPartName
 
Methods inherited from class org.eclipse.ui.part.WorkbenchPart
addPartPropertyListener, addPropertyListener, firePartPropertyChanged, getConfigurationElement, getContentDescription, getDefaultImage, getOrientation, getPartProperties, getPartProperty, getSite, 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.ISaveablePart
doSaveAs, isDirty, isSaveAsAllowed, isSaveOnCloseNeeded
 
Methods inherited from interface org.eclipse.ui.IWorkbenchPart
addPropertyListener, getSite, getTitleImage, removePropertyListener
 

Field Detail

log

protected static org.apache.log4j.Logger log
Logger for editor.

Constructor Detail

AbstractEditor

public AbstractEditor()
Method Detail

getMinimumAllowedInitialZoom

protected abstract double getMinimumAllowedInitialZoom()
Returns:
minimum allowed initial zoom for this editor, expressed as a double where 1.0 is 100% zoom

getMaximumAllowedInitialZoom

protected abstract double getMaximumAllowedInitialZoom()
Returns:
maximum allowed initial zoom for this editor, expressed as a double where 1.0 is 100% zoom

initializeGraphicalViewer

protected void initializeGraphicalViewer()

Overrides:
initializeGraphicalViewer in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
See Also:
GraphicalEditorWithFlyoutPalette.initializeGraphicalViewer()

setInput

protected void setInput(org.eclipse.ui.IEditorInput input)

Overrides:
setInput in class org.eclipse.ui.part.EditorPart
See Also:
EditorPart.setInput(org.eclipse.ui.IEditorInput)

createActions

protected void createActions()

Overrides:
createActions in class org.eclipse.gef.ui.parts.GraphicalEditor
See Also:
GraphicalEditor.createActions()

getEditorInput

public IDiagramEditorInput<M,V,T> getEditorInput()

Specified by:
getEditorInput in interface org.eclipse.ui.IEditorPart
Overrides:
getEditorInput in class org.eclipse.ui.part.EditorPart
See Also:
EditorPart.getEditorInput()

dispose

public void dispose()

Specified by:
dispose in interface org.eclipse.ui.IWorkbenchPart
Overrides:
dispose in class org.eclipse.gef.ui.parts.GraphicalEditor
See Also:
GraphicalEditor.dispose()

modelToDiagram

protected abstract DiagramEditorInput<M,V,T> modelToDiagram(ModelEditorInput<? extends IDataSet<? extends IElement>> input)
                                                                                                                                                                                                                                                                   throws EditorException
Convert the model editor input into diagram.

Parameters:
input - The editor input containing the presentation and visual data set.
Returns:
Diagram containing the presentation and visual data sets.
Throws:
EditorException

getPalettePreferences

protected org.eclipse.gef.ui.palette.FlyoutPaletteComposite.FlyoutPreferences getPalettePreferences()

Overrides:
getPalettePreferences in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
See Also:
GraphicalEditorWithFlyoutPalette.getPalettePreferences()

configureGraphicalViewer

protected void configureGraphicalViewer()

Overrides:
configureGraphicalViewer in class org.eclipse.gef.ui.parts.GraphicalEditor
See Also:
GraphicalEditor.configureGraphicalViewer()

getCommonKeyHandler

protected org.eclipse.gef.KeyHandler getCommonKeyHandler()

getEditorViewport

public org.eclipse.draw2d.Viewport getEditorViewport()
Returns editor's viewport.

Returns:
editor's viewport

getPrintableLayer

public org.eclipse.draw2d.IFigure getPrintableLayer()
Returns editor's printable layer.

Returns:
editor's printable layer

registerContextMenu

protected final void registerContextMenu()
Registers context menu Can be called by subclasses to reregister the menu if the action registry is modified


getContextMenuProvider

protected abstract org.eclipse.gef.ContextMenuProvider getContextMenuProvider()
Return the context menu provider. See ContextMenuProvider.

Returns:
The context menu provider.

getPaletteRoot

protected org.eclipse.gef.palette.PaletteRoot getPaletteRoot()

Specified by:
getPaletteRoot in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
See Also:
GraphicalEditorWithFlyoutPalette.getPaletteRoot()

doSave

public void doSave(org.eclipse.core.runtime.IProgressMonitor monitor)
Delegates save process to doSaveWithoutMessageBox(IProgressMonitor) and shows info in message box.

Specified by:
doSave in interface org.eclipse.ui.ISaveablePart
Specified by:
doSave in class org.eclipse.ui.part.EditorPart
See Also:
EditorPart.doSave(org.eclipse.core.runtime.IProgressMonitor)

doSaveWithoutMessageBox

public void doSaveWithoutMessageBox(org.eclipse.core.runtime.IProgressMonitor monitor)
Saves current diagram without any information to user. It is introduced because save all action has its own message after saving all diagrams. Save steps:
  1. save view and presentation data set in persistence provider
  2. get a new id of visual data set and load the data set
  3. set a new model input for editor from the data set
  4. refresh the editor and mark as saved
TODO: use progress monitor

Parameters:
monitor - progress monitor

getDiagram

public T getDiagram()
Gets diagram in current editor input.

Returns:
returns diagram

getAdapter

public Object getAdapter(Class type)

Specified by:
getAdapter in interface org.eclipse.core.runtime.IAdaptable
Overrides:
getAdapter in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
See Also:
GraphicalEditorWithFlyoutPalette.getAdapter(java.lang.Class)

createPaletteViewerProvider

protected org.eclipse.gef.ui.palette.PaletteViewerProvider createPaletteViewerProvider()

Overrides:
createPaletteViewerProvider in class org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette
See Also:
GraphicalEditorWithFlyoutPalette.createPaletteViewerProvider()

init

public void init(org.eclipse.ui.IEditorSite site,
                 org.eclipse.ui.IEditorInput input)
          throws org.eclipse.ui.PartInitException

Specified by:
init in interface org.eclipse.ui.IEditorPart
Overrides:
init in class org.eclipse.gef.ui.parts.GraphicalEditor
Throws:
org.eclipse.ui.PartInitException
See Also:
GraphicalEditor.init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)

getPartName

public String getPartName()

Specified by:
getPartName in interface org.eclipse.ui.IWorkbenchPart2
Overrides:
getPartName in class org.eclipse.ui.part.WorkbenchPart
See Also:
WorkbenchPart.getPartName()

getTitle

public String getTitle()

Specified by:
getTitle in interface org.eclipse.ui.IWorkbenchPart
Overrides:
getTitle in class org.eclipse.ui.part.WorkbenchPart
See Also:
WorkbenchPart.getTitle()

getTitleToolTip

public String getTitleToolTip()

Specified by:
getTitleToolTip in interface org.eclipse.ui.IWorkbenchPart
Overrides:
getTitleToolTip in class org.eclipse.ui.part.EditorPart
See Also:
EditorPart.getTitleToolTip()

propertyChange

public void propertyChange(PropertyChangeEvent evt)

Specified by:
propertyChange in interface PropertyChangeListener
See Also:
PropertyChangeListener.propertyChange(java.beans.PropertyChangeEvent)

executeCommand

public void executeCommand(org.eclipse.gef.commands.Command command)
Executes command.

Parameters:
command - command to execute

refresh

public void refresh()
Refresh the viewer.


stackChanged

public void stackChanged(org.eclipse.gef.commands.CommandStackEvent event)

Specified by:
stackChanged in interface org.eclipse.gef.commands.CommandStackEventListener
See Also:
CommandStackEventListener.stackChanged(org.eclipse.gef.commands.CommandStackEvent)

selectElements

public void selectElements(Collection<? extends IPresentationElement<? extends IElement>> elements)
Selects given visual elements.

Parameters:
elements - list of elements to select

promptToSaveOnClose

public int promptToSaveOnClose()

Specified by:
promptToSaveOnClose in interface org.eclipse.ui.ISaveablePart2
See Also:
ISaveablePart2.promptToSaveOnClose()

getEditPartsFactory

public abstract org.eclipse.gef.EditPartFactory getEditPartsFactory()
Gets EditPartFactory for this editor.

Returns:
EditPartFactory


Copyright © 2007-2009 IISG AGH-UST Krakow, Poland. All Rights Reserved.