|
Lines 13-119
Link Here
|
| 13 |
*/ |
13 |
*/ |
| 14 |
package org.eclipse.uml2.uml.editor.presentation; |
14 |
package org.eclipse.uml2.uml.editor.presentation; |
| 15 |
|
15 |
|
|
|
16 |
import java.io.IOException; |
| 17 |
import java.io.InputStream; |
| 18 |
import java.util.ArrayList; |
| 19 |
import java.util.Collection; |
| 20 |
import java.util.Collections; |
| 21 |
import java.util.EventObject; |
| 22 |
import java.util.HashMap; |
| 23 |
import java.util.Iterator; |
| 24 |
import java.util.LinkedHashMap; |
| 25 |
import java.util.List; |
| 26 |
import java.util.Map; |
| 27 |
|
| 28 |
import org.eclipse.core.resources.IFile; |
| 29 |
import org.eclipse.core.resources.IMarker; |
| 30 |
import org.eclipse.core.resources.IResource; |
| 31 |
import org.eclipse.core.resources.IResourceChangeEvent; |
| 32 |
import org.eclipse.core.resources.IResourceChangeListener; |
| 33 |
import org.eclipse.core.resources.IResourceDelta; |
| 34 |
import org.eclipse.core.resources.IResourceDeltaVisitor; |
| 35 |
import org.eclipse.core.resources.ResourcesPlugin; |
| 36 |
import org.eclipse.core.runtime.CoreException; |
| 37 |
import org.eclipse.core.runtime.IPath; |
| 38 |
import org.eclipse.core.runtime.IProgressMonitor; |
| 39 |
import org.eclipse.core.runtime.NullProgressMonitor; |
| 16 |
import org.eclipse.emf.common.CommonPlugin; |
40 |
import org.eclipse.emf.common.CommonPlugin; |
| 17 |
import org.eclipse.emf.common.command.BasicCommandStack; |
41 |
import org.eclipse.emf.common.command.BasicCommandStack; |
| 18 |
import org.eclipse.emf.common.command.Command; |
42 |
import org.eclipse.emf.common.command.Command; |
| 19 |
import org.eclipse.emf.common.command.CommandStack; |
43 |
import org.eclipse.emf.common.command.CommandStack; |
| 20 |
import org.eclipse.emf.common.command.CommandStackListener; |
44 |
import org.eclipse.emf.common.command.CommandStackListener; |
| 21 |
|
|
|
| 22 |
import org.eclipse.emf.common.util.BasicDiagnostic; |
| 23 |
import org.eclipse.emf.common.util.Diagnostic; |
| 24 |
|
| 25 |
import org.eclipse.emf.common.notify.AdapterFactory; |
45 |
import org.eclipse.emf.common.notify.AdapterFactory; |
| 26 |
|
|
|
| 27 |
import org.eclipse.emf.common.notify.Notification; |
46 |
import org.eclipse.emf.common.notify.Notification; |
| 28 |
|
47 |
import org.eclipse.emf.common.ui.MarkerHelper; |
|
|
48 |
import org.eclipse.emf.common.ui.URIEditorInput; |
| 29 |
import org.eclipse.emf.common.ui.dialogs.DiagnosticDialog; |
49 |
import org.eclipse.emf.common.ui.dialogs.DiagnosticDialog; |
| 30 |
import org.eclipse.emf.common.ui.editor.ProblemEditorPart; |
50 |
import org.eclipse.emf.common.ui.editor.ProblemEditorPart; |
| 31 |
import org.eclipse.emf.common.ui.viewer.IViewerProvider; |
51 |
import org.eclipse.emf.common.ui.viewer.IViewerProvider; |
| 32 |
|
52 |
import org.eclipse.emf.common.util.BasicDiagnostic; |
|
|
53 |
import org.eclipse.emf.common.util.Diagnostic; |
| 33 |
import org.eclipse.emf.common.util.EList; |
54 |
import org.eclipse.emf.common.util.EList; |
| 34 |
import org.eclipse.emf.common.util.URI; |
55 |
import org.eclipse.emf.common.util.URI; |
| 35 |
|
56 |
import org.eclipse.emf.ecore.EObject; |
|
|
57 |
import org.eclipse.emf.ecore.EValidator; |
| 58 |
import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory; |
| 59 |
import org.eclipse.emf.ecore.resource.Resource; |
| 60 |
import org.eclipse.emf.ecore.resource.ResourceSet; |
| 61 |
import org.eclipse.emf.ecore.util.EContentAdapter; |
| 62 |
import org.eclipse.emf.ecore.util.EcoreUtil; |
| 36 |
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; |
63 |
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; |
| 37 |
import org.eclipse.emf.edit.domain.EditingDomain; |
64 |
import org.eclipse.emf.edit.domain.EditingDomain; |
| 38 |
import org.eclipse.emf.edit.domain.IEditingDomainProvider; |
65 |
import org.eclipse.emf.edit.domain.IEditingDomainProvider; |
| 39 |
|
|
|
| 40 |
import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; |
66 |
import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator; |
| 41 |
import org.eclipse.emf.edit.provider.ComposedAdapterFactory; |
67 |
import org.eclipse.emf.edit.provider.ComposedAdapterFactory; |
| 42 |
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; |
68 |
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; |
| 43 |
import org.eclipse.emf.edit.provider.IItemPropertySource; |
69 |
import org.eclipse.emf.edit.provider.IItemPropertySource; |
| 44 |
|
|
|
| 45 |
//import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; |
| 46 |
|
| 47 |
//import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory; |
| 48 |
|
| 49 |
import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; |
70 |
import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor; |
| 50 |
|
|
|
| 51 |
import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor; |
71 |
import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor; |
| 52 |
|
|
|
| 53 |
import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter; |
72 |
import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter; |
| 54 |
import org.eclipse.emf.edit.ui.dnd.LocalTransfer; |
73 |
import org.eclipse.emf.edit.ui.dnd.LocalTransfer; |
| 55 |
import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter; |
74 |
import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter; |
| 56 |
|
|
|
| 57 |
import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; |
75 |
import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; |
| 58 |
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; |
76 |
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; |
| 59 |
import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider; |
|
|
| 60 |
import org.eclipse.emf.edit.ui.provider.PropertyDescriptor; |
77 |
import org.eclipse.emf.edit.ui.provider.PropertyDescriptor; |
| 61 |
import org.eclipse.emf.edit.ui.provider.PropertySource; |
78 |
import org.eclipse.emf.edit.ui.provider.PropertySource; |
| 62 |
|
79 |
import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider; |
| 63 |
import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage; |
|
|
| 64 |
|
| 65 |
import org.eclipse.emf.common.ui.MarkerHelper; |
| 66 |
import org.eclipse.emf.common.ui.URIEditorInput; |
| 67 |
import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper; |
80 |
import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper; |
| 68 |
|
|
|
| 69 |
import org.eclipse.emf.edit.ui.util.EditUIUtil; |
81 |
import org.eclipse.emf.edit.ui.util.EditUIUtil; |
| 70 |
import org.eclipse.emf.ecore.EObject; |
82 |
import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage; |
| 71 |
import org.eclipse.emf.ecore.EValidator; |
|
|
| 72 |
|
| 73 |
import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory; |
| 74 |
import org.eclipse.emf.ecore.resource.Resource; |
| 75 |
import org.eclipse.emf.ecore.resource.ResourceSet; |
| 76 |
import org.eclipse.emf.ecore.util.EcoreUtil; |
| 77 |
|
| 78 |
import org.eclipse.emf.ecore.util.EContentAdapter; |
| 79 |
|
| 80 |
import java.io.IOException; |
| 81 |
|
| 82 |
import java.io.InputStream; |
| 83 |
|
| 84 |
import java.util.ArrayList; |
| 85 |
import java.util.Collection; |
| 86 |
import java.util.Collections; |
| 87 |
import java.util.EventObject; |
| 88 |
import java.util.Iterator; |
| 89 |
import java.util.List; |
| 90 |
import java.util.Map; |
| 91 |
|
| 92 |
import java.util.LinkedHashMap; |
| 93 |
|
| 94 |
import org.eclipse.core.resources.IFile; |
| 95 |
import org.eclipse.core.resources.IMarker; |
| 96 |
import org.eclipse.core.resources.IResource; |
| 97 |
import org.eclipse.core.resources.IResourceChangeListener; |
| 98 |
import org.eclipse.core.resources.IResourceChangeEvent; |
| 99 |
import org.eclipse.core.resources.IResourceDelta; |
| 100 |
import org.eclipse.core.resources.IResourceDeltaVisitor; |
| 101 |
import org.eclipse.core.resources.ResourcesPlugin; |
| 102 |
|
| 103 |
import org.eclipse.core.runtime.CoreException; |
| 104 |
import org.eclipse.core.runtime.IPath; |
| 105 |
import org.eclipse.core.runtime.IProgressMonitor; |
| 106 |
|
| 107 |
import org.eclipse.jface.action.IMenuListener; |
83 |
import org.eclipse.jface.action.IMenuListener; |
| 108 |
import org.eclipse.jface.action.IMenuManager; |
84 |
import org.eclipse.jface.action.IMenuManager; |
| 109 |
import org.eclipse.jface.action.IStatusLineManager; |
85 |
import org.eclipse.jface.action.IStatusLineManager; |
| 110 |
import org.eclipse.jface.action.IToolBarManager; |
86 |
import org.eclipse.jface.action.IToolBarManager; |
| 111 |
import org.eclipse.jface.action.MenuManager; |
87 |
import org.eclipse.jface.action.MenuManager; |
| 112 |
import org.eclipse.jface.action.Separator; |
88 |
import org.eclipse.jface.action.Separator; |
| 113 |
|
|
|
| 114 |
import org.eclipse.jface.dialogs.MessageDialog; |
89 |
import org.eclipse.jface.dialogs.MessageDialog; |
| 115 |
import org.eclipse.jface.dialogs.ProgressMonitorDialog; |
90 |
import org.eclipse.jface.dialogs.ProgressMonitorDialog; |
| 116 |
|
|
|
| 117 |
import org.eclipse.jface.viewers.ILabelProvider; |
91 |
import org.eclipse.jface.viewers.ILabelProvider; |
| 118 |
import org.eclipse.jface.viewers.ISelection; |
92 |
import org.eclipse.jface.viewers.ISelection; |
| 119 |
import org.eclipse.jface.viewers.ISelectionChangedListener; |
93 |
import org.eclipse.jface.viewers.ISelectionChangedListener; |
|
Lines 125-174
Link Here
|
| 125 |
import org.eclipse.jface.viewers.StructuredViewer; |
99 |
import org.eclipse.jface.viewers.StructuredViewer; |
| 126 |
import org.eclipse.jface.viewers.TreeViewer; |
100 |
import org.eclipse.jface.viewers.TreeViewer; |
| 127 |
import org.eclipse.jface.viewers.Viewer; |
101 |
import org.eclipse.jface.viewers.Viewer; |
| 128 |
|
|
|
| 129 |
import org.eclipse.swt.SWT; |
102 |
import org.eclipse.swt.SWT; |
| 130 |
|
|
|
| 131 |
import org.eclipse.swt.custom.CTabFolder; |
103 |
import org.eclipse.swt.custom.CTabFolder; |
| 132 |
|
|
|
| 133 |
import org.eclipse.swt.dnd.DND; |
104 |
import org.eclipse.swt.dnd.DND; |
| 134 |
import org.eclipse.swt.dnd.Transfer; |
105 |
import org.eclipse.swt.dnd.Transfer; |
| 135 |
|
|
|
| 136 |
import org.eclipse.swt.events.ControlAdapter; |
106 |
import org.eclipse.swt.events.ControlAdapter; |
| 137 |
import org.eclipse.swt.events.ControlEvent; |
107 |
import org.eclipse.swt.events.ControlEvent; |
| 138 |
|
|
|
| 139 |
import org.eclipse.swt.graphics.Image; |
108 |
import org.eclipse.swt.graphics.Image; |
| 140 |
import org.eclipse.swt.graphics.Point; |
109 |
import org.eclipse.swt.graphics.Point; |
| 141 |
|
|
|
| 142 |
import org.eclipse.swt.widgets.Composite; |
110 |
import org.eclipse.swt.widgets.Composite; |
| 143 |
import org.eclipse.swt.widgets.Menu; |
111 |
import org.eclipse.swt.widgets.Menu; |
| 144 |
import org.eclipse.swt.widgets.Tree; |
112 |
import org.eclipse.swt.widgets.Tree; |
| 145 |
|
|
|
| 146 |
import org.eclipse.ui.IActionBars; |
113 |
import org.eclipse.ui.IActionBars; |
| 147 |
import org.eclipse.ui.IEditorInput; |
114 |
import org.eclipse.ui.IEditorInput; |
| 148 |
import org.eclipse.ui.IEditorPart; |
115 |
import org.eclipse.ui.IEditorPart; |
| 149 |
import org.eclipse.ui.IEditorSite; |
116 |
import org.eclipse.ui.IEditorSite; |
| 150 |
import org.eclipse.ui.IPartListener; |
117 |
import org.eclipse.ui.IPartListener; |
| 151 |
import org.eclipse.ui.IWorkbenchPart; |
118 |
import org.eclipse.ui.IWorkbenchPart; |
| 152 |
|
|
|
| 153 |
import org.eclipse.ui.PartInitException; |
119 |
import org.eclipse.ui.PartInitException; |
| 154 |
|
120 |
import org.eclipse.ui.actions.WorkspaceModifyOperation; |
| 155 |
import org.eclipse.ui.dialogs.SaveAsDialog; |
121 |
import org.eclipse.ui.dialogs.SaveAsDialog; |
| 156 |
|
|
|
| 157 |
import org.eclipse.ui.ide.IGotoMarker; |
122 |
import org.eclipse.ui.ide.IGotoMarker; |
| 158 |
|
|
|
| 159 |
import org.eclipse.ui.part.FileEditorInput; |
123 |
import org.eclipse.ui.part.FileEditorInput; |
| 160 |
import org.eclipse.ui.part.MultiPageEditorPart; |
124 |
import org.eclipse.ui.part.MultiPageEditorPart; |
| 161 |
|
|
|
| 162 |
import org.eclipse.ui.views.contentoutline.ContentOutline; |
125 |
import org.eclipse.ui.views.contentoutline.ContentOutline; |
| 163 |
import org.eclipse.ui.views.contentoutline.ContentOutlinePage; |
126 |
import org.eclipse.ui.views.contentoutline.ContentOutlinePage; |
| 164 |
import org.eclipse.ui.views.contentoutline.IContentOutlinePage; |
127 |
import org.eclipse.ui.views.contentoutline.IContentOutlinePage; |
| 165 |
|
|
|
| 166 |
import org.eclipse.ui.views.properties.IPropertyDescriptor; |
128 |
import org.eclipse.ui.views.properties.IPropertyDescriptor; |
| 167 |
import org.eclipse.ui.views.properties.IPropertySheetPage; |
129 |
import org.eclipse.ui.views.properties.IPropertySheetPage; |
| 168 |
import org.eclipse.ui.views.properties.IPropertySource; |
130 |
import org.eclipse.ui.views.properties.IPropertySource; |
| 169 |
import org.eclipse.ui.views.properties.PropertySheet; |
131 |
import org.eclipse.ui.views.properties.PropertySheet; |
| 170 |
import org.eclipse.ui.views.properties.PropertySheetPage; |
132 |
import org.eclipse.ui.views.properties.PropertySheetPage; |
| 171 |
|
|
|
| 172 |
import org.eclipse.uml2.common.edit.domain.UML2AdapterFactoryEditingDomain; |
133 |
import org.eclipse.uml2.common.edit.domain.UML2AdapterFactoryEditingDomain; |
| 173 |
import org.eclipse.uml2.common.edit.provider.IItemQualifiedTextProvider; |
134 |
import org.eclipse.uml2.common.edit.provider.IItemQualifiedTextProvider; |
| 174 |
import org.eclipse.uml2.common.util.UML2Util; |
135 |
import org.eclipse.uml2.common.util.UML2Util; |
|
Lines 176-192
Link Here
|
| 176 |
import org.eclipse.uml2.uml.edit.providers.UMLItemProviderAdapterFactory; |
137 |
import org.eclipse.uml2.uml.edit.providers.UMLItemProviderAdapterFactory; |
| 177 |
import org.eclipse.uml2.uml.edit.providers.UMLReflectiveItemProviderAdapterFactory; |
138 |
import org.eclipse.uml2.uml.edit.providers.UMLReflectiveItemProviderAdapterFactory; |
| 178 |
import org.eclipse.uml2.uml.edit.providers.UMLResourceItemProviderAdapterFactory; |
139 |
import org.eclipse.uml2.uml.edit.providers.UMLResourceItemProviderAdapterFactory; |
| 179 |
|
|
|
| 180 |
import java.util.HashMap; |
| 181 |
|
| 182 |
import org.eclipse.core.runtime.NullProgressMonitor; |
| 183 |
|
| 184 |
import org.eclipse.ui.actions.WorkspaceModifyOperation; |
| 185 |
|
| 186 |
import org.eclipse.uml2.uml.editor.UMLEditorPlugin; |
140 |
import org.eclipse.uml2.uml.editor.UMLEditorPlugin; |
| 187 |
|
|
|
| 188 |
import org.eclipse.uml2.uml.resource.CMOF2UMLExtendedMetaData; |
141 |
import org.eclipse.uml2.uml.resource.CMOF2UMLExtendedMetaData; |
| 189 |
import org.eclipse.uml2.uml.resource.CMOF2UMLResource; |
142 |
import org.eclipse.uml2.uml.resource.CMOF2UMLResource; |
|
|
143 |
import org.eclipse.uml2.uml.resource.UML212UML30Resource; |
| 190 |
import org.eclipse.uml2.uml.resource.UML22UMLExtendedMetaData; |
144 |
import org.eclipse.uml2.uml.resource.UML22UMLExtendedMetaData; |
| 191 |
import org.eclipse.uml2.uml.resource.UML22UMLResource; |
145 |
import org.eclipse.uml2.uml.resource.UML22UMLResource; |
| 192 |
import org.eclipse.uml2.uml.resource.UMLResource; |
146 |
import org.eclipse.uml2.uml.resource.UMLResource; |
|
Lines 457-465
Link Here
|
| 457 |
if (delta.getKind() == IResourceDelta.REMOVED |
411 |
if (delta.getKind() == IResourceDelta.REMOVED |
| 458 |
|| delta.getKind() == IResourceDelta.CHANGED |
412 |
|| delta.getKind() == IResourceDelta.CHANGED |
| 459 |
&& delta.getFlags() != IResourceDelta.MARKERS) { |
413 |
&& delta.getFlags() != IResourceDelta.MARKERS) { |
| 460 |
Resource resource = resourceSet.getResource(URI |
414 |
Resource resource = resourceSet |
| 461 |
.createURI(delta.getFullPath().toString()), |
415 |
.getResource(URI.createPlatformResourceURI( |
| 462 |
false); |
416 |
delta.getFullPath().toString(), true), |
|
|
417 |
false); |
| 463 |
if (resource != null) { |
418 |
if (resource != null) { |
| 464 |
if (delta.getKind() == IResourceDelta.REMOVED) { |
419 |
if (delta.getKind() == IResourceDelta.REMOVED) { |
| 465 |
removedResources.add(resource); |
420 |
removedResources.add(resource); |
|
Lines 494-500
Link Here
|
| 494 |
public void run() { |
449 |
public void run() { |
| 495 |
getSite().getPage().closeEditor( |
450 |
getSite().getPage().closeEditor( |
| 496 |
UMLEditor.this, false); |
451 |
UMLEditor.this, false); |
| 497 |
UMLEditor.this.dispose(); |
|
|
| 498 |
} |
452 |
} |
| 499 |
}); |
453 |
}); |
| 500 |
} |
454 |
} |
|
Lines 536-542
Link Here
|
| 536 |
if (!removedResources.isEmpty()) { |
490 |
if (!removedResources.isEmpty()) { |
| 537 |
if (handleDirtyConflict()) { |
491 |
if (handleDirtyConflict()) { |
| 538 |
getSite().getPage().closeEditor(UMLEditor.this, false); |
492 |
getSite().getPage().closeEditor(UMLEditor.this, false); |
| 539 |
UMLEditor.this.dispose(); |
|
|
| 540 |
} else { |
493 |
} else { |
| 541 |
removedResources.clear(); |
494 |
removedResources.clear(); |
| 542 |
changedResources.clear(); |
495 |
changedResources.clear(); |
|
Lines 950-955
Link Here
|
| 950 |
UML22UMLResource.UML2_CONTENT_TYPE_IDENTIFIER, |
903 |
UML22UMLResource.UML2_CONTENT_TYPE_IDENTIFIER, |
| 951 |
UML22UMLResource.Factory.INSTANCE); |
904 |
UML22UMLResource.Factory.INSTANCE); |
| 952 |
contentTypeToFactoryMap.put( |
905 |
contentTypeToFactoryMap.put( |
|
|
906 |
UMLResource.UML_2_1_0_CONTENT_TYPE_IDENTIFIER, |
| 907 |
UML212UML30Resource.Factory.INSTANCE); |
| 908 |
contentTypeToFactoryMap.put( |
| 953 |
XMI2UMLResource.UML_CONTENT_TYPE_IDENTIFIER, |
909 |
XMI2UMLResource.UML_CONTENT_TYPE_IDENTIFIER, |
| 954 |
XMI2UMLResource.Factory.INSTANCE); |
910 |
XMI2UMLResource.Factory.INSTANCE); |
| 955 |
contentTypeToFactoryMap.put( |
911 |
contentTypeToFactoryMap.put( |