diff -r 631a44165bcf -r 033392511bf7 carbidecpp22devenv/plugins/org.eclipse.gmf.templates.legacy_1.0.0.v20090614-0839/codegen.templates/xpt/editor/ShortcutCreationWizard.xpt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/carbidecpp22devenv/plugins/org.eclipse.gmf.templates.legacy_1.0.0.v20090614-0839/codegen.templates/xpt/editor/ShortcutCreationWizard.xpt Fri Dec 04 11:06:59 2009 -0600 @@ -0,0 +1,157 @@ +/* + * 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: + * Dmitry Stadnik (Borland) - initial API and implementation + */ +«IMPORT "http://www.eclipse.org/gmf/2008/GenModel"» +«IMPORT "http://www.eclipse.org/emf/2002/Ecore"» +«EXTENSION xpt::editor::GenDiagram» +«EXTENSION xpt::editor::Utils» + +«DEFINE className FOR gmfgen::GenDiagram»«defaultShortcutCreationWizardClassName()»«ENDDEFINE» + +«DEFINE qualifiedClassName FOR gmfgen::GenDiagram»«editorGen.editor.packageName».«EXPAND className»«ENDDEFINE» + +«DEFINE ShortcutCreationWizard FOR gmfgen::GenDiagram-» +«EXPAND xpt::Common::copyright FOR editorGen-» +package «editorGen.editor.packageName»; + +/** + * Allows to select foreign model element and add shortcut to the diagram. + * + * @generated + */ +public class «EXPAND className» extends org.eclipse.jface.wizard.Wizard { + + /** + * @generated + */ + private ReferencedElementSelectionPage referencedElementSelectionPage; + + /** + * @generated + */ + private org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain; + + /** + * @generated + */ + public «EXPAND className»(org.eclipse.emf.ecore.EObject modelElement, org.eclipse.gmf.runtime.notation.View view, + org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain) { + referencedElementSelectionPage = new ReferencedElementSelectionPage(«EXPAND xpt::Externalizer::accessorCall(i18nKeyForShortcutWizardReferencedElementPage().nameKey()) FOR editorGen», view); + referencedElementSelectionPage.setTitle(«EXPAND xpt::Externalizer::accessorCall(i18nKeyForShortcutWizardReferencedElementPage().titleKey()) FOR editorGen»); + referencedElementSelectionPage.setDescription(«EXPAND xpt::Externalizer::accessorCall(i18nKeyForShortcutWizardReferencedElementPage().descriptionKey()) FOR editorGen»); + referencedElementSelectionPage.setModelElement(modelElement); + + this.editingDomain = editingDomain; + } + + /** + * @generated + */ + public void addPages() { + addPage(referencedElementSelectionPage); + } + + /** + * @generated + */ + public boolean performFinish() { + org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor viewDescriptor = + new org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor( + new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(referencedElementSelectionPage.getModelElement()), + org.eclipse.gmf.runtime.notation.Node.class, null, + «editorGen.plugin.getActivatorQualifiedClassName()».DIAGRAM_PREFERENCES_HINT); + org.eclipse.gmf.runtime.common.core.command.ICommand command = + new org.eclipse.gmf.runtime.diagram.ui.commands.CreateCommand( + editingDomain, viewDescriptor, referencedElementSelectionPage.getView()); + command = command.compose(new «getCreateShortcutDecorationsCommandQualifiedClassName()»( + editingDomain, referencedElementSelectionPage.getView(), viewDescriptor)); + try { + org.eclipse.core.commands.operations.OperationHistoryFactory.getOperationHistory().execute( + command, new org.eclipse.core.runtime.NullProgressMonitor(), null); + } catch (org.eclipse.core.commands.ExecutionException ee) { + «editorGen.plugin.getActivatorQualifiedClassName()».getInstance().logError("Unable to create shortcut", ee); «EXPAND xpt::Common::nonNLS» + } + return true; + } + + /** + * @generated + */ + private static class ReferencedElementSelectionPage extends «EXPAND xpt::editor::ModelElementSelectionPage::qualifiedClassName» { + + /** + * @generated + */ + private org.eclipse.gmf.runtime.notation.View view; + + /** + * @generated + */ + public ReferencedElementSelectionPage(String pageName, org.eclipse.gmf.runtime.notation.View view) { + super(pageName); + this.view = view; + } + + /** + * @generated + */ + public org.eclipse.gmf.runtime.notation.View getView() { + return view; + } + + /** + * @generated + */ + protected String getSelectionTitle() { + return «EXPAND xpt::Externalizer::accessorCall(i18nKeyForShortcutWizardReferencedElementPage().messageKey()) FOR editorGen»; + } + + /** + * @generated + */ + protected boolean validatePage() { + if (selectedModelElement == null) { + setErrorMessage(«EXPAND xpt::Externalizer::accessorCall(i18nKeyForShortcutWizardReferencedElementPageEmptyError()) FOR editorGen»); + return false; + } + boolean result = org.eclipse.gmf.runtime.diagram.core.services.ViewService.getInstance().provides( + org.eclipse.gmf.runtime.notation.Node.class, + new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(selectedModelElement), + view, null, org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.APPEND, true, + «editorGen.plugin.getActivatorQualifiedClassName()».DIAGRAM_PREFERENCES_HINT); + setErrorMessage(result ? null : «EXPAND xpt::Externalizer::accessorCall(i18nKeyForShortcutWizardReferencedElementPageInvalidError()) FOR editorGen»); + return result; + } + } +} +«ENDDEFINE» + +«DEFINE i18nValues FOR gmfgen::GenDiagram-» +«IF null != editorGen.application-» +«EXPAND xpt::Externalizer::messageEntry(i18nKeyForShortcutWizardReferencedElementPage().nameKey(), "Select referenced element")-» +«EXPAND xpt::Externalizer::messageEntry(i18nKeyForShortcutWizardReferencedElementPage().titleKey(), "Referenced element")-» +«EXPAND xpt::Externalizer::messageEntry(i18nKeyForShortcutWizardReferencedElementPage().descriptionKey(), "Select element that the new shortcut will refer to.")-» +«EXPAND xpt::Externalizer::messageEntry(i18nKeyForShortcutWizardReferencedElementPage().messageKey(), "Select referenced element:")-» +«EXPAND xpt::Externalizer::messageEntry(i18nKeyForShortcutWizardReferencedElementPageEmptyError(), "Referenced element is not selected")-» +«EXPAND xpt::Externalizer::messageEntry(i18nKeyForShortcutWizardReferencedElementPageInvalidError(), "Invalid referenced element is selected")-» +«ENDIF-» +«ENDDEFINE» + +«DEFINE i18nAccessors FOR gmfgen::GenDiagram-» +«IF null != editorGen.application-» + «EXPAND xpt::Externalizer::accessorField(i18nKeyForShortcutWizardReferencedElementPage().nameKey())-» + «EXPAND xpt::Externalizer::accessorField(i18nKeyForShortcutWizardReferencedElementPage().titleKey())-» + «EXPAND xpt::Externalizer::accessorField(i18nKeyForShortcutWizardReferencedElementPage().descriptionKey())-» + «EXPAND xpt::Externalizer::accessorField(i18nKeyForShortcutWizardReferencedElementPage().messageKey())-» + «EXPAND xpt::Externalizer::accessorField(i18nKeyForShortcutWizardReferencedElementPageEmptyError())-» + «EXPAND xpt::Externalizer::accessorField(i18nKeyForShortcutWizardReferencedElementPageInvalidError())-» +«ENDIF-» +«ENDDEFINE»