View | Details | Raw Unified | Return to bug 182339 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDocumentProvider.java (-23 / +26 lines)
Lines 33-38 Link Here
33
import org.eclipse.emf.common.notify.Notification;
33
import org.eclipse.emf.common.notify.Notification;
34
import org.eclipse.emf.common.notify.Notifier;
34
import org.eclipse.emf.common.notify.Notifier;
35
import org.eclipse.emf.common.ui.URIEditorInput;
35
import org.eclipse.emf.common.ui.URIEditorInput;
36
import org.eclipse.emf.common.util.URI;
36
import org.eclipse.emf.ecore.EObject;
37
import org.eclipse.emf.ecore.EObject;
37
import org.eclipse.emf.ecore.resource.Resource;
38
import org.eclipse.emf.ecore.resource.Resource;
38
import org.eclipse.emf.ecore.resource.ResourceSet;
39
import org.eclipse.emf.ecore.resource.ResourceSet;
Lines 52-57 Link Here
52
import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
53
import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
53
import org.eclipse.gmf.runtime.notation.Diagram;
54
import org.eclipse.gmf.runtime.notation.Diagram;
54
import org.eclipse.jface.operation.IRunnableContext;
55
import org.eclipse.jface.operation.IRunnableContext;
56
import org.eclipse.osgi.util.NLS;
55
import org.eclipse.swt.widgets.Display;
57
import org.eclipse.swt.widgets.Display;
56
import org.eclipse.ui.IEditorInput;
58
import org.eclipse.ui.IEditorInput;
57
import org.eclipse.ui.part.FileEditorInput;
59
import org.eclipse.ui.part.FileEditorInput;
Lines 66-73 Link Here
66
	 */
68
	 */
67
	protected ElementInfo createElementInfo(Object element) throws CoreException {
69
	protected ElementInfo createElementInfo(Object element) throws CoreException {
68
		if (false == element instanceof FileEditorInput && false == element instanceof URIEditorInput) {
70
		if (false == element instanceof FileEditorInput && false == element instanceof URIEditorInput) {
69
			throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0,
71
			throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, NLS.bind(Messages.GMFGraphDocumentProvider_IncorrectInputError, new Object[] { element,
70
					"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$
72
					"org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), null));
71
		}
73
		}
72
		IEditorInput editorInput = (IEditorInput) element;
74
		IEditorInput editorInput = (IEditorInput) element;
73
		IDiagramDocument document = (IDiagramDocument) createDocument(editorInput);
75
		IDiagramDocument document = (IDiagramDocument) createDocument(editorInput);
Lines 83-90 Link Here
83
	 */
85
	 */
84
	protected IDocument createDocument(Object element) throws CoreException {
86
	protected IDocument createDocument(Object element) throws CoreException {
85
		if (false == element instanceof FileEditorInput && false == element instanceof URIEditorInput) {
87
		if (false == element instanceof FileEditorInput && false == element instanceof URIEditorInput) {
86
			throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0,
88
			throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, NLS.bind(Messages.GMFGraphDocumentProvider_IncorrectInputError, new Object[] { element,
87
					"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$
89
					"org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), null));
88
		}
90
		}
89
		IDocument document = createEmptyDocument();
91
		IDocument document = createEmptyDocument();
90
		setDocumentContent(document, (IEditorInput) element);
92
		setDocumentContent(document, (IEditorInput) element);
Lines 182-188 Link Here
182
			Diagram diagram = DiagramIOUtil.load(domain, storage, true, getProgressMonitor());
184
			Diagram diagram = DiagramIOUtil.load(domain, storage, true, getProgressMonitor());
183
			document.setContent(diagram);
185
			document.setContent(diagram);
184
		} else if (element instanceof URIEditorInput) {
186
		} else if (element instanceof URIEditorInput) {
185
			org.eclipse.emf.common.util.URI uri = ((URIEditorInput) element).getURI();
187
			URI uri = ((URIEditorInput) element).getURI();
186
			Resource resource = null;
188
			Resource resource = null;
187
			try {
189
			try {
188
				resource = domain.getResourceSet().getResource(uri.trimFragment(), false);
190
				resource = domain.getResourceSet().getResource(uri.trimFragment(), false);
Lines 201-207 Link Here
201
					}
203
					}
202
				}
204
				}
203
				if (resource == null) {
205
				if (resource == null) {
204
					throw new RuntimeException("Unable to load diagram resource");
206
					throw new RuntimeException(Messages.GMFGraphDocumentProvider_UnableToLoadResourceError);
205
				}
207
				}
206
				if (uri.fragment() != null) {
208
				if (uri.fragment() != null) {
207
					EObject rootElement = resource.getEObject(uri.fragment());
209
					EObject rootElement = resource.getEObject(uri.fragment());
Lines 218-237 Link Here
218
						}
220
						}
219
					}
221
					}
220
				}
222
				}
221
				throw new RuntimeException("Diagram is not present in resource");
223
				throw new RuntimeException(Messages.GMFGraphDocumentProvider_NoDiagramInResourceError);
222
			} catch (Exception e) {
224
			} catch (Exception e) {
223
				CoreException thrownExcp = null;
225
				CoreException thrownExcp = null;
224
				if (e instanceof CoreException) {
226
				if (e instanceof CoreException) {
225
					thrownExcp = (CoreException) e;
227
					thrownExcp = (CoreException) e;
226
				} else {
228
				} else {
227
					String msg = e.getLocalizedMessage();
229
					String msg = e.getLocalizedMessage();
228
					thrownExcp = new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, msg != null ? msg : "Error loading diagram", e)); //$NON-NLS-1$
230
					thrownExcp = new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, msg != null ? msg : Messages.GMFGraphDocumentProvider_DiagramLoadingError, e));
229
				}
231
				}
230
				throw thrownExcp;
232
				throw thrownExcp;
231
			}
233
			}
232
		} else {
234
		} else {
233
			throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0,
235
			throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, 0, NLS.bind(Messages.GMFGraphDocumentProvider_IncorrectInputError, new Object[] { element,
234
					"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$
236
					"org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), null));
235
		}
237
		}
236
	}
238
	}
237
239
Lines 309-315 Link Here
309
				try {
311
				try {
310
					updateCache(element);
312
					updateCache(element);
311
				} catch (CoreException ex) {
313
				} catch (CoreException ex) {
312
					GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.DocumentProvider_isModifiable, ex);
314
					GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.GMFGraphDocumentProvider_isModifiable, ex);
315
					// Error message to log was initially taken from org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable
313
				}
316
				}
314
			}
317
			}
315
			return info.isReadOnly();
318
			return info.isReadOnly();
Lines 332-338 Link Here
332
				try {
335
				try {
333
					updateCache(element);
336
					updateCache(element);
334
				} catch (CoreException ex) {
337
				} catch (CoreException ex) {
335
					GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.DocumentProvider_isModifiable, ex);
338
					GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.GMFGraphDocumentProvider_isModifiable, ex);
339
					// Error message to log was initially taken from org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable
336
				}
340
				}
337
			}
341
			}
338
			return info.isModifiable();
342
			return info.isModifiable();
Lines 503-523 Link Here
503
		ResourceSetInfo info = getResourceSetInfo(element);
507
		ResourceSetInfo info = getResourceSetInfo(element);
504
		if (info != null) {
508
		if (info != null) {
505
			if (!overwrite && !info.isSynchronized()) {
509
			if (!overwrite && !info.isSynchronized()) {
506
				throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, IStatus.OK, "The file has been changed on the file system", null)); //$NON-NLS-1$
510
				throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, IStatus.OK, Messages.GMFGraphDocumentProvider_UnsynchronizedFileSaveError, null));
507
			}
511
			}
508
			info.stopResourceListening();
512
			info.stopResourceListening();
509
			fireElementStateChanging(element);
513
			fireElementStateChanging(element);
510
			List resources = info.getResourceSet().getResources();
514
			List resources = info.getResourceSet().getResources();
