org.eclipse.xsd.presentation
Class XSDEditor

org.eclipse.xsd.presentation.XSDEditor
All Implemented Interfaces:
org.eclipse.emf.edit.domain.IEditingDomainProvider

public class XSDEditor
implements org.eclipse.emf.edit.domain.IEditingDomainProvider

This is a an example of a xsd model editor.


Inner Class Summary
static class XSDEditor.ActionBarContributor
          This is the contributor for the XSD model editor.
static class XSDEditor.EcoreXMISchemaBuilder
          This class produces an XSDSchema given an Ecore EPackage.
static class XSDEditor.EcoreXMLSchemaBuilder
          This class produces an XSDSchema given an Ecore EPackage.
static class XSDEditor.GenericXMLLoadAction
           
static class XSDEditor.GenericXMLResourceFactoryImpl
           
static class XSDEditor.GenericXMLResourceImpl
           
static class XSDEditor.MapBuilder
           
static class XSDEditor.XSDEcoreBuilder
           
 
Field Summary
protected  org.eclipse.ui.views.contentoutline.IContentOutlinePage contentOutlinePage
          This is the content outline page.
protected  org.eclipse.jface.action.IStatusLineManager contentOutlineStatusLineManager
          This is a kludge...
protected  org.eclipse.jface.viewers.TreeViewer contentOutlineViewer
          This is the content outline page's viewer.
protected  org.eclipse.jface.viewers.Viewer currentViewer
          This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
protected  org.eclipse.emf.common.ui.ViewerPane currentViewerPane
          This keeps track of the active viewer pane, in the book.
protected  org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain editingDomain
          This keeps track of the editing domain that is used to track all changes to the model.
protected  org.eclipse.jface.viewers.ISelection editorSelection
          This keeps track of the selection of the editor as a whole.
protected  boolean handledStructuredModelChange
           
protected  org.eclipse.ui.IPartListener partListener
          This listens for when things becomes active.
protected  org.eclipse.ui.views.properties.PropertySheetPage propertySheetPage
          This is the property sheet page.
protected  org.eclipse.jface.viewers.ISelectionChangedListener selectionChangedListener
          This listens to which ever viewer is active.
protected  java.util.Collection selectionChangedListeners
          This keeps track of all the ISelectionChangedListeners that are listening to this editor.
protected  org.eclipse.xsd.presentation.XSDEditor.SelectDiagnosticAction selectNextDiagnosticsAction
          This is the outline action to select the next unresolved component.
protected  org.eclipse.xsd.presentation.XSDEditor.SelectUseAction selectNextUseAction
          This is the outline action to select the next use of a component.
protected  org.eclipse.xsd.presentation.XSDEditor.SelectDiagnosticAction selectPreviousDiagnosticsAction
          This is the outline action to select the previous unresolved component.
protected  org.eclipse.xsd.presentation.XSDEditor.SelectUseAction selectPreviousUseAction
          This is the outline action to select the previous use of a component.
protected  XSDItemProviderAdapterFactory semanticAdapterFactory
          This is the adapter factory used for providing the semantic views of the model.
protected  org.eclipse.jface.viewers.TreeViewer semanticSelectionViewer
          This is the semantic viewer that shadows the selection in the content outline.
protected  org.eclipse.jface.text.source.ISourceViewer sourceViewer
           
protected  XSDItemProviderAdapterFactory syntacticAdapterFactory
          This is the adapter factory used for providing the syntactive views of the model.
protected  org.eclipse.jface.viewers.TreeViewer syntacticSelectionViewer
          This is the syntactic viewer that shadows the selection in the content outline.
protected  org.eclipse.ui.editors.text.TextEditor textEditor
          This source part of the editor.
protected  XSDSchema xsdSchema
          This keeps track of the root object of the model.
 
Constructor Summary
XSDEditor()
          This creates a model editor.
 
Method Summary
 void addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
          This implements ISelectionProvider.
protected  void createContextMenuFor(org.eclipse.jface.viewers.StructuredViewer viewer)
          This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
protected  void createModel()
           
 void createPages()
          This is the method used by the framework to install your own controls.
protected  void createResource(java.lang.String uri)
           
protected  void createSemanticsPage()
           
protected  void createSourcePage()
           
