From 83231690557c3478309df007c01c89e05939b555 Mon Sep 17 00:00:00 2001
From: cletavernie
Date: Mon, 4 Jul 2011 09:35:35 +0000
Subject: 340430: [Widget] creation of dialog box based on the model explorer
https://bugs.eclipse.org/bugs/show_bug.cgi?id=340430
351054: [Property View] The property view configurations need a URI catalog
https://bugs.eclipse.org/bugs/show_bug.cgi?id=351054
---
.../Model/Customization.ctx | 187 ++++++++++++---------
.../Model/ui/EcoreInstanceOf.xwt | 2 +-
.../Model/ui/MultipleCompositeConstraint.xwt | 2 +
.../Model/ui/MultipleConstraintDescriptor.xwt | 2 +-
.../Model/ui/MultipleEnvironment.xwt | 2 +-
.../Model/ui/OCLQuery.xwt | 2 +-
.../Model/ui/SingleCompositeConstraint.xwt | 2 +
.../Model/ui/SingleConstraintDescriptor.xwt | 2 +-
.../Model/ui/SingleConstraintType.xwt | 2 +-
.../Model/ui/SingleEnvironment.xwt | 2 +-
.../Model/ui/Stereotype.xwt | 2 +-
.../Model/ui/UMLInstanceOf.xwt | 2 +-
.../customization/messages/messages.properties | 10 +-
.../modelelement/CustomizationModelElement.java | 8 +-
.../ConstraintDescriptorContentProvider.java | 21 ++-
.../customization/ui/CopyContextAction.java | 8 +-
.../properties/customization/util/ProjectUtil.java | 3 +-
17 files changed, 153 insertions(+), 106 deletions(-)
create mode 100644 incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleCompositeConstraint.xwt
create mode 100644 incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleCompositeConstraint.xwt
(limited to 'incoming')
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/Customization.ctx b/incoming/org.eclipse.papyrus.properties.customization/Model/Customization.ctx
index 1a2dca9b479..e3fa9c297f8 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/Model/Customization.ctx
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/Customization.ctx
@@ -201,7 +201,7 @@
-
+
@@ -210,7 +210,7 @@
-
+
@@ -219,7 +219,7 @@
-
+
@@ -228,7 +228,7 @@
-
+
@@ -237,7 +237,7 @@
-
+
@@ -246,7 +246,7 @@
-
+
@@ -255,7 +255,7 @@
-
+
@@ -264,7 +264,7 @@
-
+
@@ -273,7 +273,7 @@
-
+
@@ -282,476 +282,496 @@
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -840,9 +860,7 @@
-
-
@@ -855,6 +873,13 @@
+
+
+
+
+
+
+
@@ -893,7 +918,7 @@
-
+
@@ -924,7 +949,7 @@
-
+
@@ -940,6 +965,6 @@
-
+
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/EcoreInstanceOf.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/EcoreInstanceOf.xwt
index c971158aa4a..dc2e8c4b749 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/EcoreInstanceOf.xwt
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/EcoreInstanceOf.xwt
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleCompositeConstraint.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleCompositeConstraint.xwt
new file mode 100644
index 00000000000..615db8f43bb
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleCompositeConstraint.xwt
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleConstraintDescriptor.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleConstraintDescriptor.xwt
index 0652e3cca94..c278bb83e9c 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleConstraintDescriptor.xwt
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleConstraintDescriptor.xwt
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleEnvironment.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleEnvironment.xwt
index c42af8507ee..ab3d7fcf9b9 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleEnvironment.xwt
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/MultipleEnvironment.xwt
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/OCLQuery.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/OCLQuery.xwt
index 43f23369284..9d2314c3993 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/OCLQuery.xwt
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/OCLQuery.xwt
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleCompositeConstraint.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleCompositeConstraint.xwt
new file mode 100644
index 00000000000..ba8217a7cf3
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleCompositeConstraint.xwt
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleConstraintDescriptor.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleConstraintDescriptor.xwt
index e841cf3fa44..6c585193189 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleConstraintDescriptor.xwt
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleConstraintDescriptor.xwt
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleConstraintType.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleConstraintType.xwt
index 03a3b35f6aa..b1948e43bc0 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleConstraintType.xwt
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleConstraintType.xwt
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleEnvironment.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleEnvironment.xwt
index 9d4a124e5c8..ff64d5ab388 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleEnvironment.xwt
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/SingleEnvironment.xwt
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/Stereotype.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/Stereotype.xwt
index 93536b4094c..63db56d2dad 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/Stereotype.xwt
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/Stereotype.xwt
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/UMLInstanceOf.xwt b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/UMLInstanceOf.xwt
index 578271783f2..977189c4f2e 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/Model/ui/UMLInstanceOf.xwt
+++ b/incoming/org.eclipse.papyrus.properties.customization/Model/ui/UMLInstanceOf.xwt
@@ -1,2 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/messages/messages.properties b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/messages/messages.properties
index 0610a712d78..1900ca64f6e 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/messages/messages.properties
+++ b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/messages/messages.properties
@@ -2,7 +2,7 @@ CopyContextAction_Copying=Copying
CopyContextAction_InitializingTheCopyOf=Initializing the copy of
CopyContextAction_ThisMayTakeSomeTime=. This may take some time
CopyContextAction_To=\ to
-CustomizationDialog_cannotDeletePluginContext=Plugin contexts cannot be deleted
+CustomizationDialog_cannotDeletePluginContext=Read-only contexts cannot be deleted
CustomizationDialog_configurationName=Configuration name
CustomizationDialog_configurationNameNotEmpty=The name of the configuration shouldn't be empty
CustomizationDialog_configurationWithSameNameExists=A configuration with the same name already exists
@@ -15,11 +15,11 @@ CustomizationDialog_deleteContext=Delete context ?
CustomizationDialog_deleteContextConfirmation1=Are you sure you want to delete the Property View context
CustomizationDialog_deleteContextConfirmation2=\ ? This choice is irreversible. If you simply want to deactivate this context, you can do so in Preferences > Papyrus > Property views
CustomizationDialog_edit=Edit
-CustomizationDialog_editSelectedContext=Edits the selected Context. This option is only available for non-plugin Contexts
+CustomizationDialog_editSelectedContext=Edits the selected Context. This option is only available for writeable Contexts
CustomizationDialog_enterConfigurationName=Enter the new configuration name
-CustomizationDialog_plugin=\ (Plugin)
-CustomizationDialog_removeSelectedContext=Removes the selected Context. This option is only available for non-plugin Contexts
-CustomizationDialog_selectContextToEdit=Select a context to edit. Plugin contexts should be copied before they can be edited.
+CustomizationDialog_plugin=\ (Read-only)
+CustomizationDialog_removeSelectedContext=Removes the selected Context. This option is only available for writeable Contexts
+CustomizationDialog_selectContextToEdit=Select a context to edit. Read-only contexts should be copied before they can be edited.
CustomizationPreferencePage_AskForConfirmation=Ask for confirmation
CustomizationPreferencePage_OpenCustomizationPerspective=Open customization perspective
CustomizationPreferencePage_PropertyViewCustomizationPreferences=Property view customization preferences
diff --git a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/modelelement/CustomizationModelElement.java b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/modelelement/CustomizationModelElement.java
index 0609feda734..ac43094dde0 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/modelelement/CustomizationModelElement.java
+++ b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/modelelement/CustomizationModelElement.java
@@ -32,6 +32,7 @@ import org.eclipse.papyrus.properties.customization.providers.TabContentProvider
import org.eclipse.papyrus.properties.environment.EnvironmentPackage;
import org.eclipse.papyrus.properties.modelelement.AbstractModelElement;
import org.eclipse.papyrus.properties.modelelement.EMFModelElement;
+import org.eclipse.papyrus.properties.util.EMFHelper;
import org.eclipse.papyrus.widgets.creation.ReferenceValueFactory;
import org.eclipse.papyrus.widgets.providers.EmptyContentProvider;
import org.eclipse.papyrus.widgets.providers.IStaticContentProvider;
@@ -50,9 +51,6 @@ import org.eclipse.papyrus.widgets.providers.IStaticContentProvider;
*/
public class CustomizationModelElement extends AbstractModelElement {
- //TODO : Support for ConstraintDescriptor content provider
- //The provider relies on EMF, which loads the whole model (including XWT files)
-
private EMFModelElement delegate;
private static Map providers;
@@ -106,8 +104,8 @@ public class CustomizationModelElement extends AbstractModelElement {
//Sections can only be moved to tabs from non-plugin contexts
boolean editableTabsOnly = delegate.getSource() instanceof Section;
return new TabContentProvider(delegate.getSource(), editableTabsOnly);
- } else if(classifier == ContextsPackage.eINSTANCE.getConstraintDescriptor()) {
- return new ConstraintDescriptorContentProvider(delegate.getSource());
+ } else if(classifier instanceof EClass && EMFHelper.isSubclass((EClass)classifier, ContextsPackage.eINSTANCE.getConstraintDescriptor())) {
+ return new ConstraintDescriptorContentProvider(delegate.getSource(), (EClass)classifier);
} else if(isDataContextElement(classifier)) {
return new DataContextElementContentProvider((DataContextElement)delegate.getSource());
} else {
diff --git a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/providers/ConstraintDescriptorContentProvider.java b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/providers/ConstraintDescriptorContentProvider.java
index dbd0b6d1ad6..e7db4381274 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/providers/ConstraintDescriptorContentProvider.java
+++ b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/providers/ConstraintDescriptorContentProvider.java
@@ -14,9 +14,11 @@ package org.eclipse.papyrus.properties.customization.providers;
import java.util.LinkedList;
import java.util.List;
+import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.properties.contexts.ConstraintDescriptor;
import org.eclipse.papyrus.properties.contexts.Context;
+import org.eclipse.papyrus.properties.contexts.DisplayUnit;
import org.eclipse.papyrus.properties.contexts.Section;
import org.eclipse.papyrus.properties.contexts.Tab;
import org.eclipse.papyrus.properties.contexts.View;
@@ -29,6 +31,8 @@ import org.eclipse.papyrus.properties.contexts.View;
*/
public class ConstraintDescriptorContentProvider extends AbstractContextualContentProvider {
+ private EClass type;
+
/**
*
* Constructor.
@@ -36,23 +40,34 @@ public class ConstraintDescriptorContentProvider extends AbstractContextualConte
* @param source
* The source Object used to retrieve the available ConstraintDescriptors
*/
- public ConstraintDescriptorContentProvider(EObject source) {
+ public ConstraintDescriptorContentProvider(EObject source, EClass type) {
super(source);
+ this.type = type;
}
public Object[] getElements() {
List result = new LinkedList();
for(Context context : contexts) {
for(View view : context.getViews()) {
- result.addAll(view.getConstraints());
+ result.addAll(getFilteredConstraintsFromDisplayUnit(view));
}
for(Tab tab : context.getTabs()) {
for(Section section : tab.getSections()) {
- result.addAll(section.getConstraints());
+ result.addAll(getFilteredConstraintsFromDisplayUnit(section));
}
}
}
return result.toArray();
}
+ private List getFilteredConstraintsFromDisplayUnit(DisplayUnit unit) {
+ List result = new LinkedList();
+ for(ConstraintDescriptor constraint : unit.getConstraints()) {
+ if(type.isInstance(constraint)) {
+ result.add(constraint);
+ }
+ }
+ return result;
+ }
+
}
diff --git a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/ui/CopyContextAction.java b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/ui/CopyContextAction.java
index 3550081727d..9ed0f1091f2 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/ui/CopyContextAction.java
+++ b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/ui/CopyContextAction.java
@@ -32,6 +32,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.papyrus.properties.Activator;
+import org.eclipse.papyrus.properties.catalog.PropertiesURIHandler;
import org.eclipse.papyrus.properties.contexts.Context;
import org.eclipse.papyrus.properties.customization.messages.Messages;
import org.eclipse.papyrus.properties.runtime.ConfigurationManager;
@@ -158,7 +159,12 @@ public class CopyContextAction {
}
protected void copy(Resource resource, File target) throws IOException {
- copy(new URL(resource.getURI().toString()).openStream(), target);
+ PropertiesURIHandler uriHandler = new PropertiesURIHandler();
+ URI uri = resource.getURI();
+ if(uriHandler.canHandle(uri)) {
+ uri = uriHandler.getConvertedURI(uri);
+ }
+ copy(new URL(uri.toString()).openStream(), target);
}
private void copy(Resource resource, File directory, EObject source, String targetName) throws IOException {
diff --git a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/util/ProjectUtil.java b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/util/ProjectUtil.java
index 67f58424af5..6e5cb31df16 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/util/ProjectUtil.java
+++ b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/util/ProjectUtil.java
@@ -26,7 +26,6 @@ import org.eclipse.core.runtime.Path;
import org.eclipse.papyrus.properties.contexts.Context;
import org.eclipse.papyrus.properties.contexts.Section;
import org.eclipse.papyrus.properties.customization.Activator;
-import org.eclipse.papyrus.properties.customization.ui.CopyContextAction;
/**
* The Eclipse Editors can only handle files from the workspace. However, when
@@ -86,7 +85,7 @@ public class ProjectUtil {
custom.open(null);
}
- custom.setHidden(false);
+ custom.setHidden(true);
workspace.getRoot().refreshLocal(IResource.DEPTH_INFINITE, null);
return custom;
--
cgit v1.2.3