Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas FAUVERGUE2016-06-21 10:49:15 -0400
committerGerrit Code Review @ Eclipse.org2016-08-04 16:17:53 -0400
commit493fe8d06924ce5667ad5ed566ff83910a1c4c46 (patch)
treec88d3df1b4ab7cb258339aa190ca234f2179ffdf /plugins/infra
parent4e7b6f2aeb5d3138bc0ed7e26e645b354f2f653e (diff)
downloadorg.eclipse.papyrus-493fe8d06924ce5667ad5ed566ff83910a1c4c46.tar.gz
org.eclipse.papyrus-493fe8d06924ce5667ad5ed566ff83910a1c4c46.tar.xz
org.eclipse.papyrus-493fe8d06924ce5667ad5ed566ff83910a1c4c46.zip
Bug 492891: [Table] Link with editor: different behavior of diagrams and
tables https://bugs.eclipse.org/bugs/show_bug.cgi?id=492891 - The owner of table can be modified and the context can't be modified - Add the 'Table', 'Appearance' and 'Paste' tab in properties view when an the table is the current editor This looks to correct other bugs: - Bug 492605 - [Table][Properties][usability] error message "Properties are not available" - Bug 492615 - [Table][usability] inconsistency of properties view N.B: The 'invert axis' button doesn't work correctly, but another gerrit manage it Change-Id: I9d22713e81bf865bc59fbd10a34b270e75aa5037 Signed-off-by: Nicolas FAUVERGUE <nicolas.fauvergue@all4tec.net>
Diffstat (limited to 'plugins/infra')
-rw-r--r--plugins/infra/editor/org.eclipse.papyrus.infra.editor.welcome.nattable/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/editor/org.eclipse.papyrus.infra.editor.welcome/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf.types.ui/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.properties/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.widgets/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/META-INF/MANIFEST.MF7
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/Environment.xmi12
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/nattable.ctx183
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInFlatTable.xwt32
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInNormalTableAppearance.xwt14
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableAppearance.xwt53
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCanPasteEObjectColumnSection.xwt30
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCanPasteEObjectRowSection.xwt29
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCantPasteEObjectColumnSection.xwt32
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCantPasteEObjectRowSection.xwt32
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableColumnFeatureLabelProviderConfiguration.xwt45
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableColumnObjectLabelProviderConfiguration.xwt31
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableHasTreeFillingConfiguration.xwt33
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableRowFeatureLabelProviderConfiguration.xwt45
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableRowObjectLabelProviderConfiguration.xwt30
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTreeTable.xwt30
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTable.xwt15
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTableAppearance.xwt55
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTreeTable.xwt8
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/pom.xml2
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCanCreateColumnElementContraint.java36
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCanCreateRowElementContraint.java36
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCantCreateColumnElementContraint.java35
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCantCreateRowElementContraint.java36
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasColumnFeatureLabelConfigurationConstraint.java36
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasColumnObjectLabelConfigurationConstraint.java40
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasRowFeatureLabelConfigurationConstraint.java36
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasRowObjectLabelConfigurationConstraint.java40
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasTreeFillingConfigurationConstraint.java37
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableIsFlatTableConstraint.java35
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableJavaConstraint.java66
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInFlatTableConstraint.java47
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInTableConstraint.java102
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInTreeTableConstraint.java47
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/EObjectInNatTableFactory.java87
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableFactory.java46
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableModelElement.java259
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/observable/AbstractConfigurationElementObservableValue.java275
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/observable/AbstractPasteObjectPostActionsObservableValue.java11
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/utils/Constants.java6
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/pom.xml2
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/AbstractNattableWidgetManager.java123
-rwxr-xr-xplugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/NattableModelManager.java1
-rw-r--r--plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/provider/TableSelectionProvider.java9
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/META-INF/MANIFEST.MF2
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/pom.xml2
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/src/org/eclipse/papyrus/infra/properties/ui/modelelement/AbstractModelElement.java11
-rw-r--r--plugins/infra/ui/org.eclipse.papyrus.infra.newchild.ui/META-INF/MANIFEST.MF2
57 files changed, 1901 insertions, 300 deletions
diff --git a/plugins/infra/editor/org.eclipse.papyrus.infra.editor.welcome.nattable/META-INF/MANIFEST.MF b/plugins/infra/editor/org.eclipse.papyrus.infra.editor.welcome.nattable/META-INF/MANIFEST.MF
index ef9905b6b61..501bbc2feee 100644
--- a/plugins/infra/editor/org.eclipse.papyrus.infra.editor.welcome.nattable/META-INF/MANIFEST.MF
+++ b/plugins/infra/editor/org.eclipse.papyrus.infra.editor.welcome.nattable/META-INF/MANIFEST.MF
@@ -13,7 +13,7 @@ Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)";visibility
org.eclipse.nebula.widgets.nattable.extension.glazedlists;bundle-version="[1.4.0,2.0.0)",
ca.odell.glazedlists;bundle-version="[1.9.0,2.0.0)";visibility:=reexport,
org.eclipse.papyrus.infra.services.navigation;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.2.0,2.0.0)";visibility:=reexport,
+ org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
org.eclipse.papyrus.infra.editor.welcome;bundle-version="[1.2.0,2.0.0)"
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/editor/org.eclipse.papyrus.infra.editor.welcome/META-INF/MANIFEST.MF b/plugins/infra/editor/org.eclipse.papyrus.infra.editor.welcome/META-INF/MANIFEST.MF
index d66d15f0e09..16c58f794d0 100644
--- a/plugins/infra/editor/org.eclipse.papyrus.infra.editor.welcome/META-INF/MANIFEST.MF
+++ b/plugins/infra/editor/org.eclipse.papyrus.infra.editor.welcome/META-INF/MANIFEST.MF
@@ -13,7 +13,7 @@ Export-Package: org.eclipse.papyrus.infra.editor.welcome,
Require-Bundle: org.eclipse.uml2.types;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
org.eclipse.uml2.common;bundle-version="[2.1.0,3.0.0)";visibility:=reexport,
org.eclipse.papyrus.infra.core;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
- org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.2.0,2.0.0)"
+ org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.3.0,2.0.0)"
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy;exclude:="org.eclipse.papyrus.infra.editor.welcome.internal.constraints"
Bundle-Version: 1.2.100.qualifier
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf.types.ui/META-INF/MANIFEST.MF b/plugins/infra/emf/org.eclipse.papyrus.infra.emf.types.ui/META-INF/MANIFEST.MF
index 24cc73c692c..c44b76d4d00 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf.types.ui/META-INF/MANIFEST.MF
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.emf.types.ui/META-INF/MANIFEST.MF
@@ -8,7 +8,7 @@ Bundle-Activator: org.eclipse.papyrus.infra.emf.types.ui.advices.values.provider
Require-Bundle: org.eclipse.papyrus.infra.types.core;bundle-version="[3.0.0,4.0.0)";visibility:=reexport,
org.eclipse.papyrus.infra.types.edit;bundle-version="[3.0.0,4.0.0)";visibility:=reexport,
org.eclipse.papyrus.infra.properties.edit;bundle-version="[1.2.0,2.0.0)";visibility:=reexport,
- org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.3.0,2.0.0)",
org.eclipse.papyrus.infra.services.edit;bundle-version="[2.0.0,3.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.properties/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.properties/META-INF/MANIFEST.MF
index 6c0f82c6f09..15c4a98e6d7 100644
--- a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.properties/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.properties/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Export-Package: org.eclipse.papyrus.infra.gmfdiag.css.properties.creation,
org.eclipse.papyrus.infra.gmfdiag.css.properties.databinding,
org.eclipse.papyrus.infra.gmfdiag.css.properties.provider
-Require-Bundle: org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.2.0,2.0.0)";visibility:=reexport,
+Require-Bundle: org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
org.eclipse.papyrus.infra.gmfdiag.css;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.infra.gmfdiag.properties;bundle-version="[2.0.0,3.0.0)",
org.eclipse.e4.ui.css.core;bundle-version="[0.11.0,1.0.0)",
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF
index d91c41940ae..1f13d1954fa 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Export-Package: org.eclipse.papyrus.infra.gmfdiag.properties.extension,
org.eclipse.papyrus.infra.gmfdiag.properties.modelelement
-Require-Bundle: org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.2.0,2.0.0)";visibility:=reexport,
+Require-Bundle: org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.3.0,2.0.0)";visibility:=reexport,
org.eclipse.core.databinding.beans;bundle-version="[1.3.0,2.0.0)",
org.eclipse.papyrus.infra.gmfdiag.preferences;bundle-version="[2.0.0,3.0.0)",
org.eclipse.papyrus.infra.gmfdiag.canonical;bundle-version="[1.2.0,2.0.0)"
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.widgets/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.widgets/META-INF/MANIFEST.MF
index 444febf238f..cef74806ec2 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.widgets/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.widgets/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@ Require-Bundle: org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
org.eclipse.core.databinding;bundle-version="[1.4.0,2.0.0)",
org.eclipse.jface.databinding;bundle-version="[1.5.0,2.0.0)",
org.eclipse.core.databinding.property;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.3.0,2.0.0)",
org.eclipse.e4.ui.css.core;bundle-version="[0.11.0,1.0.0)"
Export-Package: org.eclipse.papyrus.infra.gmfdiag.widgets,
org.eclipse.papyrus.infra.gmfdiag.widgets.editors
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable/META-INF/MANIFEST.MF
index e1db4bf7484..438227a32a1 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable/META-INF/MANIFEST.MF
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.emf.nattable/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@ Export-Package: org.eclipse.papyrus.infra.emf.nattable,
org.eclipse.papyrus.infra.emf.nattable.registry,
org.eclipse.papyrus.infra.emf.nattable.selection,
org.eclipse.papyrus.infra.emf.nattable.validator
-Require-Bundle: org.eclipse.papyrus.infra.nattable;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
+Require-Bundle: org.eclipse.papyrus.infra.nattable;bundle-version="[2.1.0,3.0.0)";visibility:=reexport,
org.eclipse.papyrus.infra.emf;bundle-version="[2.0.0,3.0.0)",
org.eclipse.papyrus.infra.services.edit;bundle-version="[2.0.0,3.0.0)",
org.eclipse.papyrus.infra.emf.gmf;bundle-version="[1.2.0,2.0.0)"
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/META-INF/MANIFEST.MF
index d5685a971a8..aae0115c45f 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/META-INF/MANIFEST.MF
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.common/META-INF/MANIFEST.MF
@@ -8,7 +8,7 @@ Export-Package: org.eclipse.papyrus.infra.nattable.common,
org.eclipse.papyrus.infra.nattable.common.utils,
org.eclipse.papyrus.infra.nattable.common.wizards,
org.eclipse.papyrus.infra.nattable.internal.common.commands;x-friends:="org.eclipse.papyrus.infra.nattable.gmfdiag"
-Require-Bundle: org.eclipse.papyrus.infra.nattable;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
+Require-Bundle: org.eclipse.papyrus.infra.nattable;bundle-version="[2.1.0,3.0.0)";visibility:=reexport,
org.eclipse.papyrus.infra.nattable.model;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
org.eclipse.papyrus.infra.emf;bundle-version="[2.0.0,3.0.0)",
org.eclipse.papyrus.infra.emf.gmf;bundle-version="[1.2.0,2.0.0)",
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/META-INF/MANIFEST.MF
index c4306b7ad6a..8d62f875cf7 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/META-INF/MANIFEST.MF
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/META-INF/MANIFEST.MF
@@ -1,14 +1,15 @@
Manifest-Version: 1.0
Export-Package: org.eclipse.papyrus.infra.nattable.properties.constraints
-Require-Bundle: org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.2.0,2.0.0)",
+Require-Bundle: org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.3.0,2.0.0)",
org.eclipse.papyrus.infra.emf.gmf;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.infra.constraints;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
org.eclipse.papyrus.infra.services.edit;bundle-version="[2.0.0,3.0.0)",
org.eclipse.papyrus.infra.viewpoints.policy;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.papyrus.infra.emf.nattable;bundle-version="[2.0.0,3.0.0)"
+ org.eclipse.papyrus.infra.emf.nattable;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.papyrus.infra.nattable.common;bundle-version="[2.0.0,3.0.0)"
Bundle-Vendor: %Bundle-Vendor
Bundle-ActivationPolicy: lazy
-Bundle-Version: 2.0.0.qualifier
+Bundle-Version: 2.1.0.qualifier
Bundle-Name: %Bundle-Name
Bundle-Activator: org.eclipse.papyrus.infra.nattable.properties.Activator
Bundle-ManifestVersion: 2
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/Environment.xmi b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/Environment.xmi
index 15cc192056b..6536ccfbef8 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/Environment.xmi
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/Environment.xmi
@@ -6,7 +6,19 @@
<constraintTypes
label="isTreeTable"
constraintClass="org.eclipse.papyrus.infra.nattable.properties.constraints.IsTreeTableConstraint"/>
+ <constraintTypes
+ label="isEObjectInTable"
+ constraintClass="org.eclipse.papyrus.infra.nattable.properties.constraints.IsEObjectInTableConstraint"/>
+ <constraintTypes
+ label="isEObjectInFlatTable"
+ constraintClass="org.eclipse.papyrus.infra.nattable.properties.constraints.IsEObjectInFlatTableConstraint"/>
+ <constraintTypes
+ label="isEObjectInTreeTable"
+ constraintClass="org.eclipse.papyrus.infra.nattable.properties.constraints.IsEObjectInTreeTableConstraint"/>
<modelElementFactories
name="NatTableFactory"
factoryClass="org.eclipse.papyrus.infra.nattable.properties.modelelement.NatTableFactory"/>
+ <modelElementFactories
+ name="EObjectInNatTableFactory"
+ factoryClass="org.eclipse.papyrus.infra.nattable.properties.modelelement.EObjectInNatTableFactory"/>
</environment:Environment>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/nattable.ctx b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/nattable.ctx
index 1f69eca0e65..bed8cc6b562 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/nattable.ctx
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/nattable.ctx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ASCII"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:constraints="http://www.eclipse.org/papyrus/constraints/0.9" xmlns:contexts="http://www.eclipse.org/papyrus/properties/contexts/0.9">
<contexts:Context xmi:id="_bYd04JLDEeWbp4A9_-WIrQ" name="nattable" label="Table Configuration Models">
- <tabs xmi:id="_bYd04ZLDEeWbp4A9_-WIrQ" label="Table" id="Table" category="default" priority="1">
+ <tabs xmi:id="_bYd04ZLDEeWbp4A9_-WIrQ" label="Table" id="Table" category="org.eclipse.papyrus" priority="11">
<sections xmi:id="_bYd04pLDEeWbp4A9_-WIrQ" name="Single Table" sectionFile="ui/SingleTable.xwt">
<widget href="ui/SingleTable.xwt#/"/>
</sections>
@@ -197,8 +197,14 @@
<sections xmi:id="_lFizkJOGEeWeQ8lFehLIEQ" name="Single Tree Table" sectionFile="ui/SingleTreeTable.xwt">
<widget href="ui/SingleTreeTable.xwt#/"/>
</sections>
+ <sections xmi:id="_bYd04pLDEeWbp4A9_-WIrR" name="EObject In Flat Table" sectionFile="ui/EObjectInFlatTable.xwt">
+ <widget href="ui/EObjectInFlatTable.xwt#/"/>
+ </sections>
+ <sections xmi:id="_bYd04pLDEeWbp4A9_-WIrS" name="EObject In Tree Table" sectionFile="ui/EObjectInTreeTable.xwt">
+ <widget href="ui/EObjectInTreeTable.xwt#/"/>
+ </sections>
</tabs>
- <tabs xmi:id="_bYfDCJLDEeWbp4A9_-WIrQ" label="Appearance" id="TableAppearance" category="default" afterTab="_bYd04ZLDEeWbp4A9_-WIrQ">
+ <tabs xmi:id="_bYfDCJLDEeWbp4A9_-WIrQ" label="Appearance" id="TableAppearance" category="org.eclipse.papyrus" afterTab="_bYd04ZLDEeWbp4A9_-WIrQ" priority="12">
<sections xmi:id="_hIAtIJQtEeWx9KtEop_Tug" name="SingleNormalTableAppearance" sectionFile="ui/SingleNormalTableAppearance.xwt">
<constraints xsi:type="constraints:SimpleConstraint" xmi:id="_2SAlsJQtEeWx9KtEop_Tug" name="isNormalTable">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.nattable.properties/model/Environment.xmi#//@constraintTypes.0"/>
@@ -237,8 +243,46 @@
</constraints>
<widget href="ui/RowObjectLabelProviderConfiguration.xwt#/"/>
</sections>
+ <sections xmi:id="_hIAtIJQtEeWx9KtEop_Tuh" name="EObjectInNormalTableAppearance" sectionFile="ui/EObjectInNormalTableAppearance.xwt">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMeJgETkEeaBQ-vHVYbtqQ" name="hasColumnFeatureLabelConfigurationConstraint" overrideable="false">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.4"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMeJgUTkEeaBQ-vHVYbtqQ" name="className" value="org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableIsFlatTableConstraint"/>
+ </constraints>
+ <widget href="ui/EObjectInNormalTableAppearance.xwt#/"/>
+ </sections>
+ <sections xmi:id="_bYfDCZLDEeWbp4A9_-WIrR" name="EObjectInTableAppearance" sectionFile="ui/EObjectInTableAppearance.xwt">
+ <widget href="ui/EObjectInTableAppearance.xwt#/"/>
+ </sections>
+ <sections xmi:id="_bYfDCpLDEeWbp4A9_-WIrR" name="EObjectInTableColumnFeatureLabelProviderConfiguration" sectionFile="ui/EObjectInTableColumnFeatureLabelProviderConfiguration.xwt">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMeJgkTkEeaBQ-vHVYbtqQ" name="hasColumnFeatureLabelConfigurationConstraint" overrideable="false">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.4"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMeJg0TkEeaBQ-vHVYbtqQ" name="className" value="org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableHasColumnFeatureLabelConfigurationConstraint"/>
+ </constraints>
+ <widget href="ui/EObjectInTableColumnFeatureLabelProviderConfiguration.xwt#/"/>
+ </sections>
+ <sections xmi:id="_bYfDDZLDEeWbp4A9_-WIrR" name="EObjectInTableColumnObjectLabelProviderConfiguration" sectionFile="ui/EObjectInTableColumnObjectLabelProviderConfiguration.xwt">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMeJhETkEeaBQ-vHVYbtqQ" name="hasColumnObjectLabelConfigurationConstraint" overrideable="false">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.4"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMeJhUTkEeaBQ-vHVYbtqQ" name="className" value="org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableHasColumnObjectLabelConfigurationConstraint"/>
+ </constraints>
+ <widget href="ui/EObjectInTableColumnObjectLabelProviderConfiguration.xwt#/"/>
+ </sections>
+ <sections xmi:id="_bYfDEJLDEeWbp4A9_-WIrR" name="EObjectInTableRowFeatureLabelProviderConfiguration" sectionFile="ui/EObjectInTableRowFeatureLabelProviderConfiguration.xwt">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMeJhkTkEeaBQ-vHVYbtqQ" name="hasRowFeatureLabelConfigurationConstraint" overrideable="false">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.4"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMeJh0TkEeaBQ-vHVYbtqQ" name="className" value="org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableHasRowFeatureLabelConfigurationConstraint"/>
+ </constraints>
+ <widget href="ui/EObjectInTableRowFeatureLabelProviderConfiguration.xwt#/"/>
+ </sections>
+ <sections xmi:id="_bYfDE5LDEeWbp4A9_-WIrR" name="EObjectInTableRowObjectLabelProviderConfiguration" sectionFile="ui/EObjectInTableRowObjectLabelProviderConfiguration.xwt">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMeJiETkEeaBQ-vHVYbtqQ" name="hasRowObjectLabelConfigurationConstraint" overrideable="false">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.4"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMeJiUTkEeaBQ-vHVYbtqQ" name="className" value="org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableHasRowObjectLabelConfigurationConstraint"/>
+ </constraints>
+ <widget href="ui/EObjectInTableRowObjectLabelProviderConfiguration.xwt#/"/>
+ </sections>
</tabs>
- <tabs xmi:id="_bYfDFpLDEeWbp4A9_-WIrQ" label="Paste" id="Paste In Table" category="default" afterTab="_bYfDCJLDEeWbp4A9_-WIrQ">
+ <tabs xmi:id="_bYfDFpLDEeWbp4A9_-WIrQ" label="Paste" id="Paste In Table" category="org.eclipse.papyrus" afterTab="_bYfDCJLDEeWbp4A9_-WIrQ" priority="13">
<sections xmi:id="_bYfDF5LDEeWbp4A9_-WIrQ" name="CanPasteEObjectColumnSection" sectionFile="ui/CanPasteEObjectColumnSection.xwt">
<constraints xsi:type="constraints:SimpleConstraint" xmi:id="_bYfDGJLDEeWbp4A9_-WIrQ" name="canPasteColumnEObjectConstraint">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.4"/>
@@ -274,6 +318,41 @@
</constraints>
<widget href="ui/HasTreeFillingConfiguration.xwt#/"/>
</sections>
+ <sections xmi:id="_bYfDF5LDEeWbp4A9_-WIrR" name="EObjectInTableCanPasteEObjectColumnSection" sectionFile="ui/CanPasteEObjectColumnSection.xwt">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMeJikTkEeaBQ-vHVYbtqQ" name="EObjectInTableCanPasteColumnEObjectConstraint">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.4"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMeJi0TkEeaBQ-vHVYbtqQ" name="className" value="org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableCanCreateColumnElementContraint"/>
+ </constraints>
+ <widget href="ui/EObjectInTableCanPasteEObjectColumnSection.xwt#/"/>
+ </sections>
+ <sections xmi:id="_bYfDGpLDEeWbp4A9_-WIrR" name="EObjectInTableCantPasteEObjectColumnSection" sectionFile="ui/EObjectInTableCantPasteEObjectColumnSection.xwt">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMeJjETkEeaBQ-vHVYbtqQ" name="EObjectInTableCantPasteColumnEObjectConstraint">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.4"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMeJjUTkEeaBQ-vHVYbtqQ" name="className" value="org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableCantCreateColumnElementContraint"/>
+ </constraints>
+ <widget href="ui/EObjectInTableCantPasteEObjectColumnSection.xwt#/"/>
+ </sections>
+ <sections xmi:id="_bYfDHZLDEeWbp4A9_-WIrR" name="EObjectInTableCanPasteEObjectRowSection" sectionFile="ui/EObjectInTableCanPasteEObjectRowSection.xwt">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMeJjkTkEeaBQ-vHVYbtqQ" name="EObjectInTableCanPasteEObjectRowConstraint">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.4"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMeJj0TkEeaBQ-vHVYbtqQ" name="className" value="org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableCanCreateRowElementContraint"/>
+ </constraints>
+ <widget href="ui/EObjectInTableCanPasteEObjectRowSection.xwt#/"/>
+ </sections>
+ <sections xmi:id="_bYfDIJLDEeWbp4A9_-WIrR" name="EObjectInTableCantPasteEObjectRowSection" sectionFile="ui/EObjectInTableCantPasteEObjectRowSection.xwt">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMeJkETkEeaBQ-vHVYbtqQ" name="EObjectInTableCantPasteEObjectRowConstraint">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.4"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMeJkUTkEeaBQ-vHVYbtqQ" name="className" value="org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableCantCreateRowElementContraint"/>
+ </constraints>
+ <widget href="ui/EObjectInTableCantPasteEObjectRowSection.xwt#/"/>
+ </sections>
+ <sections xmi:id="_HDwIwJQnEeWx9KtEop_Tuh" name="EObjectInTableHasTreeFillingConfiguration" sectionFile="ui/EObjectInTableHasTreeFillingConfiguration.xwt">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMeJkkTkEeaBQ-vHVYbtqQ" name="EObjectInTableHasTreeFillingConfigurationConstraint">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.constraints/Model/ConstraintEnvironment.xmi#//@constraintTypes.4"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMeJk0TkEeaBQ-vHVYbtqQ" name="className" value="org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableHasTreeFillingConfigurationConstraint"/>
+ </constraints>
+ <widget href="ui/EObjectInTableHasTreeFillingConfiguration.xwt#/"/>
+ </sections>
</tabs>
<views xmi:id="_bYfDI5LDEeWbp4A9_-WIrQ" name="Single Table" sections="_bYd04pLDEeWbp4A9_-WIrQ" automaticContext="true" datacontexts="_bYg4hJLDEeWbp4A9_-WIrQ">
<constraints xsi:type="constraints:CompositeConstraint" xmi:id="_3Ik7MJOGEeWeQ8lFehLIEQ" name="isSingleNormalTable">
@@ -748,7 +827,7 @@
<properties xsi:type="constraints:ValueProperty" xmi:id="_bYg4epLDEeWbp4A9_-WIrQ" name="className" value="ObjectIdAxis"/>
</constraints>
</views>
- <views xmi:id="_bYg4e5LDEeWbp4A9_-WIrQ" name="SingleTableAppearance" sections="_bYfDCZLDEeWbp4A9_-WIrQ _bYfDCpLDEeWbp4A9_-WIrQ _bYfDDZLDEeWbp4A9_-WIrQ _bYfDEJLDEeWbp4A9_-WIrQ _bYfDE5LDEeWbp4A9_-WIrQ">
+ <views xmi:id="_bYg4e5LDEeWbp4A9_-WIrQ" name="SingleTableAppearance" sections="_hIAtIJQtEeWx9KtEop_Tug _bYfDCZLDEeWbp4A9_-WIrQ _bYfDCpLDEeWbp4A9_-WIrQ _bYfDDZLDEeWbp4A9_-WIrQ _bYfDEJLDEeWbp4A9_-WIrQ _bYfDE5LDEeWbp4A9_-WIrQ">
<constraints xsi:type="constraints:SimpleConstraint" xmi:id="_bYg4fJLDEeWbp4A9_-WIrQ" name="singleTable">
<constraintType href="ppe:/environment/org.eclipse.papyrus.infra.properties.ui/model/Environment.xmi#//@constraintTypes.0"/>
<properties xsi:type="constraints:ValueProperty" xmi:id="_bYg4fZLDEeWbp4A9_-WIrQ" name="nsUri" value="http://www.eclipse.org/papyrus/nattable/model"/>
@@ -762,6 +841,30 @@
<properties xsi:type="constraints:ValueProperty" xmi:id="_bYg4gpLDEeWbp4A9_-WIrQ" name="className" value="Table"/>
</constraints>
</views>
+ <views xmi:id="_bYfDI5LDEeWbp4A9_-WIrR" name="EObjectInFlatTable" sections="_bYd04pLDEeWbp4A9_-WIrR" automaticContext="true" datacontexts="_bYg4g5LDEeWbp4A9_-WIrR">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_rQ-gUDPSEeatstN8F-Z_Kw" name="isEObjectInFlatTable">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.nattable.properties/model/Environment.xmi#//@constraintTypes.2"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_1knLypNSEeWeQ8lFehLIEQ" name="expectedValue" value="true"/>
+ </constraints>
+ </views>
+ <views xmi:id="_bYfDI5LDEeWbp4A9_-WIrS" name="EObjectInTreeTable" sections="_bYd04pLDEeWbp4A9_-WIrS" automaticContext="true" datacontexts="_bYg4g5LDEeWbp4A9_-WIrR">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMnTcETkEeaBQ-vHVYbtqQ" name="isEObjectInTreeTable">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.nattable.properties/model/Environment.xmi#//@constraintTypes.3"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMnTcUTkEeaBQ-vHVYbtqQ" name="expectedValue" value="true"/>
+ </constraints>
+ </views>
+ <views xmi:id="_bYfDI5LDEeWbp4A9_-WIrR" name="EObjectInTableAppearance" sections="_hIAtIJQtEeWx9KtEop_Tuh _bYfDCZLDEeWbp4A9_-WIrR _bYfDCpLDEeWbp4A9_-WIrR _bYfDDZLDEeWbp4A9_-WIrR _bYfDEJLDEeWbp4A9_-WIrR _bYfDE5LDEeWbp4A9_-WIrR" automaticContext="true" datacontexts="_bYg4g5LDEeWbp4A9_-WIrR">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMnTckTkEeaBQ-vHVYbtqQ" name="EObjectInTable">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.nattable.properties/model/Environment.xmi#//@constraintTypes.1"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMnTc0TkEeaBQ-vHVYbtqQ" name="expectedValue" value="true"/>
+ </constraints>
+ </views>
+ <views xmi:id="_bYg4f5LDEeWbp4A9_-WIrQ" name="EObjectInTablePasteInTable" sections="_bYfDF5LDEeWbp4A9_-WIrR _bYfDGpLDEeWbp4A9_-WIrR _bYfDHZLDEeWbp4A9_-WIrR _bYfDIJLDEeWbp4A9_-WIrR">
+ <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_zMnTdETkEeaBQ-vHVYbtqQ" name="EObjectInTable">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.infra.nattable.properties/model/Environment.xmi#//@constraintTypes.1"/>
+ <properties xsi:type="constraints:ValueProperty" xmi:id="_zMnTdUTkEeaBQ-vHVYbtqQ" name="expectedValue" value="true"/>
+ </constraints>
+ </views>
<dataContexts xmi:id="_bYg4g5LDEeWbp4A9_-WIrQ" name="nattable" label="nattable">
<elements xmi:id="_bYg4hJLDEeWbp4A9_-WIrQ" name="Table" supertypes="_bYhfXJLDEeWbp4A9_-WIrQ">
<properties xmi:id="_bYhfQJLDEeWbp4A9_-WIrQ" name="context" type="Reference"/>
@@ -906,6 +1009,78 @@
</elements>
<modelElementFactory href="Environment.xmi#//@modelElementFactories.0"/>
</dataContexts>
+ <dataContexts xmi:id="_bYg4g5LDEeWbp4A9_-WIrR" name="EObjectInTable" label="EMF">
+ <elements xmi:id="_bYhfXJLDEeWbp4A9_-WIrR" name="TableNamedElement">
+ <properties xmi:id="_bYhfXZLDEeWbp4A9_-WIrR" name="description"/>
+ <properties xmi:id="_bYhfXpLDEeWbp4A9_-WIrR" name="name"/>
+ </elements>
+ <elements xmi:id="_bYg4hJLDEeWbp4A9_-WIrQ" name="Table" supertypes="_bYhfXJLDEeWbp4A9_-WIrR">
+ <properties xmi:id="_bYhfQJLDEeWbp4A9_-WIrR" name="context" type="Reference"/>
+ <properties xmi:id="_bYhfQZLDEeWbp4A9_-WIrR" name="tableConfiguration" type="Reference"/>
+ <properties xmi:id="_bYhfRZLDEeWbp4A9_-WIrQ" name="localRowHeaderAxisConfiguration" type="Reference"/>
+ <properties xmi:id="_bYhfRpLDEeWbp4A9_-WIrQ" name="localColumnHeaderAxisConfiguration" type="Reference"/>
+ <properties xmi:id="_bYhfSZLDEeWbp4A9_-WIrQ" name="columnFeatureLabelProviderConfigurationDisplayIcon" label="Display Column FeatureIcon" type="Boolean" description="Display Column Icon"/>
+ <properties xmi:id="_bYhfSpLDEeWbp4A9_-WIrQ" name="columnFeatureLabelProviderConfigurationDisplayLabel" label="Display Column Feature Label" type="Boolean" description="Display Column Label"/>
+ <properties xmi:id="_bYhfS5LDEeWbp4A9_-WIrQ" name="columnFeatureLabelProviderConfigurationDisplayIsDerived" label="Display Column Feature IsDerived" type="Boolean" description="Display Column Feature IsDerived"/>
+ <properties xmi:id="_bYhfTJLDEeWbp4A9_-WIrQ" name="columnFeatureLabelProviderConfigurationDisplayType" label="Display Column Feature Type" type="Boolean" description="Display Column Feature Type"/>
+ <properties xmi:id="_bYhfTZLDEeWbp4A9_-WIrQ" name="columnFeatureLabelProviderConfigurationDisplayMultiplicity" label="Display Column Feature Multiplicity" type="Boolean" description="Display Column Feature Multiplicity"/>
+ <properties xmi:id="_bYhfTpLDEeWbp4A9_-WIrQ" name="columnFeatureLabelProviderConfigurationDisplayName" label="Display Column Feature Name" type="Boolean" description="Display Column Feature Name"/>
+ <properties xmi:id="_bYhfT5LDEeWbp4A9_-WIrQ" name="columnObjectLabelProviderConfigurationDisplayIcon" label="Display Column Object Icon" type="Boolean" description="Display Column Object Icon"/>
+ <properties xmi:id="_bYhfUJLDEeWbp4A9_-WIrQ" name="columnObjectLabelProviderConfigurationDisplayLabel" label="Display Column Object Label" type="Boolean" description="Display Column Object Label"/>
+ <properties xmi:id="_bYhfUZLDEeWbp4A9_-WIrQ" name="rowFeatureLabelProviderConfigurationDisplayIcon" label="Display Row FeatureIcon" type="Boolean" description="Display Row Icon"/>
+ <properties xmi:id="_bYhfUpLDEeWbp4A9_-WIrQ" name="rowFeatureLabelProviderConfigurationDisplayLabel" label="Display Row Feature Label" type="Boolean" description="Display Row Label"/>
+ <properties xmi:id="_bYhfU5LDEeWbp4A9_-WIrQ" name="rowFeatureLabelProviderConfigurationDisplayIsDerived" label="Display Row Feature IsDerived" type="Boolean" description="Display Row Feature IsDerived"/>
+ <properties xmi:id="_bYhfVJLDEeWbp4A9_-WIrQ" name="rowFeatureLabelProviderConfigurationDisplayType" label="Display Row Feature Type" type="Boolean" description="Display Row Feature Type"/>
+ <properties xmi:id="_bYhfVZLDEeWbp4A9_-WIrQ" name="rowFeatureLabelProviderConfigurationDisplayMultiplicity" label="Display Row Feature Multiplicity" type="Boolean" description="Display Row Feature Multiplicity"/>
+ <properties xmi:id="_bYhfVpLDEeWbp4A9_-WIrQ" name="rowFeatureLabelProviderConfigurationDisplayName" label="Display Row Feature Name" type="Boolean" description="Display Row Feature Name"/>
+ <properties xmi:id="_bYhfV5LDEeWbp4A9_-WIrQ" name="rowObjectLabelProviderConfigurationDisplayIcon" label="Display Row Object Icon" type="Boolean" description="Display Row Object Icon"/>
+ <properties xmi:id="_bYhfWJLDEeWbp4A9_-WIrQ" name="rowObjectLabelProviderConfigurationDisplayLabel" label="Display Row Object Label" type="Boolean" description="Display Row Object Label"/>
+ <properties xmi:id="_bYhfWZLDEeWbp4A9_-WIrQ" name="rowPastedEObjectId" label="Row Pasted Element Type Id" description="Row Pasted Element Type Id"/>
+ <properties xmi:id="_bYhfWpLDEeWbp4A9_-WIrQ" name="rowPastedEObjectContainmentFeature" label="Row Pasted EObject Contaiment Feature"/>
+ <properties xmi:id="_bYhfQpLDEeWbp4A9_-WIrR" name="invertAxis"/>
+ </elements>
+ <elements xsi:type="contexts:DataContextPackage" xmi:id="_bYhffZLDEeWbp4A9_-WIrR" name="nattableaxisconfiguration">
+ <elements xmi:id="_bYhffpLDEeWbp4A9_-WIrR" name="AbstractHeaderAxisConfiguration">
+ <properties xmi:id="_bYhff5LDEeWbp4A9_-WIrR" name="indexStyle" type="Enumeration"/>
+ <properties xmi:id="_bYhfgJLDEeWbp4A9_-WIrR" name="displayLabel"/>
+ <properties xmi:id="_bYhfgZLDEeWbp4A9_-WIrR" name="displayFilter"/>
+ <properties xmi:id="_bYhfgpLDEeWbp4A9_-WIrR" name="displayIndex"/>
+ <properties xmi:id="_bYhfg5LDEeWbp4A9_-WIrR" name="ownedLabelConfigurations" type="Reference" multiplicity="-1"/>
+ <properties xmi:id="_bYhfhJLDEeWbp4A9_-WIrR" name="ownedAxisConfigurations" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements xmi:id="_bYhfhZLDEeWbp4A9_-WIrR" name="AxisManagerRepresentation">
+ <properties xmi:id="_bYhfhpLDEeWbp4A9_-WIrR" name="axisManagerId"/>
+ <properties xmi:id="_bYhfh5LDEeWbp4A9_-WIrR" name="labelProviderContext"/>
+ <properties xmi:id="_bYhfiJLDEeWbp4A9_-WIrR" name="headerLabelConfiguration" type="Reference"/>
+ <properties xmi:id="_bYhfiZLDEeWbp4A9_-WIrR" name="specificAxisConfigurations" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements xmi:id="_bYhfipLDEeWbp4A9_-WIrR" name="AxisManagerConfiguration">
+ <properties xmi:id="_bYhfi5LDEeWbp4A9_-WIrR" name="localHeaderLabelConfiguration" type="Reference"/>
+ <properties xmi:id="_bYhfjJLDEeWbp4A9_-WIrR" name="axisManager" type="Reference"/>
+ <properties xmi:id="_bYhfjZLDEeWbp4A9_-WIrR" name="localSpecificConfigurations" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements xmi:id="_bYhfjpLDEeWbp4A9_-WIrR" name="TableHeaderAxisConfiguration" supertypes="_bYhffpLDEeWbp4A9_-WIrR">
+ <properties xmi:id="_bYhfj5LDEeWbp4A9_-WIrR" name="axisManagers" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements xmi:id="_bYhfkJLDEeWbp4A9_-WIrR" name="LocalTableHeaderAxisConfiguration" supertypes="_bYhffpLDEeWbp4A9_-WIrR">
+ <properties xmi:id="_bYhfkZLDEeWbp4A9_-WIrR" name="axisManagerConfigurations" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements xmi:id="_bYhfkpLDEeWbp4A9_-WIrR" name="IAxisConfiguration"/>
+ <elements xmi:id="_bYhfk5LDEeWbp4A9_-WIrR" name="FeatureAxisConfiguration" supertypes="_bYhfkpLDEeWbp4A9_-WIrR">
+ <properties xmi:id="_bYhflJLDEeWbp4A9_-WIrR" name="showOnlyCommonFeature" type="Boolean"/>
+ </elements>
+ <elements xmi:id="_bYhflZLDEeWbp4A9_-WIrR" name="IFillingConfiguration" supertypes="_bYhfkpLDEeWbp4A9_-WIrR"/>
+ <elements xmi:id="_bYhflpLDEeWbp4A9_-WIrR" name="EStructuralFeatureValueFillingConfiguration" supertypes="_bYhflZLDEeWbp4A9_-WIrR">
+ <properties xmi:id="_bYhfl5LDEeWbp4A9_-WIrR" name="listenFeature" type="Reference"/>
+ </elements>
+ <elements xmi:id="_bYhfmJLDEeWbp4A9_-WIrR" name="IPasteConfiguration" supertypes="_bYhfkpLDEeWbp4A9_-WIrR"/>
+ <elements xmi:id="_bYhfmZLDEeWbp4A9_-WIrR" name="PasteEObjectConfiguration" supertypes="_bYhfmJLDEeWbp4A9_-WIrR">
+ <properties xmi:id="_bYhfmpLDEeWbp4A9_-WIrR" name="pastedElementId"/>
+ <properties xmi:id="_bYhfm5LDEeWbp4A9_-WIrR" name="pasteElementContainementFeature" type="Reference"/>
+ </elements>
+ </elements>
+ <modelElementFactory href="Environment.xmi#//@modelElementFactories.1"/>
+ </dataContexts>
</contexts:Context>
<contexts:View xmi:id="_bYhfsJLDEeWbp4A9_-WIrQ" name="Single TableNamedElement" automaticContext="true" datacontexts="_bYhfXJLDEeWbp4A9_-WIrQ">
<constraints xsi:type="constraints:SimpleConstraint" xmi:id="_bYhfsZLDEeWbp4A9_-WIrQ" name="isSingleTableNamedElement">
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInFlatTable.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInFlatTable.xwt
new file mode 100644
index 00000000000..4bf9e016758
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInFlatTable.xwt
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
+ xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}"
+ property="EObjectInTable:TableNamedElement:name" customLabel="Name"></ppe:StringEditor>
+ <ppe:ReferenceLabel input="{Binding}"
+ property="EObjectInTable:Table:prototype" readOnly="true"
+ customLabel="View Type"></ppe:ReferenceLabel>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="EObjectInTable:Table:owner" customLabel="Owner"></ppe:ReferenceDialog>
+ <ppe:ReferenceLabel input="{Binding}"
+ property="EObjectInTable:Table:context" customLabel="Root element"></ppe:ReferenceLabel>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:invertAxis" customLabel="Invert Axis"></ppe:BooleanRadio>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringMultiline input="{Binding}"
+ property="EObjectInTable:TableNamedElement:description" customLabel="Description"></ppe:StringMultiline>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInNormalTableAppearance.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInNormalTableAppearance.xwt
new file mode 100644
index 00000000000..9ebf2c25cea
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInNormalTableAppearance.xwt
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Group text="Table">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Group.layout>
+ <ppe:BooleanRadio input="{Binding}" property="EObjectInTable:Table:invertAxis"></ppe:BooleanRadio>
+ </Group>
+</Composite> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableAppearance.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableAppearance.xwt
new file mode 100644
index 00000000000..1ba5a4c4d8a
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableAppearance.xwt
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation" text="Column">
+ <Composite.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="true" numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Group text="Column">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="2" makeColumnsEqualWidth="true"></ppel:PropertiesLayout>
+ </Group.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:localColumnHeaderAxisConfiguration.displayLabel"
+ customLabel="Display Label"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:localColumnHeaderAxisConfiguration.displayFilter"
+ readOnly="true" customLabel="Display Filter"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:localColumnHeaderAxisConfiguration.displayIndex"
+ customLabel="Display Index"></ppe:BooleanRadio>
+ <ppe:EnumCombo input="{Binding}"
+ property="EObjectInTable:Table:localColumnHeaderAxisConfiguration.indexStyle"
+ customLabel="Index Style"></ppe:EnumCombo>
+ </Group>
+ <Group text="Row">
+ <Group.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="true"
+ numColumns="1"></ppel:PropertiesLayout>
+ </Group.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="true"
+ numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:localRowHeaderAxisConfiguration.displayLabel"
+ customLabel="Display Label"></ppe:BooleanRadio>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="true" numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:localRowHeaderAxisConfiguration.displayIndex"
+ customLabel="Display Index"></ppe:BooleanRadio>
+ <ppe:EnumCombo input="{Binding}"
+ property="EObjectInTable:Table:localRowHeaderAxisConfiguration.indexStyle"
+ customLabel="Index Style"></ppe:EnumCombo>
+ </Composite>
+ </Group>
+</Composite> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCanPasteEObjectColumnSection.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCanPasteEObjectColumnSection.xwt
new file mode 100644
index 00000000000..985c0619f73
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCanPasteEObjectColumnSection.xwt
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Group text="Paste Column Axis">
+ <Group.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="true"
+ numColumns="3"></ppel:PropertiesLayout>
+ </Group.layout>
+ <ppe:BooleanCheckbox input="{Binding}"
+ property="EObjectInTable:Table:localColumnHeaderAxisConfiguration.detachedMode"
+ customLabel="Detached Mode"></ppe:BooleanCheckbox>
+ <ppe:StringCombo input="{Binding}"
+ property="EObjectInTable:Table:localColumnHeaderAxisConfiguration.pastedEObjectId"
+ customLabel="Pasted Element Id"></ppe:StringCombo>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="EObjectInTable:Table:localColumnHeaderAxisConfiguration.pastedEObjectContainmentFeature"
+ customLabel="Containment Feature"></ppe:ReferenceDialog>
+ <ppe:MultiReference input="{Binding}"
+ property="EObjectInTable:Table:localColumnHeaderAxisConfiguration.postActions"
+ customLabel="Post Actions"></ppe:MultiReference>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="EObjectInTable:Table:localColumnHeaderAxisConfiguration.axisIdentifier"
+ customLabel="Axis used as identifier"></ppe:ReferenceDialog>
+ </Group>
+</Composite> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCanPasteEObjectRowSection.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCanPasteEObjectRowSection.xwt
new file mode 100644
index 00000000000..e2b9dec5fb2
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCanPasteEObjectRowSection.xwt
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Group text="Paste Row Axis">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="3"
+ makeColumnsEqualWidth="true"></ppel:PropertiesLayout>
+ </Group.layout>
+ <ppe:BooleanCheckbox input="{Binding}"
+ property="EObjectInTable:Table:localRowHeaderAxisConfiguration.detachedMode"
+ customLabel="Detached Mode"></ppe:BooleanCheckbox>
+ <ppe:StringCombo input="{Binding}"
+ property="EObjectInTable:Table:localRowHeaderAxisConfiguration.pastedEObjectId"
+ customLabel="Pasted Element Id"></ppe:StringCombo>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="EObjectInTable:Table:localRowHeaderAxisConfiguration.pastedEObjectContainmentFeature"
+ customLabel="Containment Feature"></ppe:ReferenceDialog>
+ <ppe:MultiReference input="{Binding}"
+ property="EObjectInTable:Table:localRowHeaderAxisConfiguration.postActions"
+ customLabel="Post Actions"></ppe:MultiReference>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="EObjectInTable:Table:localRowHeaderAxisConfiguration.axisIdentifier"
+ customLabel="Axis used as identifier"></ppe:ReferenceDialog>
+ </Group>
+</Composite> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCantPasteEObjectColumnSection.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCantPasteEObjectColumnSection.xwt
new file mode 100644
index 00000000000..419773c581c
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCantPasteEObjectColumnSection.xwt
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Group text="Paste Column Axis">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="1"
+ makeColumnsEqualWidth="true"></ppel:PropertiesLayout>
+ </Group.layout>
+ <Label></Label>
+ <Composite text="Paste Row Axis">
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="3"
+ makeColumnsEqualWidth="true"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Label></Label>
+ <Label text="Not Available For This Table"></Label>
+ <Label></Label>
+ </Composite>
+ <Composite text="Paste Row Axis">
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"
+ makeColumnsEqualWidth="false"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Label></Label>
+ </Composite>
+ </Group>
+</Composite> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCantPasteEObjectRowSection.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCantPasteEObjectRowSection.xwt
new file mode 100644
index 00000000000..8f9524abefb
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableCantPasteEObjectRowSection.xwt
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Group text="Paste Row Axis">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="1"
+ makeColumnsEqualWidth="true"></ppel:PropertiesLayout>
+ </Group.layout>
+ <Label></Label>
+ <Composite text="Paste Row Axis">
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="3"
+ makeColumnsEqualWidth="true"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Label></Label>
+ <Label text="Not Available For This Table"></Label>
+ <Label></Label>
+ </Composite>
+ <Composite text="Paste Row Axis">
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"
+ makeColumnsEqualWidth="false"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Label></Label>
+ </Composite>
+ </Group>
+</Composite> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableColumnFeatureLabelProviderConfiguration.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableColumnFeatureLabelProviderConfiguration.xwt
new file mode 100644
index 00000000000..0b15f104256
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableColumnFeatureLabelProviderConfiguration.xwt
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Group xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ text="Column Header Label Style">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Group.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite xmlns="http://www.eclipse.org/xwt/presentation"
+ text="Column Header Label Style" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout">
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:columnFeatureLabelProviderConfigurationDisplayIcon"
+ customLabel="Display Icon"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:columnFeatureLabelProviderConfigurationDisplayLabel"
+ customLabel="Display Label"></ppe:BooleanRadio>
+ </Composite>
+ <Group text="Label Feature Style">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Group.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:columnFeatureLabelProviderConfigurationDisplayIsDerived"
+ customLabel="Display IsDerived"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:columnFeatureLabelProviderConfigurationDisplayType"
+ customLabel="Display Type"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:columnFeatureLabelProviderConfigurationDisplayName"
+ customLabel="Display Name"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:columnFeatureLabelProviderConfigurationDisplayMultiplicity"
+ customLabel="Display Multiplicity"></ppe:BooleanRadio>
+ </Group>
+ </Composite>
+</Group> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableColumnObjectLabelProviderConfiguration.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableColumnObjectLabelProviderConfiguration.xwt
new file mode 100644
index 00000000000..b0637637888
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableColumnObjectLabelProviderConfiguration.xwt
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Group xmlns="http://www.eclipse.org/xwt/presentation"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ text="Column Header Label Style">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Group.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:columnObjectLabelProviderConfigurationDisplayIcon"
+ customLabel="Display Icon"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:columnObjectLabelProviderConfigurationDisplayLabel"
+ customLabel="Display Label"></ppe:BooleanRadio>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ </Composite>
+ </Composite>
+</Group> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableHasTreeFillingConfiguration.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableHasTreeFillingConfiguration.xwt
new file mode 100644
index 00000000000..b5c4c4f0b04
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableHasTreeFillingConfiguration.xwt
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Group text="Paste Row Axis">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="1"
+ makeColumnsEqualWidth="true"></ppel:PropertiesLayout>
+ </Group.layout>
+ <Label></Label>
+ <Composite text="Paste Row Axis">
+ <Composite.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="true"
+ numColumns="3"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Label></Label>
+ <Label
+ text="No available TreeFillingConfiguration for depth 0 in this table"></Label>
+ <Label></Label>
+ </Composite>
+ <Composite text="Paste Row Axis">
+ <Composite.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="false"
+ numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Label></Label>
+ </Composite>
+ </Group>
+</Composite> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableRowFeatureLabelProviderConfiguration.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableRowFeatureLabelProviderConfiguration.xwt
new file mode 100644
index 00000000000..d239afd5b78
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableRowFeatureLabelProviderConfiguration.xwt
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Group xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns:x="http://www.eclipse.org/xwt" text="Row Header Label Style">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Group.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite text="Column Header Label Style" xmlns="http://www.eclipse.org/xwt/presentation"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns:x="http://www.eclipse.org/xwt">
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:rowFeatureLabelProviderConfigurationDisplayIcon"
+ customLabel="Display Icon"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:rowFeatureLabelProviderConfigurationDisplayLabel"
+ customLabel="Display Label"></ppe:BooleanRadio>
+ </Composite>
+ <Group text="Label Feature Style">
+ <Group.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Group.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:rowFeatureLabelProviderConfigurationDisplayIsDerived"
+ customLabel="Display IsDerived"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:rowFeatureLabelProviderConfigurationDisplayType"
+ customLabel="Display Type"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:rowFeatureLabelProviderConfigurationDisplayName"
+ customLabel="Display Name"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:rowFeatureLabelProviderConfigurationDisplayMultiplicity"
+ customLabel="Display Multiplicity"></ppe:BooleanRadio>
+ </Group>
+ </Composite>
+</Group> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableRowObjectLabelProviderConfiguration.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableRowObjectLabelProviderConfiguration.xwt
new file mode 100644
index 00000000000..952cba60858
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTableRowObjectLabelProviderConfiguration.xwt
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Group xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ text="Row Header Label Style">
+ <Group.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Group.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:rowObjectLabelProviderConfigurationDisplayIcon"
+ customLabel="Display Icon"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="EObjectInTable:Table:rowObjectLabelProviderConfigurationDisplayLabel"
+ customLabel="Display Label"></ppe:BooleanRadio>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ </Composite>
+ </Composite>
+</Group> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTreeTable.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTreeTable.xwt
new file mode 100644
index 00000000000..f39d3fb7204
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/EObjectInTreeTable.xwt
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
+ xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}"
+ property="EObjectInTable:TableNamedElement:name" customLabel="Name"></ppe:StringEditor>
+ <ppe:ReferenceLabel input="{Binding}"
+ property="EObjectInTable:Table:prototype" readOnly="true"
+ customLabel="View Type"></ppe:ReferenceLabel>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="EObjectInTable:Table:owner" customLabel="Owner"></ppe:ReferenceDialog>
+ <ppe:ReferenceLabel input="{Binding}"
+ property="EObjectInTable:Table:context" customLabel="Root element"></ppe:ReferenceLabel>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringMultiline input="{Binding}"
+ property="EObjectInTable:TableNamedElement:description" customLabel="Description"></ppe:StringMultiline>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTable.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTable.xwt
index e5e2b13cd4b..0452f5604a9 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTable.xwt
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTable.xwt
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+<Composite xmlns:x="http://www.eclipse.org/xwt"
xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
- xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
- xmlns:j="clr-namespace:java.lang">
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang">
<Composite.layout>
<ppel:PropertiesLayout></ppel:PropertiesLayout>
</Composite.layout>
@@ -12,9 +12,12 @@
</Composite.layout>
<ppe:StringEditor input="{Binding}"
property="nattable:nattableconfiguration:TableNamedElement:name"></ppe:StringEditor>
- <ppe:ReferenceLabel input="{Binding}" property="nattable:Table:prototype" readOnly="true" customLabel="View Type"></ppe:ReferenceLabel>
- <ppe:ReferenceLabel input="{Binding}" property="nattable:Table:owner" readOnly="true" customLabel="Owner"></ppe:ReferenceLabel>
- <ppe:ReferenceDialog input="{Binding}" property="nattable:Table:context" customLabel="Root element"></ppe:ReferenceDialog>
+ <ppe:ReferenceLabel input="{Binding}"
+ property="nattable:Table:prototype" readOnly="true" customLabel="View Type"></ppe:ReferenceLabel>
+ <ppe:ReferenceDialog input="{Binding}" property="nattable:Table:owner"
+ customLabel="Owner"></ppe:ReferenceDialog>
+ <ppe:ReferenceLabel input="{Binding}" property="nattable:Table:context"
+ customLabel="Root element"></ppe:ReferenceLabel>
<ppe:BooleanRadio input="{Binding}" property="nattable:Table:invertAxis"></ppe:BooleanRadio>
</Composite>
<Composite>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTableAppearance.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTableAppearance.xwt
index d76b3d1d59d..0fe0be6e338 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTableAppearance.xwt
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTableAppearance.xwt
@@ -1,2 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
-<Composite xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets" xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout" xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" text="Column"><Composite.layout><ppel:PropertiesLayout makeColumnsEqualWidth="true" numColumns="1"></ppel:PropertiesLayout></Composite.layout><Group text="Column"><Group.layout><ppel:PropertiesLayout numColumns="2" makeColumnsEqualWidth="true"></ppel:PropertiesLayout></Group.layout><ppe:BooleanRadio input="{Binding}" property="nattable:Table:localColumnHeaderAxisConfiguration.displayLabel" customLabel="Display Label"></ppe:BooleanRadio><ppe:BooleanRadio input="{Binding}" property="nattable:Table:localColumnHeaderAxisConfiguration.displayFilter" readOnly="true" customLabel="Display Filter"></ppe:BooleanRadio><ppe:BooleanRadio input="{Binding}" property="nattable:Table:localColumnHeaderAxisConfiguration.displayIndex" customLabel="Display Index"></ppe:BooleanRadio><ppe:EnumCombo input="{Binding}" property="nattable:Table:localColumnHeaderAxisConfiguration.indexStyle" customLabel="Index Style"></ppe:EnumCombo></Group><Group text="Row"><Group.layout><ppel:PropertiesLayout makeColumnsEqualWidth="true" numColumns="1"></ppel:PropertiesLayout></Group.layout><Composite><Composite.layout><ppel:PropertiesLayout makeColumnsEqualWidth="true" numColumns="1"></ppel:PropertiesLayout></Composite.layout><ppe:BooleanRadio input="{Binding}" property="nattable:Table:localRowHeaderAxisConfiguration.displayLabel" customLabel="Display Label"></ppe:BooleanRadio></Composite><Composite><Composite.layout><ppel:PropertiesLayout makeColumnsEqualWidth="true" numColumns="2"></ppel:PropertiesLayout></Composite.layout><ppe:BooleanRadio input="{Binding}" property="nattable:Table:localRowHeaderAxisConfiguration.displayIndex" customLabel="Display Index"></ppe:BooleanRadio><ppe:EnumCombo input="{Binding}" property="nattable:Table:localRowHeaderAxisConfiguration.indexStyle" customLabel="Index Style"></ppe:EnumCombo></Composite></Group></Composite> \ No newline at end of file
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+ xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation" text="Column">
+ <Composite.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="true"
+ numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Group text="Column">
+ <Group.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="true"
+ numColumns="2"></ppel:PropertiesLayout>
+ </Group.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="nattable:Table:localColumnHeaderAxisConfiguration.displayLabel"
+ customLabel="Display Label"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="nattable:Table:localColumnHeaderAxisConfiguration.displayFilter"
+ readOnly="true" customLabel="Display Filter"></ppe:BooleanRadio>
+ <ppe:BooleanRadio input="{Binding}"
+ property="nattable:Table:localColumnHeaderAxisConfiguration.displayIndex"
+ customLabel="Display Index"></ppe:BooleanRadio>
+ <ppe:EnumCombo input="{Binding}"
+ property="nattable:Table:localColumnHeaderAxisConfiguration.indexStyle"
+ customLabel="Index Style"></ppe:EnumCombo>
+ </Group>
+ <Group text="Row">
+ <Group.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="true"
+ numColumns="1"></ppel:PropertiesLayout>
+ </Group.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout makeColumnsEqualWidth="true"
+ numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="nattable:Table:localRowHeaderAxisConfiguration.displayLabel"
+ customLabel="Display Label"></ppe:BooleanRadio>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"
+ makeColumnsEqualWidth="true"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="nattable:Table:localRowHeaderAxisConfiguration.displayIndex"
+ customLabel="Display Index"></ppe:BooleanRadio>
+ <ppe:EnumCombo input="{Binding}"
+ property="nattable:Table:localRowHeaderAxisConfiguration.indexStyle"
+ customLabel="Index Style"></ppe:EnumCombo>
+ </Composite>
+ </Group>
+</Composite> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTreeTable.xwt b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTreeTable.xwt
index 1555751ae4a..42cdd7da6bb 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTreeTable.xwt
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/model/ui/SingleTreeTable.xwt
@@ -14,10 +14,10 @@
property="nattable:nattableconfiguration:TableNamedElement:name"></ppe:StringEditor>
<ppe:ReferenceLabel input="{Binding}"
property="nattable:Table:prototype" readOnly="true" customLabel="View Type"></ppe:ReferenceLabel>
- <ppe:ReferenceLabel input="{Binding}" property="nattable:Table:owner"
- readOnly="true" customLabel="Owner"></ppe:ReferenceLabel>
- <ppe:ReferenceDialog input="{Binding}"
- property="nattable:Table:context" customLabel="Root element"></ppe:ReferenceDialog>
+ <ppe:ReferenceDialog input="{Binding}" property="nattable:Table:owner"
+ customLabel="Owner"></ppe:ReferenceDialog>
+ <ppe:ReferenceLabel input="{Binding}"
+ readOnly="true" property="nattable:Table:context" customLabel="Root element"></ppe:ReferenceLabel>
</Composite>
<Composite>
<Composite.layout>
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/pom.xml b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/pom.xml
index 8d34fc14e5e..bab927344d0 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/pom.xml
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/pom.xml
@@ -7,6 +7,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.infra.nattable.properties</artifactId>
- <version>2.0.0-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCanCreateColumnElementContraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCanCreateColumnElementContraint.java
new file mode 100644
index 00000000000..93e6b5be626
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCanCreateColumnElementContraint.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.utils.CreatableEObjectAxisUtils;
+
+/**
+ * The java constraint to define the constraint to create the paste properties from the active nattable editor.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableCanCreateColumnElementContraint extends EObjectInTableJavaConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableJavaConstraint#checkMoreConstraints(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreConstraints(final Table table) {
+ return !CreatableEObjectAxisUtils.getCreatableElementIds(table, true).isEmpty();
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCanCreateRowElementContraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCanCreateRowElementContraint.java
new file mode 100644
index 00000000000..440d3645b3d
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCanCreateRowElementContraint.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.utils.CreatableEObjectAxisUtils;
+
+/**
+ * The java constraint to define the constraint to create the paste properties from the active nattable editor.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableCanCreateRowElementContraint extends EObjectInTableHasTreeFillingConfigurationConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableHasTreeFillingConfigurationConstraint#checkMoreConstraints(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreConstraints(final Table table) {
+ return !super.checkMoreConstraints(table) && !CreatableEObjectAxisUtils.getCreatableElementIds(table, false).isEmpty();
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCantCreateColumnElementContraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCantCreateColumnElementContraint.java
new file mode 100644
index 00000000000..be7ea221715
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCantCreateColumnElementContraint.java
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+
+/**
+ * The java constraint to define the constraint to not create the paste properties from the active nattable editor.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableCantCreateColumnElementContraint extends EObjectInTableCanCreateColumnElementContraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableCanCreateColumnElementContraint#checkMoreConstraints(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreConstraints(final Table table) {
+ return !super.checkMoreConstraints(table);
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCantCreateRowElementContraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCantCreateRowElementContraint.java
new file mode 100644
index 00000000000..292f5e35565
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableCantCreateRowElementContraint.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.utils.CreatableEObjectAxisUtils;
+
+/**
+ * The java constraint to define the constraint to not create the paste properties from the active nattable editor.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableCantCreateRowElementContraint extends EObjectInTableHasTreeFillingConfigurationConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableHasTreeFillingConfigurationConstraint#checkMoreConstraints(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreConstraints(final Table table) {
+ return !super.checkMoreConstraints(table) && CreatableEObjectAxisUtils.getCreatableElementIds(table, false).isEmpty();
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasColumnFeatureLabelConfigurationConstraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasColumnFeatureLabelConfigurationConstraint.java
new file mode 100644
index 00000000000..b4ef211e0e6
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasColumnFeatureLabelConfigurationConstraint.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.utils.LabelConfigurationManagementUtils;
+
+/**
+ * The java constraint to check if the table from the active nattable editor has a feature column label configuration.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableHasColumnFeatureLabelConfigurationConstraint extends EObjectInTableJavaConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableJavaConstraint#checkMoreConstraints(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreConstraints(final Table table) {
+ return null != LabelConfigurationManagementUtils.getUsedColumnFeatureLabelConfiguration(table);
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasColumnObjectLabelConfigurationConstraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasColumnObjectLabelConfigurationConstraint.java
new file mode 100644
index 00000000000..0a73162733d
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasColumnObjectLabelConfigurationConstraint.java
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattablelabelprovider.FeatureLabelProviderConfiguration;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattablelabelprovider.ObjectLabelProviderConfiguration;
+import org.eclipse.papyrus.infra.nattable.utils.LabelConfigurationManagementUtils;
+
+/**
+ * The java constraint to check if the table from the active nattable editor has an object column label configuration.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableHasColumnObjectLabelConfigurationConstraint extends EObjectInTableJavaConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableJavaConstraint#checkMoreConstraints(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreConstraints(final Table table) {
+ final ObjectLabelProviderConfiguration objectConf = LabelConfigurationManagementUtils.getUsedColumnObjectLabelConfiguration(table);
+ final FeatureLabelProviderConfiguration featureConf = LabelConfigurationManagementUtils.getUsedColumnFeatureLabelConfiguration(table);
+ return null != objectConf && null == featureConf;
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasRowFeatureLabelConfigurationConstraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasRowFeatureLabelConfigurationConstraint.java
new file mode 100644
index 00000000000..8727dc71a75
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasRowFeatureLabelConfigurationConstraint.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.utils.LabelConfigurationManagementUtils;
+
+/**
+ * The java constraint to check if the table from the active nattable editor has a feature row label configuration.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableHasRowFeatureLabelConfigurationConstraint extends EObjectInTableJavaConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableJavaConstraint#checkMoreConstraints(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreConstraints(final Table table) {
+ return null != LabelConfigurationManagementUtils.getUsedRowFeatureLabelConfiguration(table);
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasRowObjectLabelConfigurationConstraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasRowObjectLabelConfigurationConstraint.java
new file mode 100644
index 00000000000..86a0d2d6552
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasRowObjectLabelConfigurationConstraint.java
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattablelabelprovider.FeatureLabelProviderConfiguration;
+import org.eclipse.papyrus.infra.nattable.model.nattable.nattablelabelprovider.ObjectLabelProviderConfiguration;
+import org.eclipse.papyrus.infra.nattable.utils.LabelConfigurationManagementUtils;
+
+/**
+ * The java constraint to check if the table from the active nattable editor has an object row label configuration.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableHasRowObjectLabelConfigurationConstraint extends EObjectInTableJavaConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableJavaConstraint#checkMoreConstraints(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreConstraints(final Table table) {
+ final ObjectLabelProviderConfiguration objectConf = LabelConfigurationManagementUtils.getUsedRowObjectLabelConfiguration(table);
+ final FeatureLabelProviderConfiguration featureConf = LabelConfigurationManagementUtils.getUsedRowFeatureLabelConfiguration(table);
+ return null != objectConf && null == featureConf;
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasTreeFillingConfigurationConstraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasTreeFillingConfigurationConstraint.java
new file mode 100644
index 00000000000..0d35ac10367
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableHasTreeFillingConfigurationConstraint.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.utils.FillingConfigurationUtils;
+import org.eclipse.papyrus.infra.nattable.utils.TableHelper;
+
+/**
+ * The java constraint to check if the table from the active nattable editor has tree filling configuration for the first depth.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableHasTreeFillingConfigurationConstraint extends EObjectInTableJavaConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableJavaConstraint#checkMoreConstraints(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreConstraints(final Table table) {
+ return TableHelper.isTreeTable(table) && FillingConfigurationUtils.hasTreeFillingConfigurationForDepth(table, 0);
+ }
+
+} \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableIsFlatTableConstraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableIsFlatTableConstraint.java
new file mode 100644
index 00000000000..20ffd857336
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableIsFlatTableConstraint.java
@@ -0,0 +1,35 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.utils.TableHelper;
+
+/**
+ * The java constraint to check if the table from the active nattable editor is a flat table.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableIsFlatTableConstraint extends EObjectInTableJavaConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.EObjectInTableJavaConstraint#checkMoreConstraints(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreConstraints(final Table table) {
+ return !TableHelper.isTreeTable(table);
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableJavaConstraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableJavaConstraint.java
new file mode 100644
index 00000000000..62e6589921b
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/EObjectInTableJavaConstraint.java
@@ -0,0 +1,66 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.papyrus.infra.constraints.constraints.JavaQuery;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IMultiPageEditorPart;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.ui.util.EditorHelper;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * The java constraint to check if the table from the active nattable editor.
+ *
+ * @since 2.1
+ */
+public class EObjectInTableJavaConstraint implements JavaQuery {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.constraints.constraints.JavaQuery#match(java.lang.Object)
+ */
+ @Override
+ public boolean match(Object selection) {
+ boolean result = false;
+
+ if (null != EditorHelper.getActivePart()) {
+ final IEditorPart currentEditor = EditorHelper.getCurrentEditor();
+ if (currentEditor instanceof IMultiPageEditorPart && null != ((IMultiPageEditorPart)currentEditor).getActiveEditor()) {
+ final IMultiPageEditorPart multiDiagramEditor = (IMultiPageEditorPart)currentEditor;
+ final Table table = multiDiagramEditor.getActiveEditor().getAdapter(Table.class);
+ if(null != table){
+ result = checkMoreConstraints(table);
+ }
+ }else if(currentEditor instanceof IAdaptable){
+ final Table table = ((IAdaptable)currentEditor).getAdapter(Table.class);
+ result = checkMoreConstraints(table);
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * This allows to check more constraint for the match.
+ *
+ * @param table the current table.
+ * @return <code>true</code> if the constraints are correctly managed, <code>false</code> otherwise.
+ */
+ protected boolean checkMoreConstraints(final Table table){
+ return true;
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInFlatTableConstraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInFlatTableConstraint.java
new file mode 100644
index 00000000000..58a2ce8db68
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInFlatTableConstraint.java
@@ -0,0 +1,47 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.constraints.constraints.Constraint;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.utils.TableHelper;
+
+/**
+ * The constraint which allow to determinate if this is a nattable editor as current editor part and a flat table.
+ *
+ * @since 2.1
+ */
+public class IsEObjectInFlatTableConstraint extends IsEObjectInTableConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.IsEObjectInTableConstraint#checkMoreTableConstraint(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreTableConstraint(final Table table) {
+ return !TableHelper.isTreeTable(table);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.constraints.constraints.AbstractConstraint#equivalent(org.eclipse.papyrus.infra.constraints.constraints.Constraint)
+ */
+ @Override
+ protected boolean equivalent(final Constraint constraint) {
+ return constraint == this || constraint instanceof IsEObjectInFlatTableConstraint;
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInTableConstraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInTableConstraint.java
new file mode 100644
index 00000000000..1d466b11f13
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInTableConstraint.java
@@ -0,0 +1,102 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import java.util.Collection;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.papyrus.infra.constraints.constraints.AbstractConstraint;
+import org.eclipse.papyrus.infra.constraints.constraints.Constraint;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IMultiPageEditorPart;
+import org.eclipse.papyrus.infra.nattable.common.editor.NatTableEditor;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.ui.util.EditorHelper;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * The constraint which allow to determinate if this is a nattable editor as current editor part.
+ *
+ * @since 2.1
+ */
+public class IsEObjectInTableConstraint extends AbstractConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.constraints.constraints.AbstractConstraint#match(java.util.Collection)
+ */
+ @Override
+ public boolean match(final Collection<?> selection) {
+ return match();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.constraints.constraints.AbstractConstraint#match(java.lang.Object)
+ */
+ @Override
+ public boolean match(final Object selection) {
+ return match();
+ }
+
+ /**
+ * This allows to determinate if this is match with the current nattable editor.
+ *
+ * @return <code>true</code> if the current nattable editor is open and matching with the expected value, <code>false</code> otherwise.
+ */
+ protected boolean match() {
+ boolean result = false;
+
+ final boolean expectedValue = Boolean.parseBoolean(getValue("expectedValue")); //$NON-NLS-1$
+
+ if (null != EditorHelper.getActivePart()) {
+ final IEditorPart currentEditor = EditorHelper.getCurrentEditor();
+ if (currentEditor instanceof IMultiPageEditorPart && null != ((IMultiPageEditorPart)currentEditor).getActiveEditor()) {
+ final IMultiPageEditorPart multiDiagramEditor = (IMultiPageEditorPart)currentEditor;
+ result = EditorHelper.getActivePart().equals(currentEditor)
+ && null != multiDiagramEditor.getActiveEditor().getAdapter(NatTableEditor.class)
+ && checkMoreTableConstraint(((NatTableEditor)multiDiagramEditor.getActiveEditor()).getTable());
+ }else if(currentEditor instanceof IAdaptable){
+ final Table table = ((IAdaptable)currentEditor).getAdapter(Table.class);
+ result = null != table
+ && EditorHelper.getActivePart().equals(currentEditor)
+ && checkMoreTableConstraint(table);
+ }
+ }
+
+ return expectedValue == result;
+ }
+
+ /**
+ * This allows to check more constraint for the match.
+ *
+ * @param table the current table.
+ * @return <code>true</code> if the constraints are correctly managed, <code>false</code> otherwise.
+ */
+ protected boolean checkMoreTableConstraint(final Table table){
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.constraints.constraints.AbstractConstraint#equivalent(org.eclipse.papyrus.infra.constraints.constraints.Constraint)
+ */
+ @Override
+ protected boolean equivalent(final Constraint constraint) {
+ return constraint == this || constraint instanceof IsEObjectInTableConstraint;
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInTreeTableConstraint.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInTreeTableConstraint.java
new file mode 100644
index 00000000000..aab196058ef
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/constraints/IsEObjectInTreeTableConstraint.java
@@ -0,0 +1,47 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.constraints;
+
+import org.eclipse.papyrus.infra.constraints.constraints.Constraint;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.papyrus.infra.nattable.utils.TableHelper;
+
+/**
+ * The constraint which allow to determinate if this is a nattable editor as current editor part and a tree table.
+ *
+ * @since 2.1
+ */
+public class IsEObjectInTreeTableConstraint extends IsEObjectInTableConstraint {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.nattable.properties.constraints.IsEObjectInTableConstraint#checkMoreTableConstraint(org.eclipse.papyrus.infra.nattable.model.nattable.Table)
+ */
+ @Override
+ protected boolean checkMoreTableConstraint(final Table table) {
+ return TableHelper.isTreeTable(table);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.constraints.constraints.AbstractConstraint#equivalent(org.eclipse.papyrus.infra.constraints.constraints.Constraint)
+ */
+ @Override
+ protected boolean equivalent(final Constraint constraint) {
+ return constraint == this || constraint instanceof IsEObjectInTreeTableConstraint;
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/EObjectInNatTableFactory.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/EObjectInNatTableFactory.java
new file mode 100644
index 00000000000..da434aa0a3d
--- /dev/null
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/EObjectInNatTableFactory.java
@@ -0,0 +1,87 @@
+/*****************************************************************************
+ * Copyright (c) 2016 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.nattable.properties.modelelement;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IMultiPageEditorPart;
+import org.eclipse.papyrus.infra.nattable.common.editor.NatTableEditor;
+import org.eclipse.papyrus.infra.properties.contexts.DataContextElement;
+import org.eclipse.papyrus.infra.properties.ui.modelelement.EMFModelElement;
+import org.eclipse.papyrus.infra.ui.util.EditorHelper;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * The model factory to create {@link NatTableModelElement}s from the current nattable editor.
+ *
+ * @since 2.1
+ */
+public class EObjectInNatTableFactory extends NatTableFactory {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.properties.ui.modelelement.EMFModelElementFactory#doCreateFromSource(java.lang.Object, org.eclipse.papyrus.infra.properties.contexts.DataContextElement)
+ */
+ @Override
+ protected EMFModelElement doCreateFromSource(final Object sourceElement, final DataContextElement context) {
+ EMFModelElement result = null;
+
+ final NatTableEditor nattableEditor = getCurrentNatTableEditor();
+ if (null != nattableEditor) {
+ final EditingDomain domain = nattableEditor.getTableEditingDomain();
+ result = new NatTableModelElement(nattableEditor.getTable(), domain);
+ } else {
+ result = super.doCreateFromSource(sourceElement, context);
+ }
+
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.properties.ui.modelelement.AbstractEMFModelElementFactory#updateModelElement(org.eclipse.papyrus.infra.properties.ui.modelelement.EMFModelElement, java.lang.Object)
+ */
+ @Override
+ protected void updateModelElement(final EMFModelElement modelElement, final Object newSourceElement) {
+ final NatTableEditor nattableEditor = getCurrentNatTableEditor();
+ if (null != nattableEditor) {
+ if (modelElement instanceof NatTableModelElement) {
+ updateTableModelElement((NatTableModelElement) modelElement, nattableEditor.getTable());
+ }
+ updateEMFModelElement(modelElement, nattableEditor.getTable());
+ } else {
+ super.updateModelElement(modelElement, newSourceElement);
+ }
+ }
+
+ /**
+ * This allows to get the current nattable editor when this is available.
+ *
+ * @return The current nattable editor if available or <code>null</code>.
+ */
+ protected NatTableEditor getCurrentNatTableEditor() {
+ NatTableEditor result = null;
+
+ final IEditorPart currentEditor = EditorHelper.getCurrentEditor();
+ if (currentEditor instanceof IMultiPageEditorPart) {
+ result = ((IMultiPageEditorPart) currentEditor).getActiveEditor().getAdapter(NatTableEditor.class);
+ } else if (currentEditor instanceof IAdaptable) {
+ result = ((IAdaptable) currentEditor).getAdapter(NatTableEditor.class);
+ }
+
+ return result;
+ }
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableFactory.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableFactory.java
index 85d5e08d0b3..63dcabcf66c 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableFactory.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableFactory.java
@@ -9,6 +9,7 @@
* Contributors:
* Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
* Christian W. Damus (CEA) - bug 417409
+ * Nicolas FAUVERGUE (ALL4TEC) nicolas.fauvergue@all4tec.net - Bug 492891
*
*****************************************************************************/
package org.eclipse.papyrus.infra.nattable.properties.modelelement;
@@ -23,11 +24,18 @@ import org.eclipse.papyrus.infra.properties.contexts.DataContextElement;
import org.eclipse.papyrus.infra.properties.ui.modelelement.EMFModelElement;
import org.eclipse.papyrus.infra.properties.ui.modelelement.EMFModelElementFactory;
-
+/**
+ * The model factory to create {@link NatTableModelElement}s.
+ */
public class NatTableFactory extends EMFModelElementFactory {
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.properties.ui.modelelement.EMFModelElementFactory#doCreateFromSource(java.lang.Object, org.eclipse.papyrus.infra.properties.contexts.DataContextElement)
+ */
@Override
- protected EMFModelElement doCreateFromSource(Object sourceElement, DataContextElement context) {
+ protected EMFModelElement doCreateFromSource(final Object sourceElement, final DataContextElement context) {
EObject source = EMFHelper.getEObject(sourceElement);
if (source == null) {
Activator.log.warn("Unable to resolve the selected element to an EObject"); //$NON-NLS-1$
@@ -40,4 +48,38 @@ public class NatTableFactory extends EMFModelElementFactory {
return super.doCreateFromSource(sourceElement, context);
}
}
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.papyrus.infra.properties.ui.modelelement.AbstractEMFModelElementFactory#updateModelElement(org.eclipse.papyrus.infra.properties.ui.modelelement.EMFModelElement, java.lang.Object)
+ *
+ * @since 2.1
+ */
+ @Override
+ protected void updateModelElement(final EMFModelElement modelElement, final Object newSourceElement) {
+ final EObject eObject = EMFHelper.getEObject(newSourceElement);
+ if (null == eObject) {
+ throw new IllegalArgumentException("Cannot resolve EObject selection: " + newSourceElement);
+ }
+
+ if (modelElement instanceof NatTableModelElement && eObject instanceof Table) {
+ updateTableModelElement((NatTableModelElement) modelElement, (Table) eObject);
+ }
+ updateEMFModelElement(modelElement, eObject);
+ }
+
+ /**
+ * Modify the table property of the nattable model element.
+ *
+ * @param nattableModelElement
+ * The nattable model element.
+ * @param table
+ * The table.
+ *
+ * @since 2.1
+ */
+ public static void updateTableModelElement(final NatTableModelElement nattableModelElement, final Table table) {
+ nattableModelElement.table = table;
+ }
}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableModelElement.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableModelElement.java
index db143b58e70..3b2d0c134ef 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableModelElement.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/modelelement/NatTableModelElement.java
@@ -10,15 +10,14 @@
* Contributors:
* Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
* Christian W. Damus (CEA) - bug 323802
- * Nicolas FAUVERGUE (ALL4tEC) nicolas.fauvergue@all4tec.net - Bug 476618
+ * Nicolas FAUVERGUE (ALL4tEC) nicolas.fauvergue@all4tec.net - Bug 476618, 192891
*
*****************************************************************************/
package org.eclipse.papyrus.infra.nattable.properties.modelelement;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.Iterator;
import org.eclipse.core.databinding.observable.IObservable;
import org.eclipse.emf.common.notify.Adapter;
@@ -101,11 +100,6 @@ public class NatTableModelElement extends EMFModelElement {
private Adapter tableListener;
/**
- * the map linking the propertypath and the observable values
- */
- private Map<String, IObservable> observableValues;
-
- /**
* the collection of the interesting features to update the property view
*/
private Collection<EStructuralFeature> interestingFeatures;
@@ -135,6 +129,13 @@ public class NatTableModelElement extends EMFModelElement {
* a table manager created to get possible axis contents
*/
private INattableModelManager tableModelManager;
+
+ /**
+ * This allows to keep a reference to the table to manage (because the source must be modified when the edited object is not a table).
+ *
+ * @since 2.1
+ */
+ protected Table table;
/**
*
@@ -147,6 +148,7 @@ public class NatTableModelElement extends EMFModelElement {
*/
public NatTableModelElement(final Table source, final EditingDomain domain) {
super(source, domain);
+ table = source;
init();
}
@@ -155,7 +157,6 @@ public class NatTableModelElement extends EMFModelElement {
*/
private void init() {
tableModelManager = NattableModelManagerFactory.INSTANCE.createNatTableModelManager(getEditedTable(), new EObjectSelectionExtractor());
- this.observableValues = new HashMap<String, IObservable>();
this.interestingFeatures = new ArrayList<EStructuralFeature>();
interestingFeatures.add(NattablePackage.eINSTANCE.getTable_Prototype());
interestingFeatures.add(NattablePackage.eINSTANCE.getTable_Owner());
@@ -174,25 +175,26 @@ public class NatTableModelElement extends EMFModelElement {
interestingFeatures.add(NattablelabelproviderPackage.eINSTANCE.getObjectLabelProviderConfiguration_DisplayIcon());
interestingFeatures.add(NattablelabelproviderPackage.eINSTANCE.getObjectLabelProviderConfiguration_DisplayLabel());
- this.tableListener = new AdapterImpl() {
-
- /**
- *
- * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification)
- *
- * @param msg
- */
- @Override
- public void notifyChanged(Notification msg) {
- if (interestingFeatures.contains(msg.getFeature())) {
- updateValues();
+ if(null != table){
+ this.tableListener = new AdapterImpl() {
+
+ /**
+ *
+ * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification)
+ *
+ * @param msg
+ */
+ @Override
+ public void notifyChanged(Notification msg) {
+ if (interestingFeatures.contains(msg.getFeature())) {
+ updateValues();
+ }
}
- }
- };
- // we add a listener on the main object managed by the property view
- source.eAdapters().add(tableListener);
- initOtherFieldsAndAddOthersListeners();
-
+ };
+ // we add a listener on the main object managed by the property view
+ table.eAdapters().add(tableListener);
+ initOtherFieldsAndAddOthersListeners();
+ }
}
/**
@@ -278,8 +280,8 @@ public class NatTableModelElement extends EMFModelElement {
* update all values in the property view
*/
private void updateValues() {
- // we do the update with asyncExec to be sure that the new values have been set before to update it
- Display.getDefault().asyncExec(new Runnable() {
+ // We have to manage it as synExec because this is notified that the value changed (so done after)
+ Display.getDefault().syncExec(new Runnable() {
/**
*
@@ -292,8 +294,10 @@ public class NatTableModelElement extends EMFModelElement {
initOtherFieldsAndAddOthersListeners();
final Event event = new Event();
- for (final IObservable current : observableValues.values()) {
- if (current instanceof Listener) {
+ final Iterator<IObservable> observableIterator = getObservables().values().iterator();
+ while(observableIterator.hasNext()){
+ final IObservable current = observableIterator.next();
+ if (!current.isDisposed() && current instanceof Listener) {
((Listener) current).handleEvent(event);
}
}
@@ -309,9 +313,11 @@ public class NatTableModelElement extends EMFModelElement {
@Override
public void dispose() {
super.dispose();
- source.eAdapters().remove(tableListener);
- removeListeners();
- observableValues.clear();
+ if(null != table){
+ table.eAdapters().remove(tableListener);
+ removeListeners();
+ table = null;
+ }
columnLabelProviderConfigurations = null;
rowLabelProviderConfigurations = null;
tableModelManager.dispose();
@@ -324,7 +330,7 @@ public class NatTableModelElement extends EMFModelElement {
* @return
*/
private Table getEditedTable() {
- return (Table) source;
+ return table;
}
/**
@@ -336,103 +342,99 @@ public class NatTableModelElement extends EMFModelElement {
*/
@Override
protected IObservable doGetObservable(final String propertyPath) {
- IObservable value = this.observableValues.get(propertyPath);
- if (value == null) {
- Table table = getEditedTable();
- // column header properties
- if (Constants.LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION_DISPLAY_FILTER.equals(propertyPath)) {
- value = new ColumnDisplayFilterHeaderObservableValue(table);
- } else if (Constants.LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION_DISPLAY_INDEX.equals(propertyPath)) {
- value = new ColumnDisplayIndexHeaderObservableValue(table);
- } else if (Constants.LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
- value = new ColumnDisplayLabelHeaderObservableValue(table);
- } else if (Constants.LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION_INDEX_STYLE.equals(propertyPath)) {
- value = new ColumnIndexHeaderStyleObservableValue(table);
-
-
- // row header property
- } else if (Constants.LOCAL_ROW_HEADER_AXIS_CONFIGURATION_DISPLAY_INDEX.equals(propertyPath)) {
- value = new RowDisplayIndexHeaderObservableValue(table);
- } else if (Constants.LOCAL_ROW_HEADER_AXIS_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
- value = new RowDisplayLabelHeaderObservableValue(table);
- } else if (Constants.LOCAL_ROW_HEADER_AXIS_CONFIGURATION_INDEX_STYLE.equals(propertyPath)) {
- value = new RowIndexHeaderStyleObservableValue(table);
-
-
- // feature column label property
- } else if (Constants.COLUMN_FEATURE_LABEL_CONFIGURATION_DISPLAY_ICON.equals(propertyPath)) {
- value = new ColumnFeatureLabelDisplayIconObservableValue(table);
- } else if (Constants.COLUMN_FEATURE_LABEL_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
- value = new ColumnFeatureLabelDisplayLabelObservableValue(table);
- } else if (Constants.COLUMN_FEATURE_LABEL_CONFIGURATION_DISPLAY_IS_DERIVED.equals(propertyPath)) {
- value = new ColumnFeatureLabelDisplayIsDerivedObservableValue(table);
- } else if (Constants.COLUMN__FEATURE_LABEL_CONFIGURATION_DISPLAY_NAME.equals(propertyPath)) {
- value = new ColumnFeatureLabelDisplayNameObservableValue(table);
- } else if (Constants.COLUMN_FEATURE_LABEL_CONFIGURATION_DISPLAY_TYPE.equals(propertyPath)) {
- value = new ColumnFeatureLabelDisplayTypeObservableValue(table);
- } else if (Constants.COLUMN_FEATURE_LABEL_CONFIGURATION_DISPLAY_MULTIPLICITY.equals(propertyPath)) {
- value = new ColumnFeatureLabelDisplayMultiplicityObservableValue(table);
-
+ IObservable value = null;
+
+ Table table = getEditedTable();
+ // column header properties
+ if (Constants.LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION_DISPLAY_FILTER.equals(propertyPath)) {
+ value = new ColumnDisplayFilterHeaderObservableValue(table);
+ } else if (Constants.LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION_DISPLAY_INDEX.equals(propertyPath)) {
+ value = new ColumnDisplayIndexHeaderObservableValue(table);
+ } else if (Constants.LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
+ value = new ColumnDisplayLabelHeaderObservableValue(table);
+ } else if (Constants.LOCAL_COLUMN_HEADER_AXIS_CONFIGURATION_INDEX_STYLE.equals(propertyPath)) {
+ value = new ColumnIndexHeaderStyleObservableValue(table);
+
+
+ // row header property
+ } else if (Constants.LOCAL_ROW_HEADER_AXIS_CONFIGURATION_DISPLAY_INDEX.equals(propertyPath)) {
+ value = new RowDisplayIndexHeaderObservableValue(table);
+ } else if (Constants.LOCAL_ROW_HEADER_AXIS_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
+ value = new RowDisplayLabelHeaderObservableValue(table);
+ } else if (Constants.LOCAL_ROW_HEADER_AXIS_CONFIGURATION_INDEX_STYLE.equals(propertyPath)) {
+ value = new RowIndexHeaderStyleObservableValue(table);
- // object column label property
- } else if (Constants.COLUMN_OBJECT_LABEL_CONFIGURATION_DISPLAY_ICON.equals(propertyPath)) {
- value = new ColumnObjectLabelDisplayIconObservableValue(table);
- } else if (Constants.COLUMN_OBJECT_LABEL_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
- value = new ColumnObjectLabelDisplayLabelObservableValue(table);
- } else
- // feature row label property
- if (Constants.ROW_FEATURE_LABEL_CONFIGURATION_DISPLAY_ICON.equals(propertyPath)) {
- value = new RowFeatureLabelDisplayIconObservableValue(table);
- } else if (Constants.ROW_FEATURE_LABEL_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
- value = new RowFeatureLabelDisplayLabelObservableValue(table);
- } else if (Constants.ROW_FEATURE_LABEL_CONFIGURATION_DISPLAY_IS_DERIVED.equals(propertyPath)) {
- value = new RowFeatureLabelDisplayIsDerivedObservableValue(table);
- } else if (Constants.ROW__FEATURE_LABEL_CONFIGURATION_DISPLAY_NAME.equals(propertyPath)) {
- value = new RowFeatureLabelDisplayNameObservableValue(table);
- } else if (Constants.ROW_FEATURE_LABEL_CONFIGURATION_DISPLAY_TYPE.equals(propertyPath)) {
- value = new RowFeatureLabelDisplayTypeObservableValue(table);
- } else if (Constants.ROW_FEATURE_LABEL_CONFIGURATION_DISPLAY_MULTIPLICITY.equals(propertyPath)) {
- value = new RowFeatureLabelDisplayMultiplicityObservableValue(table);
-
-
- // object row label property
- } else if (Constants.ROW_OBJECT_LABEL_CONFIGURATION_DISPLAY_ICON.equals(propertyPath)) {
- value = new RowObjectLabelDisplayIconObservableValue(table);
- } else if (Constants.ROW_OBJECT_LABEL_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
- value = new RowObjectLabelDisplayLabelObservableValue(table);
- }
-
- // paste row EObject
- else if (Constants.ROW_PASTED_EOBJECT_CONTAINMENT_FEATURE.equals(propertyPath)) {
- value = new RowPasteEObjectContainmentFeatureObservableValue(table);
- } else if (Constants.ROW_PASTED_EOBJECT_ID.equals(propertyPath)) {
- value = new RowPasteEObjectElementTypeIdObservableValue(table);
- } else if (Constants.ROW_PASTED_OBJECT_DETACHED_MODE_FEATURE.equals(propertyPath)) {
- value = new RowPasteObjectDetachedModeObservableValue(getEditedTable());
- } else if (Constants.ROW_PASTED_OBJECT_POST_ACTIONS_FEATURE.equals(propertyPath)) {
- value = new RowPasteObjectPostActionsObservableValue(getDomain(), getEditedTable());
- } else if (Constants.ROW_PASTED_EOBJECT_AXIS_IDENTIFIER_FEATURE.equals(propertyPath)) {
- value = new RowPasteEObjectAxisIdentifierObservableValue(table);
- }
+ // feature column label property
+ } else if (Constants.COLUMN_FEATURE_LABEL_CONFIGURATION_DISPLAY_ICON.equals(propertyPath)) {
+ value = new ColumnFeatureLabelDisplayIconObservableValue(table);
+ } else if (Constants.COLUMN_FEATURE_LABEL_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
+ value = new ColumnFeatureLabelDisplayLabelObservableValue(table);
+ } else if (Constants.COLUMN_FEATURE_LABEL_CONFIGURATION_DISPLAY_IS_DERIVED.equals(propertyPath)) {
+ value = new ColumnFeatureLabelDisplayIsDerivedObservableValue(table);
+ } else if (Constants.COLUMN__FEATURE_LABEL_CONFIGURATION_DISPLAY_NAME.equals(propertyPath)) {
+ value = new ColumnFeatureLabelDisplayNameObservableValue(table);
+ } else if (Constants.COLUMN_FEATURE_LABEL_CONFIGURATION_DISPLAY_TYPE.equals(propertyPath)) {
+ value = new ColumnFeatureLabelDisplayTypeObservableValue(table);
+ } else if (Constants.COLUMN_FEATURE_LABEL_CONFIGURATION_DISPLAY_MULTIPLICITY.equals(propertyPath)) {
+ value = new ColumnFeatureLabelDisplayMultiplicityObservableValue(table);
+
+
+ // object column label property
+ } else if (Constants.COLUMN_OBJECT_LABEL_CONFIGURATION_DISPLAY_ICON.equals(propertyPath)) {
+ value = new ColumnObjectLabelDisplayIconObservableValue(table);
+ } else if (Constants.COLUMN_OBJECT_LABEL_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
+ value = new ColumnObjectLabelDisplayLabelObservableValue(table);
+ } else
+
+ // feature row label property
+ if (Constants.ROW_FEATURE_LABEL_CONFIGURATION_DISPLAY_ICON.equals(propertyPath)) {
+ value = new RowFeatureLabelDisplayIconObservableValue(table);
+ } else if (Constants.ROW_FEATURE_LABEL_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
+ value = new RowFeatureLabelDisplayLabelObservableValue(table);
+ } else if (Constants.ROW_FEATURE_LABEL_CONFIGURATION_DISPLAY_IS_DERIVED.equals(propertyPath)) {
+ value = new RowFeatureLabelDisplayIsDerivedObservableValue(table);
+ } else if (Constants.ROW__FEATURE_LABEL_CONFIGURATION_DISPLAY_NAME.equals(propertyPath)) {
+ value = new RowFeatureLabelDisplayNameObservableValue(table);
+ } else if (Constants.ROW_FEATURE_LABEL_CONFIGURATION_DISPLAY_TYPE.equals(propertyPath)) {
+ value = new RowFeatureLabelDisplayTypeObservableValue(table);
+ } else if (Constants.ROW_FEATURE_LABEL_CONFIGURATION_DISPLAY_MULTIPLICITY.equals(propertyPath)) {
+ value = new RowFeatureLabelDisplayMultiplicityObservableValue(table);
+
+
+ // object row label property
+ } else if (Constants.ROW_OBJECT_LABEL_CONFIGURATION_DISPLAY_ICON.equals(propertyPath)) {
+ value = new RowObjectLabelDisplayIconObservableValue(table);
+ } else if (Constants.ROW_OBJECT_LABEL_CONFIGURATION_DISPLAY_LABEL.equals(propertyPath)) {
+ value = new RowObjectLabelDisplayLabelObservableValue(table);
+ }
- // paste column EObject
- else if (Constants.COLUMN_PASTED_EOBJECT_CONTAINMENT_FEATURE.equals(propertyPath)) {
- value = new ColumnPasteEObjectContainmentFeatureObservableValue(table);
- } else if (Constants.COLUMN_PASTED_EOBJECT_ID.equals(propertyPath)) {
- value = new ColumnPasteEObjectElementTypeIdObservableValue(table);
- } else if (Constants.COLUMN_PASTED_OBJECT_DETACHED_MODE_FEATURE.equals(propertyPath)) {
- value = new ColumnPasteObjectDetachedModeObservableValue(getEditedTable());
- } else if (Constants.COLUMN_PASTED_OBJECT_POST_ACTIONS_FEATURE.equals(propertyPath)) {
- value = new ColumnPasteObjectPostActionsObservableValue(getDomain(), getEditedTable());
- } else if (Constants.COLUMN_PASTED_EOBJECT_AXIS_IDENTIFIER_FEATURE.equals(propertyPath)) {
- value = new ColumnPasteEObjectAxisIdentifierObservableValue(table);
- }
+ // paste row EObject
+ else if (Constants.ROW_PASTED_EOBJECT_CONTAINMENT_FEATURE.equals(propertyPath)) {
+ value = new RowPasteEObjectContainmentFeatureObservableValue(table);
+ } else if (Constants.ROW_PASTED_EOBJECT_ID.equals(propertyPath)) {
+ value = new RowPasteEObjectElementTypeIdObservableValue(table);
+ } else if (Constants.ROW_PASTED_OBJECT_DETACHED_MODE_FEATURE.equals(propertyPath)) {
+ value = new RowPasteObjectDetachedModeObservableValue(getEditedTable());
+ } else if (Constants.ROW_PASTED_OBJECT_POST_ACTIONS_FEATURE.equals(propertyPath)) {
+ value = new RowPasteObjectPostActionsObservableValue(getDomain(), getEditedTable());
+ } else if (Constants.ROW_PASTED_EOBJECT_AXIS_IDENTIFIER_FEATURE.equals(propertyPath)) {
+ value = new RowPasteEObjectAxisIdentifierObservableValue(table);
+ }
- if (value != null) {
- this.observableValues.put(propertyPath, value);
- }
+ // paste column EObject
+ else if (Constants.COLUMN_PASTED_EOBJECT_CONTAINMENT_FEATURE.equals(propertyPath)) {
+ value = new ColumnPasteEObjectContainmentFeatureObservableValue(table);
+ } else if (Constants.COLUMN_PASTED_EOBJECT_ID.equals(propertyPath)) {
+ value = new ColumnPasteEObjectElementTypeIdObservableValue(table);
+ } else if (Constants.COLUMN_PASTED_OBJECT_DETACHED_MODE_FEATURE.equals(propertyPath)) {
+ value = new ColumnPasteObjectDetachedModeObservableValue(getEditedTable());
+ } else if (Constants.COLUMN_PASTED_OBJECT_POST_ACTIONS_FEATURE.equals(propertyPath)) {
+ value = new ColumnPasteObjectPostActionsObservableValue(getDomain(), getEditedTable());
+ } else if (Constants.COLUMN_PASTED_EOBJECT_AXIS_IDENTIFIER_FEATURE.equals(propertyPath)) {
+ value = new ColumnPasteEObjectAxisIdentifierObservableValue(table);
}
+
if (value != null) {
return value;
}
@@ -533,6 +535,9 @@ public class NatTableModelElement extends EMFModelElement {
if (Constants.TABLE_CONTEXT.equals(propertyPath)) {
Table table = getEditedTable();
provider = new ContextFeatureContentProvider(table, getRoot(table.getContext()));
+ } else if (Constants.TABLE_OWNER.equals(propertyPath)) {
+ Table table = getEditedTable();
+ provider = new ContextFeatureContentProvider(table, getRoot(table.getOwner()));
} else if (Constants.ROW_PASTED_EOBJECT_CONTAINMENT_FEATURE.equals(propertyPath)) {
provider = new RowContainmentFeatureContentProvider(getEditedTable(), getEditedTable().getContext().eClass());
} else if (Constants.COLUMN_PASTED_EOBJECT_CONTAINMENT_FEATURE.equals(propertyPath)) {
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/observable/AbstractConfigurationElementObservableValue.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/observable/AbstractConfigurationElementObservableValue.java
index df70dfde136..81b821e066d 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/observable/AbstractConfigurationElementObservableValue.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/observable/AbstractConfigurationElementObservableValue.java
@@ -1,132 +1,143 @@
-/*****************************************************************************
- * Copyright (c) 2013 CEA LIST.
- *
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.nattable.properties.observable;
-
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * Abstract Observable Value to update axis configuration
- *
- * @author vl222926
- *
- */
-public abstract class AbstractConfigurationElementObservableValue extends AbstractObservableValue implements Listener {
-
- /**
- * the managed table
- */
- private Table table;
-
- /**
- * the managed feature
- */
- private EStructuralFeature managedFeature;
-
- /**
- * the last value of the managed feature
- */
- private Object oldValue;
-
- /**
- *
- * Constructor.
- *
- * @param table
- * the managed table
- * @param managedFeature
- * the managed feature
- */
- public AbstractConfigurationElementObservableValue(final Table table, final EStructuralFeature managedFeature) {
- this.table = table;
- this.managedFeature = managedFeature;
- oldValue = doGetValue();
- }
-
- /**
- *
- * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#doGetValue()
- *
- * @return
- * the current value
- */
- @Override
- protected Object doGetValue() {
- EObject editedObject = getEditedEObject();
- if (editedObject != null) {
- return editedObject.eGet(getManagedFeature());
- }
- return null;
- }
-
-
- /**
- *
- * @return
- * the managed feature
- */
- public EStructuralFeature getManagedFeature() {
- return managedFeature;
- }
-
- /**
- *
- * @return
- * the managed axis configuration
- */
- protected abstract EObject getEditedEObject();
-
- /**
- *
- * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
- *
- * @param event
- */
- @Override
- public void handleEvent(Event event) {
- final Object newValue = doGetValue();
- // big test required to avoid NPE when we receive event during the exchange of the axis
- if ((newValue != oldValue) && ((newValue != null && oldValue == null) || newValue == null && oldValue != null || (oldValue != null && !oldValue.equals(newValue)))) {
- final Object localOldValue = oldValue;
- oldValue = newValue;
- fireValueChange(new ValueDiff() {
-
- @Override
- public Object getOldValue() {
- return localOldValue;
- }
-
- @Override
- public Object getNewValue() {
- return newValue;
- }
- });
- }
- }
-
- /**
- *
- * @return
- * the managed table
- */
- public Table getTable() {
- return table;
- }
-
-}
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.nattable.properties.observable;
+
+import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
+import org.eclipse.core.databinding.observable.value.ValueDiff;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.papyrus.infra.nattable.model.nattable.Table;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+
+/**
+ * Abstract Observable Value to update axis configuration
+ *
+ * @author vl222926
+ *
+ */
+public abstract class AbstractConfigurationElementObservableValue extends AbstractObservableValue implements Listener {
+
+ /**
+ * the managed table
+ */
+ private Table table;
+
+ /**
+ * the managed feature
+ */
+ private EStructuralFeature managedFeature;
+
+ /**
+ * the last value of the managed feature
+ */
+ private Object oldValue;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param table
+ * the managed table
+ * @param managedFeature
+ * the managed feature
+ */
+ public AbstractConfigurationElementObservableValue(final Table table, final EStructuralFeature managedFeature) {
+ this.table = table;
+ this.managedFeature = managedFeature;
+ oldValue = doGetValue();
+ }
+
+ /**
+ *
+ * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#doGetValue()
+ *
+ * @return
+ * the current value
+ */
+ @Override
+ protected Object doGetValue() {
+ EObject editedObject = getEditedEObject();
+ if (editedObject != null) {
+ return editedObject.eGet(getManagedFeature());
+ }
+ return null;
+ }
+
+
+ /**
+ *
+ * @return
+ * the managed feature
+ */
+ public EStructuralFeature getManagedFeature() {
+ return managedFeature;
+ }
+
+ /**
+ *
+ * @return
+ * the managed axis configuration
+ */
+ protected abstract EObject getEditedEObject();
+
+ /**
+ *
+ * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
+ *
+ * @param event
+ */
+ @Override
+ public void handleEvent(Event event) {
+ final Object newValue = doGetValue();
+ // big test required to avoid NPE when we receive event during the exchange of the axis
+ if ((newValue != oldValue) && ((newValue != null && oldValue == null) || newValue == null && oldValue != null || (oldValue != null && !oldValue.equals(newValue)))) {
+ final Object localOldValue = oldValue;
+ oldValue = newValue;
+ fireValueChange(new ValueDiff() {
+
+ @Override
+ public Object getOldValue() {
+ return localOldValue;
+ }
+
+ @Override
+ public Object getNewValue() {
+ return newValue;
+ }
+ });
+ }
+ }
+
+ /**
+ *
+ * @return
+ * the managed table
+ */
+ public Table getTable() {
+ return table;
+ }
+
+ /**
+ * Set the table.
+ *
+ * @param table the table to set
+ *
+ * @since 2.1
+ */
+ public void setTable(final Table table) {
+ this.table = table;
+ }
+
+}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/observable/AbstractPasteObjectPostActionsObservableValue.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/observable/AbstractPasteObjectPostActionsObservableValue.java
index 0aacb1114cd..ad58b84a485 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/observable/AbstractPasteObjectPostActionsObservableValue.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/observable/AbstractPasteObjectPostActionsObservableValue.java
@@ -82,6 +82,17 @@ public abstract class AbstractPasteObjectPostActionsObservableValue extends EMFO
protected Table getTable() {
return this.table;
}
+
+ /**
+ * Set the table.
+ *
+ * @param table the table to set
+ *
+ * @since 2.1
+ */
+ public void setTable(Table table) {
+ this.table = table;
+ }
/**
*
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/utils/Constants.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/utils/Constants.java
index b9d0e88bc01..455d5d929d2 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/utils/Constants.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable.properties/src/org/eclipse/papyrus/infra/nattable/properties/utils/Constants.java
@@ -25,6 +25,12 @@ public class Constants {
// to prevent instanciation
}
+ /**
+ * The table owner constant.
+ *
+ * @since 2.1
+ */
+ public static final String TABLE_OWNER = "owner"; //$NON-NLS-1$
public static final String TABLE_CONTEXT = "context"; //$NON-NLS-1$
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/META-INF/MANIFEST.MF b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/META-INF/MANIFEST.MF
index 7b6296634c0..dff21d98416 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/META-INF/MANIFEST.MF
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/META-INF/MANIFEST.MF
@@ -66,7 +66,7 @@ Require-Bundle: org.eclipse.gmf.runtime.emf.type.core;bundle-version="[1.9.0,2.0
org.eclipse.papyrus.infra.types.core;bundle-version="[3.0.0,4.0.0)"
Bundle-Vendor: %Bundle-Vendor
Bundle-ActivationPolicy: lazy
-Bundle-Version: 2.0.0.qualifier
+Bundle-Version: 2.1.0.qualifier
Bundle-Name: %Bundle-Name
Bundle-Activator: org.eclipse.papyrus.infra.nattable.Activator
Bundle-ManifestVersion: 2
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/pom.xml b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/pom.xml
index f3d72a05418..1c2698e8f8e 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/pom.xml
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/pom.xml
@@ -7,6 +7,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.infra.nattable</artifactId>
- <version>2.0.0-SNAPSHOT</version>
+ <version>2.1.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project> \ No newline at end of file
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/AbstractNattableWidgetManager.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/AbstractNattableWidgetManager.java
index 889ce48c28a..54f74b7ce37 100755
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/AbstractNattableWidgetManager.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/AbstractNattableWidgetManager.java
@@ -46,6 +46,7 @@ import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.nebula.widgets.nattable.NatTable;
import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
+import org.eclipse.nebula.widgets.nattable.coordinate.PositionCoordinate;
import org.eclipse.nebula.widgets.nattable.coordinate.Range;
import org.eclipse.nebula.widgets.nattable.copy.command.CopyDataToClipboardCommand;
import org.eclipse.nebula.widgets.nattable.data.IDataProvider;
@@ -148,11 +149,17 @@ import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
import org.eclipse.papyrus.infra.services.labelprovider.service.LabelProviderService;
import org.eclipse.papyrus.infra.ui.util.EclipseCommandUtils;
import org.eclipse.papyrus.infra.widgets.util.NavigationTarget;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPartSite;
@@ -276,7 +283,7 @@ public abstract class AbstractNattableWidgetManager implements INattableModelMan
* the cell editor axis configuration
*/
private CellEditorAxisConfiguration cellAxisConfiguration;
-
+
/**
* Keep the decoration service as variable to avoid possible memory leak.
*/
@@ -286,6 +293,20 @@ public abstract class AbstractNattableWidgetManager implements INattableModelMan
* The table popup menu configuration.
*/
private TablePopupMenuConfiguration tablePopupMenuConfiguration;
+
+ /**
+ * The CTabFolder.
+ *
+ * @since 2.1
+ */
+ private CTabFolder cTabFolder;
+
+ /**
+ * The CTabFolder selection listener.
+ *
+ * @since 2.1
+ */
+ private SelectionListener cTabFolderSelectionListener;
/**
*
@@ -401,6 +422,14 @@ public abstract class AbstractNattableWidgetManager implements INattableModelMan
this.natTable.setConfigRegistry(configRegistry);
this.natTable.setUiBindingRegistry(new UiBindingRegistry(this.natTable));
this.selectionProvider = new TableSelectionProvider(this, this.bodyLayerStack.getSelectionLayer());
+ // This allows to define the table context as selection on the table opening
+ this.selectionProvider.setSelection(new TableStructuredSelection(getTable().getContext(), new TableSelectionWrapper(Collections.<PositionCoordinate> emptyList())));
+
+ // Add a selection listener on the CTabFolder to select the table context
+ final CTabFolder tabFolder = getParentCTabFolder();
+ if (null != tabFolder) {
+ tabFolder.addSelectionListener(getCTabFolderSelectionListener());
+ }
if (site != null) {
// we are creating an editor
@@ -436,6 +465,84 @@ public abstract class AbstractNattableWidgetManager implements INattableModelMan
}
/**
+ * Get the parent CTabFolder if exists.
+ *
+ * @return The parent CTabFolder or <code>null</code>.
+ *
+ * @since 2.1
+ */
+ protected CTabFolder getParentCTabFolder() {
+ if(null == cTabFolder){
+ Control currentControl = natTable.getParent();
+ while (null != currentControl && !(currentControl instanceof CTabFolder)) {
+ currentControl = currentControl.getParent();
+ }
+ if (currentControl instanceof CTabFolder) {
+ cTabFolder = (CTabFolder) currentControl;
+ }
+ }
+ return cTabFolder;
+ }
+
+ /**
+ * Get the CTabFolder selection listener created if doesn't exists.
+ *
+ * @return The CTabFolder selection listener.
+ *
+ * @since 2.1
+ */
+ protected SelectionListener getCTabFolderSelectionListener() {
+ if (null == cTabFolderSelectionListener) {
+ cTabFolderSelectionListener = new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(final SelectionEvent e) {
+ // Manage only the selection change when the current display is the nattable display
+ if (getNattableTopParentComposite() == ((CTabItem) e.item).getControl()) {
+ boolean hasSelection = false;
+
+ final TableStructuredSelection selectionInTable = getSelectionInTable();
+ if (null != selectionInTable) {
+ final TableSelectionWrapper tableSelectionWrapper = (TableSelectionWrapper) selectionInTable.getAdapter(TableSelectionWrapper.class);
+ hasSelection = !(tableSelectionWrapper.getSelectedCells().isEmpty() && tableSelectionWrapper.getFullySelectedRows().isEmpty() && tableSelectionWrapper.getFullySelectedColumns().isEmpty());
+ }
+
+ if (!hasSelection && null != natTable && null != selectionProvider && null != getTable().getContext()) {
+ if(selectionInTable.getFirstElement().equals(getTable().getContext())){
+ // Set the table as selection to force the properties view to refresh it
+ selectionProvider.setSelection(new TableStructuredSelection(getTable(), new TableSelectionWrapper(Collections.<PositionCoordinate> emptyList())));
+ }
+ // This allows to define the table context as selection on the table opening
+ selectionProvider.setSelection(new TableStructuredSelection(getTable().getContext(), new TableSelectionWrapper(Collections.<PositionCoordinate> emptyList())));
+ }
+ }
+ }
+ };
+ }
+ return cTabFolderSelectionListener;
+ }
+
+ /**
+ * Get the display of the top composite of nattable editor.
+ *
+ * @return The display of the top composite.
+ *
+ * @since 2.1
+ */
+ protected Control getNattableTopParentComposite() {
+ Control currentControl = natTable.getParent();
+ boolean hasToStop = false;
+ while (null != currentControl && !hasToStop) {
+ if (null == currentControl.getParent() || currentControl.getParent() instanceof CTabFolder) {
+ hasToStop = true;
+ }else{
+ currentControl = currentControl.getParent();
+ }
+ }
+ return null == currentControl ? null : currentControl;
+ }
+
+ /**
* Register the menu configuration for the table
*
* @param natTable
@@ -656,7 +763,7 @@ public abstract class AbstractNattableWidgetManager implements INattableModelMan
* the decoration service
*/
protected DecorationService getDecorationService() {
- if(null == decorationService){
+ if (null == decorationService) {
// Bug 490067: We need to check if the resource of the context is existing before to get the decoration service (to avoid useless log exception)
// The resource of the context is not existing in the case of deletion (EObject was already deleted but the reference of table always exists)
if (null != this.table.getContext().eResource()) {
@@ -1318,6 +1425,11 @@ public abstract class AbstractNattableWidgetManager implements INattableModelMan
return this.bodyLayerStack;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.ui.services.IDisposable#dispose()
+ */
@Override
public void dispose() {
if (this.bodyDataProvider != null) {
@@ -1349,7 +1461,7 @@ public abstract class AbstractNattableWidgetManager implements INattableModelMan
if (this.filterStrategy instanceof IDisposable) {
((IDisposable) this.filterStrategy).dispose();
}
- if(null != this.decorationService){
+ if (null != this.decorationService) {
this.decorationService = null;
}
this.cellAxisConfiguration = null;
@@ -1358,9 +1470,12 @@ public abstract class AbstractNattableWidgetManager implements INattableModelMan
this.contextEditingDomain = null;
this.tableContext = null;
if (this.natTable != null) {
+ if (null != cTabFolder) {
+ cTabFolder.removeSelectionListener(getCTabFolderSelectionListener());
+ }
this.natTable.dispose();
}
- if(this.tablePopupMenuConfiguration != null){
+ if (this.tablePopupMenuConfiguration != null) {
tablePopupMenuConfiguration.dispose();
}
}
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/NattableModelManager.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/NattableModelManager.java
index df4f5cdb467..1f3c6f55dc8 100755
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/NattableModelManager.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/manager/table/NattableModelManager.java
@@ -114,7 +114,6 @@ import org.eclipse.papyrus.infra.nattable.utils.NattableConfigAttributes;
import org.eclipse.papyrus.infra.nattable.utils.StringComparator;
import org.eclipse.papyrus.infra.nattable.utils.TableHelper;
import org.eclipse.papyrus.infra.nattable.utils.TableSelectionWrapper;
-import org.eclipse.papyrus.infra.services.decoration.DecorationService;
import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
import org.eclipse.papyrus.infra.services.labelprovider.service.LabelProviderService;
diff --git a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/provider/TableSelectionProvider.java b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/provider/TableSelectionProvider.java
index 62042a62eef..f83b2ae7f2e 100644
--- a/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/provider/TableSelectionProvider.java
+++ b/plugins/infra/nattable/org.eclipse.papyrus.infra.nattable/src/org/eclipse/papyrus/infra/nattable/provider/TableSelectionProvider.java
@@ -198,9 +198,14 @@ public class TableSelectionProvider implements ISelectionProvider, IDisposable,
} else {
selection = calculateSelectionRowsAndColumnsWithoutTypeSelectionEvent(wrapper, event);
}
- newSelection = new TableStructuredSelection(selection.toArray(), wrapper);
+ // If no selection appended, the selection must be the context of the table
+ if(selection.isEmpty()){
+ newSelection = new TableStructuredSelection(manager.getTable().getContext(), wrapper);
+ }else{
+ newSelection = new TableStructuredSelection(selection.toArray(), wrapper);
+ }
} else {
- newSelection = new StructuredSelection();
+ newSelection = new StructuredSelection(manager.getTable().getContext());
}
setSelection(newSelection);
}
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/META-INF/MANIFEST.MF b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/META-INF/MANIFEST.MF
index aac5542c36f..9802cebba00 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/META-INF/MANIFEST.MF
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/META-INF/MANIFEST.MF
@@ -25,7 +25,7 @@ Require-Bundle: org.eclipse.papyrus.infra.properties;bundle-version="[1.2.0,2.0.
org.eclipse.xwt;bundle-version="[1.1.0,2.0.0)",
org.eclipse.papyrus.infra.ui.emf;bundle-version="[1.2.0,2.0.0)";visibility:=reexport
Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 1.2.0.qualifier
+Bundle-Version: 1.3.0.qualifier
Eclipse-BuddyPolicy: dependent
Bundle-Activator: org.eclipse.papyrus.infra.properties.internal.ui.Activator
Bundle-ManifestVersion: 2
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/pom.xml b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/pom.xml
index 14076b4f844..42bea23053d 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/pom.xml
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/pom.xml
@@ -7,6 +7,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.papyrus.infra.properties.ui</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project> \ No newline at end of file
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/src/org/eclipse/papyrus/infra/properties/ui/modelelement/AbstractModelElement.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/src/org/eclipse/papyrus/infra/properties/ui/modelelement/AbstractModelElement.java
index ca41ce96107..59eada00b74 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/src/org/eclipse/papyrus/infra/properties/ui/modelelement/AbstractModelElement.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/src/org/eclipse/papyrus/infra/properties/ui/modelelement/AbstractModelElement.java
@@ -232,4 +232,15 @@ public abstract class AbstractModelElement implements ModelElement, IDataSourceL
public IPapyrusConverter getPapyrusConverter(String propertyPath) {
return null;
}
+
+ /**
+ * Get the observables map by property path.
+ *
+ * @return the observables.
+ *
+ * @since 1.3
+ */
+ public Map<String, IObservable> getObservables() {
+ return observables;
+ }
}
diff --git a/plugins/infra/ui/org.eclipse.papyrus.infra.newchild.ui/META-INF/MANIFEST.MF b/plugins/infra/ui/org.eclipse.papyrus.infra.newchild.ui/META-INF/MANIFEST.MF
index a5201240e99..ffe4b3c9afd 100644
--- a/plugins/infra/ui/org.eclipse.papyrus.infra.newchild.ui/META-INF/MANIFEST.MF
+++ b/plugins/infra/ui/org.eclipse.papyrus.infra.newchild.ui/META-INF/MANIFEST.MF
@@ -6,7 +6,7 @@ Bundle-Version: 2.0.0.qualifier
Bundle-Activator: org.eclipse.papyrus.infra.newchild.ui.Activator
Require-Bundle: org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
- org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.papyrus.infra.properties.ui;bundle-version="[1.3.0,2.0.0)",
org.eclipse.papyrus.infra.newchild;bundle-version="[1.2.0,2.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy

Back to the top