511
			try {
515
			try {
512
				monitor.beginTask("Saving diagram", resources.size() + 1);
516
				monitor.beginTask(Messages.GMFGraphDocumentProvider_SaveDiagramTask, resources.size() + 1); //"Saving diagram"
513
				Map options = new HashMap();
514
				options.put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE);
515
				for (Iterator it = resources.iterator(); it.hasNext();) {
517
				for (Iterator it = resources.iterator(); it.hasNext();) {
516
					Resource nextResource = (Resource) it.next();
518
					Resource nextResource = (Resource) it.next();
517
					monitor.setTaskName("Saving " + nextResource.getURI());
519
					monitor.setTaskName(NLS.bind(Messages.GMFGraphDocumentProvider_SaveNextResourceTask, nextResource.getURI()));
518
					if (nextResource.isLoaded() && (!nextResource.isTrackingModification() || nextResource.isModified())) {
520
					if (nextResource.isLoaded()) {
519
						try {
521
						try {
520
							nextResource.save(options);
522
							nextResource.save(GMFGraphDiagramEditorUtil.getSaveOptions());
521
						} catch (IOException e) {
523
						} catch (IOException e) {
522
							fireElementStateChangeFailed(element);
524
							fireElementStateChangeFailed(element);
523
							throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, EditorStatusCodes.RESOURCE_FAILURE, e.getLocalizedMessage(), null));
525
							throw new CoreException(new Status(IStatus.ERROR, GMFGraphDiagramEditorPlugin.ID, EditorStatusCodes.RESOURCE_FAILURE, e.getLocalizedMessage(), null));
Lines 544-550 Link Here
544
			try {
546
			try {
545
				file.refreshLocal(IResource.DEPTH_INFINITE, monitor);
547
				file.refreshLocal(IResource.DEPTH_INFINITE, monitor);
546
			} catch (CoreException ex) {
548
			} catch (CoreException ex) {
547
				GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.DocumentProvider_handleElementContentChanged, ex);
549
				GMFGraphDiagramEditorPlugin.getInstance().logError(Messages.GMFGraphDocumentProvider_handleElementContentChanged, ex);
550
				// Error message to log was initially taken from org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.FileDocumentProvider_handleElementContentChanged
548
			}
551
			}
549
		}
552
		}
550
		changedResource.unload();
553
		changedResource.unload();
Lines 567-575 Link Here
567
	/**
570
	/**
568
	 * @generated
571
	 * @generated
569
	 */
572
	 */
570
	protected void handleElementMoved(IEditorInput input, org.eclipse.emf.common.util.URI uri) {
573
	protected void handleElementMoved(IEditorInput input, URI uri) {
571
		if (input instanceof FileEditorInput) {
574
		if (input instanceof FileEditorInput) {
572
			IFile newFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(org.eclipse.emf.common.util.URI.decode(uri.path())).removeFirstSegments(1));
575
			IFile newFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(URI.decode(uri.path())).removeFirstSegments(1));
573
			fireElementMoved(input, newFile == null ? null : new FileEditorInput(newFile));
576
			fireElementMoved(input, newFile == null ? null : new FileEditorInput(newFile));
574
			return;
577
			return;
575
		}
578
		}
Lines 834-840 Link Here
834
			/**
837
			/**
835
			 * @generated
838
			 * @generated
836
			 */
839
			 */
837
			public boolean handleResourceMoved(Resource resource, final org.eclipse.emf.common.util.URI newURI) {
840
			public boolean handleResourceMoved(Resource resource, final URI newURI) {
838
				synchronized (ResourceSetInfo.this) {
841
				synchronized (ResourceSetInfo.this) {
839
					if (ResourceSetInfo.this.fCanBeSaved) {
842
					if (ResourceSetInfo.this.fCanBeSaved) {
840
						ResourceSetInfo.this.setUnSynchronized(resource);
843
						ResourceSetInfo.this.setUnSynchronized(resource);
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphDiagramEditorUtil.java (-25 / +28 lines)
Lines 31-42 Link Here
31
import org.eclipse.core.runtime.NullProgressMonitor;
31
import org.eclipse.core.runtime.NullProgressMonitor;
32
import org.eclipse.core.runtime.Path;
32
import org.eclipse.core.runtime.Path;
33
import org.eclipse.core.runtime.SubProgressMonitor;
33
import org.eclipse.core.runtime.SubProgressMonitor;
34
import org.eclipse.emf.common.util.URI;
34
import org.eclipse.emf.ecore.EObject;
35
import org.eclipse.emf.ecore.EObject;
35
import org.eclipse.emf.ecore.resource.Resource;
36
import org.eclipse.emf.ecore.resource.Resource;
36
import org.eclipse.emf.ecore.xmi.XMIResource;
37
import org.eclipse.emf.ecore.xmi.XMIResource;
37
import org.eclipse.emf.ecore.xmi.XMLResource;
38
import org.eclipse.emf.ecore.xmi.XMLResource;
38
import org.eclipse.emf.edit.ui.util.EditUIUtil;
39
import org.eclipse.emf.edit.ui.util.EditUIUtil;
39
import org.eclipse.emf.transaction.TransactionalEditingDomain;
40
import org.eclipse.emf.transaction.TransactionalEditingDomain;
41
import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
40
import org.eclipse.gef.EditPart;
42
import org.eclipse.gef.EditPart;
41
import org.eclipse.gmf.gmfgraph.Canvas;
43
import org.eclipse.gmf.gmfgraph.Canvas;
42
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
44
import org.eclipse.gmf.gmfgraph.GMFGraphFactory;
Lines 67-72 Link Here
67
	/**
69
	/**
68
	 * @generated
70
	 * @generated
69
	 */
71
	 */
72
	private static Map ourSaveOptions = null;
73
74
	/**
75
	 * @generated
76
	 */
77
	public static Map getSaveOptions() {
78
		if (ourSaveOptions == null) {
79
			ourSaveOptions = new HashMap();
80
			ourSaveOptions.put(XMIResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$
81
			ourSaveOptions.put(XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE);
82
			ourSaveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
83
		}
84
		return ourSaveOptions;
85
	}
86
87
	/**
88
	 * @generated
89
	 */
70
	public static boolean openDiagram(Resource diagram) throws PartInitException {
90
	public static boolean openDiagram(Resource diagram) throws PartInitException {
71
		return EditUIUtil.openEditor((EObject) diagram.getContents().get(0));
91
		return EditUIUtil.openEditor((EObject) diagram.getContents().get(0));
72
	}
92
	}
Lines 74-81 Link Here
74
	/**
94
	/**
75
	 * @generated
95
	 * @generated
76
	 */
96
	 */
77
	private static void setCharset(org.eclipse.emf.common.util.URI uri) {
97
	public static void setCharset(IFile file) {
78
		IFile file = getFile(uri);
79
		if (file == null) {
98
		if (file == null) {
80
			return;
99
			return;
81
		}
100
		}
Lines 89-108 Link Here
89
	/**
108
	/**
90
	 * @generated
109
	 * @generated
91
	 */
110
	 */
92
	public static IFile getFile(org.eclipse.emf.common.util.URI uri) {
93
		if (uri.toString().startsWith("platform:/resource")) { //$NON-NLS-1$
94
			String path = uri.toString().substring("platform:/resource".length()); //$NON-NLS-1$
95
			IResource workspaceResource = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
96
			if (workspaceResource instanceof IFile) {
97
				return (IFile) workspaceResource;
98
			}
99
		}
100
		return null;
101
	}
102
103
	/**
104
	 * @generated
105
	 */
106
	public static String getUniqueFileName(IPath containerFullPath, String fileName, String extension) {
111
	public static String getUniqueFileName(IPath containerFullPath, String fileName, String extension) {
107
		if (containerFullPath == null) {
112
		if (containerFullPath == null) {
108
			containerFullPath = new Path(""); //$NON-NLS-1$
113
			containerFullPath = new Path(""); //$NON-NLS-1$
Lines 149-161 Link Here
149
	 * This method should be called within a workspace modify operation since it creates resources.
154
	 * This method should be called within a workspace modify operation since it creates resources.
150
	 * @generated
155
	 * @generated
151
	 */
156
	 */
152
	public static Resource createDiagram(org.eclipse.emf.common.util.URI diagramURI, org.eclipse.emf.common.util.URI modelURI, IProgressMonitor progressMonitor) {
157
	public static Resource createDiagram(URI diagramURI, URI modelURI, IProgressMonitor progressMonitor) {
153
		TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
158
		TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
154
		progressMonitor.beginTask("Creating diagram and model files", 3);
159
		progressMonitor.beginTask(Messages.GMFGraphDiagramEditorUtil_CreateDiagramProgressTask, 3);
155
		final Resource diagramResource = editingDomain.getResourceSet().createResource(diagramURI);
160
		final Resource diagramResource = editingDomain.getResourceSet().createResource(diagramURI);
156
		final Resource modelResource = editingDomain.getResourceSet().createResource(modelURI);
161
		final Resource modelResource = editingDomain.getResourceSet().createResource(modelURI);
157
		final String diagramName = diagramURI.lastSegment();
162
		final String diagramName = diagramURI.lastSegment();
158
		AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain, "Creating diagram and model", Collections.EMPTY_LIST) { //$NON-NLS-1$
163
		AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain, Messages.GMFGraphDiagramEditorUtil_CreateDiagramCommandLabel, Collections.EMPTY_LIST) {
159
164
160
			protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
165
			protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
161
				Canvas model = createInitialModel();
166
				Canvas model = createInitialModel();
Lines 169-178 Link Here
169
				}
174
				}
170
175
171
				try {
176
				try {
172
					Map options = new HashMap();
177
					modelResource.save(org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorUtil.getSaveOptions());
173
					options.put(XMIResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$
178
					diagramResource.save(org.eclipse.gmf.graphdef.editor.part.GMFGraphDiagramEditorUtil.getSaveOptions());
174
					modelResource.save(options);
175
					diagramResource.save(options);
176
				} catch (IOException e) {
179
				} catch (IOException e) {
177
180
178
					GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to store model and diagram resources", e); //$NON-NLS-1$
181
					GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to store model and diagram resources", e); //$NON-NLS-1$
Lines 185-192 Link Here
185
		} catch (ExecutionException e) {
188
		} catch (ExecutionException e) {
186
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$
189
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$
187
		}
190
		}
188
		setCharset(modelURI);
191
		setCharset(WorkspaceSynchronizer.getFile(modelResource));
189
		setCharset(diagramURI);
192
		setCharset(WorkspaceSynchronizer.getFile(diagramResource));
190
		return diagramResource;
193
		return diagramResource;
191
	}
194
	}
192
195
(-)src/org/eclipse/gmf/graphdef/editor/part/Messages.java (-2 / +132 lines)
Lines 33-44 Link Here
33
	/**
33
	/**
34
	 * @generated
34
	 * @generated
35
	 */
35
	 */
36
	public static String DocumentProvider_isModifiable;
36
	public static String GMFGraphDiagramEditorUtil_OpenModelResourceErrorDialogTitle;
37
37
38
	/**
38
	/**
39
	 * @generated
39
	 * @generated
40
	 */
40
	 */
41
	public static String DocumentProvider_handleElementContentChanged;
41
	public static String GMFGraphDiagramEditorUtil_OpenModelResourceErrorDialogMessage;
42
43
	/**
44
	 * @generated
45
	 */
46
	public static String GMFGraphDiagramEditorUtil_CreateDiagramProgressTask;
47
48
	/**
49
	 * @generated
50
	 */
51
	public static String GMFGraphDiagramEditorUtil_CreateDiagramCommandLabel;
52
53
	/**
54
	 * @generated
55
	 */
56
	public static String GMFGraphDocumentProvider_isModifiable;
57
58
	/**
59
	 * @generated
60
	 */
61
	public static String GMFGraphDocumentProvider_handleElementContentChanged;
62
63
	/**
64
	 * @generated
65
	 */
66
	public static String GMFGraphDocumentProvider_IncorrectInputError;
67
68
	/**
69
	 * @generated
70
	 */
71
	public static String GMFGraphDocumentProvider_UnableToLoadResourceError;
72
73
	/**
74
	 * @generated
75
	 */
76
	public static String GMFGraphDocumentProvider_NoDiagramInResourceError;
77
78
	/**
79
	 * @generated
80
	 */
81
	public static String GMFGraphDocumentProvider_DiagramLoadingError;
82
83
	/**
84
	 * @generated
85
	 */
86
	public static String GMFGraphDocumentProvider_UnsynchronizedFileSaveError;
87
88
	/**
89
	 * @generated
90
	 */
91
	public static String GMFGraphDocumentProvider_SaveDiagramTask;
92
93
	/**
94
	 * @generated
95
	 */
96
	public static String GMFGraphDocumentProvider_SaveNextResourceTask;
97
98
	/**
99
	 * @generated
100
	 */
101
	public static String GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogTitle;
102
103
	/**
104
	 * @generated
105
	 */
106
	public static String GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogMessage;
107
108
	/**
109
	 * @generated
110
	 */
111
	public static String GMFGraphInitDiagramFileAction_InitDiagramFileWizardTitle;
112
113
	/**
114
	 * @generated
115
	 */
116
	public static String GMFGraphInitDiagramFileAction_OpenModelFileDialogTitle;
117
118
	/**
119
	 * @generated
120
	 */
121
	public static String GMFGraphNewDiagramFileWizard_CreationPageName;
122
123
	/**
124
	 * @generated
125
	 */
126
	public static String GMFGraphNewDiagramFileWizard_CreationPageTitle;
127
128
	/**
129
	 * @generated
130
	 */
131
	public static String GMFGraphNewDiagramFileWizard_CreationPageDescription;
132
133
	/**
134
	 * @generated
135
	 */
136
	public static String GMFGraphNewDiagramFileWizard_RootSelectionPageName;
137
138
	/**
139
	 * @generated
140
	 */
141
	public static String GMFGraphNewDiagramFileWizard_RootSelectionPageTitle;
142
143
	/**
144
	 * @generated
145
	 */
146
	public static String GMFGraphNewDiagramFileWizard_RootSelectionPageDescription;
147
148
	/**
149
	 * @generated
150
	 */
151
	public static String GMFGraphNewDiagramFileWizard_RootSelectionPageSelectionTitle;
152
153
	/**
154
	 * @generated
155
	 */
156
	public static String GMFGraphNewDiagramFileWizard_RootSelectionPageNoSelectionMessage;
157
158
	/**
159
	 * @generated
160
	 */
161
	public static String GMFGraphNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage;
162
163
	/**
164
	 * @generated
165
	 */
166
	public static String GMFGraphNewDiagramFileWizard_InitDiagramCommand;
167
168
	/**
169
	 * @generated
170
	 */
171
	public static String GMFGraphNewDiagramFileWizard_IncorrectRootError;
42
172
43
	/**
173
	/**
44
	 * @generated
174
	 * @generated
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphInitDiagramFileAction.java (-5 / +8 lines)
Lines 11-16 Link Here
11
package org.eclipse.gmf.graphdef.editor.part;
11
package org.eclipse.gmf.graphdef.editor.part;
12
12
13
import org.eclipse.core.resources.IFile;
13
import org.eclipse.core.resources.IFile;
14
import org.eclipse.emf.common.util.URI;
14
import org.eclipse.emf.common.util.WrappedException;
15
import org.eclipse.emf.common.util.WrappedException;
15
import org.eclipse.emf.ecore.EObject;
16
import org.eclipse.emf.ecore.EObject;
16
import org.eclipse.emf.ecore.resource.Resource;
17
import org.eclipse.emf.ecore.resource.Resource;
Lines 23-28 Link Here
23
import org.eclipse.jface.viewers.ISelection;
24
import org.eclipse.jface.viewers.ISelection;
24
import org.eclipse.jface.viewers.IStructuredSelection;
25
import org.eclipse.jface.viewers.IStructuredSelection;
25
import org.eclipse.jface.wizard.Wizard;
26
import org.eclipse.jface.wizard.Wizard;
27
import org.eclipse.osgi.util.NLS;
26
import org.eclipse.swt.widgets.Shell;
28
import org.eclipse.swt.widgets.Shell;
27
import org.eclipse.ui.IObjectActionDelegate;
29
import org.eclipse.ui.IObjectActionDelegate;
28
import org.eclipse.ui.IWorkbenchPart;
30
import org.eclipse.ui.IWorkbenchPart;
Lines 40-46 Link Here
40
	/**
42
	/**
41
	 * @generated
43
	 * @generated
42
	 */
44
	 */
43
	private org.eclipse.emf.common.util.URI domainModelURI;
45
	private URI domainModelURI;
44
46
45
	/**
47
	/**
46
	 * @generated
48
	 * @generated
Lines 59-65 Link Here
59
			return;
61
			return;
60
		}
62
		}
61
		IFile file = (IFile) ((IStructuredSelection) selection).getFirstElement();
63
		IFile file = (IFile) ((IStructuredSelection) selection).getFirstElement();
62
		domainModelURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(file.getFullPath().toString(), true);
64
		domainModelURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
63
		action.setEnabled(true);
65
		action.setEnabled(true);
64
	}
66
	}
65
67
Lines 81-94 Link Here
81
			Resource resource = resourceSet.getResource(domainModelURI, true);
83
			Resource resource = resourceSet.getResource(domainModelURI, true);
82
			diagramRoot = (EObject) resource.getContents().get(0);
84
			diagramRoot = (EObject) resource.getContents().get(0);
83
		} catch (WrappedException ex) {
85
		} catch (WrappedException ex) {
84
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + domainModelURI, ex);
86
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + domainModelURI, ex); //$NON-NLS-1$
85
		}
87
		}
86
		if (diagramRoot == null) {
88
		if (diagramRoot == null) {
87
			MessageDialog.openError(getShell(), "Error", "Model file loading failed");
89
			MessageDialog.openError(getShell(), Messages.GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogTitle,
90
					Messages.GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogMessage);
88
			return;
91
			return;
89
		}
92
		}
90
		Wizard wizard = new GMFGraphNewDiagramFileWizard(domainModelURI, diagramRoot, editingDomain);
93
		Wizard wizard = new GMFGraphNewDiagramFileWizard(domainModelURI, diagramRoot, editingDomain);
91
		wizard.setWindowTitle("Initialize new " + CanvasEditPart.MODEL_ID + " diagram file");
94
		wizard.setWindowTitle(NLS.bind(Messages.GMFGraphInitDiagramFileAction_InitDiagramFileWizardTitle, CanvasEditPart.MODEL_ID));
92
		GMFGraphDiagramEditorUtil.runWizard(getShell(), wizard, "InitDiagramFile"); //$NON-NLS-1$
95
		GMFGraphDiagramEditorUtil.runWizard(getShell(), wizard, "InitDiagramFile"); //$NON-NLS-1$
93
	}
96
	}
94
}
97
}
(-)src/org/eclipse/gmf/graphdef/editor/part/GMFGraphNewDiagramFileWizard.java (-20 / +18 lines)
Lines 24-29 Link Here
24
import org.eclipse.core.runtime.IProgressMonitor;
24
import org.eclipse.core.runtime.IProgressMonitor;
25
import org.eclipse.core.runtime.NullProgressMonitor;
25
import org.eclipse.core.runtime.NullProgressMonitor;
26
import org.eclipse.core.runtime.Path;
26
import org.eclipse.core.runtime.Path;
27
import org.eclipse.emf.common.util.URI;
27
import org.eclipse.emf.ecore.EObject;
28
import org.eclipse.emf.ecore.EObject;
28
import org.eclipse.emf.ecore.resource.Resource;
29
import org.eclipse.emf.ecore.resource.Resource;
29
import org.eclipse.emf.ecore.resource.ResourceSet;
30
import org.eclipse.emf.ecore.resource.ResourceSet;
Lines 37-42 Link Here
37
import org.eclipse.gmf.runtime.notation.Diagram;
38
import org.eclipse.gmf.runtime.notation.Diagram;
38
import org.eclipse.jface.viewers.StructuredSelection;
39
import org.eclipse.jface.viewers.StructuredSelection;
39
import org.eclipse.jface.wizard.Wizard;
40
import org.eclipse.jface.wizard.Wizard;
41
import org.eclipse.osgi.util.NLS;
40
import org.eclipse.ui.PartInitException;
42
import org.eclipse.ui.PartInitException;
41
import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
43
import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
42
44
Lines 63-76 Link Here
63
	/**
65
	/**
64
	 * @generated
66
	 * @generated
65
	 */
67
	 */
66
	public GMFGraphNewDiagramFileWizard(org.eclipse.emf.common.util.URI domainModelURI, EObject diagramRoot, TransactionalEditingDomain editingDomain) {
68
	public GMFGraphNewDiagramFileWizard(URI domainModelURI, EObject diagramRoot, TransactionalEditingDomain editingDomain) {
67
		assert domainModelURI != null : "Domain model uri must be specified"; //$NON-NLS-1$
69
		assert domainModelURI != null : "Domain model uri must be specified"; //$NON-NLS-1$
68
		assert diagramRoot != null : "Doagram root element must be specified"; //$NON-NLS-1$
70
		assert diagramRoot != null : "Doagram root element must be specified"; //$NON-NLS-1$
69
		assert editingDomain != null : "Editing domain must be specified"; //$NON-NLS-1$
71
		assert editingDomain != null : "Editing domain must be specified"; //$NON-NLS-1$
70
72
71
		myFileCreationPage = new WizardNewFileCreationPage("Initialize new diagram file", StructuredSelection.EMPTY);
73
		myFileCreationPage = new WizardNewFileCreationPage(Messages.GMFGraphNewDiagramFileWizard_CreationPageName, StructuredSelection.EMPTY);
72
		myFileCreationPage.setTitle("Diagram file");
74
		myFileCreationPage.setTitle(Messages.GMFGraphNewDiagramFileWizard_CreationPageTitle);
73
		myFileCreationPage.setDescription("Create new diagram based on " + CanvasEditPart.MODEL_ID + " model content");
75
		myFileCreationPage.setDescription(NLS.bind(Messages.GMFGraphNewDiagramFileWizard_CreationPageDescription, CanvasEditPart.MODEL_ID));
74
		IPath filePath;
76
		IPath filePath;
75
		String fileName = domainModelURI.trimFileExtension().lastSegment();
77
		String fileName = domainModelURI.trimFileExtension().lastSegment();
76
		if (domainModelURI.isPlatformResource()) {
78
		if (domainModelURI.isPlatformResource()) {
Lines 79-92 Link Here
79
			filePath = new Path(domainModelURI.trimSegments(1).toFileString());
81
			filePath = new Path(domainModelURI.trimSegments(1).toFileString());
80
		} else {
82
		} else {
81
			// TODO : use some default path
83
			// TODO : use some default path
82
			throw new IllegalArgumentException("Unsupported URI: " + domainModelURI);
84
			throw new IllegalArgumentException("Unsupported URI: " + domainModelURI); //$NON-NLS-1$
83
		}
85
		}
84
		myFileCreationPage.setContainerFullPath(filePath);
86
		myFileCreationPage.setContainerFullPath(filePath);
85
		myFileCreationPage.setFileName(GMFGraphDiagramEditorUtil.getUniqueFileName(filePath, fileName, "gmfgraph_diagram")); //$NON-NLS-1$
87
		myFileCreationPage.setFileName(GMFGraphDiagramEditorUtil.getUniqueFileName(filePath, fileName, "gmfgraph_diagram")); //$NON-NLS-1$
86
88
87
		diagramRootElementSelectionPage = new DiagramRootElementSelectionPage("Select diagram root element");
89
		diagramRootElementSelectionPage = new DiagramRootElementSelectionPage(Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageName);
88
		diagramRootElementSelectionPage.setTitle("Diagram root element");
90
		diagramRootElementSelectionPage.setTitle(Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageTitle);
89
		diagramRootElementSelectionPage.setDescription("Select semantic model element to be depicted on diagram");
91
		diagramRootElementSelectionPage.setDescription(Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageDescription);
90
		diagramRootElementSelectionPage.setModelElement(diagramRoot);
92
		diagramRootElementSelectionPage.setModelElement(diagramRoot);
91
93
92
		myEditingDomain = editingDomain;
94
		myEditingDomain = editingDomain;
Lines 106-126 Link Here
106
	public boolean performFinish() {
108
	public boolean performFinish() {
107
		List affectedFiles = new LinkedList();
109
		List affectedFiles = new LinkedList();
108
		IFile diagramFile = myFileCreationPage.createNewFile();
110
		IFile diagramFile = myFileCreationPage.createNewFile();
109
		try {
111
		GMFGraphDiagramEditorUtil.setCharset(diagramFile);
110
			diagramFile.setCharset("UTF-8", new NullProgressMonitor()); //$NON-NLS-1$
111
		} catch (CoreException e) {
112
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to set charset for diagram file", e); //$NON-NLS-1$
113
		}
114
		affectedFiles.add(diagramFile);
112
		affectedFiles.add(diagramFile);
115
		org.eclipse.emf.common.util.URI diagramModelURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true);
113
		URI diagramModelURI = URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true);
116
		ResourceSet resourceSet = myEditingDomain.getResourceSet();
114
		ResourceSet resourceSet = myEditingDomain.getResourceSet();
117
		final Resource diagramResource = resourceSet.createResource(diagramModelURI);
115
		final Resource diagramResource = resourceSet.createResource(diagramModelURI);
118
		AbstractTransactionalCommand command = new AbstractTransactionalCommand(myEditingDomain, "Initializing diagram contents", affectedFiles) { //$NON-NLS-1$
116
		AbstractTransactionalCommand command = new AbstractTransactionalCommand(myEditingDomain, Messages.GMFGraphNewDiagramFileWizard_InitDiagramCommand, affectedFiles) {
119
117
120
			protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
118
			protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
121
				int diagramVID = GMFGraphVisualIDRegistry.getDiagramVisualID(diagramRootElementSelectionPage.getModelElement());
119
				int diagramVID = GMFGraphVisualIDRegistry.getDiagramVisualID(diagramRootElementSelectionPage.getModelElement());
122
				if (diagramVID != CanvasEditPart.VISUAL_ID) {
120
				if (diagramVID != CanvasEditPart.VISUAL_ID) {
123
					return CommandResult.newErrorCommandResult("Incorrect model object stored as a root resource object"); //$NON-NLS-1$
121
					return CommandResult.newErrorCommandResult(Messages.GMFGraphNewDiagramFileWizard_IncorrectRootError);
124
				}
122
				}
125
				Diagram diagram = ViewService.createDiagram(diagramRootElementSelectionPage.getModelElement(), CanvasEditPart.MODEL_ID, GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
123
				Diagram diagram = ViewService.createDiagram(diagramRootElementSelectionPage.getModelElement(), CanvasEditPart.MODEL_ID, GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
126
				diagramResource.getContents().add(diagram);
124
				diagramResource.getContents().add(diagram);
Lines 129-135 Link Here
129
		};
127
		};
130
		try {
128
		try {
131
			OperationHistoryFactory.getOperationHistory().execute(command, new NullProgressMonitor(), null);
129
			OperationHistoryFactory.getOperationHistory().execute(command, new NullProgressMonitor(), null);
132
			diagramResource.save(Collections.EMPTY_MAP);
130
			diagramResource.save(GMFGraphDiagramEditorUtil.getSaveOptions());
133
			GMFGraphDiagramEditorUtil.openDiagram(diagramResource);
131
			GMFGraphDiagramEditorUtil.openDiagram(diagramResource);
134
		} catch (ExecutionException e) {
132
		} catch (ExecutionException e) {
135
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$
133
			GMFGraphDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$
Lines 157-163 Link Here
157
		 * @generated
155
		 * @generated
158
		 */
156
		 */
159
		protected String getSelectionTitle() {
157
		protected String getSelectionTitle() {
160
			return "Select diagram root element:";
158
			return Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageSelectionTitle;
161
		}
159
		}
162
160
163
		/**
161
		/**
Lines 165-176 Link Here
165
		 */
163
		 */
166
		protected boolean validatePage() {
164
		protected boolean validatePage() {
167
			if (selectedModelElement == null) {
165
			if (selectedModelElement == null) {
168
				setErrorMessage("Diagram root element is not selected");
166
				setErrorMessage(Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageNoSelectionMessage);
169
				return false;
167
				return false;
170
			}
168
			}
171
			boolean result = ViewService.getInstance().provides(
169
			boolean result = ViewService.getInstance().provides(
172
					new CreateDiagramViewOperation(new EObjectAdapter(selectedModelElement), CanvasEditPart.MODEL_ID, GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT));
170
					new CreateDiagramViewOperation(new EObjectAdapter(selectedModelElement), CanvasEditPart.MODEL_ID, GMFGraphDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT));
173
			setErrorMessage(result ? null : "Invalid diagram root element is selected");
171
			setErrorMessage(result ? null : Messages.GMFGraphNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage);
174
			return result;
172
			return result;
175
		}
173
		}
176
	}
174
	}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/Rectangle2ItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 82-101 Link Here
82
	 * @generated
82
	 * @generated
83
	 */
83
	 */
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
85
		CompoundCommand cc = new CompoundCommand();
85
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
86
		Collection allEdges = new ArrayList();
87
		View view = (View) getHost().getModel();
88
		allEdges.addAll(view.getSourceEdges());
89
		allEdges.addAll(view.getTargetEdges());
90
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
91
			Edge nextEdge = (Edge) it.next();
92
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
93
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((Rectangle2EditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
94
					Collections.EMPTY_MAP);
95
			cc.add(nextEditPart.getCommand(editCommandRequest));
96
		}
97
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
86
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
98
		return cc;
87
		return cc.unwrap();
99
	}
88
	}
100
89
101
	/**
90
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/Ellipse2ItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 82-101 Link Here
82
	 * @generated
82
	 * @generated
83
	 */
83
	 */
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
85
		CompoundCommand cc = new CompoundCommand();
85
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
86
		Collection allEdges = new ArrayList();
87
		View view = (View) getHost().getModel();
88
		allEdges.addAll(view.getSourceEdges());
89
		allEdges.addAll(view.getTargetEdges());
90
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
91
			Edge nextEdge = (Edge) it.next();
92
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
93
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((Ellipse2EditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
94
					Collections.EMPTY_MAP);
95
			cc.add(nextEditPart.getCommand(editCommandRequest));
96
		}
97
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
86
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
98
		return cc;
87
		return cc.unwrap();
99
	}
88
	}
100
89
101
	/**
90
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/Polyline2ItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 46-65 Link Here
46
	 * @generated
46
	 * @generated
47
	 */
47
	 */
48
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
48
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
49
		CompoundCommand cc = new CompoundCommand();
49
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
50
		Collection allEdges = new ArrayList();
51
		View view = (View) getHost().getModel();
52
		allEdges.addAll(view.getSourceEdges());
53
		allEdges.addAll(view.getTargetEdges());
54
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
55
			Edge nextEdge = (Edge) it.next();
56
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
57
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((Polyline2EditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
58
					Collections.EMPTY_MAP);
59
			cc.add(nextEditPart.getCommand(editCommandRequest));
60
		}
61
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
50
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
62
		return cc;
51
		return cc.unwrap();
63
	}
52
	}
64
53
65
	/**
54
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/PolylineItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 46-65 Link Here
46
	 * @generated
46
	 * @generated
47
	 */
47
	 */
48
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
48
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
49
		CompoundCommand cc = new CompoundCommand();
49
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
50
		Collection allEdges = new ArrayList();
51
		View view = (View) getHost().getModel();
52
		allEdges.addAll(view.getSourceEdges());
53
		allEdges.addAll(view.getTargetEdges());
54
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
55
			Edge nextEdge = (Edge) it.next();
56
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
57
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((PolylineEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
58
					Collections.EMPTY_MAP);
59
			cc.add(nextEditPart.getCommand(editCommandRequest));
60
		}
61
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
50
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
62
		return cc;
51
		return cc.unwrap();
63
	}
52
	}
64
53
65
	/**
54
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangle2ItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 82-101 Link Here
82
	 * @generated
82
	 * @generated
83
	 */
83
	 */
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
85
		CompoundCommand cc = new CompoundCommand();
85
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
86
		Collection allEdges = new ArrayList();
87
		View view = (View) getHost().getModel();
88
		allEdges.addAll(view.getSourceEdges());
89
		allEdges.addAll(view.getTargetEdges());
90
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
91
			Edge nextEdge = (Edge) it.next();
92
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
93
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((RoundedRectangle2EditPart) getHost()).getEditingDomain(), req
94
					.isConfirmationRequired()), Collections.EMPTY_MAP);
95
			cc.add(nextEditPart.getCommand(editCommandRequest));
96
		}
97
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
86
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
98
		return cc;
87
		return cc.unwrap();
99
	}
88
	}
100
89
101
	/**
90
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/FigureGalleryItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 36-53 Link Here
36
	 * @generated
36
	 * @generated
37
	 */
37
	 */
38
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
38
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
39
		CompoundCommand cc = new CompoundCommand();
39
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
40
		Collection allEdges = new ArrayList();
41
		View view = (View) getHost().getModel();
42
		allEdges.addAll(view.getSourceEdges());
43
		allEdges.addAll(view.getTargetEdges());
44
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
45
			Edge nextEdge = (Edge) it.next();
46
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
47
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(
48
					new DestroyElementRequest(((FigureGalleryEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()), Collections.EMPTY_MAP);
49
			cc.add(nextEditPart.getCommand(editCommandRequest));
50
		}
51
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
40
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
52
41
53
			protected EObject getElementToDestroy() {
42
			protected EObject getElementToDestroy() {
Lines 60-65 Link Here
60
			}
49
			}
61
50
62
		}));
51
		}));
