diff options
Diffstat (limited to 'extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLCreationWizard.java')
-rw-r--r-- | extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLCreationWizard.java | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLCreationWizard.java b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLCreationWizard.java new file mode 100644 index 00000000000..67c063e22e0 --- /dev/null +++ b/extraplugins/deprecated-plugins/uml.deprecated/org.eclipse.papyrus.diagram.sequence/src/org/eclipse/papyrus/diagram/sequence/part/UMLCreationWizard.java @@ -0,0 +1,172 @@ +/*************************************************************************** + * Copyright (c) 2007 Conselleria de Infraestructuras y Transporte, + * Generalitat de la Comunitat Valenciana . 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: Gabriel Merin Cubero (Prodevelop) – Sequence Diagram implementation + * + ******************************************************************************/ +package org.eclipse.papyrus.diagram.sequence.part; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.ui.INewWizard; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.actions.WorkspaceModifyOperation; + +/** + * @generated + */ +public class UMLCreationWizard extends Wizard implements INewWizard { + + /** + * @generated + */ + private IWorkbench workbench; + + /** + * @generated + */ + protected IStructuredSelection selection; + + /** + * @generated + */ + protected UMLCreationWizardPage diagramModelFilePage; + + /** + * @generated + */ + protected UMLCreationWizardPage domainModelFilePage; + + /** + * @generated + */ + protected Resource diagram; + + /** + * @generated + */ + private boolean openNewlyCreatedDiagramEditor = true; + + /** + * @generated + */ + public IWorkbench getWorkbench() { + return workbench; + } + + /** + * @generated + */ + public IStructuredSelection getSelection() { + return selection; + } + + /** + * @generated + */ + public final Resource getDiagram() { + return diagram; + } + + /** + * @generated + */ + public final boolean isOpenNewlyCreatedDiagramEditor() { + return openNewlyCreatedDiagramEditor; + } + + /** + * @generated + */ + public void setOpenNewlyCreatedDiagramEditor( + boolean openNewlyCreatedDiagramEditor) { + this.openNewlyCreatedDiagramEditor = openNewlyCreatedDiagramEditor; + } + + /** + * @generated + */ + public void init(IWorkbench workbench, IStructuredSelection selection) { + this.workbench = workbench; + this.selection = selection; + setWindowTitle(Messages.UMLCreationWizardTitle); + setDefaultPageImageDescriptor(UMLDiagramEditorPlugin + .getBundledImageDescriptor("icons/wizban/NewUMLWizard.gif")); //$NON-NLS-1$ + setNeedsProgressMonitor(true); + } + + /** + * @generated + */ + @Override + public void addPages() { + diagramModelFilePage = new UMLCreationWizardPage( + "DiagramModelFile", getSelection(), "sequenceuml_diagram"); //$NON-NLS-1$ //$NON-NLS-2$ + diagramModelFilePage + .setTitle(Messages.UMLCreationWizard_DiagramModelFilePageTitle); + diagramModelFilePage + .setDescription(Messages.UMLCreationWizard_DiagramModelFilePageDescription); + addPage(diagramModelFilePage); + + domainModelFilePage = new UMLCreationWizardPage( + "DomainModelFile", getSelection(), "uml"); //$NON-NLS-1$ //$NON-NLS-2$ + domainModelFilePage + .setTitle(Messages.UMLCreationWizard_DomainModelFilePageTitle); + domainModelFilePage + .setDescription(Messages.UMLCreationWizard_DomainModelFilePageDescription); + addPage(domainModelFilePage); + } + + /** + * @generated + */ + @Override + public boolean performFinish() { + IRunnableWithProgress op = new WorkspaceModifyOperation(null) { + + protected void execute(IProgressMonitor monitor) + throws CoreException, InterruptedException { + diagram = UMLDiagramEditorUtil.createDiagram( + diagramModelFilePage.getURI(), domainModelFilePage + .getURI(), monitor); + if (isOpenNewlyCreatedDiagramEditor() && diagram != null) { + try { + UMLDiagramEditorUtil.openDiagram(diagram); + } catch (PartInitException e) { + ErrorDialog.openError(getContainer().getShell(), + Messages.UMLCreationWizardOpenEditorError, + null, e.getStatus()); + } + } + } + }; + try { + getContainer().run(false, true, op); + } catch (InterruptedException e) { + return false; + } catch (InvocationTargetException e) { + if (e.getTargetException() instanceof CoreException) { + ErrorDialog.openError(getContainer().getShell(), + Messages.UMLCreationWizardCreationError, null, + ((CoreException) e.getTargetException()).getStatus()); + } else { + UMLDiagramEditorPlugin.getInstance().logError( + "Error creating diagram", e.getTargetException()); //$NON-NLS-1$ + } + return false; + } + return diagram != null; + } +} |