protected  void createSyntaxPage()
           
 void dispose()
          This is called when the editor is disposed.
 void doSave(org.eclipse.core.runtime.IProgressMonitor progressMonitor)
          This is for implementing IEditorPart and simply saves the model file.
 void doSaveAs()
          This also changes the editor's input.
protected  void extendedCreateResource(java.lang.String uri)
           
 org.w3c.dom.Element findBestElement(org.w3c.dom.Element element, int line, int column)
           
protected  void firePropertyChange(int action)
          This is here for the listener to be able to call it.
 org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor getActionBarContributor()
          This convenience method provides typed access to the contributor.
 org.eclipse.ui.IActionBars getActionBars()
          This convenience method provides access to the actionbars.
 java.lang.Object getAdapter(java.lang.Class key)
          This is how the framework determines which interfaces we implement.
 org.eclipse.ui.views.contentoutline.IContentOutlinePage getContentOutlinePage()
          This accesses a cached version of the content outliner.
 org.eclipse.emf.edit.domain.EditingDomain getEditingDomain()
          This returns the editing domain as required by the IEditingDomainProvider interface.
 org.eclipse.ui.views.properties.IPropertySheetPage getPropertySheetPage()
          This accesses a cached version of the property sheet.
static XSDConcreteComponent getResolvedObject(XSDConcreteComponent xsdConcreteComponent)
          This is a utility function to resolve a component.
 org.eclipse.jface.viewers.ISelection getSelection()
          This implements ISelectionProvider to return this editor's overall selection.
 void gotoMarker(org.eclipse.core.resources.IMarker marker)
           
 void handleContentOutlineSelection(org.eclipse.jface.viewers.ISelection selection)
          This deals with how we want selection in the outliner to affect the other views.
 void handleContentOutlineSelectionForTextEditor(org.eclipse.jface.viewers.ISelection selection, boolean reveal)
          This deals with how we want selection in the outliner to affect the text editor.
protected  void handleDiagnostics(org.eclipse.core.runtime.IProgressMonitor progressMonitor)
           
protected  void handleDocumentChange()
           
protected  void handlePartActivated(org.eclipse.ui.IWorkbenchPart workbenchPart)
          This handles part activation.
 void handleSelectedNodes(java.util.Collection nodes)
           
protected  void handleSourceCaretPosition()
           
protected  void handleStructuredModelChange()
           
 void init(org.eclipse.ui.IEditorSite site, org.eclipse.ui.IEditorInput editorInput)
          This is called during startup.
protected  void initializeMarkerPosition(org.eclipse.core.resources.IMarker marker, XSDDiagnostic xsdDiagnostic)
           
 boolean isDirty()
          This is for implementing IEditorPart and simply tests the command stack.
 boolean isSaveAsAllowed()
          This always returns false because it is not current supported.
 void menuAboutToShow(org.eclipse.jface.action.IMenuManager menuManager)
          This implements IMenuListener to help fill the context menus with contributions from the Edit menu.
protected  void pageChange(int pageIndex)
          This is used to track the active viewer.
 void removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
          This implements ISelectionProvider.
 void setCurrentViewer(org.eclipse.jface.viewers.Viewer viewer)
          This makes sure that one content viewer, either for the current page or the outline view, if it has focus, is the current one.
 void setCurrentViewerPane(org.eclipse.emf.common.ui.ViewerPane viewerPane)
           
 void setFocus()
           
 void setSelection(org.eclipse.jface.viewers.ISelection selection)
          This implements ISelectionProvider to set this editor's overall selection.
 void setSelectionToViewer(java.util.Collection collection)
          This sets the selection into whichever viewer is active.
 void setStatusLineManager(org.eclipse.jface.viewers.ISelection selection)
          This shows the selection on the status line.
protected  void standardCreateResource(java.lang.String uri)
           
protected  void updateActions()
           
 

Field Detail

xsdSchema

protected XSDSchema xsdSchema
This keeps track of the root object of the model.

editingDomain

protected org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain editingDomain
This keeps track of the editing domain that is used to track all changes to the model.

syntacticAdapterFactory

protected XSDItemProviderAdapterFactory syntacticAdapterFactory
This is the adapter factory used for providing the syntactive views of the model.