63
		return cc;
52
		return cc.unwrap();
64
	}
53
	}
65
}
54
}
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/RectangleItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 82-101 Link Here
82
	 * @generated
82
	 * @generated
83
	 */
83
	 */
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
85
		CompoundCommand cc = new CompoundCommand();
85
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
86
		Collection allEdges = new ArrayList();
87
		View view = (View) getHost().getModel();
88
		allEdges.addAll(view.getSourceEdges());
89
		allEdges.addAll(view.getTargetEdges());
90
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
91
			Edge nextEdge = (Edge) it.next();
92
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
93
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((RectangleEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
94
					Collections.EMPTY_MAP);
95
			cc.add(nextEditPart.getCommand(editCommandRequest));
96
		}
97
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
86
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
98
		return cc;
87
		return cc.unwrap();
99
	}
88
	}
100
89
101
	/**
90
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/ConnectionItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 43-60 Link Here
43
	 * @generated
43
	 * @generated
44
	 */
44
	 */
45
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
45
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
46
		CompoundCommand cc = new CompoundCommand();
46
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
47
		Collection allEdges = new ArrayList();
48
		View view = (View) getHost().getModel();
49
		allEdges.addAll(view.getSourceEdges());
50
		allEdges.addAll(view.getTargetEdges());
