diff -r 631a44165bcf -r 033392511bf7 carbidecpp22devenv/plugins/org.eclipse.gmf.templates.legacy_1.0.0.v20090614-0839/codegen.templates/xpt/editor/InitDiagramFileAction.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/InitDiagramFileAction.xpt Fri Dec 04 11:06:59 2009 -0600 @@ -0,0 +1,148 @@ +/* + * 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: + * Alexander Shatalin (Borland) - initial API and implementation + * Dmitry Stadnik (Borland) - rewritten in xpand + */ + +«IMPORT "http://www.eclipse.org/gmf/2008/GenModel"» +«IMPORT "http://www.eclipse.org/emf/2002/Ecore"» + +«EXTENSION xpt::editor::Utils» + +«DEFINE className FOR gmfgen::GenDiagram»«initDiagramFileActionClassName»«ENDDEFINE» + +«DEFINE qualifiedClassName FOR gmfgen::GenDiagram»«editorGen.editor.packageName».«EXPAND className»«ENDDEFINE» + +«DEFINE InitDiagramFileAction FOR gmfgen::GenDiagram-» +«EXPAND xpt::Common::copyright FOR editorGen-» +package «editorGen.editor.packageName»; + +«EXPAND xpt::Common::generatedClassComment» +public class «EXPAND className» + «IF editorGen.application == null-» +implements org.eclipse.ui.IObjectActionDelegate { + + «EXPAND xpt::Common::generatedMemberComment» + private org.eclipse.ui.IWorkbenchPart targetPart; + + «EXPAND xpt::Common::generatedMemberComment» + private org.eclipse.emf.common.util.URI domainModelURI; + + «EXPAND xpt::Common::generatedMemberComment» + public void setActivePart(org.eclipse.jface.action.IAction action, org.eclipse.ui.IWorkbenchPart targetPart) { + this.targetPart = targetPart; + } + + «EXPAND xpt::Common::generatedMemberComment» + public void selectionChanged(org.eclipse.jface.action.IAction action, org.eclipse.jface.viewers.ISelection selection) { + domainModelURI = null; + action.setEnabled(false); + if (selection instanceof org.eclipse.jface.viewers.IStructuredSelection == false || selection.isEmpty()) { + return; + } + org.eclipse.core.resources.IFile file = + (org.eclipse.core.resources.IFile) ((org.eclipse.jface.viewers.IStructuredSelection) selection).getFirstElement(); + domainModelURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(file.getFullPath().toString(), true); + action.setEnabled(true); + } + + «EXPAND xpt::Common::generatedMemberComment» + private org.eclipse.swt.widgets.Shell getShell() { + return targetPart.getSite().getShell(); + } + + «EXPAND xpt::Common::generatedMemberComment» + public void run(org.eclipse.jface.action.IAction action) { + org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain = + org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory.INSTANCE.createEditingDomain(); + «IF editorGen.sameFileForDiagramAndModel-» + org.eclipse.emf.ecore.resource.ResourceSet resourceSet = new org.eclipse.emf.ecore.resource.impl.ResourceSetImpl(); + «ELSE-» + org.eclipse.emf.ecore.resource.ResourceSet resourceSet = editingDomain.getResourceSet(); + «ENDIF-» + org.eclipse.emf.ecore.EObject diagramRoot = null; + try { + org.eclipse.emf.ecore.resource.Resource resource = resourceSet.getResource(domainModelURI, true); + diagramRoot = (org.eclipse.emf.ecore.EObject) resource.getContents().get(0); + } catch (org.eclipse.emf.common.util.WrappedException ex) { + «editorGen.plugin.getActivatorQualifiedClassName()».getInstance().logError( + "Unable to load resource: " + domainModelURI, ex); «EXPAND xpt::Common::nonNLS» + } + if (diagramRoot == null) { + org.eclipse.jface.dialogs.MessageDialog.openError(getShell(), + «EXPAND xpt::Externalizer::accessorCall(i18nKeyForInitDiagramFileResourceErrorDialog().titleKey()) FOR editorGen», + «EXPAND xpt::Externalizer::accessorCall(i18nKeyForInitDiagramFileResourceErrorDialog().messageKey()) FOR editorGen»); + return; + } + org.eclipse.jface.wizard.Wizard wizard = new «getNewDiagramFileWizardQualifiedClassName()»(domainModelURI, diagramRoot, editingDomain); + wizard.setWindowTitle(org.eclipse.osgi.util.NLS.bind( + «EXPAND xpt::Externalizer::accessorCall(i18nKeyForInitDiagramFileWizardTitle()) FOR editorGen», + «EXPAND xpt::editor::VisualIDRegistry::modelID»)); + «getDiagramEditorUtilQualifiedClassName()».runWizard(getShell(), wizard, "InitDiagramFile"); «EXPAND xpt::Common::nonNLS» + } + «ELSE-» +implements org.eclipse.ui.IWorkbenchWindowActionDelegate { + + «EXPAND xpt::Common::generatedMemberComment» + private org.eclipse.ui.IWorkbenchWindow window; + + «EXPAND xpt::Common::generatedMemberComment» + public void init(org.eclipse.ui.IWorkbenchWindow window) { + this.window = window; + } + + «EXPAND xpt::Common::generatedMemberComment» + public void dispose() { + window = null; + } + + «EXPAND xpt::Common::generatedMemberComment» + public void selectionChanged(org.eclipse.jface.action.IAction action, org.eclipse.jface.viewers.ISelection selection) { + } + + «EXPAND xpt::Common::generatedMemberComment» + private org.eclipse.swt.widgets.Shell getShell() { + return window.getShell(); + } + + «EXPAND xpt::Common::generatedMemberComment» + public void run(org.eclipse.jface.action.IAction action) { + org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain = + org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory.INSTANCE.createEditingDomain(); + org.eclipse.emf.ecore.resource.Resource resource = + «getDiagramEditorUtilQualifiedClassName()».openModel(getShell(), + «EXPAND xpt::Externalizer::accessorCall(i18nKeyForInitDiagramOpenFileDialogTitle()) FOR editorGen», editingDomain); + if (resource == null || resource.getContents().isEmpty()) { + return; + } + org.eclipse.emf.ecore.EObject diagramRoot = (org.eclipse.emf.ecore.EObject) resource.getContents().get(0); + org.eclipse.jface.wizard.Wizard wizard = new «getNewDiagramFileWizardQualifiedClassName()»(resource.getURI(), diagramRoot, editingDomain); + wizard.setWindowTitle(org.eclipse.osgi.util.NLS.bind( + «EXPAND xpt::Externalizer::accessorCall(i18nKeyForInitDiagramFileWizardTitle()) FOR editorGen», + «EXPAND xpt::editor::VisualIDRegistry::modelID»)); + «getDiagramEditorUtilQualifiedClassName()».runWizard(getShell(), wizard, "InitDiagramFile"); «EXPAND xpt::Common::nonNLS» + } + «ENDIF-» +} +«ENDDEFINE» + +«DEFINE i18nAccessors FOR gmfgen::GenDiagram-» +«EXPAND xpt::Externalizer::accessorField(i18nKeyForInitDiagramFileResourceErrorDialog().titleKey())-» +«EXPAND xpt::Externalizer::accessorField(i18nKeyForInitDiagramFileResourceErrorDialog().messageKey())-» +«EXPAND xpt::Externalizer::accessorField(i18nKeyForInitDiagramFileWizardTitle())-» +«EXPAND xpt::Externalizer::accessorField(i18nKeyForInitDiagramOpenFileDialogTitle())-» +«ENDDEFINE» + +«DEFINE i18nValues FOR gmfgen::GenDiagram-» +«EXPAND xpt::Externalizer::messageEntry(i18nKeyForInitDiagramFileResourceErrorDialog().titleKey(), "Error")-» +«EXPAND xpt::Externalizer::messageEntry(i18nKeyForInitDiagramFileResourceErrorDialog().messageKey(), "Model file loading failed")-» +«EXPAND xpt::Externalizer::messageEntry(i18nKeyForInitDiagramFileWizardTitle(), "Initialize new {0} diagram file")-» +«EXPAND xpt::Externalizer::messageEntry(i18nKeyForInitDiagramOpenFileDialogTitle(), "Select domain model")-» +«ENDDEFINE»