semanticAdapterFactory

protected XSDItemProviderAdapterFactory semanticAdapterFactory
This is the adapter factory used for providing the semantic views of the model.

contentOutlinePage

protected org.eclipse.ui.views.contentoutline.IContentOutlinePage contentOutlinePage
This is the content outline page.

contentOutlineStatusLineManager

protected org.eclipse.jface.action.IStatusLineManager contentOutlineStatusLineManager
This is a kludge...

contentOutlineViewer

protected org.eclipse.jface.viewers.TreeViewer contentOutlineViewer
This is the content outline page's viewer.

propertySheetPage

protected org.eclipse.ui.views.properties.PropertySheetPage propertySheetPage
This is the property sheet page.

textEditor

protected org.eclipse.ui.editors.text.TextEditor textEditor
This source part of the editor.

sourceViewer

protected org.eclipse.jface.text.source.ISourceViewer sourceViewer

syntacticSelectionViewer

protected org.eclipse.jface.viewers.TreeViewer syntacticSelectionViewer
This is the syntactic viewer that shadows the selection in the content outline. The parent relation must be correctly defined for this to work.

semanticSelectionViewer

protected org.eclipse.jface.viewers.TreeViewer semanticSelectionViewer
This is the semantic viewer that shadows the selection in the content outline.

currentViewerPane

protected org.eclipse.emf.common.ui.ViewerPane currentViewerPane
This keeps track of the active viewer pane, in the book.

currentViewer

protected org.eclipse.jface.viewers.Viewer currentViewer
This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.

selectionChangedListener

protected org.eclipse.jface.viewers.ISelectionChangedListener selectionChangedListener
This listens to which ever viewer is active.

selectionChangedListeners

protected java.util.Collection selectionChangedListeners
This keeps track of all the ISelectionChangedListeners that are listening to this editor.

editorSelection

protected org.eclipse.jface.viewers.ISelection editorSelection
This keeps track of the selection of the editor as a whole.

selectNextDiagnosticsAction

protected org.eclipse.xsd.presentation.XSDEditor.SelectDiagnosticAction selectNextDiagnosticsAction
This is the outline action to select the next unresolved component.

selectPreviousDiagnosticsAction

protected org.eclipse.xsd.presentation.XSDEditor.SelectDiagnosticAction selectPreviousDiagnosticsAction
This is the outline action to select the previous unresolved component.

selectNextUseAction

protected org.eclipse.xsd.presentation.XSDEditor.SelectUseAction selectNextUseAction
This is the outline action to select the next use of a component.

selectPreviousUseAction

protected org.eclipse.xsd.presentation.XSDEditor.SelectUseAction selectPreviousUseAction
This is the outline action to select the previous use of a component.

partListener

protected org.eclipse.ui.IPartListener partListener
This listens for when things becomes active.

handledStructuredModelChange

protected boolean handledStructuredModelChange
Constructor Detail

XSDEditor

public XSDEditor()
This creates a model editor.
Method Detail

updateActions

protected void updateActions()

handleStructuredModelChange

protected void handleStructuredModelChange()

handlePartActivated

protected void handlePartActivated(org.eclipse.ui.IWorkbenchPart workbenchPart)
This handles part activation.

firePropertyChange

protected void firePropertyChange(int action)
This is here for the listener to be able to call it.

setSelectionToViewer

public void setSelectionToViewer(java.util.Collection collection)
This sets the selection into whichever viewer is active.

getEditingDomain

public org.eclipse.emf.edit.domain.EditingDomain getEditingDomain()
This returns the editing domain as required by the IEditingDomainProvider interface. This is important for implementing the static methods of AdapterFactoryEditingDomain and for supporting CommandAction.
Specified by:
getEditingDomain in interface org.eclipse.emf.edit.domain.IEditingDomainProvider

setCurrentViewerPane

public void setCurrentViewerPane(org.eclipse.emf.common.ui.ViewerPane viewerPane)

setCurrentViewer

public void setCurrentViewer(org.eclipse.jface.viewers.Viewer viewer)
This makes sure that one content viewer, either for the current page or the outline view, if it has focus, is the current one.

createContextMenuFor

protected void createContextMenuFor(org.eclipse.jface.viewers.StructuredViewer viewer)
This creates a context menu for the viewer and adds a listener as well registering the menu for extension.