51
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
52
			Edge nextEdge = (Edge) it.next();
53
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
54
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((ConnectionEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
55
					Collections.EMPTY_MAP);
56
			cc.add(nextEditPart.getCommand(editCommandRequest));
57
		}
58
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
47
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
59
48
60
			protected EObject getElementToDestroy() {
49
			protected EObject getElementToDestroy() {
Lines 67-73 Link Here
67
			}
56
			}
68
57
69
		}));
58
		}));
70
		return cc;
59
		return cc.unwrap();
71
	}
60
	}
72
61
73
	/**
62
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/RoundedRectangleItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 82-101 Link Here
82
	 * @generated
82
	 * @generated
83
	 */
83
	 */
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
85
		CompoundCommand cc = new CompoundCommand();
85
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
86
		Collection allEdges = new ArrayList();
87
		View view = (View) getHost().getModel();
88
		allEdges.addAll(view.getSourceEdges());
89
		allEdges.addAll(view.getTargetEdges());
90
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
91
			Edge nextEdge = (Edge) it.next();
92
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
93
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((RoundedRectangleEditPart) getHost()).getEditingDomain(), req
94
					.isConfirmationRequired()), Collections.EMPTY_MAP);
95
			cc.add(nextEditPart.getCommand(editCommandRequest));
