Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCamille Letavernier2013-12-06 15:24:06 +0000
committerCamille Letavernier2013-12-06 15:24:06 +0000
commit3715eae962095b9ae3e78c955332c8ea4d110b75 (patch)
tree044f51bf80f65da2262005cfed2ba8d277a54037 /plugins
parentd5352aa532ec0bd91f317ba615d5882aeb5c522e (diff)
downloadorg.eclipse.papyrus-3715eae962095b9ae3e78c955332c8ea4d110b75.tar.gz
org.eclipse.papyrus-3715eae962095b9ae3e78c955332c8ea4d110b75.tar.xz
org.eclipse.papyrus-3715eae962095b9ae3e78c955332c8ea4d110b75.zip
423432: [Performances - Properties view] Improve properties view loading
on startup https://bugs.eclipse.org/bugs/show_bug.cgi?id=423432 Fix compilation issues from previous commit
Diffstat (limited to 'plugins')
-rw-r--r--plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/generators/EcoreGenerator.java2
-rw-r--r--plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/generators/ProfileGenerator.java2
-rw-r--r--plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/layout/ProfileWithDatatypes.java12
-rw-r--r--plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/layout/StandardLayoutGenerator.java10
-rw-r--r--plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/wizard/CreateContextWizard.java2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/PaletteProfileApplicationListener.java10
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.modelrepair/src/org/eclipse/papyrus/uml/modelrepair/ui/SwitchProfileDialog.java57
7 files changed, 74 insertions, 21 deletions
diff --git a/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/generators/EcoreGenerator.java b/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/generators/EcoreGenerator.java
index a001aaf3909..8198e5c3d07 100644
--- a/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/generators/EcoreGenerator.java
+++ b/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/generators/EcoreGenerator.java
@@ -237,7 +237,7 @@ public class EcoreGenerator extends AbstractQVTGenerator {
ecorePackage = (EPackage)loadEMFModel(packageURI);
ModelExtent inPackage = new BasicModelExtent(Collections.singletonList(ecorePackage));
- PropertiesRoot root = ConfigurationManager.instance.getPropertiesRoot();
+ PropertiesRoot root = ConfigurationManager.getInstance().getPropertiesRoot();
ModelExtent inRoot = new BasicModelExtent(Collections.singletonList(root));
LinkedList<ModelExtent> result = new LinkedList<ModelExtent>();
diff --git a/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/generators/ProfileGenerator.java b/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/generators/ProfileGenerator.java
index 5bc604718fa..3ff740ee691 100644
--- a/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/generators/ProfileGenerator.java
+++ b/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/generators/ProfileGenerator.java
@@ -96,7 +96,7 @@ public class ProfileGenerator extends AbstractQVTGenerator {
}
ModelExtent inUml = new BasicModelExtent(Collections.singletonList(umlContext));
- PropertiesRoot root = ConfigurationManager.instance.getPropertiesRoot();
+ PropertiesRoot root = ConfigurationManager.getInstance().getPropertiesRoot();
ModelExtent inRoot = new BasicModelExtent(Collections.singletonList(root));
LinkedList<ModelExtent> result = new LinkedList<ModelExtent>();
diff --git a/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/layout/ProfileWithDatatypes.java b/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/layout/ProfileWithDatatypes.java
index eae51078835..40bb1b8af93 100644
--- a/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/layout/ProfileWithDatatypes.java
+++ b/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/layout/ProfileWithDatatypes.java
@@ -60,7 +60,7 @@ public class ProfileWithDatatypes extends StandardLayoutGenerator {
@Override
protected CompositeWidget layoutCategorizedEditors(Category category, List<PropertyEditor> editors) {
if(((TypeCategory)category).isDatatype) {
- CompositeWidgetType compositeType = ConfigurationManager.instance.getDefaultCompositeType();
+ CompositeWidgetType compositeType = ConfigurationManager.getInstance().getDefaultCompositeType();
CompositeWidget container = UiFactory.eINSTANCE.createCompositeWidget();
container.setWidgetType(compositeType);
@@ -148,7 +148,7 @@ public class ProfileWithDatatypes extends StandardLayoutGenerator {
}
protected Layout createLayout(Integer columns) {
- LayoutType propertiesLayoutType = ConfigurationManager.instance.getDefaultLayoutType();
+ LayoutType propertiesLayoutType = ConfigurationManager.getInstance().getDefaultLayoutType();
Layout layout = UiFactory.eINSTANCE.createLayout();
ValueAttribute numColumns = UiFactory.eINSTANCE.createValueAttribute();
@@ -162,7 +162,7 @@ public class ProfileWithDatatypes extends StandardLayoutGenerator {
}
protected CompositeWidgetType getGroupComposite() {
- for(Environment environment : ConfigurationManager.instance.getPropertiesRoot().getEnvironments()) {
+ for(Environment environment : ConfigurationManager.getInstance().getPropertiesRoot().getEnvironments()) {
for(CompositeWidgetType widgetType : environment.getCompositeWidgetTypes()) {
if(widgetType.getNamespace() == null && widgetType.getWidgetClass().equals("Group")) {
return widgetType;
@@ -171,11 +171,11 @@ public class ProfileWithDatatypes extends StandardLayoutGenerator {
}
Activator.log.warn("Cannot find the Group composite type");
- return ConfigurationManager.instance.getDefaultCompositeType();
+ return ConfigurationManager.getInstance().getDefaultCompositeType();
}
protected PropertyEditorType getViewEditor() {
- for(Environment environment : ConfigurationManager.instance.getPropertiesRoot().getEnvironments()) {
+ for(Environment environment : ConfigurationManager.getInstance().getPropertiesRoot().getEnvironments()) {
for(PropertyEditorType widgetType : environment.getPropertyEditorTypes()) {
if(widgetType.getNamespace() != null && "ppe".equals(widgetType.getNamespace().getName()) && widgetType.getWidgetClass().equals("ViewEditor")) {
return widgetType;
@@ -184,7 +184,7 @@ public class ProfileWithDatatypes extends StandardLayoutGenerator {
}
Activator.log.warn("Cannot find the Group composite type");
- return ConfigurationManager.instance.getDefaultEditorType(Type.STRING, false);
+ return ConfigurationManager.getInstance().getDefaultEditorType(Type.STRING, false);
}
@Override
diff --git a/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/layout/StandardLayoutGenerator.java b/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/layout/StandardLayoutGenerator.java
index 48f6a4786a5..b1805b0001e 100644
--- a/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/layout/StandardLayoutGenerator.java
+++ b/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/layout/StandardLayoutGenerator.java
@@ -61,7 +61,7 @@ public class StandardLayoutGenerator implements ILayoutGenerator {
editorsByCategory.clear();
namespaces.clear();
- namespaces.addAll(ConfigurationManager.instance.getBaseNamespaces());
+ namespaces.addAll(ConfigurationManager.getInstance().getBaseNamespaces());
sortEditors(editors);
@@ -80,8 +80,8 @@ public class StandardLayoutGenerator implements ILayoutGenerator {
}
protected CompositeWidget layoutCategorizedEditors(Category category, List<PropertyEditor> editors) {
- CompositeWidgetType compositeType = ConfigurationManager.instance.getDefaultCompositeType();
- LayoutType propertiesLayoutType = ConfigurationManager.instance.getDefaultLayoutType();
+ CompositeWidgetType compositeType = ConfigurationManager.getInstance().getDefaultCompositeType();
+ LayoutType propertiesLayoutType = ConfigurationManager.getInstance().getDefaultLayoutType();
CompositeWidget container = UiFactory.eINSTANCE.createCompositeWidget();
container.setWidgetType(compositeType);
@@ -130,9 +130,9 @@ public class StandardLayoutGenerator implements ILayoutGenerator {
}
protected CompositeWidget createSectionRoot() {
- CompositeWidgetType compositeType = ConfigurationManager.instance.getDefaultCompositeType();
+ CompositeWidgetType compositeType = ConfigurationManager.getInstance().getDefaultCompositeType();
namespaces.add(compositeType.getNamespace());
- LayoutType propertiesLayoutType = ConfigurationManager.instance.getDefaultLayoutType();
+ LayoutType propertiesLayoutType = ConfigurationManager.getInstance().getDefaultLayoutType();
namespaces.add(propertiesLayoutType.getNamespace());
CompositeWidget sectionRoot = UiFactory.eINSTANCE.createCompositeWidget();
diff --git a/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/wizard/CreateContextWizard.java b/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/wizard/CreateContextWizard.java
index 09f93767ded..4a08d8f2c91 100644
--- a/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/wizard/CreateContextWizard.java
+++ b/plugins/customization/org.eclipse.papyrus.customization.properties.generation/src/org/eclipse/papyrus/customization/properties/generation/wizard/CreateContextWizard.java
@@ -98,7 +98,7 @@ public class CreateContextWizard extends Wizard implements INewWizard {
return false;
}
- ConfigurationManager configManager = ConfigurationManager.instance;
+ ConfigurationManager configManager = ConfigurationManager.getInstance();
for(Context context : contexts) {
Tab defaultTab = ContextsFactory.eINSTANCE.createTab();
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/PaletteProfileApplicationListener.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/PaletteProfileApplicationListener.java
index c4dd85525a2..fd22f58d5dd 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/PaletteProfileApplicationListener.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/PaletteProfileApplicationListener.java
@@ -17,6 +17,9 @@ import org.eclipse.emf.common.notify.Notification;
import org.eclipse.gmf.runtime.common.core.service.ProviderChangeEvent;
import org.eclipse.papyrus.commands.Activator;
import org.eclipse.papyrus.infra.core.listenerservice.IPapyrusListener;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
+import org.eclipse.ui.IEditorPart;
import org.eclipse.uml2.uml.ProfileApplication;
/**
@@ -41,7 +44,14 @@ public class PaletteProfileApplicationListener implements IPapyrusListener {
if(notification.getNotifier() instanceof ProfileApplication) {
if(Notification.SET == notification.getEventType()) {
try {
+ ProfileApplication profileApplication = (ProfileApplication)notification.getNotifier();
+ IEditorPart editor = ServiceUtilsForEObject.getInstance().getNestedActiveIEditorPart(profileApplication);
+ if(editor == null) {
+ return;
+ }
PapyrusPaletteService.getInstance().providerChanged(new ProviderChangeEvent(PapyrusPaletteService.getInstance()));
+ } catch (ServiceException ex) {
+ //Nothing to do. The ServiceRegistry is not available or there is no active editor. Don't update the palette
} catch (Exception ex) {
//Bug 407849: If a listener throws an exception, the operation is rolled back. In this case, we simply want to update the palettes and exceptions should only be logged
Activator.log.error(ex);
diff --git a/plugins/uml/org.eclipse.papyrus.uml.modelrepair/src/org/eclipse/papyrus/uml/modelrepair/ui/SwitchProfileDialog.java b/plugins/uml/org.eclipse.papyrus.uml.modelrepair/src/org/eclipse/papyrus/uml/modelrepair/ui/SwitchProfileDialog.java
index f890f74f24a..a172fb66fa7 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.modelrepair/src/org/eclipse/papyrus/uml/modelrepair/ui/SwitchProfileDialog.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.modelrepair/src/org/eclipse/papyrus/uml/modelrepair/ui/SwitchProfileDialog.java
@@ -23,11 +23,12 @@ import java.util.Set;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecore.xmi.impl.URIHandlerImpl.PlatformSchemeAware;
import org.eclipse.emf.transaction.RecordingCommand;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.jface.dialogs.IDialogConstants;
@@ -46,8 +47,10 @@ import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.jface.window.Window;
+import org.eclipse.papyrus.infra.core.resource.IReadOnlyHandler;
import org.eclipse.papyrus.infra.core.resource.ModelSet;
import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.readonly.ReadOnlyManager;
import org.eclipse.papyrus.infra.emf.resource.DependencyManagementHelper;
import org.eclipse.papyrus.infra.emf.resource.Replacement;
import org.eclipse.papyrus.infra.services.labelprovider.service.LabelProviderService;
@@ -223,7 +226,11 @@ public class SwitchProfileDialog extends SelectionDialog {
}
protected void updateControls() {
-
+ String newTitle = "Switch profile location";
+ if(!profilesToEdit.isEmpty()) {
+ newTitle += " *";
+ }
+ getShell().setText(newTitle);
getButton(APPLY_ID).setEnabled(!profilesToEdit.isEmpty());
boolean enableBrowse = !viewer.getSelection().isEmpty();
@@ -272,6 +279,45 @@ public class SwitchProfileDialog extends SelectionDialog {
}
});
+ Map<String, Object> saveOptions = new HashMap<String, Object>();
+ final Map<Object, Object> targetMap = new HashMap<Object, Object>();
+ for(Map.Entry<Resource, Resource> resourceMap : profilesToEdit.entrySet()) {
+ targetMap.put(resourceMap.getKey().getURI(), resourceMap.getValue().getURI());
+ }
+
+ saveOptions.put(XMLResource.OPTION_URI_HANDLER, new PlatformSchemeAware() {
+
+ @Override
+ public URI deresolve(URI uri) {
+ URI resourceURI = uri.trimFragment();
+
+ if(targetMap.containsKey(resourceURI)) {
+ Object target = targetMap.get(resourceURI);
+ if(target instanceof URI) {
+ URI targetURI = (URI)target;
+ if(uri.fragment() != null) {
+ targetURI = targetURI.appendFragment(uri.fragment());
+ }
+ return targetURI;
+ }
+ }
+
+ return super.deresolve(uri);
+ }
+ });
+
+ IReadOnlyHandler handler = ReadOnlyManager.getReadOnlyHandler(editingDomain);
+ for(Resource resource : modelSet.getResources()) {
+ if(handler.anyReadOnly(new URI[]{ resource.getURI() }).get()) {
+ continue;
+ }
+ try {
+ resource.save(saveOptions);
+ } catch (IOException ex) {
+ Activator.log.error(ex);
+ }
+ }
+
profilesToEdit.clear();
updateControls();
viewer.refresh();
@@ -323,11 +369,7 @@ public class SwitchProfileDialog extends SelectionDialog {
protected void okPressed() {
applyPressed();
- try {
- modelSet.save(new NullProgressMonitor());
- } catch (IOException ex) {
- Activator.log.error(ex);
- }
+
super.okPressed();
}
@@ -488,6 +530,7 @@ public class SwitchProfileDialog extends SelectionDialog {
if(getSelectedResource() != targetResource) {
profilesToEdit.put(getSelectedResource(), targetResource);
updateControls();
+ applyPressed(); //Immediatly apply to avoid confusion
} else {
MessageDialog.openWarning(getShell(), "Nothing changed", "Nothing to change");
}

Back to the top