createPages

public void createPages()
This is the method used by the framework to install your own controls.

createResource

protected void createResource(java.lang.String uri)

standardCreateResource

protected void standardCreateResource(java.lang.String uri)

extendedCreateResource

protected void extendedCreateResource(java.lang.String uri)

createModel

protected void createModel()

handleSourceCaretPosition

protected void handleSourceCaretPosition()

findBestElement

public org.w3c.dom.Element findBestElement(org.w3c.dom.Element element,
                                           int line,
                                           int column)

handleSelectedNodes

public void handleSelectedNodes(java.util.Collection nodes)

handleDocumentChange

protected void handleDocumentChange()

createSourcePage

protected void createSourcePage()

createSemanticsPage

protected void createSemanticsPage()

createSyntaxPage

protected void createSyntaxPage()

initializeMarkerPosition

protected void initializeMarkerPosition(org.eclipse.core.resources.IMarker marker,
                                        XSDDiagnostic xsdDiagnostic)
                                 throws org.eclipse.core.runtime.CoreException

handleDiagnostics

protected void handleDiagnostics(org.eclipse.core.runtime.IProgressMonitor progressMonitor)

pageChange

protected void pageChange(int pageIndex)
This is used to track the active viewer.

getAdapter

public java.lang.Object getAdapter(java.lang.Class key)
This is how the framework determines which interfaces we implement.

getResolvedObject

public static XSDConcreteComponent getResolvedObject(XSDConcreteComponent xsdConcreteComponent)
This is a utility function to resolve a component.

getContentOutlinePage

public org.eclipse.ui.views.contentoutline.IContentOutlinePage getContentOutlinePage()
This accesses a cached version of the content outliner.

getPropertySheetPage

public org.eclipse.ui.views.properties.IPropertySheetPage getPropertySheetPage()
This accesses a cached version of the property sheet.

handleContentOutlineSelection

public void handleContentOutlineSelection(org.eclipse.jface.viewers.ISelection selection)
This deals with how we want selection in the outliner to affect the other views.

handleContentOutlineSelectionForTextEditor

public void handleContentOutlineSelectionForTextEditor(org.eclipse.jface.viewers.ISelection selection,
                                                       boolean reveal)
This deals with how we want selection in the outliner to affect the text editor.

isDirty

public boolean isDirty()
This is for implementing IEditorPart and simply tests the command stack.

doSave

public void doSave(org.eclipse.core.runtime.IProgressMonitor progressMonitor)
This is for implementing IEditorPart and simply saves the model file.

isSaveAsAllowed

public boolean isSaveAsAllowed()
This always returns false because it is not current supported.

doSaveAs

public void doSaveAs()
This also changes the editor's input.

gotoMarker

public void gotoMarker(org.eclipse.core.resources.IMarker marker)

init

public void init(org.eclipse.ui.IEditorSite site,
                 org.eclipse.ui.IEditorInput editorInput)
          throws org.eclipse.ui.PartInitException
This is called during startup.

setFocus

public void setFocus()

addSelectionChangedListener

public void addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
This implements ISelectionProvider.

removeSelectionChangedListener

public void removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener listener)
This implements ISelectionProvider.

getSelection

public org.eclipse.jface.viewers.ISelection getSelection()
This implements ISelectionProvider to return this editor's overall selection.

setSelection

public void setSelection(org.eclipse.jface.viewers.ISelection selection)
This implements ISelectionProvider to set this editor's overall selection. Calling this result will notify the listeners.

setStatusLineManager

public void setStatusLineManager(org.eclipse.jface.viewers.ISelection selection)
This shows the selection on the status line.

menuAboutToShow

public void menuAboutToShow(org.eclipse.jface.action.IMenuManager menuManager)
This implements IMenuListener to help fill the context menus with contributions from the Edit menu.

getActionBarContributor

public org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor getActionBarContributor()
This convenience method provides typed access to the contributor.

getActionBars

public org.eclipse.ui.IActionBars getActionBars()
This convenience method provides access to the actionbars.

dispose

public void dispose()
This is called when the editor is disposed.

Copyright 2001-2002 IBM Corporation and others.
All Rights Reserved.