96
		}
97
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
86
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
98
		return cc;
87
		return cc.unwrap();
99
	}
88
	}
100
89
101
	/**
90
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/NodeItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 43-60 Link Here
43
	 * @generated
43
	 * @generated
44
	 */
44
	 */
45
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
45
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
46
		CompoundCommand cc = new CompoundCommand();
46
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
47
		Collection allEdges = new ArrayList();
48
		View view = (View) getHost().getModel();
49
		allEdges.addAll(view.getSourceEdges());
50
		allEdges.addAll(view.getTargetEdges());
51
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
52
			Edge nextEdge = (Edge) it.next();
53
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
54
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((NodeEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
55
					Collections.EMPTY_MAP);
56
			cc.add(nextEditPart.getCommand(editCommandRequest));
57
		}
58
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
47
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
59
48
60
			protected EObject getElementToDestroy() {
49
			protected EObject getElementToDestroy() {
Lines 67-73 Link Here
67
			}
56
			}
68
57
69
		}));
58
		}));
70
		return cc;
59
		return cc.unwrap();
71
	}
60
	}
72
61
73
	/**
62
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/EllipseItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 82-101 Link Here
82
	 * @generated
82
	 * @generated
83
	 */
83
	 */
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
84
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
85
		CompoundCommand cc = new CompoundCommand();
