| /* |
| * Copyright (c) 2007, 2009 Borland Software Corporation |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * bblajer (Borland) - initial API and implementation |
| */ |
| |
| «IMPORT 'http://www.eclipse.org/gmf/2009/GenModel'» |
| «EXTENSION xpt::providers::ValidationUtils» |
| «EXTENSION xpt::editor::i18n» |
| |
| «DEFINE Editor FOR gmfgen::GenEditorView-» |
| «IF eclipseEditor-» |
| «EXPAND EditorPart-» |
| «ELSE-» |
| «EXPAND ViewPart-» |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE EditorPart FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::copyright FOR editorGen» |
| package «packageName»; |
| |
| «EXPAND xpt::Common::generatedClassComment» |
| public class «className» extends org.eclipse.gmf.runtime.lite.parts.DiagramEditor «IF validationNeeded(editorGen.diagram) and null = editorGen.application» implements org.eclipse.ui.ide.IGotoMarker«ENDIF» { |
| «EXPAND partId-» |
| «IF null = editorGen.application-» |
| «EXPAND ResourceTracker-» |
| «EXPAND getFileFromInput-» |
| «ENDIF» |
| «EXPAND diagramAttributes-» |
| «EXPAND domainAdapterFactory-» |
| «EXPAND validationDecorationProvider-» |
| «EXPAND createActions-» |
| «EXPAND disposeEditor-» |
| «EXPAND save-» |
| «EXPAND configurePalette-» |
| «EXPAND propertySheetSupport FOR editorGen.propertySheet-» |
| «EXPAND initEditor-» |
| «EXPAND getURIFromInput-» |
| «EXPAND loadDiagramFile-» |
| «EXPAND initializeGraphicalViewer-» |
| «EXPAND configureGraphicalViewer-» |
| «EXPAND defaultFontAttribute-» |
| «EXPAND preferenceStoreListener-» |
| «EXPAND flyoutPalette-» |
| «EXPAND getSaveOptions-» |
| «IF validationNeeded(editorGen.diagram) and null = editorGen.application-» |
| «EXPAND gotoMarker-» |
| «ENDIF-» |
| «EXPAND ContextMenuProvider-» |
| «EXPAND additions-» |
| } |
| «ENDDEFINE» |
| |
| «DEFINE ViewPart FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::copyright FOR editorGen» |
| package «packageName»; |
| |
| «EXPAND xpt::Common::generatedClassComment» |
| public class «className» extends org.eclipse.gmf.runtime.lite.parts.DiagramViewPart { |
| «EXPAND partId-» |
| «EXPAND viewActionBarContributor-» |
| «EXPAND diagramAttributes-» |
| «EXPAND domainAdapterFactory-» |
| «EXPAND validationDecorationProvider-» |
| «EXPAND createActions-» |
| «EXPAND disposeView-» |
| «EXPAND configurePalette-» |
| «EXPAND propertySheetSupport FOR editorGen.propertySheet-» |
| «EXPAND initView-» |
| «EXPAND loadDiagramFile-» |
| «EXPAND initializeGraphicalViewer-» |
| «EXPAND configureGraphicalViewer-» |
| «EXPAND defaultFontAttribute-» |
| «EXPAND preferenceStoreListener-» |
| «EXPAND flyoutPalette-» |
| «EXPAND getSaveOptions-» |
| «EXPAND ContextMenuProvider-» |
| «EXPAND additions-» |
| } |
| «ENDDEFINE» |
| |
| «DEFINE viewActionBarContributor FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private «getActionBarContributorQualifiedClassName()» myActionBarContributor; |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| protected void updateActionBars() { |
| if (myActionBarContributor != null) { |
| myActionBarContributor.updateGlobalActions(this); |
| } |
| } |
| «ENDDEFINE» |
| |
| «DEFINE partId FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public static final String ID = "«iD»"; «EXPAND xpt::Common::nonNLS» |
| «ENDDEFINE» |
| |
| «DEFINE ResourceTracker FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedClassComment('This class listens to changes to the file system in the workspace, and\n' + |
| 'makes the following changes: \n' + |
| '<ul><li>If an open, saved file gets deleted, the editor is closed.</li>\n' + |
| '<li>If an open file gets renamed or moved, the editor\'s\n' + |
| 'input is changed accordingly.</li></ul>')» |
| private class ResourceTracker implements org.eclipse.core.resources.IResourceChangeListener { |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void resourceChanged(org.eclipse.core.resources.IResourceChangeEvent event) { |
| org.eclipse.core.resources.IResourceDelta delta = event.getDelta(); |
| if (delta != null) { |
| org.eclipse.core.resources.IFile file = getFileFromInput(getEditorInput()); |
| if (file != null) { |
| org.eclipse.core.resources.IResourceDelta fileDelta = delta.findMember(file.getFullPath()); |
| if (fileDelta != null) { |
| processFileDelta(fileDelta); |
| } |
| } |
| } |
| } |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| private void processFileDelta(org.eclipse.core.resources.IResourceDelta delta) { |
| assert (delta != null && delta.getResource().equals(getFileFromInput(getEditorInput()))); |
| if (delta.getKind() == org.eclipse.core.resources.IResourceDelta.REMOVED) { |
| if ((org.eclipse.core.resources.IResourceDelta.MOVED_TO & delta.getFlags()) == 0) { |
| //TODO: make sure unsaved deleted file is handled correctly |
| if (!isDirty()) { |
| closeEditor(); |
| } |
| } else { |
| // else if it was moved or renamed |
| final org.eclipse.core.resources.IFile newFile = org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getFile(delta.getMovedToPath()); |
| final org.eclipse.ui.IEditorInput newEditorInput; |
| if (getEditorInput() instanceof org.eclipse.emf.common.ui.URIEditorInput) { |
| org.eclipse.emf.common.util.URI newFileURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(newFile.getFullPath().toString(), true); |
| org.eclipse.emf.common.util.URI oldFileURI = ((org.eclipse.emf.common.ui.URIEditorInput) getEditorInput()).getURI(); |
| String newEditorName = newFileURI.lastSegment(); |
| if (oldFileURI.fragment() != null) { |
| newFileURI = newFileURI.appendFragment(oldFileURI.fragment()); |
| newEditorName += '#' + oldFileURI.fragment(); |
| } |
| newEditorInput = new org.eclipse.emf.common.ui.URIEditorInput(newFileURI, newEditorName); |
| } else { |
| newEditorInput = new org.eclipse.ui.part.FileEditorInput(newFile); |
| } |
| org.eclipse.swt.widgets.Display display = getSite().getShell().getDisplay(); |
| display.asyncExec(new Runnable() { |
| public void run() { |
| setInput(newEditorInput); |
| } |
| }); |
| } |
| } |
| } |
| } |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| private ResourceTracker resourceTracker; |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| private ResourceTracker getResourceTracker() { |
| if (resourceTracker == null) { |
| resourceTracker = new ResourceTracker(); |
| } |
| return resourceTracker; |
| } |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| void closeEditor() { |
| getSite().getShell().getDisplay().syncExec(new Runnable() { |
| public void run() { |
| getSite().getPage().closeEditor(«className».this, false); |
| } |
| }); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE hookResourceTracker FOR gmfgen::GenEditorView-» |
| «IF null = editorGen.application-» |
| org.eclipse.core.resources.IFile newResource = getFileFromInput(getEditorInput()); |
| if (newResource != null) { |
| newResource.getWorkspace().addResourceChangeListener(getResourceTracker()); |
| } |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE unhookResourceTracker FOR gmfgen::GenEditorView-» |
| «IF null = editorGen.application-» |
| org.eclipse.core.resources.IFile oldResource = getFileFromInput(getEditorInput()); |
| if (oldResource != null) { |
| oldResource.getWorkspace().removeResourceChangeListener(getResourceTracker()); |
| } |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE domainAdapterFactory FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private org.eclipse.emf.edit.provider.ComposedAdapterFactory domainAdapterFactory; |
| «EXPAND xpt::Common::generatedMemberComment» |
| public org.eclipse.emf.common.notify.AdapterFactory getDomainAdapterFactory() { |
| if (domainAdapterFactory == null) { |
| java.util.List factories = new java.util.ArrayList(); |
| factories.add(new org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory()); |
| «EXPAND MetaModel::PopulateItemProviderFactories('factories') FOR editorGen-» |
| factories.add(new org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory()); |
| factories.add(new org.eclipse.gmf.runtime.notation.provider.NotationItemProviderAdapterFactory()); |
| domainAdapterFactory = new org.eclipse.emf.edit.provider.ComposedAdapterFactory(factories); |
| } |
| return domainAdapterFactory; |
| } |
| |
| «ENDDEFINE» |
| |
| «DEFINE diagramAttributes FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private «EXPAND MetaModel::QualifiedClassName FOR editorGen.diagram.domainDiagramElement» diagramRoot; |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| private org.eclipse.gmf.runtime.notation.Diagram diagram; |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| public «EXPAND MetaModel::QualifiedClassName FOR editorGen.diagram.domainDiagramElement» getDiagramRoot() { |
| return diagramRoot; |
| } |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| public org.eclipse.gmf.runtime.notation.Diagram getDiagram() { |
| return diagram; |
| } |
| «ENDDEFINE» |
| |
| «DEFINE validationDecorationProvider FOR gmfgen::GenEditorView-» |
| «IF validationNeeded(editorGen.diagram) and editorGen.diagram.validationDecorators-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private org.eclipse.gmf.runtime.lite.validation.ValidationDecorationProvider validationDecorationProvider; |
| «EXPAND xpt::Common::generatedMemberComment» |
| private org.eclipse.gmf.runtime.lite.validation.ValidationDecorationProvider createValidationDecorationProvider() { |
| return new org.eclipse.gmf.runtime.lite.validation.ValidationDecorationProvider() { |
| protected org.eclipse.gef.GraphicalViewer getGraphicalViewer() { |
| return «className».this.getGraphicalViewer(); |
| } |
| protected org.eclipse.emf.ecore.resource.ResourceSet getResourceSet() { |
| return getEditingDomain().getResourceSet(); |
| } |
| }; |
| } |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE hookValidation FOR gmfgen::GenEditorView-» |
| «IF validationNeeded(editorGen.diagram) and editorGen.diagram.validationDecorators-» |
| if (validationDecorationProvider == null) { |
| validationDecorationProvider = createValidationDecorationProvider(); |
| «editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getValidationStateManager().addValidationStateListener(validationDecorationProvider); |
| } |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE unhookValidation FOR gmfgen::GenEditorView-» |
| «IF validationNeeded(editorGen.diagram) and editorGen.diagram.validationDecorators-» |
| if (validationDecorationProvider != null) { |
| «editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getValidationStateManager().removeValidationStateListener(validationDecorationProvider); |
| validationDecorationProvider.dispose(); |
| validationDecorationProvider = null; |
| } |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE createActions FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| protected void createActions() { |
| «EXPAND stackActions-» |
| «EXPAND editPartActions-» |
| «EXPAND editorActions-» |
| «EXPAND zoomActions-» |
| «EXPAND hookKeyHandler-» |
| |
| «IF validationNeeded(editorGen.diagram)-» |
| «EXPAND validateActions-» |
| «ENDIF-» |
| |
| «EXPAND metricsActions FOR editorGen.metrics-» |
| «EXPAND moreActions-» |
| } |
| «ENDDEFINE» |
| |
| «DEFINE stackActions FOR gmfgen::GenEditorView-» |
| addStackAction(new org.eclipse.gef.ui.actions.UndoAction(this)); |
| addStackAction(new org.eclipse.gef.ui.actions.RedoAction(this)); |
| «ENDDEFINE» |
| |
| «DEFINE editPartActions FOR gmfgen::GenEditorView-» |
| addEditPartAction(new org.eclipse.gmf.runtime.lite.ui.actions.DeleteAction((org.eclipse.ui.IWorkbenchPart) this)); |
| addEditPartAction(new org.eclipse.gmf.runtime.lite.ui.actions.DeleteViewAction((org.eclipse.ui.IWorkbenchPart) this)); |
| addEditPartAction(new org.eclipse.gmf.runtime.lite.ui.actions.DeleteViewOrModelAction((org.eclipse.ui.IWorkbenchPart) this)); |
| addEditPartAction(new org.eclipse.gef.ui.actions.DirectEditAction((org.eclipse.ui.IWorkbenchPart) this)); |
| «EXPAND alignActions-» |
| «ENDDEFINE» |
| |
| «DEFINE alignActions FOR gmfgen::GenEditorView-» |
| addEditPartAction(new org.eclipse.gef.ui.actions.AlignmentAction((org.eclipse.ui.IWorkbenchPart) this, org.eclipse.draw2d.PositionConstants.LEFT)); |
| addEditPartAction(new org.eclipse.gef.ui.actions.AlignmentAction((org.eclipse.ui.IWorkbenchPart) this, org.eclipse.draw2d.PositionConstants.RIGHT)); |
| addEditPartAction(new org.eclipse.gef.ui.actions.AlignmentAction((org.eclipse.ui.IWorkbenchPart) this, org.eclipse.draw2d.PositionConstants.TOP)); |
| addEditPartAction(new org.eclipse.gef.ui.actions.AlignmentAction((org.eclipse.ui.IWorkbenchPart) this, org.eclipse.draw2d.PositionConstants.BOTTOM)); |
| addEditPartAction(new org.eclipse.gef.ui.actions.AlignmentAction((org.eclipse.ui.IWorkbenchPart) this, org.eclipse.draw2d.PositionConstants.CENTER)); |
| addEditPartAction(new org.eclipse.gef.ui.actions.AlignmentAction((org.eclipse.ui.IWorkbenchPart) this, org.eclipse.draw2d.PositionConstants.MIDDLE)); |
| «ENDDEFINE» |
| |
| «DEFINE editorActions FOR gmfgen::GenEditorView-» |
| «IF eclipseEditor-» |
| addEditorAction(new org.eclipse.gef.ui.actions.SaveAction(this)); |
| «ENDIF-» |
| addEditorAction(new org.eclipse.gef.ui.actions.PrintAction(this)); |
| addEditorAction(new org.eclipse.gmf.runtime.lite.ui.actions.LayoutDiagramAction(this)); |
| «IF editorGen.diagram.generateCreateShortcutAction()-» |
| addEditorAction(new «editorGen.diagram.getCreateShortcutActionQualifiedClassName()»(this)); |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE zoomActions FOR gmfgen::GenEditorView-» |
| org.eclipse.jface.action.IAction zoomIn = new org.eclipse.gef.ui.actions.ZoomInAction(getZoomManager()); |
| org.eclipse.jface.action.IAction zoomOut = new org.eclipse.gef.ui.actions.ZoomOutAction(getZoomManager()); |
| addAction(zoomIn); |
| addAction(zoomOut); |
| getSite().getKeyBindingService().registerAction(zoomIn); |
| getSite().getKeyBindingService().registerAction(zoomOut); |
| «ENDDEFINE» |
| |
| «DEFINE hookKeyHandler FOR gmfgen::GenEditorView-» |
| org.eclipse.gef.KeyHandler keyHandler = getGraphicalViewer().getKeyHandler(); |
| keyHandler.put(org.eclipse.gef.KeyStroke.getPressed(org.eclipse.swt.SWT.DEL, 127, 0), getActionRegistry().getAction(org.eclipse.gmf.runtime.lite.ui.actions.ActionIds.DELETE_VIEW_OR_MODEL)); |
| keyHandler.put(org.eclipse.gef.KeyStroke.getPressed((char) 0x4, 100, SWT.CTRL), getActionRegistry().getAction(org.eclipse.ui.actions.ActionFactory.DELETE.getId())); |
| keyHandler.put(org.eclipse.gef.KeyStroke.getPressed((char) 0x4, 100, SWT.CTRL | SWT.SHIFT), getActionRegistry().getAction(org.eclipse.gmf.runtime.lite.ui.actions.ActionIds.DELETE_VIEW)); |
| keyHandler.put(org.eclipse.gef.KeyStroke.getPressed(org.eclipse.swt.SWT.F2, 0), getActionRegistry().getAction(org.eclipse.gef.ui.actions.GEFActionConstants.DIRECT_EDIT)); |
| «ENDDEFINE» |
| |
| «DEFINE validateActions FOR gmfgen::GenEditorView-» |
| addAction(new «EXPAND xpt::providers::ValidateAction::qualifiedClassName FOR editorGen.diagram»(this)); |
| «ENDDEFINE» |
| |
| «DEFINE metricsActions FOR gmfgen::GenMetricContainer-» |
| addAction(new «EXPAND xpt::providers::MetricsAction::qualifiedClassName FOR editorGen.diagram»(this)); |
| «ENDDEFINE» |
| |
| «DEFINE moreActions FOR gmfgen::GenEditorView-» |
| «ENDDEFINE» |
| |
| «DEFINE disposeEditor FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void dispose() { |
| «EXPAND unhookResourceTracker-» |
| «EXPAND unhookValidation-» |
| «EXPAND disposeTransactionalUpdateManager-» |
| // important: always call super implementation of dispose |
| «EXPAND disposeDefaultFont-» |
| «EXPAND unhookPreferenceStoreListener-» |
| super.dispose(); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE disposeView FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void dispose() { |
| myActionBarContributor.dispose(); |
| myActionBarContributor = null; |
| «EXPAND unhookValidation-» |
| «EXPAND disposeTransactionalUpdateManager-» |
| «EXPAND disposeDefaultFont-» |
| «EXPAND unhookPreferenceStoreListener-» |
| // important: always call super implementation of dispose |
| super.dispose(); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE disposeTransactionalUpdateManager FOR gmfgen::GenEditorView-» |
| org.eclipse.gmf.runtime.lite.edit.parts.update.TransactionalUpdateManager updateManager = (org.eclipse.gmf.runtime.lite.edit.parts.update.TransactionalUpdateManager) getGraphicalViewer().getProperty(org.eclipse.gmf.runtime.lite.edit.parts.update.TransactionalUpdateManager.class.getName()); |
| if (updateManager != null) { |
| updateManager.dispose(); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE save FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void doSave(org.eclipse.core.runtime.IProgressMonitor monitor) { |
| try { |
| save(monitor); |
| getCommandStack().markSaveLocation(); |
| } catch (org.eclipse.core.runtime.CoreException e) { |
| org.eclipse.jface.dialogs.ErrorDialog.openError(getSite().getShell(), «EXPAND xpt::Externalizer::accessorCall(titleKey(i18nKeyForEditorErrorDuringSave(self))) FOR editorGen», «EXPAND xpt::Externalizer::accessorCall(messageKey(i18nKeyForEditorErrorDuringSave(self))) FOR editorGen», e.getStatus()); |
| } |
| } |
| «ENDDEFINE» |
| |
| «DEFINE configurePalette FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void configurePalette(org.eclipse.gef.palette.PaletteRoot paletteRoot) { |
| «IF null <> editorGen.diagram.palette-» |
| new «editorGen.diagram.palette.getFactoryQualifiedClassName()»().contributeToPalette(paletteRoot); |
| «ENDIF-» |
| } |
| «ENDDEFINE» |
| |
| «DEFINE propertySheetSupport FOR gmfgen::GenPropertySheet-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| protected org.eclipse.ui.views.properties.IPropertySheetPage getPropertySheetPage() { |
| if (myPropertySheetPage == null) { |
| myPropertySheetPage = new org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage(new org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor() { |
| public String getContributorId() { |
| return «editorGen.plugin.getActivatorQualifiedClassName()».ID; |
| } |
| }); |
| } |
| return myPropertySheetPage; |
| } |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| private org.eclipse.ui.views.properties.IPropertySheetPage myPropertySheetPage; |
| «ENDDEFINE» |
| |
| «DEFINE initEditor FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void init(org.eclipse.ui.IEditorSite site, org.eclipse.ui.IEditorInput input) throws org.eclipse.ui.PartInitException { |
| org.eclipse.emf.common.util.URI file = getURIFromInput(input); |
| if (file == null) { |
| throw new org.eclipse.ui.PartInitException(«EXPAND xpt::Externalizer::accessorCall(i18nKeyForEditorInvalidInputMsg(self)) FOR editorGen»); |
| } |
| super.init(site, input); |
| // validate |
| if (getDiagramRoot() == null) { |
| throw new org.eclipse.ui.PartInitException(«EXPAND xpt::Externalizer::accessorCall(i18nKeyForEditorInvalidInputMsg(self)) FOR editorGen»); |
| } |
| } |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| protected void setInput(org.eclipse.ui.IEditorInput input) { |
| «EXPAND unhookValidation-» |
| «EXPAND unhookResourceTracker-» |
| org.eclipse.emf.common.util.URI file = getURIFromInput(input); |
| load(file); |
| setPartName(input.getName()); |
| super.setInput(input); |
| «EXPAND hookResourceTracker-» |
| «EXPAND hookValidation-» |
| } |
| «ENDDEFINE» |
| |
| «DEFINE getFileFromInput FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private org.eclipse.core.resources.IFile getFileFromInput(org.eclipse.ui.IEditorInput input) { |
| if (input instanceof org.eclipse.ui.IFileEditorInput) { |
| return ((org.eclipse.ui.IFileEditorInput) input).getFile(); |
| } |
| org.eclipse.emf.common.util.URI uri = getURIFromInput(input); |
| if (uri != null) { |
| if ("platform".equals(uri.scheme()) && (uri.segmentCount() > 2)) { «EXPAND xpt::Common::nonNLS» |
| if ("resource".equals(uri.segment(0))) { «EXPAND xpt::Common::nonNLS» |
| org.eclipse.core.runtime.IPath path = new org.eclipse.core.runtime.Path(org.eclipse.emf.common.util.URI.decode(uri.path())).removeFirstSegments(1); |
| return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getFile(path); |
| } |
| } |
| } |
| return null; |
| } |
| «ENDDEFINE» |
| |
| «DEFINE getURIFromInput FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private org.eclipse.emf.common.util.URI getURIFromInput(org.eclipse.ui.IEditorInput input) { |
| if (input == null) { |
| return null; |
| } |
| «IF null = editorGen.application-» |
| if (input instanceof org.eclipse.ui.IFileEditorInput) { |
| return org.eclipse.emf.common.util.URI.createPlatformResourceURI(((org.eclipse.ui.IFileEditorInput)input).getFile().getFullPath().toString(), true); |
| } |
| «ENDIF-» |
| if (input instanceof org.eclipse.emf.common.ui.URIEditorInput) { |
| return ((org.eclipse.emf.common.ui.URIEditorInput) input).getURI(); |
| } |
| if (input instanceof org.eclipse.ui.IPathEditorInput) { |
| return org.eclipse.emf.common.util.URI.createFileURI(((org.eclipse.ui.IPathEditorInput)input).getPath().toOSString()); |
| } |
| org.eclipse.emf.common.util.URI uri = (org.eclipse.emf.common.util.URI) input.getAdapter(org.eclipse.emf.common.util.URI.class); |
| if (uri != null) { |
| return uri; |
| } |
| return null; |
| } |
| «ENDDEFINE» |
| |
| «DEFINE initView FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void createPartControl(org.eclipse.swt.widgets.Composite parent) { |
| super.createPartControl(parent); |
| org.eclipse.ui.IActionBars bars = getViewSite().getActionBars(); |
| myActionBarContributor = new «getActionBarContributorQualifiedClassName()»(); |
| myActionBarContributor.init(bars, getSite().getPage()); |
| bars.updateActionBars(); |
| } |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| protected void setInput(org.eclipse.emf.common.util.URI diagramURI) throws org.eclipse.core.runtime.CoreException { |
| «EXPAND unhookValidation-» |
| load(diagramURI); |
| if (diagram == null || diagramRoot == null) { |
| throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, |
| «editorGen.plugin.getActivatorQualifiedClassName()».ID, 0, «EXPAND xpt::Externalizer::accessorCall(i18nKeyForEditorFailedLoadDiagramMsg(self)) FOR editorGen», null)); |
| } |
| «EXPAND hookValidation-» |
| } |
| «ENDDEFINE» |
| |
| «DEFINE loadDiagramFile FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private void load(org.eclipse.emf.common.util.URI diagramFile) { |
| diagramRoot = null; |
| diagram = null; |
| if (diagramFile == null) { |
| return; |
| } |
| final org.eclipse.emf.common.util.URI diagramFileURI = diagramFile; |
| org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain = getEditingDomain(); |
| final org.eclipse.emf.ecore.resource.ResourceSet resourceSet = editingDomain.getResourceSet(); |
| final org.eclipse.emf.ecore.resource.Resource diagramResource = resourceSet.getResource(diagramFile.trimFragment(), true); |
| if (diagramResource == null) { |
| return; |
| } |
| org.eclipse.emf.workspace.AbstractEMFOperation operation = new org.eclipse.emf.workspace.AbstractEMFOperation(editingDomain, «EXPAND xpt::Externalizer::accessorCall(i18nKeyForEditorLoadDiagramLabel(self)) FOR editorGen», null) { |
| protected org.eclipse.core.runtime.IStatus doExecute(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException { |
| if (diagramFileURI.fragment() != null) { |
| org.eclipse.emf.ecore.EObject possibleDiagram = diagramResource.getEObject(diagramFileURI.fragment()); |
| if (possibleDiagram instanceof org.eclipse.gmf.runtime.notation.Diagram) { |
| diagram = (org.eclipse.gmf.runtime.notation.Diagram) possibleDiagram; |
| } else { |
| return org.eclipse.core.runtime.Status.CANCEL_STATUS; |
| } |
| } else { |
| diagram = (org.eclipse.gmf.runtime.notation.Diagram) findInResource(diagramResource, org.eclipse.gmf.runtime.notation.Diagram.class); |
| if (diagram == null) { |
| diagram = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createDiagram(); |
| diagramResource.getContents().add(0, diagram); |
| //Auxiliary creation should not be undoable. |
| try { |
| diagramResource.save(getSaveOptions()); |
| } catch (java.io.IOException e) { |
| diagram = null; |
| diagramRoot = null; |
| return org.eclipse.core.runtime.Status.CANCEL_STATUS; |
| } |
| } |
| } |
| diagramRoot = «EXPAND MetaModel::CastEObject('diagram.getElement()') FOR editorGen.diagram.domainDiagramElement»; |
| if (diagramRoot == null) { |
| «LET (if editorGen.sameFileForDiagramAndModel then 'diagramResource' else 'modelResource' endif) AS resourceToUse-» |
| «IF not editorGen.sameFileForDiagramAndModel-» |
| org.eclipse.emf.common.util.URI modelFile = «editorGen.diagram.getDiagramEditorUtilQualifiedClassName()».getModelFileURI(diagramFileURI); |
| org.eclipse.emf.ecore.resource.Resource modelResource = resourceSet.getResource(modelFile, true); |
| if (modelResource == null) { |
| diagram = null; |
| return org.eclipse.core.runtime.Status.CANCEL_STATUS; |
| } |
| «ENDIF-» |
| «REM» |
| FIXME: for code-less domain model findInResource(, Class) is useless. |
| Another approach to get appropriate diagram root element is needed. |
| «ENDREM» |
| diagramRoot = («EXPAND MetaModel::QualifiedClassName FOR editorGen.diagram.domainDiagramElement») findInResource(«resourceToUse», «EXPAND MetaModel::QualifiedClassName FOR editorGen.diagram.domainDiagramElement».class); |
| if (diagramRoot == null) { |
| diagramRoot = «EXPAND MetaModel::NewInstance FOR editorGen.diagram.domainDiagramElement»; |
| «resourceToUse».getContents().add(0, «EXPAND MetaModel::DowncastToEObject('diagramRoot') FOR editorGen.diagram.domainDiagramElement»); |
| //We don't want this auxiliary creation to be undoable. |
| try { |
| «resourceToUse».save(getSaveOptions()); |
| } catch (java.io.IOException e) { |
| diagram = null; |
| diagramRoot = null; |
| return org.eclipse.core.runtime.Status.CANCEL_STATUS; |
| } |
| } |
| if (!diagramRoot.equals(diagram.getElement())) { |
| diagram.setElement(«EXPAND MetaModel::DowncastToEObject('diagramRoot') FOR editorGen.diagram.domainDiagramElement»); |
| } |
| } |
| if (!diagram.eIsSet(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getView_Type())) { |
| «editorGen.diagram.getNotationViewFactoryQualifiedClassName()».INSTANCE.decorateView(diagram); |
| «IF eclipseEditor-» |
| doSave(new org.eclipse.core.runtime.NullProgressMonitor()); |
| «ELSE-» |
| try { |
| diagramResource.save(getSaveOptions()); |
| } catch (java.io.IOException e) { |
| diagram = null; |
| diagramRoot = null; |
| return org.eclipse.core.runtime.Status.CANCEL_STATUS; |
| } |
| «ENDIF-» |
| } |
| return org.eclipse.core.runtime.Status.OK_STATUS; |
| } |
| }; |
| try { |
| operation.execute(new org.eclipse.core.runtime.NullProgressMonitor(), null); |
| } catch (org.eclipse.core.commands.ExecutionException e) { |
| diagram = null; |
| diagramRoot = null; |
| } |
| } |
| «ENDLET-» |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| private Object findInResource(org.eclipse.emf.ecore.resource.Resource resource, Class expectedClass) { |
| for(java.util.Iterator it = resource.getContents().iterator(); it.hasNext(); ) { |
| Object next = it.next(); |
| if (expectedClass.isInstance(next)) { |
| return next; |
| } |
| } |
| return null; |
| } |
| |
| «ENDDEFINE» |
| |
| «DEFINE initializeGraphicalViewer FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void initializeGraphicalViewer() { |
| // initialize the viewer with input |
| org.eclipse.gef.editparts.ScalableFreeformRootEditPart root = new org.eclipse.gef.editparts.ScalableFreeformRootEditPart(); |
| «EXPAND adjustRoot-» |
| getGraphicalViewer().setRootEditPart(root); |
| getGraphicalViewer().setEditPartFactory(new «editorGen.diagram.getEditPartFactoryQualifiedClassName()»()); |
| org.eclipse.gmf.runtime.lite.edit.parts.update.TransactionalUpdateManager updateManager = new org.eclipse.gmf.runtime.lite.edit.parts.update.TransactionalUpdateManager(getGraphicalViewer()); |
| getGraphicalViewer().setProperty(org.eclipse.gmf.runtime.lite.edit.parts.update.TransactionalUpdateManager.class.getName(), updateManager); |
| |
| «EXPAND addLayers-» |
| getGraphicalViewer().setContents(getDiagram()); |
| org.eclipse.emf.common.command.Command updateCommand = updateManager.buildRefreshNotationModelCommand(); |
| if (updateCommand != null && updateCommand.canExecute()) { |
| getCommandStack().execute(new org.eclipse.gmf.runtime.lite.commands.WrappingCommand(getEditingDomain(), updateCommand)); |
| } |
| } |
| «ENDDEFINE» |
| |
| «DEFINE adjustRoot FOR gmfgen::GenEditorView-» |
| root.getZoomManager().setZoomLevels(getZoomLevels()); |
| root.getZoomManager().setZoomLevelContributions(java.util.Arrays.asList(new String[] {org.eclipse.gef.editparts.ZoomManager.FIT_WIDTH, org.eclipse.gef.editparts.ZoomManager.FIT_HEIGHT})); |
| «ENDDEFINE» |
| |
| «DEFINE addLayers FOR gmfgen::GenEditorView-» |
| org.eclipse.draw2d.LayeredPane printableLayers = (org.eclipse.draw2d.LayeredPane) root.getLayer(org.eclipse.gef.LayerConstants.PRINTABLE_LAYERS); |
| org.eclipse.draw2d.FreeformLayer extLabelsLayer = new org.eclipse.draw2d.FreeformLayer(); |
| extLabelsLayer.setLayoutManager(new org.eclipse.draw2d.DelegatingLayout()); |
| printableLayers.addLayerAfter(extLabelsLayer, «editorGen.diagram.getEditPartFactoryQualifiedClassName()».EXTERNAL_NODE_LABELS_LAYER, org.eclipse.gef.LayerConstants.PRIMARY_LAYER); |
| «ENDDEFINE» |
| |
| «DEFINE configureGraphicalViewer FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void configureGraphicalViewer() { |
| super.configureGraphicalViewer(); |
| org.eclipse.gef.GraphicalViewer viewer = getGraphicalViewer(); |
| «EXPAND configureDefaultFont-» |
| «EXPAND hookPreferenceStoreListener-» |
| // configure the context menu |
| org.eclipse.gef.ContextMenuProvider provider = new «className»ContextMenuProvider(viewer); |
| viewer.setContextMenu(provider); |
| getSite().registerContextMenu(«editorGen.plugin.getActivatorQualifiedClassName()».ID + ".editor.contextmenu", provider, getSite().getSelectionProvider()); «EXPAND xpt::Common::nonNLS» |
| |
| org.eclipse.gef.KeyHandler keyHandler = new org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler(viewer); |
| viewer.setKeyHandler(keyHandler); |
| |
| viewer.setProperty(org.eclipse.gef.MouseWheelHandler.KeyGenerator.getKey(org.eclipse.swt.SWT.CTRL), org.eclipse.gef.MouseWheelZoomHandler.SINGLETON); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE configureDefaultFont FOR gmfgen::GenEditorView-» |
| org.eclipse.swt.graphics.FontData[] defaultFontData = org.eclipse.jface.preference.PreferenceConverter.getFontDataArray(«editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getPreferenceStore(), org.eclipse.gmf.runtime.lite.preferences.IPreferenceConstants.DEFAULT_FONT); |
| myDefaultFont = new org.eclipse.swt.graphics.Font(null, defaultFontData); |
| viewer.getControl().setFont(myDefaultFont); |
| «ENDDEFINE» |
| |
| «DEFINE hookPreferenceStoreListener FOR gmfgen::GenEditorView-» |
| myPreferenceStoreChangeListener = new org.eclipse.jface.util.IPropertyChangeListener() { |
| public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) { |
| org.eclipse.gef.GraphicalViewer viewer = getGraphicalViewer(); |
| if (org.eclipse.gmf.runtime.lite.preferences.IPreferenceConstants.DEFAULT_FONT.equals(event.getProperty())) { |
| org.eclipse.swt.graphics.FontData[] defaultFontData = org.eclipse.jface.preference.PreferenceConverter.getFontDataArray(«editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getPreferenceStore(), org.eclipse.gmf.runtime.lite.preferences.IPreferenceConstants.DEFAULT_FONT); |
| org.eclipse.swt.graphics.Font newDefaultFont = new org.eclipse.swt.graphics.Font(null, defaultFontData); |
| viewer.getControl().setFont(newDefaultFont); |
| refreshDiagram(); |
| myDefaultFont.dispose(); |
| myDefaultFont = newDefaultFont; |
| } else if (org.eclipse.gmf.runtime.lite.preferences.IPreferenceConstants.FONT_COLOR.equals(event.getProperty()) || |
| org.eclipse.gmf.runtime.lite.preferences.IPreferenceConstants.LINE_COLOR.equals(event.getProperty()) || |
| org.eclipse.gmf.runtime.lite.preferences.IPreferenceConstants.FILL_COLOR.equals(event.getProperty())) { |
| refreshDiagram(); |
| } |
| } |
| /** |
| * Do a full refresh on the editor so that all elements pick up their defaults. |
| */ |
| private void refreshDiagram() { |
| org.eclipse.gef.GraphicalViewer viewer = getGraphicalViewer(); |
| viewer.getControl().setRedraw(false); |
| try { |
| org.eclipse.gef.EditPart contents = viewer.getRootEditPart().getContents(); |
| refreshRecursive(contents); |
| } finally { |
| viewer.getControl().setRedraw(true); |
| } |
| } |
| |
| /** |
| * Refreshes the given edit part and all its children. |
| */ |
| private void refreshRecursive(org.eclipse.gef.EditPart editPart) { |
| if (editPart == null || !editPart.isActive()) { |
| return; |
| } |
| editPart.refresh(); |
| for (java.util.Iterator it = editPart.getChildren().iterator(); it.hasNext(); ) { |
| org.eclipse.gef.EditPart nextChild = (org.eclipse.gef.EditPart) it.next(); |
| refreshRecursive(nextChild); |
| } |
| } |
| }; |
| «editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getPreferenceStore().addPropertyChangeListener(myPreferenceStoreChangeListener); |
| «ENDDEFINE» |
| |
| «DEFINE defaultFontAttribute FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private org.eclipse.swt.graphics.Font myDefaultFont; |
| «ENDDEFINE» |
| |
| «DEFINE disposeDefaultFont FOR gmfgen::GenEditorView-» |
| if (myDefaultFont != null) { |
| myDefaultFont.dispose(); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE preferenceStoreListener FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private org.eclipse.jface.util.IPropertyChangeListener myPreferenceStoreChangeListener; |
| «ENDDEFINE» |
| |
| «DEFINE unhookPreferenceStoreListener FOR gmfgen::GenEditorView-» |
| if (myPreferenceStoreChangeListener != null) { |
| «editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getPreferenceStore().removePropertyChangeListener(myPreferenceStoreChangeListener); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE flyoutPalette FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public boolean isFlyoutPalette() { |
| «LET editorGen.diagram.palette AS palette-» |
| return «palette <> null and palette.flyout»; |
| «ENDLET-» |
| } |
| «ENDDEFINE» |
| |
| «DEFINE getSaveOptions FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| protected java.util.Map getSaveOptions() { |
| return «editorGen.diagram.getDiagramEditorUtilQualifiedClassName()».getSaveOptions(); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE gotoMarker FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void gotoMarker(org.eclipse.core.resources.IMarker marker) { |
| try { |
| if (marker.isSubtypeOf(org.eclipse.emf.ecore.EValidator.MARKER)) { |
| String uriAttribute = marker.getAttribute(org.eclipse.emf.ecore.EValidator.URI_ATTRIBUTE, null); |
| if (uriAttribute != null) { |
| org.eclipse.emf.common.util.URI uri = org.eclipse.emf.common.util.URI.createURI(uriAttribute); |
| org.eclipse.emf.ecore.EObject eObject = getEditingDomain().getResourceSet().getEObject(uri, true); |
| if (eObject != null) { |
| org.eclipse.gef.EditPart markerEditPart = (org.eclipse.gef.EditPart) getGraphicalViewer().getEditPartRegistry().get(eObject); |
| if (markerEditPart != null) { |
| getGraphicalViewer().select(markerEditPart); |
| } |
| } |
| } |
| } |
| } catch (org.eclipse.core.runtime.CoreException e) { |
| «editorGen.plugin.getActivatorQualifiedClassName()».getInstance().logError("Failed to navigate to marker", e); «EXPAND xpt::Common::nonNLS» |
| } |
| } |
| «ENDDEFINE» |
| |
| «DEFINE ContextMenuProvider FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedClassComment» |
| private class «className»ContextMenuProvider extends org.eclipse.gef.ContextMenuProvider { |
| «EXPAND xpt::Common::generatedMemberComment» |
| public «className»ContextMenuProvider(org.eclipse.gef.EditPartViewer viewer) { |
| super(viewer); |
| } |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| public void buildContextMenu(org.eclipse.jface.action.IMenuManager menuManager) { |
| org.eclipse.gef.ui.actions.GEFActionConstants.addStandardActionGroups(menuManager); |
| «EXPAND provideStackActions-» |
| «EXPAND provideEditPartActions-» |
| «EXPAND provideEditorActions-» |
| «IF validationNeeded(editorGen.diagram)-» |
| «EXPAND provideValidateActions-» |
| «ENDIF-» |
| |
| «EXPAND provideMetricsActions FOR editorGen.metrics-» |
| |
| «EXPAND provideMoreActions-» |
| } |
| |
| «EXPAND appendAlignmentSubmenu-» |
| «EXPAND appendActionToMenu-» |
| «ENDDEFINE» |
| |
| «DEFINE appendAlignmentSubmenu FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private void appendAlignmentSubmenu(org.eclipse.jface.action.IMenuManager menuManager) { |
| // Alignment Actions |
| org.eclipse.jface.action.MenuManager submenu = new org.eclipse.jface.action.MenuManager(«EXPAND xpt::Externalizer::accessorCall(i18nKeyForEditorAlignMenu(self)) FOR editorGen»); |
| submenu.add(new org.eclipse.jface.action.Separator(org.eclipse.gef.ui.actions.GEFActionConstants.MB_ADDITIONS)); |
| |
| appendActionToMenu(submenu, org.eclipse.gef.ui.actions.GEFActionConstants.ALIGN_LEFT, org.eclipse.gef.ui.actions.GEFActionConstants.MB_ADDITIONS); |
| appendActionToMenu(submenu, org.eclipse.gef.ui.actions.GEFActionConstants.ALIGN_CENTER, org.eclipse.gef.ui.actions.GEFActionConstants.MB_ADDITIONS); |
| appendActionToMenu(submenu, org.eclipse.gef.ui.actions.GEFActionConstants.ALIGN_RIGHT, org.eclipse.gef.ui.actions.GEFActionConstants.MB_ADDITIONS); |
| appendActionToMenu(submenu, org.eclipse.gef.ui.actions.GEFActionConstants.ALIGN_TOP, org.eclipse.gef.ui.actions.GEFActionConstants.MB_ADDITIONS); |
| appendActionToMenu(submenu, org.eclipse.gef.ui.actions.GEFActionConstants.ALIGN_MIDDLE, org.eclipse.gef.ui.actions.GEFActionConstants.MB_ADDITIONS); |
| appendActionToMenu(submenu, org.eclipse.gef.ui.actions.GEFActionConstants.ALIGN_BOTTOM, org.eclipse.gef.ui.actions.GEFActionConstants.MB_ADDITIONS); |
| |
| if (!submenu.isEmpty()) { |
| menuManager.appendToGroup(org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_REST, submenu); |
| } |
| } |
| |
| «ENDDEFINE» |
| |
| «DEFINE appendActionToMenu FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private void appendActionToMenu(org.eclipse.jface.action.IMenuManager menu, String actionId, String menuGroup) { |
| org.eclipse.jface.action.IAction action = getActionRegistry().getAction(actionId); |
| if (action != null && action.isEnabled()) { |
| menu.appendToGroup(menuGroup, action); |
| } |
| } |
| } |
| «ENDDEFINE» |
| |
| «DEFINE provideStackActions FOR gmfgen::GenEditorView-» |
| appendActionToMenu(menuManager, org.eclipse.ui.actions.ActionFactory.UNDO.getId(), org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_UNDO); |
| appendActionToMenu(menuManager, org.eclipse.ui.actions.ActionFactory.REDO.getId(), org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_UNDO); |
| «ENDDEFINE» |
| |
| «DEFINE provideEditPartActions FOR gmfgen::GenEditorView-» |
| appendActionToMenu(menuManager, org.eclipse.ui.actions.ActionFactory.COPY.getId(), org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_EDIT); |
| appendActionToMenu(menuManager, org.eclipse.ui.actions.ActionFactory.PASTE.getId(), org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_EDIT); |
| appendActionToMenu(menuManager, org.eclipse.gmf.runtime.lite.ui.actions.ActionIds.DELETE_VIEW, org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_EDIT); |
| appendActionToMenu(menuManager, org.eclipse.ui.actions.ActionFactory.DELETE.getId(), org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_EDIT); |
| appendActionToMenu(menuManager, org.eclipse.gef.ui.actions.GEFActionConstants.DIRECT_EDIT, org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_EDIT); |
| «EXPAND provideAlignmentActions-» |
| «ENDDEFINE» |
| |
| «DEFINE provideAlignmentActions FOR gmfgen::GenEditorView-» |
| appendAlignmentSubmenu(menuManager); |
| «ENDDEFINE» |
| |
| «DEFINE provideEditorActions FOR gmfgen::GenEditorView-» |
| «IF eclipseEditor-» |
| appendActionToMenu(menuManager, org.eclipse.ui.actions.ActionFactory.SAVE.getId(), org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_SAVE); |
| «ENDIF-» |
| appendActionToMenu(menuManager, org.eclipse.gmf.runtime.lite.ui.actions.ActionIds.LAYOUT_ALL_ACTION, org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_REST); |
| «IF editorGen.diagram.generateCreateShortcutAction()-» |
| appendActionToMenu(menuManager, «editorGen.diagram.getCreateShortcutActionQualifiedClassName()».CREATE_SHORTCUT_ACTION, org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_REST); |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE provideValidateActions FOR gmfgen::GenEditorView-» |
| appendActionToMenu(menuManager, «EXPAND xpt::providers::ValidateAction::actionKey FOR editorGen.diagram», org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_REST); |
| «ENDDEFINE» |
| |
| «DEFINE provideMetricsActions FOR gmfgen::GenMetricContainer-» |
| appendActionToMenu(menuManager, «EXPAND xpt::providers::MetricsAction::actionKey FOR editorGen.diagram», org.eclipse.gef.ui.actions.GEFActionConstants.GROUP_REST); |
| «ENDDEFINE» |
| |
| «DEFINE provideMoreActions FOR gmfgen::GenEditorView-» |
| «ENDDEFINE» |
| |
| «DEFINE additions FOR gmfgen::GenEditorView-» |
| «ENDDEFINE» |
| |
| «DEFINE i18nAccessors FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Externalizer::accessorField(i18nKeyForEditorAlignMenu(self))-» |
| «EXPAND xpt::Externalizer::accessorField(i18nKeyForEditorLoadDiagramLabel(self))-» |
| «IF not eclipseEditor-» |
| «EXPAND xpt::Externalizer::accessorField(i18nKeyForEditorFailedLoadDiagramMsg(self))-» |
| «ELSE-» |
| «EXPAND xpt::Externalizer::accessorField(i18nKeyForEditorInvalidInputMsg(self))-» |
| «EXPAND xpt::Externalizer::accessorField(titleKey(i18nKeyForEditorErrorDuringSave(self)))-» |
| «EXPAND xpt::Externalizer::accessorField(messageKey(i18nKeyForEditorErrorDuringSave(self)))-» |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE i18nValues FOR gmfgen::GenEditorView-» |
| «EXPAND xpt::Externalizer::messageEntry(i18nKeyForEditorAlignMenu(self), 'Align')-» |
| «EXPAND xpt::Externalizer::messageEntry(i18nKeyForEditorLoadDiagramLabel(self), 'Load Diagram')-» |
| «IF not eclipseEditor-» |
| «EXPAND xpt::Externalizer::messageEntry(i18nKeyForEditorFailedLoadDiagramMsg(self), 'Failed to load diagram')-» |
| «ELSE-» |
| «EXPAND xpt::Externalizer::messageEntry(i18nKeyForEditorInvalidInputMsg(self), 'The specified input is not valid.')-» |
| «EXPAND xpt::Externalizer::messageEntry(titleKey(i18nKeyForEditorErrorDuringSave(self)), 'Error during save')-» |
| «EXPAND xpt::Externalizer::messageEntry(messageKey(i18nKeyForEditorErrorDuringSave(self)), 'The current ' + editorGen.domainGenModel.modelName + ' model could not be saved')-» |
| «ENDIF-» |
| «ENDDEFINE» |