carbidecpp22devenv/plugins/org.eclipse.gmf.templates.legacy_1.0.0.v20090614-0839/codegen.templates/xpt/editor/ShortcutCreationWizard.xpt
author cawthron
Fri, 04 Dec 2009 11:06:59 -0600
changeset 422 033392511bf7
permissions -rw-r--r--
add files for RCL_2_2

/*
 * 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»