85
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
86
		Collection allEdges = new ArrayList();
87
		View view = (View) getHost().getModel();
88
		allEdges.addAll(view.getSourceEdges());
89
		allEdges.addAll(view.getTargetEdges());
90
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
91
			Edge nextEdge = (Edge) it.next();
92
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
93
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((EllipseEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
94
					Collections.EMPTY_MAP);
95
			cc.add(nextEditPart.getCommand(editCommandRequest));
96
		}
97
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
86
		cc.add(getMSLWrapper(new DestroyElementCommand(req)));
98
		return cc;
87
		return cc.unwrap();
99
	}
88
	}
100
89
101
	/**
90
	/**
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/GMFGraphBaseItemSemanticEditPolicy.java (-1 / +51 lines)
Lines 10-20 Link Here
10
 */
10
 */
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
11
package org.eclipse.gmf.graphdef.editor.edit.policies;
12
12
13
import java.util.Collections;
14
import java.util.Iterator;
13
import org.eclipse.emf.ecore.EClass;
15
import org.eclipse.emf.ecore.EClass;
14
import org.eclipse.emf.ecore.EObject;
16
import org.eclipse.emf.ecore.EObject;
15
import org.eclipse.emf.transaction.TransactionalEditingDomain;
17
import org.eclipse.emf.transaction.TransactionalEditingDomain;
18
import org.eclipse.gef.EditPart;
16
import org.eclipse.gef.Request;
19
import org.eclipse.gef.Request;
17
import org.eclipse.gef.commands.Command;
20
import org.eclipse.gef.commands.Command;
21
import org.eclipse.gef.commands.CompoundCommand;
18
import org.eclipse.gef.commands.UnexecutableCommand;
22
import org.eclipse.gef.commands.UnexecutableCommand;
19
import org.eclipse.gef.requests.ReconnectRequest;
23
import org.eclipse.gef.requests.ReconnectRequest;
20
import org.eclipse.gmf.gmfgraph.DiagramElement;
24
import org.eclipse.gmf.gmfgraph.DiagramElement;
Lines 28-33 Link Here
28
import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
32
import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
29
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
33
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
30
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.SemanticEditPolicy;
34
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.SemanticEditPolicy;
35
import org.eclipse.gmf.runtime.diagram.ui.requests.EditCommandRequestWrapper;
31
import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
36
import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
32
import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
37
import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
33
import org.eclipse.gmf.runtime.emf.type.core.IEditHelperContext;
38
import org.eclipse.gmf.runtime.emf.type.core.IEditHelperContext;
Lines 45-50 Link Here
45
import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
50
import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
46
import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
51
import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
47
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
52
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
53
import org.eclipse.gmf.runtime.notation.Edge;
48
import org.eclipse.gmf.runtime.notation.View;
54
import org.eclipse.gmf.runtime.notation.View;
49
55
50
/**
56
/**
Lines 278-286 Link Here
278
	}
284
	}
279
285
280
	/**
286
	/**
287
	 * Returns editing domain from the host edit part.
288
	 * 
281
	 * @generated
289
	 * @generated
282
	 */
290
	 */
283
	protected static class LinkConstraints {
291
	protected TransactionalEditingDomain getEditingDomain() {
292
		return ((IGraphicalEditPart) getHost()).getEditingDomain();
293
	}
294
295
	/**
296
	 * Creates command to destroy the link.
297
	 * 
298
	 * @generated
299
	 */
300
	protected Command getDestroyEdgeCommand(Edge edge, boolean confirm) {
301
		EditPart editPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(edge);
302
		DestroyElementRequest request = new DestroyElementRequest(getEditingDomain(), confirm);
303
		return editPart.getCommand(new EditCommandRequestWrapper(request, Collections.EMPTY_MAP));
304
	}
305
306
	/**
307
	 * Creates commands to destroy all host incoming and outgoing links.
308
	 * 
309
	 * @generated
310
	 */
311
	protected CompoundCommand getDestroyEdgesCommand(boolean confirm) {
312
		CompoundCommand cmd = new CompoundCommand();
313
		View view = (View) getHost().getModel();
314
		for (Iterator it = view.getSourceEdges().iterator(); it.hasNext();) {
315
			cmd.add(getDestroyEdgeCommand((Edge) it.next(), confirm));
316
		}
317
		for (Iterator it = view.getTargetEdges().iterator(); it.hasNext();) {
318
			cmd.add(getDestroyEdgeCommand((Edge) it.next(), confirm));
319
		}
320
		return cmd;
321
	}
322
323
	/**
324
	 * @generated
325
	 */
326
	public static class LinkConstraints {
284
327
285
		/**
328
		/**
286
		 * @generated
329
		 * @generated
Lines 291-296 Link Here
291
					return false;
334
					return false;
292
				}
335
				}
293
			}
336
			}
337
			return canExistDiagramElementFigure_4001(source, target);
338
		}
339
340
		/**
341
		 * @generated
342
		 */
343
		public static boolean canExistDiagramElementFigure_4001(DiagramElement source, FigureHandle target) {
294
			return true;
344
			return true;
295
		}
345
		}
296
346
(-)src/org/eclipse/gmf/graphdef/editor/edit/policies/CompartmentItemSemanticEditPolicy.java (-13 / +2 lines)
Lines 43-60 Link Here
43
	 * @generated
43
	 * @generated
44
	 */
44
	 */
45
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
45
	protected Command getDestroyElementCommand(DestroyElementRequest req) {
46
		CompoundCommand cc = new CompoundCommand();
46
		CompoundCommand cc = getDestroyEdgesCommand(req.isConfirmationRequired());
47
		Collection allEdges = new ArrayList();
48
		View view = (View) getHost().getModel();
49
		allEdges.addAll(view.getSourceEdges());
50
		allEdges.addAll(view.getTargetEdges());
51
		for (Iterator it = allEdges.iterator(); it.hasNext();) {
52
			Edge nextEdge = (Edge) it.next();
53
			EditPart nextEditPart = (EditPart) getHost().getViewer().getEditPartRegistry().get(nextEdge);
54
			EditCommandRequestWrapper editCommandRequest = new EditCommandRequestWrapper(new DestroyElementRequest(((CompartmentEditPart) getHost()).getEditingDomain(), req.isConfirmationRequired()),
55
					Collections.EMPTY_MAP);
56
			cc.add(nextEditPart.getCommand(editCommandRequest));
57
		}
58
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
47
		cc.add(getMSLWrapper(new DestroyElementCommand(req) {
59
48
60
			protected EObject getElementToDestroy() {
49
			protected EObject getElementToDestroy() {
Lines 67-73 Link Here
67
			}
56
			}
68
57
69
		}));
58
		}));
70
		return cc;
59
		return cc.unwrap();
71
	}
60
	}
