### Eclipse Workspace Patch 1.0 #P org.eclipse.gmf.graphdef.editor Index: src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDocumentProvider.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDocumentProvider.java,v retrieving revision 1.7 diff -u -r1.7 GMFGraphDocumentProvider.java --- src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDocumentProvider.java 4 Apr 2007 20:23:25 -0000 1.7 +++ src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDocumentProvider.java 13 Apr 2007 15:04:57 -0000 @@ -33,6 +33,7 @@ import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; @@ -52,6 +53,7 @@ import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory; import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.jface.operation.IRunnableContext; +import org.eclipse.osgi.util.NLS; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.part.FileEditorInput; @@ -66,8 +68,8 @@ */ protected ElementInfo createElementInfo(Object element) throws CoreException { if (false == element instanceof FileEditorInput && false == element instanceof URIEditorInput) { - throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, - "Incorrect element used: " + element + " instead of org.eclipse.ui.part.FileEditorInput or org.eclipse.emf.common.ui.URIEditorInput", null)); //$NON-NLS-1$ //$NON-NLS-2$ + throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, NLS.bind(Messages.GMFGraphDocumentProvider_IncorrectInputError, new Object[] { element, + "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), null)); } IEditorInput editorInput = (IEditorInput) element; IDiagramDocument document = (IDiagramDocument) createDocument(editorInput); @@ -83,8 +85,8 @@ */ protected IDocument createDocument(Object element) throws CoreException { if (false == element instanceof FileEditorInput && false == element instanceof URIEditorInput) { - throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, - "Incorrect element used: " + element + " instead of org.eclipse.ui.part.FileEditorInput or org.eclipse.emf.common.ui.URIEditorInput", null)); //$NON-NLS-1$ //$NON-NLS-2$ + throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, NLS.bind(Messages.GMFGraphDocumentProvider_IncorrectInputError, new Object[] { element, + "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), null)); } IDocument document = createEmptyDocument(); setDocumentContent(document, (IEditorInput) element); @@ -182,7 +184,7 @@ Diagram diagram = DiagramIOUtil.load(domain, storage, true, getProgressMonitor()); document.setContent(diagram); } else if (element instanceof URIEditorInput) { - org.eclipse.emf.common.util.URI uri = ((URIEditorInput) element).getURI(); + URI uri = ((URIEditorInput) element).getURI(); Resource resource = null; try { resource = domain.getResourceSet().getResource(uri.trimFragment(), false); @@ -201,7 +203,7 @@ } } if (resource == null) { - throw new RuntimeException("Unable to load diagram resource"); + throw new RuntimeException(Messages.GMFGraphDocumentProvider_UnableToLoadResourceError); } if (uri.fragment() != null) { EObject rootElement = resource.getEObject(uri.fragment()); @@ -218,20 +220,20 @@ } } } - throw new RuntimeException("Diagram is not present in resource"); + throw new RuntimeException(Messages.GMFGraphDocumentProvider_NoDiagramInResourceError); } catch (Exception e) { CoreException thrownExcp = null; if (e instanceof CoreException) { thrownExcp = (CoreException) e; } else { String msg = e.getLocalizedMessage(); - thrownExcp = new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, msg != null ? msg : "Error loading diagram", e)); //$NON-NLS-1$ + thrownExcp = new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, msg != null ? msg : Messages.GMFGraphDocumentProvider_DiagramLoadingError, e)); } throw thrownExcp; } } else { - throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, - "Incorrect element used: " + element + " instead of org.eclipse.ui.part.FileEditorInput or org.eclipse.emf.common.ui.URIEditorInput", null)); //$NON-NLS-1$ //$NON-NLS-2$ + throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, NLS.bind(Messages.GMFGraphDocumentProvider_IncorrectInputError, new Object[] { element, + "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), null)); } } @@ -309,7 +311,8 @@ try { updateCache(element); } catch (CoreException ex) { - GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.DocumentProvider_isModifiable, ex); + GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.GMFGraphDocumentProvider_isModifiable, ex); + // Error message to log was initially taken from org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable } } return info.isReadOnly(); @@ -332,7 +335,8 @@ try { updateCache(element); } catch (CoreException ex) { - GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.DocumentProvider_isModifiable, ex); + GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.GMFGraphDocumentProvider_isModifiable, ex); + // Error message to log was initially taken from org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable } } return info.isModifiable(); @@ -503,21 +507,19 @@ ResourceSetInfo info = getResourceSetInfo(element); if (info != null) { if (!overwrite && !info.isSynchronized()) { - throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, IStatus.OK, "The file has been changed on the file system", null)); //$NON-NLS-1$ + throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, IStatus.OK, Messages.GMFGraphDocumentProvider_UnsynchronizedFileSaveError, null)); } info.stopResourceListening(); fireElementStateChanging(element); List resources = info.getResourceSet().getResources(); try { - monitor.beginTask("Saving diagram", resources.size() + 1); - Map options = new HashMap(); - options.put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE); + monitor.beginTask(Messages.GMFGraphDocumentProvider_SaveDiagramTask, resources.size() + 1); //"Saving diagram" for (Iterator it = resources.iterator(); it.hasNext();) { Resource nextResource = (Resource) it.next(); - monitor.setTaskName("Saving " + nextResource.getURI()); - if (nextResource.isLoaded() && (!nextResource.isTrackingModification() || nextResource.isModified())) { + monitor.setTaskName(NLS.bind(Messages.GMFGraphDocumentProvider_SaveNextResourceTask, nextResource.getURI())); + if (nextResource.isLoaded()) { try { - nextResource.save(options); + nextResource.save(GMFGraphDiagramEditorUtil.getSaveOptions()); } catch (IOException e) { fireElementStateChangeFailed(element); throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, EditorStatusCodes.RESOURCE_FAILURE, e.getLocalizedMessage(), null)); @@ -544,7 +546,8 @@ try { file.refreshLocal(IResource.DEPTH_INFINITE, monitor); } catch (CoreException ex) { - GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.DocumentProvider_handleElementContentChanged, ex); + GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.GMFGraphDocumentProvider_handleElementContentChanged, ex); + // Error message to log was initially taken from org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.FileDocumentProvider_handleElementContentChanged } } changedResource.unload(); @@ -567,9 +570,9 @@ /** * @generated */ - protected void handleElementMoved(IEditorInput input, org.eclipse.emf.common.util.URI uri) { + protected void handleElementMoved(IEditorInput input, URI uri) { if (input instanceof FileEditorInput) { - IFile newFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(org.eclipse.emf.common.util.URI.decode(uri.path())).removeFirstSegments(1)); + IFile newFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(URI.decode(uri.path())).removeFirstSegments(1)); fireElementMoved(input, newFile == null ? null : new FileEditorInput(newFile)); return; } @@ -834,7 +837,7 @@ /** * @generated */ - public boolean handleResourceMoved(Resource resource, final org.eclipse.emf.common.util.URI newURI) { + public boolean handleResourceMoved(Resource resource, final URI newURI) { synchronized (ResourceSetInfo.this) { if (ResourceSetInfo.this.fCanBeSaved) { ResourceSetInfo.this.setUnSynchronized(resource); Index: src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDiagramEditorUtil.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDiagramEditorUtil.java,v retrieving revision 1.9 diff -u -r1.9 GMFGraphDiagramEditorUtil.java --- src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDiagramEditorUtil.java 4 Apr 2007 20:23:25 -0000 1.9 +++ src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDiagramEditorUtil.java 13 Apr 2007 15:04:57 -0000 @@ -31,12 +31,14 @@ import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.xmi.XMIResource; import org.eclipse.emf.ecore.xmi.XMLResource; import org.eclipse.emf.edit.ui.util.EditUIUtil; import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; import org.eclipse.gef.EditPart; import org.eclipse.gmf.gmfgraph.Canvas; import org.eclipse.gmf.gmfgraph.GMFGraphFactory; @@ -67,6 +69,24 @@ /** * @generated */ + private static Map ourSaveOptions = null; + + /** + * @generated + */ + public static Map getSaveOptions() { + if (ourSaveOptions == null) { + ourSaveOptions = new HashMap(); + ourSaveOptions.put(XMIResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$ + ourSaveOptions.put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE); + ourSaveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER); + } + return ourSaveOptions; + } + + /** + * @generated + */ public static boolean openDiagram(Resource diagram) throws PartInitException { return EditUIUtil.openEditor((EObject) diagram.getContents().get(0)); } @@ -74,8 +94,7 @@ /** * @generated */ - private static void setCharset(org.eclipse.emf.common.util.URI uri) { - IFile file = getFile(uri); + public static void setCharset(IFile file) { if (file == null) { return; } @@ -89,20 +108,6 @@ /** * @generated */ - public static IFile getFile(org.eclipse.emf.common.util.URI uri) { - if (uri.toString().startsWith("platform:/resource")) { //$NON-NLS-1$ - String path = uri.toString().substring("platform:/resource".length()); //$NON-NLS-1$ - IResource workspaceResource = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path)); - if (workspaceResource instanceof IFile) { - return (IFile) workspaceResource; - } - } - return null; - } - - /** - * @generated - */ public static String getUniqueFileName(IPath containerFullPath, String fileName, String extension) { if (containerFullPath == null) { containerFullPath = new Path(""); //$NON-NLS-1$ @@ -149,13 +154,13 @@ * This method should be called within a workspace modify operation since it creates resources. * @generated */ - public static Resource createDiagram(org.eclipse.emf.common.util.URI diagramURI, org.eclipse.emf.common.util.URI modelURI, IProgressMonitor progressMonitor) { + public static Resource createDiagram(URI diagramURI, URI modelURI, IProgressMonitor progressMonitor) { TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain(); - progressMonitor.beginTask("Creating diagram and model files", 3); + progressMonitor.beginTask(Messages.GMFGraphDiagramEditorUtil_CreateDiagramProgressTask, 3); final Resource diagramResource = editingDomain.getResourceSet().createResource(diagramURI); final Resource modelResource = editingDomain.getResourceSet().createResource(modelURI); final String diagramName = diagramURI.lastSegment(); - AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain, "Creating diagram and model", Collections.EMPTY_LIST) { //$NON-NLS-1$ + AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain, Messages.GMFGraphDiagramEditorUtil_CreateDiagramCommandLabel, Collections.EMPTY_LIST) { protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { Canvas model = createInitialModel(); @@ -169,10 +174,8 @@ } try { - Map options = new HashMap(); - options.put(XMIResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$ - modelResource.save(options); - diagramResource.save(options); + modelResource.save(org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorUtil.getSaveOptions()); + diagramResource.save(org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorUtil.getSaveOptions()); } catch (IOException e) { GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to store model and diagram resources", e); //$NON-NLS-1$ @@ -185,8 +188,8 @@ } catch (ExecutionException e) { GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$ } - setCharset(modelURI); - setCharset(diagramURI); + setCharset(WorkspaceSynchronizer.getFile(modelResource)); + setCharset(WorkspaceSynchronizer.getFile(diagramResource)); return diagramResource; } Index: src/org/eclipse/gmf/graphdef/editor/part/Messages.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/part/Messages.java,v retrieving revision 1.2 diff -u -r1.2 Messages.java --- src/org/eclipse/gmf/graphdef/editor/part/Messages.java 2 Mar 2007 15:39:20 -0000 1.2 +++ src/org/eclipse/gmf/graphdef/editor/part/Messages.java 13 Apr 2007 15:04:57 -0000 @@ -33,12 +33,142 @@ /** * @generated */ - public static String DocumentProvider_isModifiable; + public static String GMFGraphDiagramEditorUtil_OpenModelResourceErrorDialogTitle; /** * @generated */ - public static String DocumentProvider_handleElementContentChanged; + public static String GMFGraphDiagramEditorUtil_OpenModelResourceErrorDialogMessage; + + /** + * @generated + */ + public static String GMFGraphDiagramEditorUtil_CreateDiagramProgressTask; + + /** + * @generated + */ + public static String GMFGraphDiagramEditorUtil_CreateDiagramCommandLabel; + + /** + * @generated + */ + public static String GMFGraphDocumentProvider_isModifiable; + + /** + * @generated + */ + public static String GMFGraphDocumentProvider_handleElementContentChanged; + + /** + * @generated + */ + public static String GMFGraphDocumentProvider_IncorrectInputError; + + /** + * @generated + */ + public static String GMFGraphDocumentProvider_UnableToLoadResourceError; + + /** + * @generated + */ + public static String GMFGraphDocumentProvider_NoDiagramInResourceError; + + /** + * @generated + */ + public static String GMFGraphDocumentProvider_DiagramLoadingError; + + /** + * @generated + */ + public static String GMFGraphDocumentProvider_UnsynchronizedFileSaveError; + + /** + * @generated + */ + public static String GMFGraphDocumentProvider_SaveDiagramTask; + + /** + * @generated + */ + public static String GMFGraphDocumentProvider_SaveNextResourceTask; + + /** + * @generated + */ + public static String GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogTitle; + + /** + * @generated + */ + public static String GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogMessage; + + /** + * @generated + */ + public static String GMFGraphInitDiagramFileAction_InitDiagramFileWizardTitle; + + /** + * @generated + */ + public static String GMFGraphInitDiagramFileAction_OpenModelFileDialogTitle; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_CreationPageName; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_CreationPageTitle; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_CreationPageDescription; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_RootSelectionPageName; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_RootSelectionPageTitle; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_RootSelectionPageDescription; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_RootSelectionPageSelectionTitle; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_RootSelectionPageNoSelectionMessage; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_InitDiagramCommand; + + /** + * @generated + */ + public static String GMFGraphNewDiagramFileWizard_IncorrectRootError; /** * @generated Index: src/org/eclipse/gmf/graphdef/editor/part/GMFGraphInitDiagramFileAction.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/part/GMFGraphInitDiagramFileAction.java,v retrieving revision 1.7 diff -u -r1.7 GMFGraphInitDiagramFileAction.java --- src/org/eclipse/gmf/graphdef/editor/part/GMFGraphInitDiagramFileAction.java 4 Apr 2007 20:23:26 -0000 1.7 +++ src/org/eclipse/gmf/graphdef/editor/part/GMFGraphInitDiagramFileAction.java 13 Apr 2007 15:04:57 -0000 @@ -11,6 +11,7 @@ package org.eclipse.gmf.graphdef.editor.part; import org.eclipse.core.resources.IFile; +import org.eclipse.emf.common.util.URI; import org.eclipse.emf.common.util.WrappedException; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; @@ -23,6 +24,7 @@ import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; +import org.eclipse.osgi.util.NLS; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IObjectActionDelegate; import org.eclipse.ui.IWorkbenchPart; @@ -40,7 +42,7 @@ /** * @generated */ - private org.eclipse.emf.common.util.URI domainModelURI; + private URI domainModelURI; /** * @generated @@ -59,7 +61,7 @@ return; } IFile file = (IFile) ((IStructuredSelection) selection).getFirstElement(); - domainModelURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(file.getFullPath().toString(), true); + domainModelURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true); action.setEnabled(true); } @@ -81,14 +83,15 @@ Resource resource = resourceSet.getResource(domainModelURI, true); diagramRoot = (EObject) resource.getContents().get(0); } catch (WrappedException ex) { - GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + domainModelURI, ex); + GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + domainModelURI, ex); //$NON-NLS-1$ } if (diagramRoot == null) { - MessageDialog.openError(getShell(), "Error", "Model file loading failed"); + MessageDialog.openError(getShell(), Messages.GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogTitle, + Messages.GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogMessage); return; } Wizard wizard = new GMFGraphNewDiagramFileWizard(domainModelURI, diagramRoot, editingDomain); - wizard.setWindowTitle("Initialize new " + CanvasEditPart.MODEL_ID + " diagram file"); + wizard.setWindowTitle(NLS.bind(Messages.GMFGraphInitDiagramFileAction_InitDiagramFileWizardTitle, CanvasEditPart.MODEL_ID)); GMFGraphDiagramEditorUtil.runWizard(getShell(), wizard, "InitDiagramFile"); //$NON-NLS-1$ } } Index: src/org/eclipse/gmf/graphdef/editor/part/GMFGraphNewDiagramFileWizard.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/part/GMFGraphNewDiagramFileWizard.java,v retrieving revision 1.12 diff -u -r1.12 GMFGraphNewDiagramFileWizard.java --- src/org/eclipse/gmf/graphdef/editor/part/GMFGraphNewDiagramFileWizard.java 4 Apr 2007 20:23:25 -0000 1.12 +++ src/org/eclipse/gmf/graphdef/editor/part/GMFGraphNewDiagramFileWizard.java 13 Apr 2007 15:04:57 -0000 @@ -24,6 +24,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; +import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; @@ -37,6 +38,7 @@ import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.wizard.Wizard; +import org.eclipse.osgi.util.NLS; import org.eclipse.ui.PartInitException; import org.eclipse.ui.dialogs.WizardNewFileCreationPage; @@ -63,14 +65,14 @@ /** * @generated */ - public GMFGraphNewDiagramFileWizard(org.eclipse.emf.common.util.URI domainModelURI, EObject diagramRoot, TransactionalEditingDomain editingDomain) { + public GMFGraphNewDiagramFileWizard(URI domainModelURI, EObject diagramRoot, TransactionalEditingDomain editingDomain) { assert domainModelURI != null : "Domain model uri must be specified"; //$NON-NLS-1$ assert diagramRoot != null : "Doagram root element must be specified"; //$NON-NLS-1$ assert editingDomain != null : "Editing domain must be specified"; //$NON-NLS-1$ - myFileCreationPage = new WizardNewFileCreationPage("Initialize new diagram file", StructuredSelection.EMPTY); - myFileCreationPage.setTitle("Diagram file"); - myFileCreationPage.setDescription("Create new diagram based on " + CanvasEditPart.MODEL_ID + " model content"); + myFileCreationPage = new WizardNewFileCreationPage(Messages.GMFGraphNewDiagramFileWizard_CreationPageName, StructuredSelection.EMPTY); + myFileCreationPage.setTitle(Messages.GMFGraphNewDiagramFileWizard_CreationPageTitle); + myFileCreationPage.setDescription(NLS.bind(Messages.GMFGraphNewDiagramFileWizard_CreationPageDescription, CanvasEditPart.MODEL_ID)); IPath filePath; String fileName = domainModelURI.trimFileExtension().lastSegment(); if (domainModelURI.isPlatformResource()) { @@ -79,14 +81,14 @@ filePath = new Path(domainModelURI.trimSegments(1).toFileString()); } else { // TODO : use some default path - throw new IllegalArgumentException("Unsupported URI: " + domainModelURI); + throw new IllegalArgumentException("Unsupported URI: " + domainModelURI); //$NON-NLS-1$ } myFileCreationPage.setContainerFullPath(filePath); myFileCreationPage.setFileName(GMFGraphDiagramEditorUtil.getUniqueFileName(filePath, fileName, "gmfgraph_diagram")); //$NON-NLS-1$ - diagramRootElementSelectionPage = new DiagramRootElementSelectionPage("Select diagram root element"); - diagramRootElementSelectionPage.setTitle("Diagram root element"); - diagramRootElementSelectionPage.setDescription("Select semantic model element to be depicted on diagram"); + diagramRootElementSelectionPage = new DiagramRootElementSelectionPage(Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageName); + diagramRootElementSelectionPage.setTitle(Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageTitle); + diagramRootElementSelectionPage.setDescription(Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageDescription); diagramRootElementSelectionPage.setModelElement(diagramRoot); myEditingDomain = editingDomain; @@ -106,21 +108,17 @@ public boolean performFinish() { List affectedFiles = new LinkedList(); IFile diagramFile = myFileCreationPage.createNewFile(); - try { - diagramFile.setCharset("UTF-8", new NullProgressMonitor()); //$NON-NLS-1$ - } catch (CoreException e) { - GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to set charset for diagram file", e); //$NON-NLS-1$ - } + GMFGraphDiagramEditorUtil.setCharset(diagramFile); affectedFiles.add(diagramFile); - org.eclipse.emf.common.util.URI diagramModelURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true); + URI diagramModelURI = URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true); ResourceSet resourceSet = myEditingDomain.getResourceSet(); final Resource diagramResource = resourceSet.createResource(diagramModelURI); - AbstractTransactionalCommand command = new AbstractTransactionalCommand(myEditingDomain, "Initializing diagram contents", affectedFiles) { //$NON-NLS-1$ + AbstractTransactionalCommand command = new AbstractTransactionalCommand(myEditingDomain, Messages.GMFGraphNewDiagramFileWizard_InitDiagramCommand, affectedFiles) { protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { int diagramVID = GMFGraphVisualIDRegistry.getDiagramVisualID(diagramRootElementSelectionPage.getModelElement()); if (diagramVID != CanvasEditPart.VISUAL_ID) { - return CommandResult.newErrorCommandResult("Incorrect model object stored as a root resource object"); //$NON-NLS-1$ + return CommandResult.newErrorCommandResult(Messages.GMFGraphNewDiagramFileWizard_IncorrectRootError); } Diagram diagram = ViewService.createDiagram(diagramRootElementSelectionPage.getModelElement(), CanvasEditPart.MODEL_ID, GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT); diagramResource.getContents().add(diagram); @@ -129,7 +127,7 @@ }; try { OperationHistoryFactory.getOperationHistory().execute(command, new NullProgressMonitor(), null); - diagramResource.save(Collections.EMPTY_MAP); + diagramResource.save(GMFGraphDiagramEditorUtil.getSaveOptions()); GMFGraphDiagramEditorUtil.openDiagram(diagramResource); } catch (ExecutionException e) { GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$ @@ -157,7 +155,7 @@ * @generated */ protected String getSelectionTitle() { - return "Select diagram root element:"; + return Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageSelectionTitle; } /** @@ -165,12 +163,12 @@ */ protected boolean validatePage() { if (selectedModelElement == null) { - setErrorMessage("Diagram root element is not selected"); + setErrorMessage(Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageNoSelectionMessage); return false; } boolean result = ViewService.getInstance().provides( new CreateDiagramViewOperation(new EObjectAdapter(selectedModelElement), CanvasEditPart.MODEL_ID, GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT)); - setErrorMessage(result ? null : "Invalid diagram root element is selected"); + setErrorMessage(result ? null : Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage); return result; } } Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/Rectangle2ItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/Rectangle2ItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 Rectangle2ItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/Rectangle2ItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/Rectangle2ItemSemanticEditPolicy.java 13 Apr 2007 15:04:56 -0000 @@ -82,20 +82,9 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((Rectangle2EditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), - Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req))); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/Ellipse2ItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/Ellipse2ItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 Ellipse2ItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/Ellipse2ItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/Ellipse2ItemSemanticEditPolicy.java 13 Apr 2007 15:04:55 -0000 @@ -82,20 +82,9 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((Ellipse2EditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), - Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req))); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/Polyline2ItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/Polyline2ItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 Polyline2ItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/Polyline2ItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/Polyline2ItemSemanticEditPolicy.java 13 Apr 2007 15:04:56 -0000 @@ -46,20 +46,9 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((Polyline2EditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), - Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req))); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/PolylineItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/PolylineItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 PolylineItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/PolylineItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/PolylineItemSemanticEditPolicy.java 13 Apr 2007 15:04:56 -0000 @@ -46,20 +46,9 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((PolylineEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), - Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req))); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangle2ItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangle2ItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 RoundedRectangle2ItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangle2ItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangle2ItemSemanticEditPolicy.java 13 Apr 2007 15:04:56 -0000 @@ -82,20 +82,9 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((RoundedRectangle2EditPart) getHost()).getEditingDomain(), req - .isConfirmationRequired()), Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req))); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/FigureGalleryItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/FigureGalleryItemSemanticEditPolicy.java,v retrieving revision 1.4 diff -u -r1.4 FigureGalleryItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/FigureGalleryItemSemanticEditPolicy.java 9 Feb 2007 20:08:30 -0000 1.4 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/FigureGalleryItemSemanticEditPolicy.java 13 Apr 2007 15:04:55 -0000 @@ -36,18 +36,7 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper( - new DestroyElementRequest(((FigureGalleryEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req) { protected EObject getElementToDestroy() { @@ -60,6 +49,6 @@ } })); - return cc; + return cc.unwrap(); } } Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/RectangleItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/RectangleItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 RectangleItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/RectangleItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/RectangleItemSemanticEditPolicy.java 13 Apr 2007 15:04:56 -0000 @@ -82,20 +82,9 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((RectangleEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), - Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req))); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/ConnectionItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/ConnectionItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 ConnectionItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/ConnectionItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/ConnectionItemSemanticEditPolicy.java 13 Apr 2007 15:04:55 -0000 @@ -43,18 +43,7 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((ConnectionEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), - Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req) { protected EObject getElementToDestroy() { @@ -67,7 +56,7 @@ } })); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangleItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangleItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 RoundedRectangleItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangleItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangleItemSemanticEditPolicy.java 13 Apr 2007 15:04:56 -0000 @@ -82,20 +82,9 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((RoundedRectangleEditPart) getHost()).getEditingDomain(), req - .isConfirmationRequired()), Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req))); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/NodeItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/NodeItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 NodeItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/NodeItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/NodeItemSemanticEditPolicy.java 13 Apr 2007 15:04:56 -0000 @@ -43,18 +43,7 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((NodeEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), - Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req) { protected EObject getElementToDestroy() { @@ -67,7 +56,7 @@ } })); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/EllipseItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/EllipseItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 EllipseItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/EllipseItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/EllipseItemSemanticEditPolicy.java 13 Apr 2007 15:04:55 -0000 @@ -82,20 +82,9 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((EllipseEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), - Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req))); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphBaseItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphBaseItemSemanticEditPolicy.java,v retrieving revision 1.12 diff -u -r1.12 GMFGraphBaseItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphBaseItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.12 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphBaseItemSemanticEditPolicy.java 13 Apr 2007 15:04:56 -0000 @@ -10,11 +10,15 @@ */ package org.eclipse.gmf.graphdef.editor.edit.policies; +import java.util.Collections; +import java.util.Iterator; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.gef.EditPart; import org.eclipse.gef.Request; import org.eclipse.gef.commands.Command; +import org.eclipse.gef.commands.CompoundCommand; import org.eclipse.gef.commands.UnexecutableCommand; import org.eclipse.gef.requests.ReconnectRequest; import org.eclipse.gmf.gmfgraph.DiagramElement; @@ -28,6 +32,7 @@ import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy; import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; import org.eclipse.gmf.runtime.diagram.ui.editpolicies.SemanticEditPolicy; +import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper; import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand; import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; import org.eclipse.gmf.runtime.emf.type.core.IEditHelperContext; @@ -45,6 +50,7 @@ import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest; import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest; +import org.eclipse.gmf.runtime.notation.Edge; import org.eclipse.gmf.runtime.notation.View; /** @@ -278,9 +284,46 @@ } /** + * Returns editing domain from the host edit part. + * * @generated */ - protected static class LinkConstraints { + protected TransactionalEditingDomain getEditingDomain() { + return ((IGraphicalEditPart) getHost()).getEditingDomain(); + } + + /** + * Creates command to destroy the link. + * + * @generated + */ + protected Command getDestroyEdgeCommand(Edge edge, boolean confirm) { + EditPart editPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(edge); + DestroyElementRequest request = new DestroyElementRequest(getEditingDomain(), confirm); + return editPart.getCommand(new EditCommandRequestWrapper(request, Collections.EMPTY_MAP)); + } + + /** + * Creates commands to destroy all host incoming and outgoing links. + * + * @generated + */ + protected CompoundCommand getDestroyEdgesCommand(boolean confirm) { + CompoundCommand cmd = new CompoundCommand(); + View view = (View) getHost().getModel(); + for (Iterator it = view.getSourceEdges().iterator(); it.hasNext();) { + cmd.add(getDestroyEdgeCommand((Edge) it.next(), confirm)); + } + for (Iterator it = view.getTargetEdges().iterator(); it.hasNext();) { + cmd.add(getDestroyEdgeCommand((Edge) it.next(), confirm)); + } + return cmd; + } + + /** + * @generated + */ + public static class LinkConstraints { /** * @generated @@ -291,6 +334,13 @@ return false; } } + return canExistDiagramElementFigure_4001(source, target); + } + + /** + * @generated + */ + public static boolean canExistDiagramElementFigure_4001(DiagramElement source, FigureHandle target) { return true; } Index: src/org/eclipse/gmf/graphdef/editor/edit/policies/CompartmentItemSemanticEditPolicy.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/policies/CompartmentItemSemanticEditPolicy.java,v retrieving revision 1.5 diff -u -r1.5 CompartmentItemSemanticEditPolicy.java --- src/org/eclipse/gmf/graphdef/editor/edit/policies/CompartmentItemSemanticEditPolicy.java 4 Apr 2007 20:23:25 -0000 1.5 +++ src/org/eclipse/gmf/graphdef/editor/edit/policies/CompartmentItemSemanticEditPolicy.java 13 Apr 2007 15:04:55 -0000 @@ -43,18 +43,7 @@ * @generated */ protected Command getDestroyElementCommand(DestroyElementRequest req) { - CompoundCommand cc = new CompoundCommand(); - Collection allEdges = new ArrayList(); - View view = (View) getHost().getModel(); - allEdges.addAll(view.getSourceEdges()); - allEdges.addAll(view.getTargetEdges()); - for (Iterator it = allEdges.iterator(); it.hasNext();) { - Edge nextEdge = (Edge) it.next(); - EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge); - EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((CompartmentEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), - Collections.EMPTY_MAP); - cc.add(nextEditPart.getCommand(editCommandRequest)); - } + CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired()); cc.add(getMSLWrapper(new DestroyElementCommand(req) { protected EObject getElementToDestroy() { @@ -67,7 +56,7 @@ } })); - return cc; + return cc.unwrap(); } /** Index: src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorContentProvider.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorContentProvider.java,v retrieving revision 1.2 diff -u -r1.2 GMFGraphNavigatorContentProvider.java --- src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorContentProvider.java 4 Apr 2007 20:23:26 -0000 1.2 +++ src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorContentProvider.java 13 Apr 2007 15:04:56 -0000 @@ -18,6 +18,7 @@ import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; import org.eclipse.emf.transaction.TransactionalEditingDomain; @@ -128,7 +129,7 @@ return true; } - public boolean handleResourceMoved(Resource resource, final org.eclipse.emf.common.util.URI newURI) { + public boolean handleResourceMoved(Resource resource, final URI newURI) { for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) { Resource nextResource = (Resource) it.next(); nextResource.unload(); @@ -194,7 +195,7 @@ public Object[] getChildren(Object parentElement) { if (parentElement instanceof IFile) { IFile file = (IFile) parentElement; - org.eclipse.emf.common.util.URI fileURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(file.getFullPath().toString(), true); + URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true); Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true); Collection result = new ArrayList(); result.addAll(createNavigatorItems(selectViewsByType(resource.getContents(), CanvasEditPart.MODEL_ID), file, false)); Index: src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphDomainNavigatorContentProvider.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphDomainNavigatorContentProvider.java,v retrieving revision 1.1 diff -u -r1.1 GMFGraphDomainNavigatorContentProvider.java --- src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphDomainNavigatorContentProvider.java 4 Apr 2007 20:23:26 -0000 1.1 +++ src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphDomainNavigatorContentProvider.java 13 Apr 2007 15:04:56 -0000 @@ -16,6 +16,7 @@ import java.util.Iterator; import org.eclipse.core.resources.IFile; +import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; @@ -115,7 +116,7 @@ return true; } - public boolean handleResourceMoved(Resource resource, final org.eclipse.emf.common.util.URI newURI) { + public boolean handleResourceMoved(Resource resource, final URI newURI) { for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) { Resource nextResource = (Resource) it.next(); nextResource.unload(); @@ -181,7 +182,7 @@ public Object[] getChildren(Object parentElement) { if (parentElement instanceof IFile) { IFile file = (IFile) parentElement; - org.eclipse.emf.common.util.URI fileURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(file.getFullPath().toString(), true); + URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true); Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true); return wrapEObjects(myAdapterFctoryContentProvier.getChildren(resource), parentElement); } Index: messages.properties =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/messages.properties,v retrieving revision 1.2 diff -u -r1.2 messages.properties --- messages.properties 2 Mar 2007 15:39:20 -0000 1.2 +++ messages.properties 13 Apr 2007 15:04:54 -0000 @@ -46,3 +46,31 @@ NavigatorGroupName_DiagramElementFigure_4001_target=target DocumentProvider_isModifiable=DocumentProvider_isModifiable DocumentProvider_handleElementContentChanged=DocumentProvider_handleElementContentChanged +GMFGraphDiagramEditorUtil_OpenModelResourceErrorDialogTitle=Error +GMFGraphDiagramEditorUtil_OpenModelResourceErrorDialogMessage=Failed to load model file {0} +GMFGraphDiagramEditorUtil_CreateDiagramProgressTask=Creating diagram and model files +GMFGraphDiagramEditorUtil_CreateDiagramCommandLabel=Creating diagram and model +GMFGraphDocumentProvider_isModifiable=Updating cache failed +GMFGraphDocumentProvider_handleElementContentChanged=Failed to refresh hierarchy for changed resource +GMFGraphDocumentProvider_IncorrectInputError={1} +GMFGraphDocumentProvider_UnableToLoadResourceError=Unable to load diagram resource +GMFGraphDocumentProvider_NoDiagramInResourceError=Diagram is not present in resource +GMFGraphDocumentProvider_DiagramLoadingError=Error loading diagram +GMFGraphDocumentProvider_UnsynchronizedFileSaveError=The file has been changed on the file system +GMFGraphDocumentProvider_SaveDiagramTask=Saving diagram +GMFGraphDocumentProvider_SaveNextResourceTask=Saving {0} +GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogTitle=Error +GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogMessage=Model file loading failed +GMFGraphInitDiagramFileAction_InitDiagramFileWizardTitle=Initialize new {0} diagram file +GMFGraphInitDiagramFileAction_OpenModelFileDialogTitle=Select domain model +GMFGraphNewDiagramFileWizard_CreationPageName=Initialize new diagram file +GMFGraphNewDiagramFileWizard_CreationPageTitle=Diagram file +GMFGraphNewDiagramFileWizard_CreationPageDescription=Create new diagram based on {0} model content +GMFGraphNewDiagramFileWizard_RootSelectionPageName=Select diagram root element +GMFGraphNewDiagramFileWizard_RootSelectionPageTitle=Diagram root element +GMFGraphNewDiagramFileWizard_RootSelectionPageDescription=Select semantic model element to be depicted on diagram +GMFGraphNewDiagramFileWizard_RootSelectionPageSelectionTitle=Select diagram root element: +GMFGraphNewDiagramFileWizard_RootSelectionPageNoSelectionMessage=Diagram root element is not selected +GMFGraphNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage=Invalid diagram root element is selected +GMFGraphNewDiagramFileWizard_InitDiagramCommand=Initializing diagram contents +GMFGraphNewDiagramFileWizard_IncorrectRootError=Incorrect model object stored as a root resource object Index: META-INF/MANIFEST.MF =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/META-INF/MANIFEST.MF,v retrieving revision 1.9 diff -u -r1.9 MANIFEST.MF --- META-INF/MANIFEST.MF 5 Apr 2007 13:23:40 -0000 1.9 +++ META-INF/MANIFEST.MF 13 Apr 2007 15:04:55 -0000 @@ -21,6 +21,7 @@ org.eclipse.emf.ecore.xmi, org.eclipse.emf.edit.ui, org.eclipse.gef;visibility:=reexport, + org.eclipse.gmf.codegen, org.eclipse.gmf.runtime.emf.core, org.eclipse.gmf.runtime.emf.commands.core, org.eclipse.gmf.runtime.emf.ui.properties, @@ -35,7 +36,6 @@ org.eclipse.gmf.graphdef;visibility:=reexport, org.eclipse.gmf.graphdef.edit;visibility:=reexport, org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport, - org.eclipse.draw2d;visibility:=reexport, - org.eclipse.gmf.codegen + org.eclipse.draw2d;visibility:=reexport Eclipse-LazyStart: true Bundle-RequiredExecutionEnvironment: J2SE-1.4 Index: src/org/eclipse/gmf/graphdef/editor/edit/parts/RectangleEditPart.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/parts/RectangleEditPart.java,v retrieving revision 1.13 diff -u -r1.13 RectangleEditPart.java --- src/org/eclipse/gmf/graphdef/editor/edit/parts/RectangleEditPart.java 2 Mar 2007 15:39:20 -0000 1.13 +++ src/org/eclipse/gmf/graphdef/editor/edit/parts/RectangleEditPart.java 13 Apr 2007 15:04:55 -0000 @@ -18,10 +18,13 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; +import org.eclipse.draw2d.CompoundBorder; import org.eclipse.draw2d.Figure; import org.eclipse.draw2d.FreeformLayout; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.LayoutManager; +import org.eclipse.draw2d.LineBorder; +import org.eclipse.draw2d.MarginBorder; import org.eclipse.draw2d.StackLayout; import org.eclipse.draw2d.geometry.Point; import org.eclipse.draw2d.geometry.Rectangle; @@ -58,6 +61,8 @@ import org.eclipse.gmf.runtime.notation.Node; import org.eclipse.gmf.runtime.notation.NotationPackage; import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; /** * @generated @@ -179,6 +184,10 @@ */ protected NodeFigure createNodePlate() { DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0)); + LineBorder contourBorder = new LineBorder(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW)); + MarginBorder marginBorder = new MarginBorder(5); + CompoundBorder compoundBorder = new CompoundBorder(contourBorder, marginBorder); + result.setBorder(compoundBorder); myNodeFigure = result; return result; } Index: src/org/eclipse/gmf/graphdef/editor/edit/parts/RoundedRectangle2EditPart.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/parts/RoundedRectangle2EditPart.java,v retrieving revision 1.14 diff -u -r1.14 RoundedRectangle2EditPart.java --- src/org/eclipse/gmf/graphdef/editor/edit/parts/RoundedRectangle2EditPart.java 2 Mar 2007 15:39:20 -0000 1.14 +++ src/org/eclipse/gmf/graphdef/editor/edit/parts/RoundedRectangle2EditPart.java 13 Apr 2007 15:04:55 -0000 @@ -18,10 +18,13 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; +import org.eclipse.draw2d.CompoundBorder; import org.eclipse.draw2d.Figure; import org.eclipse.draw2d.FreeformLayout; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.LayoutManager; +import org.eclipse.draw2d.LineBorder; +import org.eclipse.draw2d.MarginBorder; import org.eclipse.draw2d.StackLayout; import org.eclipse.draw2d.geometry.Dimension; import org.eclipse.draw2d.geometry.Point; @@ -59,6 +62,8 @@ import org.eclipse.gmf.runtime.notation.Node; import org.eclipse.gmf.runtime.notation.NotationPackage; import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; /** * @generated @@ -186,6 +191,10 @@ */ protected NodeFigure createNodePlate() { DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0)); + LineBorder contourBorder = new LineBorder(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW)); + MarginBorder marginBorder = new MarginBorder(5); + CompoundBorder compoundBorder = new CompoundBorder(contourBorder, marginBorder); + result.setBorder(compoundBorder); myNodeFigure = result; return result; } Index: src/org/eclipse/gmf/graphdef/editor/edit/parts/Ellipse2EditPart.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/parts/Ellipse2EditPart.java,v retrieving revision 1.13 diff -u -r1.13 Ellipse2EditPart.java --- src/org/eclipse/gmf/graphdef/editor/edit/parts/Ellipse2EditPart.java 2 Mar 2007 15:39:20 -0000 1.13 +++ src/org/eclipse/gmf/graphdef/editor/edit/parts/Ellipse2EditPart.java 13 Apr 2007 15:04:55 -0000 @@ -18,10 +18,13 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; +import org.eclipse.draw2d.CompoundBorder; import org.eclipse.draw2d.Figure; import org.eclipse.draw2d.FreeformLayout; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.LayoutManager; +import org.eclipse.draw2d.LineBorder; +import org.eclipse.draw2d.MarginBorder; import org.eclipse.draw2d.StackLayout; import org.eclipse.draw2d.geometry.Point; import org.eclipse.draw2d.geometry.Rectangle; @@ -59,6 +62,8 @@ import org.eclipse.gmf.runtime.notation.Node; import org.eclipse.gmf.runtime.notation.NotationPackage; import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; /** * @generated @@ -180,6 +185,10 @@ */ protected NodeFigure createNodePlate() { DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0)); + LineBorder contourBorder = new LineBorder(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW)); + MarginBorder marginBorder = new MarginBorder(5); + CompoundBorder compoundBorder = new CompoundBorder(contourBorder, marginBorder); + result.setBorder(compoundBorder); myNodeFigure = result; return result; } Index: src/org/eclipse/gmf/graphdef/editor/edit/commands/DiagramElementFigureReorientCommand.java =================================================================== RCS file: /cvsroot/modeling/org.eclipse.gmf/plugins/org.eclipse.gmf.graphdef.editor/src/org/eclipse/gmf/graphdef/editor/edit/commands/DiagramElementFigureReorientCommand.java,v retrieving revision 1.1 diff -u -r1.1 DiagramElementFigureReorientCommand.java --- src/org/eclipse/gmf/graphdef/editor/edit/commands/DiagramElementFigureReorientCommand.java 4 Apr 2007 20:23:27 -0000 1.1 +++ src/org/eclipse/gmf/graphdef/editor/edit/commands/DiagramElementFigureReorientCommand.java 13 Apr 2007 15:04:55 -0000 @@ -16,6 +16,7 @@ import org.eclipse.emf.ecore.EObject; import org.eclipse.gmf.gmfgraph.DiagramElement; import org.eclipse.gmf.gmfgraph.FigureHandle; +import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphBaseItemSemanticEditPolicy; import org.eclipse.gmf.runtime.common.core.command.CommandResult; import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand; import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest; @@ -65,10 +66,10 @@ return false; } if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) { - return oldEnd instanceof FigureHandle && newEnd instanceof DiagramElement; + return canReorientSource(); } if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) { - return oldEnd instanceof FigureHandle && newEnd instanceof FigureHandle; + return canReorientTarget(); } return false; } @@ -76,6 +77,26 @@ /** * @generated */ + protected boolean canReorientSource() { + if (!(oldEnd instanceof FigureHandle && newEnd instanceof DiagramElement)) { + return false; + } + return GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canExistDiagramElementFigure_4001(getNewSource(), getOldTarget()); + } + + /** + * @generated + */ + protected boolean canReorientTarget() { + if (!(oldEnd instanceof FigureHandle && newEnd instanceof FigureHandle)) { + return false; + } + return GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canExistDiagramElementFigure_4001(getOldSource(), getNewTarget()); + } + + /** + * @generated + */ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { if (!canExecute()) { throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$ @@ -92,25 +113,45 @@ /** * @generated */ - private CommandResult reorientSource() throws ExecutionException { - DiagramElement oldSource = (DiagramElement) referenceOwner; - DiagramElement newSource = (DiagramElement) newEnd; - FigureHandle target = (FigureHandle) oldEnd; + protected CommandResult reorientSource() throws ExecutionException { + getOldSource().setFigure(null); + getNewSource().setFigure(getOldTarget()); + return CommandResult.newOKCommandResult(referenceOwner); + } - oldSource.setFigure(null); - newSource.setFigure(target); + /** + * @generated + */ + protected CommandResult reorientTarget() throws ExecutionException { + getOldSource().setFigure(getNewTarget()); return CommandResult.newOKCommandResult(referenceOwner); } /** * @generated */ - private CommandResult reorientTarget() throws ExecutionException { - DiagramElement source = (DiagramElement) referenceOwner; - FigureHandle oldTarget = (FigureHandle) oldEnd; - FigureHandle newTarget = (FigureHandle) newEnd; + protected DiagramElement getOldSource() { + return (DiagramElement) referenceOwner; + } - source.setFigure(newTarget); - return CommandResult.newOKCommandResult(referenceOwner); + /** + * @generated + */ + protected DiagramElement getNewSource() { + return (DiagramElement) newEnd; + } + + /** + * @generated + */ + protected FigureHandle getOldTarget() { + return (FigureHandle) oldEnd; + } + + /** + * @generated + */ + protected FigureHandle getNewTarget() { + return (FigureHandle) newEnd; } }