blob: 22d5ca1303115931d18c3e1b7b0d4fa05077d8dc [file] [log] [blame]
/*
* Copyright (c) 2007 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/2008/GenModel"»
«IMPORT "http://www.eclipse.org/emf/2002/Ecore"»
«IMPORT "http://www.eclipse.org/emf/2002/GenModel"»
«EXTENSION xpt::editor::i18n»
«EXTENSION xpt::editor::Wizard»
«DEFINE CreateShortcutAction FOR gmfgen::GenDiagram
«EXPAND xpt::Common::copyright FOR editorGen
package «editorGen.editor.packageName»;
«EXPAND xpt::Common::generatedClassComment»
public class «createShortcutActionClassName» «EXPAND supertypes» {
«EXPAND CREATE_SHORTCUT_ACTION
«EXPAND ctor
«EXPAND init
«EXPAND calculateEnabled
«EXPAND run
«EXPAND additions
}
«ENDDEFINE»
«DEFINE supertypes FOR gmfgen::GenDiagram»extends org.eclipse.gef.ui.actions.WorkbenchPartAction«ENDDEFINE»
«DEFINE CREATE_SHORTCUT_ACTION FOR gmfgen::GenDiagram
«EXPAND xpt::Common::generatedMemberComment»
public static final String CREATE_SHORTCUT_ACTION = "CreateShortcut"; «EXPAND xpt::Common::nonNLS»
«ENDDEFINE»
«DEFINE ctor FOR gmfgen::GenDiagram
«EXPAND xpt::Common::generatedMemberComment»
public «createShortcutActionClassName»(org.eclipse.ui.IWorkbenchPart part) {
super(part);
}
«ENDDEFINE»
«DEFINE init FOR gmfgen::GenDiagram
«EXPAND xpt::Common::generatedMemberComment»
protected void init() {
super.init();
setId(CREATE_SHORTCUT_ACTION);
setTextEXPAND xpt::Externalizer::accessorCall(i18nForCreateShortcutActionLabel()) FOR editorGen»);
setToolTipTextEXPAND xpt::Externalizer::accessorCall(i18nForCreateShortcutActionTooltip()) FOR editorGen»);
}
«ENDDEFINE»
«DEFINE calculateEnabled FOR gmfgen::GenDiagram
«EXPAND xpt::Common::generatedMemberComment»
protected boolean calculateEnabled() {
org.eclipse.gef.GraphicalViewer graphicalViewer = (org.eclipse.gef.GraphicalViewer) getWorkbenchPart().getAdapter(org.eclipse.gef.GraphicalViewer.class);
if (graphicalViewer == null) {
return false;
}
return graphicalViewer.getContents().getModel() instanceof org.eclipse.gmf.runtime.notation.Diagram;
}
«ENDDEFINE»
«DEFINE run FOR gmfgen::GenDiagram
«EXPAND xpt::Common::generatedMemberComment»
public void run() {
org.eclipse.gef.GraphicalViewer graphicalViewer = (org.eclipse.gef.GraphicalViewer) getWorkbenchPart().getAdapter(org.eclipse.gef.GraphicalViewer.class);
org.eclipse.gmf.runtime.notation.Diagram diagram = (org.eclipse.gmf.runtime.notation.Diagram) graphicalViewer.getContents().getModel();
org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain = org.eclipse.emf.transaction.util.TransactionUtil.getEditingDomain(diagram.getElement());
«IF isRichClientPlatform()-»
org.eclipse.jface.wizard.Wizard wizard = new «EXPAND xpt::editor::ShortcutCreationWizard::qualifiedClassName»(diagram, editingDomain, graphicalViewer);
«EXPAND xpt::editor::Common::wizardDialogSettings("wizard", "CreateShortcut")-»
wizard.setWindowTitleEXPAND xpt::Externalizer::accessorCall(i18nForCreateShortcutActionWizardWindowTitle()) FOR editorGen»);
org.eclipse.jface.wizard.WizardDialog dialog = new org.eclipse.jface.wizard.WizardDialogEXPAND getShell», wizard);
dialog.create();
«EXPAND xpt::editor::Common::setDefaultShellSize("dialog.getShell()")-»
dialog.open();
«ELSE
«getElementChooserQualifiedClassName()» elementChooser = new «getElementChooserQualifiedClassName()»(«EXPAND getShell», diagram, graphicalViewer);
int result = elementChooser.open();
if (result != org.eclipse.jface.window.Window.OK) {
return;
}
org.eclipse.gmf.runtime.lite.commands.CreateNotationalElementCommand createShortcutCommand = elementChooser.getCreateShortcutCommand();
if (createShortcutCommand == null || !createShortcutCommand.canExecute()) {
return;
}
if (graphicalViewer.getEditDomain() != null && graphicalViewer.getEditDomain().getCommandStack() != null) {
graphicalViewer.getEditDomain().getCommandStack().execute(new org.eclipse.gmf.runtime.lite.commands.WrappingCommand(editingDomain, createShortcutCommand));
} else {
new org.eclipse.gmf.runtime.lite.commands.WrappingCommand(editingDomain, createShortcutCommand).execute();
}
«ENDIF
}
«ENDDEFINE»
«DEFINE getShell FOR gmfgen::GenDiagram»getWorkbenchPart().getSite().getShell()«ENDDEFINE»
«DEFINE additions FOR gmfgen::GenDiagram»«ENDDEFINE»
«DEFINE i18nAccessors FOR gmfgen::GenDiagram
«IF generateCreateShortcutAction()-»
«EXPAND xpt::Externalizer::accessorField(i18nForCreateShortcutActionLabel())-»
«EXPAND xpt::Externalizer::accessorField(i18nForCreateShortcutActionTooltip())-»
«EXPAND xpt::Externalizer::accessorField(i18nForCreateShortcutActionWizardWindowTitle())-»
«ENDIF
«ENDDEFINE»
«DEFINE i18nValues FOR gmfgen::GenDiagram
«IF generateCreateShortcutAction()-»
«EXPAND xpt::Externalizer::messageEntry(i18nForCreateShortcutActionLabel(), "Create sh&ortcut...")-»
«EXPAND xpt::Externalizer::messageEntry(i18nForCreateShortcutActionTooltip(), "Creates a shortcut on the diagram")-»
«EXPAND xpt::Externalizer::messageEntry(i18nForCreateShortcutActionWizardWindowTitle(), "Create shortcut")-»
«ENDIF
«ENDDEFINE»