72
61
73
	/**
62
	/**
(-)src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphNavigatorContentProvider.java (-2 / +3 lines)
Lines 18-23 Link Here
18
18
19
import org.eclipse.core.resources.IFile;
19
import org.eclipse.core.resources.IFile;
20
import org.eclipse.core.runtime.IAdaptable;
20
import org.eclipse.core.runtime.IAdaptable;
21
import org.eclipse.emf.common.util.URI;
21
import org.eclipse.emf.ecore.resource.Resource;
22
import org.eclipse.emf.ecore.resource.Resource;
22
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
23
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
23
import org.eclipse.emf.transaction.TransactionalEditingDomain;
24
import org.eclipse.emf.transaction.TransactionalEditingDomain;
Lines 128-134 Link Here
128
				return true;
129
				return true;
129
			}
130
			}
130
131
131
			public boolean handleResourceMoved(Resource resource, final org.eclipse.emf.common.util.URI newURI) {
132
			public boolean handleResourceMoved(Resource resource, final URI newURI) {
132
				for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) {
133
				for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) {
133
					Resource nextResource = (Resource) it.next();
134
					Resource nextResource = (Resource) it.next();
134
					nextResource.unload();
135
					nextResource.unload();
Lines 194-200 Link Here
194
	public Object[] getChildren(Object parentElement) {
195
	public Object[] getChildren(Object parentElement) {
195
		if (parentElement instanceof IFile) {
196
		if (parentElement instanceof IFile) {
196
			IFile file = (IFile) parentElement;
197
			IFile file = (IFile) parentElement;
197
			org.eclipse.emf.common.util.URI fileURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(file.getFullPath().toString(), true);
198
			URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
198
			Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true);
199
			Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true);
199
			Collection result = new ArrayList();
200
			Collection result = new ArrayList();
200
			result.addAll(createNavigatorItems(selectViewsByType(resource.getContents(), CanvasEditPart.MODEL_ID), file, false));
201
			result.addAll(createNavigatorItems(selectViewsByType(resource.getContents(), CanvasEditPart.MODEL_ID), file, false));
(-)src/org/eclipse/gmf/graphdef/editor/navigator/GMFGraphDomainNavigatorContentProvider.java (-2 / +3 lines)
Lines 16-21 Link Here
16
import java.util.Iterator;
16
import java.util.Iterator;
17
17
18
import org.eclipse.core.resources.IFile;
18
import org.eclipse.core.resources.IFile;
19
import org.eclipse.emf.common.util.URI;
19
import org.eclipse.emf.ecore.EObject;
20
import org.eclipse.emf.ecore.EObject;
20
import org.eclipse.emf.ecore.resource.Resource;
21
import org.eclipse.emf.ecore.resource.Resource;
21
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
22
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
Lines 115-121 Link Here
115
				return true;
116
				return true;
116
			}
117
			}
117
118
118
			public boolean handleResourceMoved(Resource resource, final org.eclipse.emf.common.util.URI newURI) {
119
			public boolean handleResourceMoved(Resource resource, final URI newURI) {
119
				for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) {
120
				for (Iterator it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) {
120
					Resource nextResource = (Resource) it.next();
121
					Resource nextResource = (Resource) it.next();
121
					nextResource.unload();
122
					nextResource.unload();
Lines 181-187 Link Here
181
	public Object[] getChildren(Object parentElement) {
182
	public Object[] getChildren(Object parentElement) {
182
		if (parentElement instanceof IFile) {
183
		if (parentElement instanceof IFile) {
183
			IFile file = (IFile) parentElement;
184
			IFile file = (IFile) parentElement;
184
			org.eclipse.emf.common.util.URI fileURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(file.getFullPath().toString(), true);
185
			URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
185
			Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true);
186
			Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true);
186
			return wrapEObjects(myAdapterFctoryContentProvier.getChildren(resource), parentElement);
187
			return wrapEObjects(myAdapterFctoryContentProvier.getChildren(resource), parentElement);
187
		}
188
		}
(-)messages.properties (+28 lines)
Lines 46-48 Link Here
46
NavigatorGroupName_DiagramElementFigure_4001_target=target
46
NavigatorGroupName_DiagramElementFigure_4001_target=target
47
DocumentProvider_isModifiable=DocumentProvider_isModifiable
47
DocumentProvider_isModifiable=DocumentProvider_isModifiable
48
DocumentProvider_handleElementContentChanged=DocumentProvider_handleElementContentChanged
48
DocumentProvider_handleElementContentChanged=DocumentProvider_handleElementContentChanged
49
GMFGraphDiagramEditorUtil_OpenModelResourceErrorDialogTitle=Error
50
GMFGraphDiagramEditorUtil_OpenModelResourceErrorDialogMessage=Failed to load model file {0}
51
GMFGraphDiagramEditorUtil_CreateDiagramProgressTask=Creating diagram and model files
52
GMFGraphDiagramEditorUtil_CreateDiagramCommandLabel=Creating diagram and model
53
GMFGraphDocumentProvider_isModifiable=Updating cache failed
54
GMFGraphDocumentProvider_handleElementContentChanged=Failed to refresh hierarchy for changed resource
55
GMFGraphDocumentProvider_IncorrectInputError={1}
56
GMFGraphDocumentProvider_UnableToLoadResourceError=Unable to load diagram resource
57
GMFGraphDocumentProvider_NoDiagramInResourceError=Diagram is not present in resource
58
GMFGraphDocumentProvider_DiagramLoadingError=Error loading diagram
59
GMFGraphDocumentProvider_UnsynchronizedFileSaveError=The file has been changed on the file system
60
GMFGraphDocumentProvider_SaveDiagramTask=Saving diagram
61
GMFGraphDocumentProvider_SaveNextResourceTask=Saving {0}
62
GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogTitle=Error
63
GMFGraphInitDiagramFileAction_InitDiagramFileResourceErrorDialogMessage=Model file loading failed
64
GMFGraphInitDiagramFileAction_InitDiagramFileWizardTitle=Initialize new {0} diagram file
65
GMFGraphInitDiagramFileAction_OpenModelFileDialogTitle=Select domain model
66
GMFGraphNewDiagramFileWizard_CreationPageName=Initialize new diagram file
67
GMFGraphNewDiagramFileWizard_CreationPageTitle=Diagram file
68
GMFGraphNewDiagramFileWizard_CreationPageDescription=Create new diagram based on {0} model content
69
GMFGraphNewDiagramFileWizard_RootSelectionPageName=Select diagram root element
70
GMFGraphNewDiagramFileWizard_RootSelectionPageTitle=Diagram root element
71
GMFGraphNewDiagramFileWizard_RootSelectionPageDescription=Select semantic model element to be depicted on diagram
72
GMFGraphNewDiagramFileWizard_RootSelectionPageSelectionTitle=Select diagram root element:
73
GMFGraphNewDiagramFileWizard_RootSelectionPageNoSelectionMessage=Diagram root element is not selected
74
GMFGraphNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage=Invalid diagram root element is selected
75
GMFGraphNewDiagramFileWizard_InitDiagramCommand=Initializing diagram contents
76
GMFGraphNewDiagramFileWizard_IncorrectRootError=Incorrect model object stored as a root resource object
(-)META-INF/MANIFEST.MF (-2 / +2 lines)
Lines 21-26 Link Here
21
 org.eclipse.emf.ecore.xmi,
21
 org.eclipse.emf.ecore.xmi,
22
 org.eclipse.emf.edit.ui,
22
 org.eclipse.emf.edit.ui,
23
 org.eclipse.gef;visibility:=reexport,
23
 org.eclipse.gef;visibility:=reexport,
24
 org.eclipse.gmf.codegen,
24
 org.eclipse.gmf.runtime.emf.core,
25
 org.eclipse.gmf.runtime.emf.core,
25
 org.eclipse.gmf.runtime.emf.commands.core,
26
 org.eclipse.gmf.runtime.emf.commands.core,
26
 org.eclipse.gmf.runtime.emf.ui.properties,
27
 org.eclipse.gmf.runtime.emf.ui.properties,
Lines 35-41 Link Here
35
 org.eclipse.gmf.graphdef;visibility:=reexport,
36
 org.eclipse.gmf.graphdef;visibility:=reexport,
36
 org.eclipse.gmf.graphdef.edit;visibility:=reexport,
37
 org.eclipse.gmf.graphdef.edit;visibility:=reexport,
37
 org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport,
38
 org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport,
38
 org.eclipse.draw2d;visibility:=reexport,
39
 org.eclipse.draw2d;visibility:=reexport
39
 org.eclipse.gmf.codegen
40
Eclipse-LazyStart: true
40
Eclipse-LazyStart: true
41
Bundle-RequiredExecutionEnvironment: J2SE-1.4
41
Bundle-RequiredExecutionEnvironment: J2SE-1.4
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/RectangleEditPart.java (+9 lines)
Lines 18-27 Link Here
18
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
19
import org.eclipse.core.runtime.NullProgressMonitor;
19
import org.eclipse.core.runtime.NullProgressMonitor;
20
import org.eclipse.core.runtime.Status;
20
import org.eclipse.core.runtime.Status;
21
import org.eclipse.draw2d.CompoundBorder;
21
import org.eclipse.draw2d.Figure;
22
import org.eclipse.draw2d.Figure;
22
import org.eclipse.draw2d.FreeformLayout;
23
import org.eclipse.draw2d.FreeformLayout;
23
import org.eclipse.draw2d.IFigure;
24
import org.eclipse.draw2d.IFigure;
24
import org.eclipse.draw2d.LayoutManager;
25
import org.eclipse.draw2d.LayoutManager;
26
import org.eclipse.draw2d.LineBorder;
27
import org.eclipse.draw2d.MarginBorder;
25
import org.eclipse.draw2d.StackLayout;
28
import org.eclipse.draw2d.StackLayout;
26
import org.eclipse.draw2d.geometry.Point;
29
import org.eclipse.draw2d.geometry.Point;
27
import org.eclipse.draw2d.geometry.Rectangle;
30
import org.eclipse.draw2d.geometry.Rectangle;
Lines 58-63 Link Here
58
import org.eclipse.gmf.runtime.notation.Node;
61
import org.eclipse.gmf.runtime.notation.Node;
59
import org.eclipse.gmf.runtime.notation.NotationPackage;
62
import org.eclipse.gmf.runtime.notation.NotationPackage;
60
import org.eclipse.gmf.runtime.notation.View;
63
import org.eclipse.gmf.runtime.notation.View;
64
import org.eclipse.swt.SWT;
65
import org.eclipse.swt.widgets.Display;
61
66
62
/**
67
/**
63
 * @generated
68
 * @generated
Lines 179-184 Link Here
179
	 */
184
	 */
180
	protected NodeFigure createNodePlate() {
185
	protected NodeFigure createNodePlate() {
181
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
186
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
187
		LineBorder contourBorder = new LineBorder(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));
188
		MarginBorder marginBorder = new MarginBorder(5);
189
		CompoundBorder compoundBorder = new CompoundBorder(contourBorder, marginBorder);
190
		result.setBorder(compoundBorder);
182
		myNodeFigure = result;
191
		myNodeFigure = result;
183
		return result;
192
		return result;
184
	}
193
	}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/RoundedRectangle2EditPart.java (+9 lines)
Lines 18-27 Link Here
18
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
19
import org.eclipse.core.runtime.NullProgressMonitor;
19
import org.eclipse.core.runtime.NullProgressMonitor;
20
import org.eclipse.core.runtime.Status;
20
import org.eclipse.core.runtime.Status;
21
import org.eclipse.draw2d.CompoundBorder;
21
import org.eclipse.draw2d.Figure;
22
import org.eclipse.draw2d.Figure;
22
import org.eclipse.draw2d.FreeformLayout;
23
import org.eclipse.draw2d.FreeformLayout;
23
import org.eclipse.draw2d.IFigure;
24
import org.eclipse.draw2d.IFigure;
24
import org.eclipse.draw2d.LayoutManager;
25
import org.eclipse.draw2d.LayoutManager;
26
import org.eclipse.draw2d.LineBorder;
27
import org.eclipse.draw2d.MarginBorder;
25
import org.eclipse.draw2d.StackLayout;
28
import org.eclipse.draw2d.StackLayout;
26
import org.eclipse.draw2d.geometry.Dimension;
29
import org.eclipse.draw2d.geometry.Dimension;
27
import org.eclipse.draw2d.geometry.Point;
30
import org.eclipse.draw2d.geometry.Point;
Lines 59-64 Link Here
59
import org.eclipse.gmf.runtime.notation.Node;
62
import org.eclipse.gmf.runtime.notation.Node;
60
import org.eclipse.gmf.runtime.notation.NotationPackage;
63
import org.eclipse.gmf.runtime.notation.NotationPackage;
61
import org.eclipse.gmf.runtime.notation.View;
64
import org.eclipse.gmf.runtime.notation.View;
65
import org.eclipse.swt.SWT;
66
import org.eclipse.swt.widgets.Display;
62
67
63
/**
68
/**
64
 * @generated
69
 * @generated
Lines 186-191 Link Here
186
	 */
191
	 */
187
	protected NodeFigure createNodePlate() {
192
	protected NodeFigure createNodePlate() {
188
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
193
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
194
		LineBorder contourBorder = new LineBorder(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));
195
		MarginBorder marginBorder = new MarginBorder(5);
196
		CompoundBorder compoundBorder = new CompoundBorder(contourBorder, marginBorder);
197
		result.setBorder(compoundBorder);
189
		myNodeFigure = result;
198
		myNodeFigure = result;
190
		return result;
199
		return result;
191
	}
200
	}
(-)src/org/eclipse/gmf/graphdef/editor/edit/parts/Ellipse2EditPart.java (+9 lines)
Lines 18-27 Link Here
18
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
19
import org.eclipse.core.runtime.NullProgressMonitor;
19
import org.eclipse.core.runtime.NullProgressMonitor;
20
import org.eclipse.core.runtime.Status;
20
import org.eclipse.core.runtime.Status;
21
import org.eclipse.draw2d.CompoundBorder;
21
import org.eclipse.draw2d.Figure;
22
import org.eclipse.draw2d.Figure;
22
import org.eclipse.draw2d.FreeformLayout;
23
import org.eclipse.draw2d.FreeformLayout;
23
import org.eclipse.draw2d.IFigure;
24
import org.eclipse.draw2d.IFigure;
24
import org.eclipse.draw2d.LayoutManager;
25
import org.eclipse.draw2d.LayoutManager;
26
import org.eclipse.draw2d.LineBorder;
27
import org.eclipse.draw2d.MarginBorder;
25
import org.eclipse.draw2d.StackLayout;
28
import org.eclipse.draw2d.StackLayout;
26
import org.eclipse.draw2d.geometry.Point;
29
import org.eclipse.draw2d.geometry.Point;
27
import org.eclipse.draw2d.geometry.Rectangle;
30
import org.eclipse.draw2d.geometry.Rectangle;
Lines 59-64 Link Here
59
import org.eclipse.gmf.runtime.notation.Node;
62
import org.eclipse.gmf.runtime.notation.Node;
60
import org.eclipse.gmf.runtime.notation.NotationPackage;
63
import org.eclipse.gmf.runtime.notation.NotationPackage;
61
import org.eclipse.gmf.runtime.notation.View;
64
import org.eclipse.gmf.runtime.notation.View;
65
import org.eclipse.swt.SWT;
66
import org.eclipse.swt.widgets.Display;
62
67
63
/**
68
/**
64
 * @generated
69
 * @generated
Lines 180-185 Link Here
180
	 */
185
	 */
181
	protected NodeFigure createNodePlate() {
186
	protected NodeFigure createNodePlate() {
182
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
187
		DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0));
188
		LineBorder contourBorder = new LineBorder(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));
189
		MarginBorder marginBorder = new MarginBorder(5);
190
		CompoundBorder compoundBorder = new CompoundBorder(contourBorder, marginBorder);
191
		result.setBorder(compoundBorder);
183
		myNodeFigure = result;
192
		myNodeFigure = result;
184
		return result;
193
		return result;
185
	}
194
	}
(-)src/org/eclipse/gmf/graphdef/editor/edit/commands/DiagramElementFigureReorientCommand.java (-14 / +55 lines)
Lines 16-21 Link Here
16
import org.eclipse.emf.ecore.EObject;
16
import org.eclipse.emf.ecore.EObject;
17
import org.eclipse.gmf.gmfgraph.DiagramElement;
17
import org.eclipse.gmf.gmfgraph.DiagramElement;
18
import org.eclipse.gmf.gmfgraph.FigureHandle;
18
import org.eclipse.gmf.gmfgraph.FigureHandle;
19
import org.eclipse.gmf.graphdef.editor.edit.policies.GMFGraphBaseItemSemanticEditPolicy;
19
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
20
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
20
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
21
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
21
import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
22
import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
Lines 65-74 Link Here
65
			return false;
66
			return false;
66
		}
67
		}
67
		if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
68
		if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
68
			return oldEnd instanceof FigureHandle && newEnd instanceof DiagramElement;
69
			return canReorientSource();
69
		}
70
		}
70
		if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
71
		if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
71
			return oldEnd instanceof FigureHandle && newEnd instanceof FigureHandle;
72
			return canReorientTarget();
72
		}
73
		}
73
		return false;
74
		return false;
74
	}
75
	}
Lines 76-81 Link Here
76
	/**
77
	/**
77
	 * @generated
78
	 * @generated
78
	 */
79
	 */
80
	protected boolean canReorientSource() {
81
		if (!(oldEnd instanceof FigureHandle && newEnd instanceof DiagramElement)) {
82
			return false;
83
		}
84
		return GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canExistDiagramElementFigure_4001(getNewSource(), getOldTarget());
85
	}
86
87
	/**
88
	 * @generated
89
	 */
90
	protected boolean canReorientTarget() {
91
		if (!(oldEnd instanceof FigureHandle && newEnd instanceof FigureHandle)) {
92
			return false;
93
		}
94
		return GMFGraphBaseItemSemanticEditPolicy.LinkConstraints.canExistDiagramElementFigure_4001(getOldSource(), getNewTarget());
95
	}
96
97
	/**
98
	 * @generated
99
	 */
79
	protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
100
	protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
80
		if (!canExecute()) {
101
		if (!canExecute()) {
81
			throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$
102
			throw new ExecutionException("Invalid arguments in reorient link command"); //$NON-NLS-1$
Lines 92-116 Link Here
92
	/**
113
	/**
93
	 * @generated
114
	 * @generated
94
	 */
115
	 */
95
	private CommandResult reorientSource() throws ExecutionException {
116
	protected CommandResult reorientSource() throws ExecutionException {
96
		DiagramElement oldSource = (DiagramElement) referenceOwner;
117
		getOldSource().setFigure(null);
97
		DiagramElement newSource = (DiagramElement) newEnd;
118
		getNewSource().setFigure(getOldTarget());
98
		FigureHandle target = (FigureHandle) oldEnd;
119
		return CommandResult.newOKCommandResult(referenceOwner);
120
	}
99
121
100
		oldSource.setFigure(null);
122
	/**
101
		newSource.setFigure(target);
123
	 * @generated
124
	 */
125
	protected CommandResult reorientTarget() throws ExecutionException {
126
		getOldSource().setFigure(getNewTarget());
102
		return CommandResult.newOKCommandResult(referenceOwner);
127
		return CommandResult.newOKCommandResult(referenceOwner);
103
	}
128
	}
104
129
105
	/**
130
	/**
106
	 * @generated
131
	 * @generated
107
	 */
132
	 */
108
	private CommandResult reorientTarget() throws ExecutionException {
133
	protected DiagramElement getOldSource() {
109
		DiagramElement source = (DiagramElement) referenceOwner;
134
		return (DiagramElement) referenceOwner;
110
		FigureHandle oldTarget = (FigureHandle) oldEnd;
135
	}
111
		FigureHandle newTarget = (FigureHandle) newEnd;
112
136
113
		source.setFigure(newTarget);
137
	/**
114
		return CommandResult.newOKCommandResult(referenceOwner);
138
	 * @generated
139
	 */
140
	protected DiagramElement getNewSource() {
141
		return (DiagramElement) newEnd;
142
	}
143
144
	/**
145
	 * @generated
146
	 */
147
	protected FigureHandle getOldTarget() {
148
		return (FigureHandle) oldEnd;
149
	}
150
151
	/**
152
	 * @generated
153
	 */
154
	protected FigureHandle getNewTarget() {
155
		return (FigureHandle) newEnd;
115
	}
156
	}
116
}
157
}

Return to bug 182339