Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Lorenzo2017-05-28 21:03:17 +0000
committervincent lorenzo2017-06-01 09:07:26 +0000
commitbc0550d4724f5b49ba1bf6c85077973bb1841a44 (patch)
treefd73042c71023a8ea12347b889a4768894939fc2 /plugins/doc
parent6a5f0e3b5a73ad62d077d4fa0bb12feaaddff4d0 (diff)
downloadorg.eclipse.papyrus-bc0550d4724f5b49ba1bf6c85077973bb1841a44.tar.gz
org.eclipse.papyrus-bc0550d4724f5b49ba1bf6c85077973bb1841a44.tar.xz
org.eclipse.papyrus-bc0550d4724f5b49ba1bf6c85077973bb1841a44.zip
Bug 512564 - [Table][Matrix] Papyrus must provide a generic way to the
user to create relationship matrix. - the user documentation for Matrix - the developer documentation for Matrix - the requirements for the matrix Change-Id: I49ab89f061afa67ae2dbfaa3619fab8b74d688bb Signed-off-by: Vincent Lorenzo <vincent.lorenzo@cea.fr> Signed-off-by: Nicolas FAUVERGUE <nicolas.fauvergue@cea.fr>
Diffstat (limited to 'plugins/doc')
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/ideas of enhancements/matrix_enhancement.mediawiki4
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/ideas of enhancements/table_enhancement.mediawiki30
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.di2
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.notation325
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.uml14
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.nattable.doc/plugin.xml8
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/images/matrix_example/TraceMatrix.jpgbin0 -> 172203 bytes
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/images/matrix_example/traceability - relmatrx.pngbin0 -> 9149 bytes
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.di2
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.notation43
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.uml127
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixJustAfterCreation.pngbin0 -> 57717 bytes
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixRelationshipCreation.pngbin0 -> 16587 bytes
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixResult.pngbin0 -> 96953 bytes
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/RelationKindDialog.pngbin0 -> 30799 bytes
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/ThePropertyViewForMatrix.pngbin0 -> 32390 bytes
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/matrixDevDoc.mediawiki109
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/matrixUserDoc.mediawiki66
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/nattable-devDoc-main-toc.xml4
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/nattable-userDoc-main-toc.xml17
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/tableDevDoc.mediawiki46
21 files changed, 761 insertions, 36 deletions
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/ideas of enhancements/matrix_enhancement.mediawiki b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/ideas of enhancements/matrix_enhancement.mediawiki
new file mode 100755
index 00000000000..cefd64ee147
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/ideas of enhancements/matrix_enhancement.mediawiki
@@ -0,0 +1,4 @@
+=Generic Relationship Matrix=
+*To be more flexible, the cell manager should return a wrapper (maybe only when required)
+*This wrapper could indicate a tooltip message, a IStatus, the number of end and the number of link in the case of matrix.
+*Not possible yet, due to selection provider which will be broken selecting a cell for which we return a wrapper instead of the real value. \ No newline at end of file
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/ideas of enhancements/table_enhancement.mediawiki b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/ideas of enhancements/table_enhancement.mediawiki
new file mode 100755
index 00000000000..4857bafbb04
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/ideas of enhancements/table_enhancement.mediawiki
@@ -0,0 +1,30 @@
+=Enhancements to plan for a next table version=
+*allow to a user/developper to add a new AxisManager to an existing table. Currently it is not possible, because the java AxisManager are represented in the nattableconfiguration file by an AxisManagerRepresentation. This one provides several configuration to the AxisManager, like LabelProvider to use
+
+*remove the paste with detached mode
+*store all axis for synchronized table too or provide an easy way for the user to define if the contents must be stored or not
+**all tables must be able to be stored
+**some user actions could required a full storage of the table
+**wrap all rows/columns in IAxis
+*nattableConfiguration should be a table
+*store all customization information in the table just after its creation. Currently, when a table is created, we continue to look for these information in the tableconfiguration until the user modifies the default configuration
+*add supports for queries in table, queries could be used for several features in the table:
+*#specific columns
+*#specific categories
+*#could be used in the JavaTester class (allow to know if the table can be created on not for a given context)
+*#used as configuration for AxisManager to filter the elements
+*#used as configuration for AxisManager to get the element to display (like cateegories)
+*#the possible queries would be ocl queries, java queries, others ? We could start this feature integrating Papyrus Facet which already provides OCL and java queries.
+*hierarchical rows for all tables
+*hierarchical columns too (need to develop our own layer!
+*filter on rows to filter column (specific layer too)
+*invert layer (already exist in NatTable, but static and not dynamic (need a boolean)
+*feature "Rows Connect/Disconnect Columns Axis" must be reimplemented. Currently, this feature is linked to the composte Axis Manager, we should move it to each sub-axis manager. Moreover, this property must be a part of the Table metamodel.
+**an other possibility, all axis should be notified when one of the axis (opposite or same side) add/remove/move/... elements and must be able to chain a command if required.
+**this possibility is not incompatible with the connect/disconnect feature
+**master and slave should be a removed concept with this kind of solution
+*property master/slave of the axis must be a property of the metamodel and not a java implementation
+*property table about cell editor declaration must be improved. If we use "Cell" instead of "Column", we lose the possibility to add columns and declaring cell editor by columns for them. Maybe this property should be managed by the axis manager and not by the table.
+*cell configruation, axis manager, filter, ... and so on, shoudl be represented as EMF object in separate file, in order to be easily referenced by table. It will be more efficient than using String as id to identify them. Moreover dependency problem will be the same. We will get unresolved proxy instead of contribution to extension point unknown.
+*table must allow to use as TreeContentProvider the tree of the ModelExplorer, in order to be able to get the same hierarchy provided by Facet (+ custom ???)
+*table framework should allow to load axis/cell/labelprovider/celleditors... in the user workspace without launch a runtime
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.di b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.di
new file mode 100755
index 00000000000..278d6ec542c
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.sysml.architecture.SysML"/>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.notation b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.notation
new file mode 100755
index 00000000000..da444853cd4
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.notation
@@ -0,0 +1,325 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.2" xmlns:gmfdiagrepresentation="http://www.eclipse.org/papyrus/infra/gmfdiag/representation" xmlns:nattable="http://www.eclipse.org/papyrus/nattable/model" xmlns:nattableaxis="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis" xmlns:nattableaxisconfiguration="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration" xmlns:nattableaxisprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider" xmlns:nattablecelleditor="http://www.eclipse.org/papyrus/nattable/model/table/nattablecelleditor" xmlns:nattableconfiguration="http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration" xmlns:nattablelabelprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattablecontentprovider" xmlns:nattablerepresentation="http://www.eclipse.org/papyrus/infra/nattable/representation" xmlns:nattablestyle="http://www.eclipse.org/papyrus/nattable/model/table/nattablestyle" xmlns:nattablewrapper="http://www.eclipse.org/papyrus/nattable/model/table/nattablewrapper" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmlns:umlexpressions="http://www.eclipse.org/papyrus/umlexpressions" xsi:schemaLocation="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis http://www.eclipse.org/papyrus/nattable/model#//nattableaxis http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration http://www.eclipse.org/papyrus/nattable/model#//nattableaxisconfiguration http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model#//nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model/table/nattablecelleditor http://www.eclipse.org/papyrus/nattable/model#//nattablecelleditor http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration http://www.eclipse.org/papyrus/nattable/model#//nattableconfiguration http://www.eclipse.org/papyrus/nattable/model/table/nattablecontentprovider http://www.eclipse.org/papyrus/nattable/model#//nattablelabelprovider http://www.eclipse.org/papyrus/nattable/model/table/nattablestyle http://www.eclipse.org/papyrus/nattable/model#//nattablestyle http://www.eclipse.org/papyrus/nattable/model/table/nattablewrapper http://www.eclipse.org/papyrus/nattable/model#//nattablewrapper">
+ <notation:Diagram xmi:id="_vH48sEXgEeetGKb4v0NhIg" type="PapyrusUMLClassDiagram" name="NewClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_wkp1oEXgEeetGKb4v0NhIg" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wkrq0EXgEeetGKb4v0NhIg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wkrq0UXgEeetGKb4v0NhIg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wkrq0kXgEeetGKb4v0NhIg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wksR4EXgEeetGKb4v0NhIg" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wksR4UXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wksR4kXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wksR40XgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wksR5EXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wksR5UXgEeetGKb4v0NhIg" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wksR5kXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wksR50XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wksR6EXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wksR6UXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wksR6kXgEeetGKb4v0NhIg" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wksR60XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wksR7EXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wksR7UXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wksR7kXgEeetGKb4v0NhIg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_wkjH8EXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wkp1oUXgEeetGKb4v0NhIg" x="20" y="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wrbMAEXgEeetGKb4v0NhIg" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wrbzEEXgEeetGKb4v0NhIg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wrbzEUXgEeetGKb4v0NhIg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wrbzEkXgEeetGKb4v0NhIg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wrbzE0XgEeetGKb4v0NhIg" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wrbzFEXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wrbzFUXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wrbzFkXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wrbzF0XgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wrcaIEXgEeetGKb4v0NhIg" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wrcaIUXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wrcaIkXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wrcaI0XgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wrcaJEXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wrcaJUXgEeetGKb4v0NhIg" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wrcaJkXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wrcaJ0XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wrcaKEXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wrcaKUXgEeetGKb4v0NhIg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_wrZW0EXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wrbMAUXgEeetGKb4v0NhIg" x="200" y="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wwl_4EXgEeetGKb4v0NhIg" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wwl_4kXgEeetGKb4v0NhIg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wwl_40XgEeetGKb4v0NhIg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wwl_5EXgEeetGKb4v0NhIg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wwl_5UXgEeetGKb4v0NhIg" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wwl_5kXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wwl_50XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wwl_6EXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wwl_6UXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wwl_6kXgEeetGKb4v0NhIg" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wwl_60XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wwl_7EXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wwl_7UXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wwl_7kXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wwmm8EXgEeetGKb4v0NhIg" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wwmm8UXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wwmm8kXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wwmm80XgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wwmm9EXgEeetGKb4v0NhIg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_wwkKsEXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wwl_4UXgEeetGKb4v0NhIg" x="400" y="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w2o9gEXgEeetGKb4v0NhIg" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w2pkkEXgEeetGKb4v0NhIg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_w2pkkUXgEeetGKb4v0NhIg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w2pkkkXgEeetGKb4v0NhIg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w2pkk0XgEeetGKb4v0NhIg" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w2pklEXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w2pklUXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w2pklkXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w2pkl0XgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w2pkmEXgEeetGKb4v0NhIg" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w2pkmUXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w2pkmkXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w2qLoEXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w2qLoUXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w2qLokXgEeetGKb4v0NhIg" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w2qLo0XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w2qLpEXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w2qLpUXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w2qLpkXgEeetGKb4v0NhIg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_w2mhQEXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w2o9gUXgEeetGKb4v0NhIg" x="580" y="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w9DukEXgEeetGKb4v0NhIg" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w9DukkXgEeetGKb4v0NhIg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_w9Duk0XgEeetGKb4v0NhIg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w9EVoEXgEeetGKb4v0NhIg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w9EVoUXgEeetGKb4v0NhIg" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w9EVokXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w9EVo0XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w9EVpEXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w9EVpUXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w9EVpkXgEeetGKb4v0NhIg" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w9EVp0XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w9EVqEXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w9EVqUXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w9EVqkXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w9EVq0XgEeetGKb4v0NhIg" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w9EVrEXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w9EVrUXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w9EVrkXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w9EVr0XgEeetGKb4v0NhIg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_w9CgcEXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w9DukUXgEeetGKb4v0NhIg" x="580" y="280"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xECgUEXgEeetGKb4v0NhIg" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_xECgUkXgEeetGKb4v0NhIg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xEDHYEXgEeetGKb4v0NhIg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xEDHYUXgEeetGKb4v0NhIg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xEDHYkXgEeetGKb4v0NhIg" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xEDHY0XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xEDHZEXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xEDHZUXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xEDHZkXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xEDHZ0XgEeetGKb4v0NhIg" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xEDHaEXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xEDHaUXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xEDHakXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xEDHa0XgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xEDHbEXgEeetGKb4v0NhIg" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xEDHbUXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xEDHbkXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xEDHb0XgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xEDHcEXgEeetGKb4v0NhIg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_xEArIEXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xECgUUXgEeetGKb4v0NhIg" x="760" y="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3xG1QEXgEeetGKb4v0NhIg" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3xIDYEXgEeetGKb4v0NhIg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3xIDYUXgEeetGKb4v0NhIg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3xIDYkXgEeetGKb4v0NhIg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3xIqcEXgEeetGKb4v0NhIg" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3xIqcUXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3xIqckXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3xIqc0XgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3xIqdEXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3xIqdUXgEeetGKb4v0NhIg" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3xIqdkXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3xIqd0XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3xIqeEXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3xIqeUXgEeetGKb4v0NhIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3xIqekXgEeetGKb4v0NhIg" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3xIqe0XgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3xIqfEXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3xIqfUXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3xIqfkXgEeetGKb4v0NhIg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_3xEZAEXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3xG1QUXgEeetGKb4v0NhIg" x="940" y="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7L7g4EXhEeetGKb4v0NhIg" type="Dependency_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7L7g4kXhEeetGKb4v0NhIg" type="Dependency_MultiNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7L7g40XhEeetGKb4v0NhIg" y="15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7L7g5EXhEeetGKb4v0NhIg" type="Dependency_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7L7g5UXhEeetGKb4v0NhIg" y="15"/>
+ </children>
+ <element xmi:type="uml:Dependency" href="model.uml#_6v5hoEXgEeetGKb4v0NhIg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7L7g5kXhEeetGKb4v0NhIg" x="540" y="140"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_vH48sUXgEeetGKb4v0NhIg" name="diagram_compatibility_version" stringValue="1.3.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_vH48skXgEeetGKb4v0NhIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_vH48s0XgEeetGKb4v0NhIg">
+ <owner xmi:type="uml:Model" href="model.uml#_kTx54EXgEeetGKb4v0NhIg"/>
+ <diagramKind xmi:type="gmfdiagrepresentation:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.uml.architecture/model/uml.architecture#_zzf4gHDtEeWh-MssWmCB_A"/>
+ </styles>
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_v7OeIEXgEeetGKb4v0NhIg" name="rulergrid.viewgrid" booleanValue="true"/>
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wF8gYEXgEeetGKb4v0NhIg" name="rulergrid.snaptogrid" booleanValue="true"/>
+ <element xmi:type="uml:Model" href="model.uml#_kTx54EXgEeetGKb4v0NhIg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_53yN4EXgEeetGKb4v0NhIg" type="Dependency_Edge" source="_wkp1oEXgEeetGKb4v0NhIg" target="_wrbMAEXgEeetGKb4v0NhIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_53y08EXgEeetGKb4v0NhIg" type="Dependency_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_53y08UXgEeetGKb4v0NhIg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_53zcAEXgEeetGKb4v0NhIg" type="Dependency_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_53zcAUXgEeetGKb4v0NhIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_53yN4UXgEeetGKb4v0NhIg"/>
+ <element xmi:type="uml:Dependency" href="model.uml#_53t8cEXgEeetGKb4v0NhIg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_53yN4kXgEeetGKb4v0NhIg" points="[120, 140, -643984, -643984]$[200, 140, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_55L8EEXgEeetGKb4v0NhIg" id="(1.0,0.4)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_55L8EUXgEeetGKb4v0NhIg" id="(0.0,0.4)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7MW-sEXhEeetGKb4v0NhIg" type="Dependency_BranchEdge" source="_wwl_4EXgEeetGKb4v0NhIg" target="_7L7g4EXhEeetGKb4v0NhIg" routing="Rectilinear">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7MW-sUXhEeetGKb4v0NhIg"/>
+ <element xmi:type="uml:Dependency" href="model.uml#_6v5hoEXgEeetGKb4v0NhIg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7MW-skXhEeetGKb4v0NhIg" points="[500, 140, -643984, -643984]$[520, 140, -643984, -643984]$[520, 145, -643984, -643984]$[540, 145, -643984, -643984]$[540, 140, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_75r-wEXhEeetGKb4v0NhIg" id="(1.0,0.4)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_75r-wUXhEeetGKb4v0NhIg" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7MorgEXhEeetGKb4v0NhIg" type="Dependency_BranchEdge" source="_7L7g4EXhEeetGKb4v0NhIg" target="_w2o9gEXgEeetGKb4v0NhIg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7MorgUXhEeetGKb4v0NhIg"/>
+ <element xmi:type="uml:Dependency" href="model.uml#_6v5hoEXgEeetGKb4v0NhIg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7MorgkXhEeetGKb4v0NhIg" points="[0, 0, -643984, -643984]$[580, 138, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_75r-wkXhEeetGKb4v0NhIg" id="(1.0,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_75r-w0XhEeetGKb4v0NhIg" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7M38EEXhEeetGKb4v0NhIg" type="Dependency_BranchEdge" source="_7L7g4EXhEeetGKb4v0NhIg" target="_w9DukEXgEeetGKb4v0NhIg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7M38EUXhEeetGKb4v0NhIg"/>
+ <element xmi:type="uml:Dependency" href="model.uml#_6v5hoEXgEeetGKb4v0NhIg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7M38EkXhEeetGKb4v0NhIg" points="[540, 150, -643984, -643984]$[540, 320, -643984, -643984]$[600, 280, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_75rXsEXhEeetGKb4v0NhIg" id="(0.0,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_75rXsUXhEeetGKb4v0NhIg" id="(0.0,0.4)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BMO2cEXiEeetGKb4v0NhIg" type="Dependency_Edge" source="_xECgUEXgEeetGKb4v0NhIg" target="_3xG1QEXgEeetGKb4v0NhIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BMPdgEXiEeetGKb4v0NhIg" type="Dependency_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BMPdgUXiEeetGKb4v0NhIg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BMPdgkXiEeetGKb4v0NhIg" type="Dependency_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BMPdg0XiEeetGKb4v0NhIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BMO2cUXiEeetGKb4v0NhIg"/>
+ <element xmi:type="uml:Dependency" href="model.uml#_BMNoUEXiEeetGKb4v0NhIg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BMO2ckXiEeetGKb4v0NhIg" points="[860, 140, -643984, -643984]$[940, 140, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BMq7UEXiEeetGKb4v0NhIg" id="(1.0,0.4)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BMq7UUXiEeetGKb4v0NhIg" id="(0.0,0.4)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_B8vtYEXiEeetGKb4v0NhIg" type="Dependency_Edge" source="_xECgUEXgEeetGKb4v0NhIg" target="_3xG1QEXgEeetGKb4v0NhIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_B8wUcEXiEeetGKb4v0NhIg" type="Dependency_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B8wUcUXiEeetGKb4v0NhIg" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_B8wUckXiEeetGKb4v0NhIg" type="Dependency_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B8wUc0XiEeetGKb4v0NhIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_B8vtYUXiEeetGKb4v0NhIg"/>
+ <element xmi:type="uml:Dependency" href="model.uml#_B8ufQEXiEeetGKb4v0NhIg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_B8vtYkXiEeetGKb4v0NhIg" points="[860, 160, -643984, -643984]$[940, 160, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B9LyQEXiEeetGKb4v0NhIg" id="(1.0,0.6)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B9LyQUXiEeetGKb4v0NhIg" id="(0.0,0.6)"/>
+ </edges>
+ </notation:Diagram>
+ <nattable:Table xmi:id="_iJh98EXiEeetGKb4v0NhIg" name="Relationship Generic Matrix0" currentRowAxisProvider="_iJh980XiEeetGKb4v0NhIg" currentColumnAxisProvider="_iJh98kXiEeetGKb4v0NhIg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iJjMEEXiEeetGKb4v0NhIg" source="http://www.eclipse.org/papyrus/infra/nattable/version">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iJjMEUXiEeetGKb4v0NhIg" key="version" value="1.3.0"/>
+ </eAnnotations>
+ <styles xmi:type="nattablestyle:IntListValueStyle" xmi:id="_iJh98UXiEeetGKb4v0NhIg" name="hiddenCategoriesByDepth">
+ <intListValue>1</intListValue>
+ </styles>
+ <context xmi:type="uml:Model" href="model.uml#_kTx54EXgEeetGKb4v0NhIg"/>
+ <owner xmi:type="uml:Model" href="model.uml#_kTx54EXgEeetGKb4v0NhIg"/>
+ <prototype xmi:type="nattablerepresentation:PapyrusTable" href="platform:/plugin/org.eclipse.papyrus.uml.architecture/model/uml.architecture#_d4-QwCT-EeedRqoTe_1ZiA"/>
+ <tableConfiguration xmi:type="nattableconfiguration:TableConfiguration" href="platform:/plugin/org.eclipse.papyrus.uml.nattable.matrix/configs/generic_matrix_of_relationships.nattableconfiguration#/"/>
+ <columnAxisProvidersHistory xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_iJh98kXiEeetGKb4v0NhIg" description="This axis provider manages the columns, according to the wanted hierarchy" name="HierarchicalColumnsAxisManager" disconnectSlave="true">
+ <sources xmi:type="nattablewrapper:EObjectWrapper" xmi:id="_yfijEEXiEeetGKb4v0NhIg">
+ <element xmi:type="uml:Model" href="model.uml#_kTx54EXgEeetGKb4v0NhIg"/>
+ </sources>
+ </columnAxisProvidersHistory>
+ <rowAxisProvidersHistory xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_iJh980XiEeetGKb4v0NhIg" description="This axis provider manages the rows, according to the wanted hierarchy" name="HierarchicalRowAxisManager" disconnectSlave="true">
+ <axis xmi:type="nattableaxis:EObjectTreeItemAxis" xmi:id="_yBLzIEXiEeetGKb4v0NhIg">
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable.matrix/configs/generic_matrix_of_relationships.nattableconfiguration#//@rowHeaderAxisConfiguration/@axisManagers.0"/>
+ <element xmi:type="uml:Model" href="model.uml#_kTx54EXgEeetGKb4v0NhIg"/>
+ </axis>
+ <sources xmi:type="nattablewrapper:EObjectWrapper" xmi:id="_yBJ98EXiEeetGKb4v0NhIg">
+ <element xmi:type="uml:Model" href="model.uml#_kTx54EXgEeetGKb4v0NhIg"/>
+ </sources>
+ </rowAxisProvidersHistory>
+ <localRowHeaderAxisConfiguration xmi:type="nattableaxisconfiguration:LocalTableHeaderAxisConfiguration" xmi:id="_1gUzgEXiEeetGKb4v0NhIg" indexStyle="NUMERIC">
+ <ownedLabelConfigurations xmi:type="nattablelabelprovider:ObjectLabelProviderConfiguration" xmi:id="_1gUzgUXiEeetGKb4v0NhIg"/>
+ <ownedAxisConfigurations xmi:type="nattableaxisconfiguration:TreeFillingConfiguration" xmi:id="_1gUzgkXiEeetGKb4v0NhIg" depth="1" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.treefilling.feature.labelprovider">
+ <axisUsedAsAxisProvider xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_1gUzg0XiEeetGKb4v0NhIg" alias="">
+ <element xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/ownedElement"/>
+ </axisUsedAsAxisProvider>
+ <labelProvider xmi:type="nattablelabelprovider:FeatureLabelProviderConfiguration" href="platform:/plugin/org.eclipse.papyrus.uml.nattable.matrix/configs/generic_matrix_of_relationships.nattableconfiguration#//@rowHeaderAxisConfiguration/@ownedLabelConfigurations.1"/>
+ <filterRule xmi:type="umlexpressions:IsTypeOfExpression" xmi:id="_1gWosEXiEeetGKb4v0NhIg" name="IsTypeOf_Class">
+ <umlEClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </filterRule>
+ </ownedAxisConfigurations>
+ <axisManagerConfigurations xmi:type="nattableaxisconfiguration:AxisManagerConfiguration" xmi:id="_1gUzhEXiEeetGKb4v0NhIg" localHeaderLabelConfiguration="_1gUzgUXiEeetGKb4v0NhIg" localSpecificConfigurations="_1gUzgkXiEeetGKb4v0NhIg">
+ <axisManager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable.matrix/configs/generic_matrix_of_relationships.nattableconfiguration#//@rowHeaderAxisConfiguration/@axisManagers.0"/>
+ </axisManagerConfigurations>
+ </localRowHeaderAxisConfiguration>
+ <localColumnHeaderAxisConfiguration xmi:type="nattableaxisconfiguration:LocalTableHeaderAxisConfiguration" xmi:id="_4IYa4EXiEeetGKb4v0NhIg">
+ <ownedLabelConfigurations xmi:type="nattablelabelprovider:ObjectLabelProviderConfiguration" xmi:id="_4IYa4UXiEeetGKb4v0NhIg"/>
+ <ownedAxisConfigurations xmi:type="nattableaxisconfiguration:TreeFillingConfiguration" xmi:id="_4IYa4kXiEeetGKb4v0NhIg" depth="1" labelProviderContext="org.eclipse.papyrus.infra.nattable.header.treefilling.feature.labelprovider">
+ <axisUsedAsAxisProvider xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_4IYa40XiEeetGKb4v0NhIg">
+ <element xmi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/ownedElement"/>
+ </axisUsedAsAxisProvider>
+ <labelProvider xmi:type="nattablelabelprovider:FeatureLabelProviderConfiguration" href="platform:/plugin/org.eclipse.papyrus.uml.nattable.matrix/configs/generic_matrix_of_relationships.nattableconfiguration#//@columnHeaderAxisConfiguration/@ownedLabelConfigurations.1"/>
+ <filterRule xmi:type="umlexpressions:IsTypeOfExpression" xmi:id="_4IZpAEXiEeetGKb4v0NhIg" name="IsTypeOf_Class">
+ <umlEClass xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </filterRule>
+ </ownedAxisConfigurations>
+ <axisManagerConfigurations xmi:type="nattableaxisconfiguration:AxisManagerConfiguration" xmi:id="_4IYa5EXiEeetGKb4v0NhIg" localHeaderLabelConfiguration="_4IYa4UXiEeetGKb4v0NhIg" localSpecificConfigurations="_4IYa4kXiEeetGKb4v0NhIg">
+ <axisManager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.uml.nattable.matrix/configs/generic_matrix_of_relationships.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.0"/>
+ </axisManagerConfigurations>
+ </localColumnHeaderAxisConfiguration>
+ <ownedCellEditorConfigurations xmi:type="nattablecelleditor:GenericRelationshipMatrixCellEditorConfiguration" xmi:id="_iJh99EXiEeetGKb4v0NhIg" cellEditorId="GenericRelationshipMatrixEditorConfiguration">
+ <editedElement xmi:type="elementtypesconfigurations:MetamodelTypeConfiguration" href="platform:/plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#org.eclipse.papyrus.uml.Dependency"/>
+ </ownedCellEditorConfigurations>
+ </nattable:Table>
+</xmi:XMI>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.uml b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.uml
new file mode 100755
index 00000000000..79bacf8db59
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/modelsForSnapshots/model.uml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_kTx54EXgEeetGKb4v0NhIg" name="RootElement">
+ <packagedElement xmi:type="uml:Class" xmi:id="_wkjH8EXgEeetGKb4v0NhIg" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wrZW0EXgEeetGKb4v0NhIg" name="Class2"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wwkKsEXgEeetGKb4v0NhIg" name="Class3"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_w2mhQEXgEeetGKb4v0NhIg" name="Class4"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_w9CgcEXgEeetGKb4v0NhIg" name="Class5"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xEArIEXgEeetGKb4v0NhIg" name="Class6"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3xEZAEXgEeetGKb4v0NhIg" name="Class7"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_53t8cEXgEeetGKb4v0NhIg" client="_wkjH8EXgEeetGKb4v0NhIg" supplier="_wrZW0EXgEeetGKb4v0NhIg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_6v5hoEXgEeetGKb4v0NhIg" client="_wwkKsEXgEeetGKb4v0NhIg" supplier="_w2mhQEXgEeetGKb4v0NhIg _w9CgcEXgEeetGKb4v0NhIg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_BMNoUEXiEeetGKb4v0NhIg" client="_xEArIEXgEeetGKb4v0NhIg" supplier="_3xEZAEXgEeetGKb4v0NhIg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_B8ufQEXiEeetGKb4v0NhIg" client="_xEArIEXgEeetGKb4v0NhIg" supplier="_3xEZAEXgEeetGKb4v0NhIg"/>
+</uml:Model>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/plugin.xml b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/plugin.xml
index 189c365bd3e..17e8eb56448 100644
--- a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/plugin.xml
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/plugin.xml
@@ -23,6 +23,14 @@
file="target/site/generated-eclipse-help/tableDevDoc-toc.xml"
primary="false">
</toc>
+ <toc
+ file="target/site/generated-eclipse-help/matrixUserDoc-toc.xml"
+ primary="false">
+ </toc>
+ <toc
+ file="target/site/generated-eclipse-help/matrixDevDoc-toc.xml"
+ primary="false">
+ </toc>
</extension>
</plugin>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/images/matrix_example/TraceMatrix.jpg b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/images/matrix_example/TraceMatrix.jpg
new file mode 100755
index 00000000000..cce1e51c695
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/images/matrix_example/TraceMatrix.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/images/matrix_example/traceability - relmatrx.png b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/images/matrix_example/traceability - relmatrx.png
new file mode 100755
index 00000000000..0dd509af52b
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/images/matrix_example/traceability - relmatrx.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.di b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.di
new file mode 100755
index 00000000000..bf9abab340f
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.notation b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.notation
new file mode 100755
index 00000000000..512b39d1e70
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.notation
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:nattable="http://www.eclipse.org/papyrus/nattable/model" xmlns:nattableaxis="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis" xmlns:nattableaxisconfiguration="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration" xmlns:nattableaxisprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider" xmlns:nattableconfiguration="http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration" xmlns:nattablestyle="http://www.eclipse.org/papyrus/nattable/model/table/nattablestyle" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis http://www.eclipse.org/papyrus/nattable/model#//nattableaxis http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration http://www.eclipse.org/papyrus/nattable/model#//nattableaxisconfiguration http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model#//nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration http://www.eclipse.org/papyrus/nattable/model#//nattableconfiguration http://www.eclipse.org/papyrus/nattable/model/table/nattablestyle http://www.eclipse.org/papyrus/nattable/model#//nattablestyle">
+ <nattable:Table xmi:id="_mms-QPj-EeaHC6GkLFwmEw" name="RequirementTable0" currentRowAxisProvider="_mms-Rfj-EeaHC6GkLFwmEw" currentColumnAxisProvider="_mms-Qfj-EeaHC6GkLFwmEw">
+ <context xmi:type="uml:Package" href="papyrus_table.uml#_Bie6MPg5EeaHC6GkLFwmEw"/>
+ <owner xmi:type="uml:Package" href="papyrus_table.uml#_Bie6MPg5EeaHC6GkLFwmEw"/>
+ <prototype xmi:type="configuration:PapyrusSyncTable" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirementTable.configuration#_lTE0gHDwEeWh-MssWmCB_A"/>
+ <tableConfiguration xmi:type="nattableconfiguration:TableConfiguration" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#/"/>
+ <columnAxisProvidersHistory xmi:type="nattableaxisprovider:SlaveObjectAxisProvider" xmi:id="_mms-Qfj-EeaHC6GkLFwmEw" description="Provides the columns of the tables with a default configuration" name="Requirements Feature Columns Provider">
+ <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_mms-Qvj-EeaHC6GkLFwmEw" element="property_of_stereotype:/SysML::Requirements::Requirement::id">
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.1"/>
+ </axis>
+ <axis xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_mms-Q_j-EeaHC6GkLFwmEw">
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.0"/>
+ <element xmi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+ </axis>
+ <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_mms-RPj-EeaHC6GkLFwmEw" element="property_of_stereotype:/SysML::Requirements::Requirement::text">
+ <styles xmi:type="nattablestyle:IntValueStyle" xmi:id="_uoVSYPj-EeaHC6GkLFwmEw" name="axisWidth" intValue="652"/>
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.1"/>
+ </axis>
+ </columnAxisProvidersHistory>
+ <rowAxisProvidersHistory xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_mms-Rfj-EeaHC6GkLFwmEw" description="Provides the requirements directly owned by the context of the table" name="Requirement Axis Provider" disconnectSlave="true"/>
+ </nattable:Table>
+ <nattable:Table xmi:id="_D3m3EPkAEeaHC6GkLFwmEw" name="RequirementTable0" currentRowAxisProvider="_D3m3FfkAEeaHC6GkLFwmEw" currentColumnAxisProvider="_D3m3EfkAEeaHC6GkLFwmEw">
+ <context xmi:type="uml:Package" href="papyrus_table.uml#_8crMAPj-EeaHC6GkLFwmEw"/>
+ <owner xmi:type="uml:Package" href="papyrus_table.uml#_8crMAPj-EeaHC6GkLFwmEw"/>
+ <prototype xmi:type="configuration:PapyrusSyncTable" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirementTable.configuration#_lTE0gHDwEeWh-MssWmCB_A"/>
+ <tableConfiguration xmi:type="nattableconfiguration:TableConfiguration" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#/"/>
+ <columnAxisProvidersHistory xmi:type="nattableaxisprovider:SlaveObjectAxisProvider" xmi:id="_D3m3EfkAEeaHC6GkLFwmEw" description="Provides the columns of the tables with a default configuration" name="Requirements Feature Columns Provider">
+ <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_D3m3FPkAEeaHC6GkLFwmEw" element="property_of_stereotype:/SysML::Requirements::Requirement::text">
+ <styles xmi:type="nattablestyle:IntValueStyle" xmi:id="_Qyq_UPkAEeaHC6GkLFwmEw" name="axisWidth" intValue="785"/>
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.1"/>
+ </axis>
+ <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_D3m3EvkAEeaHC6GkLFwmEw" element="property_of_stereotype:/SysML::Requirements::Requirement::id">
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.1"/>
+ </axis>
+ <axis xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_D3m3E_kAEeaHC6GkLFwmEw">
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.0"/>
+ <element xmi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+ </axis>
+ </columnAxisProvidersHistory>
+ <rowAxisProvidersHistory xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_D3m3FfkAEeaHC6GkLFwmEw" description="Provides the requirements directly owned by the context of the table" name="Requirement Axis Provider" disconnectSlave="true"/>
+ </nattable:Table>
+</xmi:XMI>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.uml b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.uml
new file mode 100755
index 00000000000..a31931d3c31
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/requirements/papyrus_table.uml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Requirements="http://www.eclipse.org/papyrus/0.7.0/SysML/Requirements" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/0.7.0/SysML/Requirements http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements">
+ <uml:Model xmi:id="_-OZ6UPg4EeaHC6GkLFwmEw" name="TableRequirements">
+ <packagedElement xmi:type="uml:Package" xmi:id="_rVNKMPj9EeaHC6GkLFwmEw" name="Matrix">
+ <packagedElement xmi:type="uml:Package" xmi:id="_Bie6MPg5EeaHC6GkLFwmEw" name="MatrixRequirements">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F0Pj-EeaHC6GkLFwmEw" name="Req_1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F0fj-EeaHC6GkLFwmEw" name="Req_2"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F0vj-EeaHC6GkLFwmEw" name="Req_3"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F0_j-EeaHC6GkLFwmEw" name="Req_4"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F1Pj-EeaHC6GkLFwmEw" name="Req_5"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F1fj-EeaHC6GkLFwmEw" name="Req_6"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F1vj-EeaHC6GkLFwmEw" name="Req_7"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F1_j-EeaHC6GkLFwmEw" name="Req_8"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F2Pj-EeaHC6GkLFwmEw" name="Req_9"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F2fj-EeaHC6GkLFwmEw" name="Req_10"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F2vj-EeaHC6GkLFwmEw" name="Req_11"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F2_j-EeaHC6GkLFwmEw" name="Req_12"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F3Pj-EeaHC6GkLFwmEw" name="Req_13"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F3fj-EeaHC6GkLFwmEw" name="Req_14"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F3vj-EeaHC6GkLFwmEw" name="Req_15"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Iy1F3_j-EeaHC6GkLFwmEw" name="Req_16"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_NFgCoPkDEeaHC6GkLFwmEw" name="Req_17"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ZVJ2YPkDEeaHC6GkLFwmEw" name="Req_18"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_fqzw4PkDEeaHC6GkLFwmEw" name="Req_19"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_jj8loPkDEeaHC6GkLFwmEw" name="Req_20"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_8crMAPj-EeaHC6GkLFwmEw" name="MetamodelChanges">
+ <packagedElement xmi:type="uml:Class" xmi:id="_IdjugPkAEeaHC6GkLFwmEw" name="Req_1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IdkVkPkAEeaHC6GkLFwmEw" name="Req_2"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IdkVkfkAEeaHC6GkLFwmEw" name="Req_3"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IdkVk_kAEeaHC6GkLFwmEw" name="Req_4"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IdkVlPkAEeaHC6GkLFwmEw" name="Req_5"/>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__FWwcPg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__FYloPg4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_TZ_nULU5EduiKqCzJMWbGw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__FZzwPg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__FZzwfg4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//modelelements"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_Gx8MgLX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__Fbo8Pg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__Fbo8fg4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_fSw28LX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__FcQAPg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__FcQAfg4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//portandflows"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_rpx28LX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__FcQAvg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__FcQA_g4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//constraints"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_5WYJ0LX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__Fc3EPg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__Fc3Efg4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//activities"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_C2zXMLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__Fc3Evg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__Fc3E_g4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//allocations"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_NxdG4LX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__FdeIPg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__FdeIfg4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_OOJC4LX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__FdeIvg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__FdeI_g4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//interactions"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_meOioLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__FeFMPg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__FeFMfg4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//statemachines"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_nAF5kLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__FeFMvg4EeaHC6GkLFwmEw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__FeFM_g4EeaHC6GkLFwmEw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//usecases"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_neZmMLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ </uml:Model>
+ <Requirements:Requirement xmi:id="_Iy2T8Pj-EeaHC6GkLFwmEw" text="[Matrix] Papyrus Tree Table must support Matrix, ie Object in rows and object in columns (and not necessessary features)" id="Req_1" base_Class="_Iy1F0Pj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T8fj-EeaHC6GkLFwmEw" text="[Matrix] The Matrix framework must be able to be synchronized and hand-filled for the root" id="Req_2" base_Class="_Iy1F0fj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T8vj-EeaHC6GkLFwmEw" text="[Matrix] The user must be able to define several objects to listen to fill rows" id="Req_3" base_Class="_Iy1F0vj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T8_j-EeaHC6GkLFwmEw" text="[Matrix] The user must be able to define severals object to listen to fill columns" id="Req_4" base_Class="_Iy1F0_j-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T9Pj-EeaHC6GkLFwmEw" text="[Matrix] The user must be able to declare filter to select objects to show as rows (we will continue to use TreeFillingConfiguration)" id="Req_5" base_Class="_Iy1F1Pj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T9fj-EeaHC6GkLFwmEw" text="[Matrix] The user must be able to declare filter to select objects to show as columns (we will use TreeFillingConfiguration for columns too)" id="Req_6" base_Class="_Iy1F1fj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T9vj-EeaHC6GkLFwmEw" text="[Matrix][Filter] The filter must support Eclass selection to accept/refuse displayed elements" id="Req_7" base_Class="_Iy1F1vj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T9_j-EeaHC6GkLFwmEw" text="[Matrix][Filter] The filter must support stereotyped element selection to accept/refuse displayed elements" id="Req_8" base_Class="_Iy1F1_j-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T-Pj-EeaHC6GkLFwmEw" text="[Matrix][Filter] The filter must support ocl query (boolean query) to accept/refuse displayed elements" id="Req_9" base_Class="_Iy1F2Pj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T-fj-EeaHC6GkLFwmEw" text="[Matrix][Filter] The refused elements owning acceptable elements must be hidden too (current behavior with TreeTable)" id="Req_10" base_Class="_Iy1F2fj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T-vj-EeaHC6GkLFwmEw" text="[Papyrus] Papyrus need to provide a generic query framework (like old EMF-Facet version (java, OCL)" id="Req_11" base_Class="_Iy1F2vj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T-_j-EeaHC6GkLFwmEw" text="[Matrix] Matrix table must have a dedicated property view to configure rows context, columns context, row filter, column filter, link to edit (+ direction when available)" id="Req_12" base_Class="_Iy1F2_j-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T_Pj-EeaHC6GkLFwmEw" text="[Matrix] Matrix must provides cell editors (checkbox) to create/destroy link between elements" id="Req_13" base_Class="_Iy1F3Pj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T_fj-EeaHC6GkLFwmEw" text="[Matrix] when no column/row object have been defined the matrix will be empty" id="Req_14" base_Class="_Iy1F3fj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T_vj-EeaHC6GkLFwmEw" text="[Matrix] the rows contexts will be displayed at roots of the the tree table" id="Req_15" base_Class="_Iy1F3vj-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Iy2T__j-EeaHC6GkLFwmEw" text="[Matrix] Filters will be saved as children of the TreeFillingConfigurationObject" id="Req_16" base_Class="_Iy1F3_j-EeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Idk8oPkAEeaHC6GkLFwmEw" text="add IQuery objects to the metamodeln with subclasses for OCL" id="Req_1" base_Class="_IdjugPkAEeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Idk8ofkAEeaHC6GkLFwmEw" text="add IWrapper objects to the metamodel, to be able to reference objects which are not EObject (we will continue to use the solver classes done for Iaxis objects which are wrappers too)" id="Req_2" base_Class="_IdkVkPkAEeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Idk8ovkAEeaHC6GkLFwmEw" text="add CellEditorConfiguration to the metamodel, to be able to store information for the cell edition (edited object kind (elementType), direction, handle condition for rows and columns)" id="Req_3" base_Class="_IdkVkfkAEeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Idk8pPkAEeaHC6GkLFwmEw" text="add a property called filterRule [0..1], typed by IQuery to TreeFillingConfiguration object" id="Req_4" base_Class="_IdkVk_kAEeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_Idk8pfkAEeaHC6GkLFwmEw" text="add a field context [0..*] typed by IWrapper to MasterAxisProvider" id="Req_5" base_Class="_IdkVlPkAEeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_NFh30PkDEeaHC6GkLFwmEw" text="The paste feature from Excel won't be available in this kind of table" base_Class="_NFgCoPkDEeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_ZVLEgPkDEeaHC6GkLFwmEw" text="Invert Axis must be available only for matrix with depth=1 on rows" base_Class="_ZVJ2YPkDEeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_fq1mEPkDEeaHC6GkLFwmEw" text="Element creation (to create rows or columns) must not be available for the matrix" base_Class="_fqzw4PkDEeaHC6GkLFwmEw"/>
+ <Requirements:Requirement xmi:id="_jj9MsPkDEeaHC6GkLFwmEw" text="Columns to display uml properties and stereotype properties must not be available for the matrix" base_Class="_jj8loPkDEeaHC6GkLFwmEw"/>
+</xmi:XMI>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixJustAfterCreation.png b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixJustAfterCreation.png
new file mode 100755
index 00000000000..9e7c7666a88
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixJustAfterCreation.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixRelationshipCreation.png b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixRelationshipCreation.png
new file mode 100755
index 00000000000..07281c9908d
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixRelationshipCreation.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixResult.png b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixResult.png
new file mode 100755
index 00000000000..92e7e4e31f0
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/MatrixResult.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/RelationKindDialog.png b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/RelationKindDialog.png
new file mode 100755
index 00000000000..a91cd0379eb
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/RelationKindDialog.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/ThePropertyViewForMatrix.png b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/ThePropertyViewForMatrix.png
new file mode 100755
index 00000000000..012223acc49
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/images/matrix/ThePropertyViewForMatrix.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/matrixDevDoc.mediawiki b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/matrixDevDoc.mediawiki
new file mode 100755
index 00000000000..f0c356d16f6
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/matrixDevDoc.mediawiki
@@ -0,0 +1,109 @@
+=Introduction=
+Since Papyrus 3.0 (Eclipse Oxygen), Papyrus provides a generic matrix for UML Relationships. This matrix allows to represent a relation between a row element and a column element by a checkbox. This matrix allows to display, create and remove relationships between the elements of your model.
+
+=How does matrices work?=
+==Rows==
+*For the rows, the matrix framework is based on the tree table. We use the '''TreeFillingConfiguration''' object to configure the filling rules of the table. For matrices, the depth must start to 1. The 0 level is given by the user, filling the '''sources''' feature in the matrix property view.
+*When the user fill the row '''sources''' feature, we create <code>ITreeItemAxis</code> in the same time, to simulate a Drag and Drop in a Tree Table. No other changes are required to make rows working as expected.
+*The java class managing the rows is <code>org.eclipse.papyrus.uml.nattable.manager.axis.UMLElementTreeAxisManagerForEventList</code>. This class is registered with the id <code>org.eclipse.papyrus.infra.uml.nattable.tree.axis.manager</code> in the table configuration file.
+*The provided rows are updated when the applied filter or the listen categories change or when a new element appears in the model.
+*The provided rows are not updated when a stereotype is applied/unapplied or when a feature changed in an element.
+
+==Column==
+*For the columns, the matrix framework is based on the synchronized flat table. We adapt its row AxisManager to create the columns AxisManager used for matrix.
+*The java class managing the columns is <code>org.eclipse.papyrus.infra.emf.nattable.manager.axis.EObjectColumnMatrixAxisManager</code>. This class is registered with the id <code>org.eclipse.papyrus.infra.emf.nattable.axis.column.eobject.matrix.manager</code> in the table configuration file.
+*The feature to listen and the filter to apply are defined by a '''TreeFillingConfiguration''' as it is done for rows. Nevertheless, we are not able to display elements on several depth for columns. The unique managed depth is 1.
+*The provided columns are updated when the applied filter or the listen categories change or when a new element appears in the model.
+*The provided columns are not updated when a stereotype is applied/unapplied or when a feature changed in an element.
+
+==Cells==
+*The cell managers API has been changed for matrices. Now the developer must always provide the <code>INatTableModelManager</code> as parameter of the method.
+*We provide a new interface <code>org.eclipse.papyrus.infra.nattable.manager.cell.IGenericMatrixRelationshipCellManager</code> to be able to distinguish easily matrices cell editors from others.
+**This interface provide a new method <code>org.eclipse.papyrus.infra.nattable.manager.cell.IGenericMatrixRelationshipCellManager.getManagedRelationship()</code>, to be able to know the kind of the relationship managed by the cell editor.
+**We choose to manage relationship as EClass, to be able to manage the UML Relationship (and other UML Element shown as relationship in the future) and stereotyped relationship in the same time (using element type configuration).
+**This information is used by the Matrix Property View, to provide only relationship for which we provide a cell editor.
+*The cells are read-only in 3 cases:
+**the couple row-column can't be used as source-target for the edited relationship,
+**several relationships of the edited kind already exist between the row and the column,
+**a relationship already exists, but it have more than 2 ends.
+*The cell painter used for relationship is <code>org.eclipse.papyrus.uml.nattable.matrix.editors.CustomCheckBoxCellEditor</code>
+*The cell editor used for relationship is <code>org.eclipse.papyrus.uml.nattable.matrix.painters.MatrixRelationshipCellBoxPainter</code>
+*The cell data converter used for relationship is <code>org.eclipse.papyrus.uml.nattable.matrix.configs.MatrixRelationshipDisplayConverter</code>
+*The cell configuration is done by the class <code>org.eclipse.papyrus.uml.nattable.matrix.configs.GenericRelationshipMatrixCellEditorConfiguration</code>
+
+=General informations and assumptions=
+*The dedicated property view allows to edit the matrix configuration assuming that there is only 1 '''TreeFillingConfiguration''' for rows, with a depth set to 1, and only 1 TreeFillingConfiguration for columns, with a depth set to 1 too.
+*The framework should work fine with several '''TreeFillingConfiguration''' declared for depth=1, but we don't provide a UI to edit it for columns (for rows, the dialog used to configure the categories can be used).
+*The framework should work fine with several '''TreeFillingConfiguration''' declared with depth=1 and more for rows (the dialog used to configure the categories can be used).
+*The framework won't work with TreeFillingConfiguration declared for depth=1.
+*The framework won't work with TreeFillingConfiguration declared for depth>1 on columns.
+*Rows and Columns AxisProvider registered in the table configuration file must be instanceof '''IMasterAxisProvider'''.
+*The framework assumes that there is only one AxisManager for rows and only one for columns.
+
+
+=Changes done to support Matrices=
+==API Changes for Matrices==
+*The cell managers API has been changed for matrices. Now the developer must always provide the <code>INatTableModelManager</code> as parameter. This change has been reported on the methods parameters of the <code>CellManagerFactory</code> too.
+*We provide a new interface <code>org.eclipse.papyrus.infra.nattable.manager.cell.IGenericMatrixRelationshipCellManager</code> to be able to distinguish easily matrix cell editors from other one.
+**This interface provide a new method <code>org.eclipse.papyrus.infra.nattable.manager.cell.IGenericMatrixRelationshipCellManager.getManagedRelationship()</code>, to be able to know the kind of the relationship managed by the cell editor.
+
+==Table metamodel changes for Matrices==
+*a new EPackage called '''nattablecelleditor''' has been created. It provides interfaces and concrete EClass to store the required information about the relationship edition.
+**'''ICellEditorConfiguration''': common interface for all futures cell editor configurations;
+**'''IMatrixCellEditorConfiguration''': common interface for all futures matrix cell editor configurations;
+**'''GenericRelationshipMatrixCellEditorConfiguration''': the configuration cell editor used by the matrix of relationship. This class contents these fields:
+***'''direction''': the direction of the edited relationships in the table;
+***'''cellContentsFilter''': a IBooleanEObjectExpression to filter (if required) the contents of the cell in order to display only relationship choosen by the user;
+***'''editedElement''': the EClass (UML in our usecase) representing the relationship edited by the table;
+*a new EPackage called '''wrapper''' has been created. It provides wrappers to be able to reference easily several kind of objects. Currently, only the implementation for EObject is provided, but extending it, we will be able to reference object which are not EObject too.
+*in '''TableConfiguration''':
+**a new property '''ownedCellEditorConfigurations''', used to define the initial matrix configuration;
+*in '''Table'''
+**a new property '''ownedCellEditorConfigurations''', used to define the matrix configuration. This property is copied from the TableConfiguration during the creation of a new table;
+*in '''IMasterAxisProvider''':
+**a new field '''sources''', typed by '''IWrapper''': this field allows to reference the objects of the model used to get the rows and the columns of the table
+*in '''TreeFillingConfiguration''':
+**a new filter called '''filterRule''' and typed by an IBooleanEObjectExpression has been added. When this field is defined, the axis displayed in table must match the filter.
+
+==New plugins for Matrices==
+Two new plugins have been created to manage matrices:
+*'''org.eclipse.papyrus.uml.nattable.matrix''': to group some code used for matrices. This plugin has been created to avoid a circular dependency. So it doesn't contain all the code required for matrices. There is code for them in others Papyrus NatTable plugin.
+*'''org.eclipse.papyrus.uml.nattable.properties''': this plugin provides a dedicated properties view for the UML Matrix of Relationship.
+
+==Expressions==
+Developing the matrices, we need to provide a way for the user to filter the contents provided by the row sources and the columns sources in order to display only the interesting axis. From this requirement, we created, in the same time, the Expressions framework. This one provides boolean expressions to evaluate the objects of the model and decide if it must be displayed or not in the table. To go further, please read the Expressions Documentation.
+
+=How to create a preconfigured matrix of relationship?=
+The following explanations supposed you already know a bit how works viewpoint, architecture framework and table.
+Here, we will explain you how to create a matrix dedicated to a given relationship starting from the configuration of the '''UMLGenericMatrixOfRelationships'''.
+#Create a new plugin
+#Copy the Papyrus file for the '''generic_matrix_of_relationships.nattableconfiguration''' located in the folder '''configs''' of the plugin '''org.eclipse.papyrus.uml.matrix'''.
+#Open the file, select the root object ('''TableConfiguration''') and edit these fields:
+##'''Description''',
+##'''Icon Path''',
+##'''Name''',
+##'''Type'''.
+#Register your new table in a viewpoint (in a new one, or in an existing one).
+##The field '''Implementation ID''' in the viewpoint MUST have the same value than the field '''Type''' in the '''TableConfiguration'''
+##In Papyrus, the '''UMLGenericMatrixOfRelationships''' matrix is registered in the file '''org.eclipse.papyrus.uml.architecture/model/uml.architecture'''.
+#Create a '''GenericRelationshipMatrixCellEditorConfiguration''' as child of the '''TableConfiguration''' and edit it:
+##'''Cell Content Filter''' (not mandatory): a '''BooleanEObjectExpression''' used as filter to select precisely the relationship to display in the cells of the table,
+##'''Cell Editor Id''': an id for your cell editor (not yet used in the current implementation),
+##'''Direction''': define the orientation of the relationship displayed in the cells of the table,
+##'''Edited Element''': an element type representing the relationship edited in your table.
+##*the final matrix will work only if a cell editor managing the chosen element type exists
+#Define the feature to listen (same behavior than TreeTable)
+##Edit the '''TreeFillingConfiguration''' for rows and columns
+##define the feature to listen (wrapped in a IAxis)
+##define the filter to apply (not mandatory) on the elements referenced by the feature. Only the matching elements will be displayed as rows or as columns.
+#Register the nattableconfiguration file in the '''plugin.xml''' with the extension point '''org.eclipse.papyrus.infra.nattable.configuration'''.
+
+=How to manage a new kind of relationship in the matrix?=
+#Create a new class implementing <code>org.eclipse.papyrus.infra.nattable.manager.cell.IGenericMatrixRelationshipCellManager</code>
+##We advice you to extends <code>org.eclipse.papyrus.uml.nattable.matrix.cell.managers.AbstractUMLGenericMatrixRelationshipCellManager</code>
+###In this case, check if the '''EClass''' representing your relationship is already managed by '''org.eclipse.papyrus.uml.tools.helper.UMLRelationshipHelper'''
+####If yes, it will work fine
+####If not, complete the previous class (if you are a Papyrus developer), or extend it and implements <code>org.eclipse.papyrus.uml.nattable.matrix.cell.managers.AbstractUMLGenericMatrixRelationshipCellManager.getOrCreateUMLRelationshipHelper()</code> in your CellManager.
+#Register it using the extension point '''org.eclipse.papyrus.infra.nattable.celleditor.configuration''', using the property '''cellAxisConfiguration'''
+
+
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/matrixUserDoc.mediawiki b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/matrixUserDoc.mediawiki
new file mode 100755
index 00000000000..83dfd6e3824
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/matrixUserDoc.mediawiki
@@ -0,0 +1,66 @@
+=Introduction=
+Since Papyrus 3.0 (Eclipse Oxygen), Papyrus provides a generic matrix for UML Relationships. This matrix allows to represent a relation between a row element and a column element by a checkbox. This matrix allows to display, create and remove relationship between the elements of your model.
+
+=Starting with the UML Relationship Generic Matrix=
+Some illustration are available after the description of the steps.
+#select a Package in the '''Model Explorer View''', then '''Right Click'''->'''New Table'''->'''Relationship Generic Matrix''',
+#a new table is now created, but empty. '''Click''' inside the empty table, then go into the '''Property View''', then select the '''Matrix Tab''',
+#define the rows for your table: in the '''Rows''' group,
+##fill the field '''Sources'''. This field defines the element owning the rows you want to display in the table,
+##if required, fill the fields '''Filter'''. When these fields are set, only the elements owned by the selected sources and matching your filter will be displayed as rows.
+#define the columns for your table: this is the same process than for rows, but in the '''Columns''' group
+#define the relationship edition, in the '''Cell Contents''' group:
+##fill the field '''Relation Kind''' to select the kind of relationship managed by the table,
+##fill the field '''Direction''' to define the direction of the relationship managed by the table,
+##if required, fill the field '''Contents Filter''', to be more precise in the displayed relationship.
+#Now, if it is not already done, you can expand the rows of your table: '''Right CLick''' on the row header, then '''Expand All'''.
+
+
+*the creation of the matrix
+[[File:images/matrix/MatrixRelationshipCreation.png|frame|none|Creation of the Generic Matrix of Relationship]]
+
+*the matrix just after the creation
+[[File:images/matrix/MatrixJustAfterCreation.png|frame|none|The matrix just after its creation. It is empty!]]
+
+*the matrix property view used to configure the new matrix
+[[File:images/matrix/ThePropertyViewForMatrix.png|frame|none|The Matrix property view, with the described order for its configuration.]]
+
+*the result for a small model
+[[File:images/matrix/MatrixResult.png|frame|none|The resulting matrix, for a small model, with its configuration displayed in the Property View]]
+
+==Cell Edition in the matrices==
+When the cell display one of the following message (see previous snapshot for illustration), the cell is ''read-only'', so you can't create or destroy the existing relationship throw the matrix.
+*'''>1 link''': means that there are at least 2 matching relationships between the row element and the column element.
+*'''>2 ends''': means that the relationship represented by the cells has more than one source or more than one target. We are able to display it, but we are not able to edit it throw the matrix.
+
+==General informations about the matrices==
+Maybe you already well known the table features in Papyrus. The matrices framework uses the same architecture than tree tables, but with some restrictions:
+*the rows and columns can't be inverted,
+*the rows and columns are calculated at runtime, so the appearance changes done by the user are not saved (order of the axis, height/width, expanded/collapsed, ...):
+*paste and import features are not supported in the matrices.
+*you can't drag and drop an element from the '''Model Explorer View''' to use it as row or as column in the table (matrix is synchronized on your model).
+
+==Matrices and depth==
+The predefined matrices provided by Papyrus are configured to show the elements directly owned by the selected '''sources''':
+*for the columns, you can't change this behavior (we are not able to show several level for columns),
+*for the rows, you can configure the feature to listen and the filter to apply for all depths as for the Tree Table, with the same dialog. To get it, '''Right-Click''' inside the table, then '''Configure Categories and Paste'''. In the open dialog, you can select the feature to listen, and add depth. For a Matrix, the depth, must start to '''1''' (the 0 depth is provided by the sources field in the '''Property View''').
+
+
+=FAQ=
+===The cells are empty===
+If all the cells of your table are empty, you can check these points:
+*Do you have define the kind of relationship to edit?
+*Are you sure the selected relationship can be created between the selected elements?
+
+===An element matching the filters is not displayed as row/column in the matrix===
+If you use filters checking a specific property of the UML element (like <code>Class#isAbstract()</code> for example) or checking a stereotype application, the table axis (rows/columns) won't be updated after this kind of changes on UML elements. The solution is to '''close''' and '''reopen''' the table or doing the action '''Reload Table Editor''' available in the contextual menu.
+
+===I don't found the relationship I need in the '''Relation Kind''' dialog===
+On the next snapshot, we show how to get the dialog from the Matrix Property View.
+
+[[File:images/matrix/RelationKindDialog.png|frame|none|The Relation Kind dialog]]
+
+
+*the Papyrus 3.0 (Eclipse Oxygen) only supports '''Abstraction''' and '''Dependency''' and their stereotyped versions (with SysML for example: '''Allocate''', '''Refine''', '''Verify''', '''Safisfy'''). The other relationship should be provided with the SR1
+*the SysML relationships (or relationship from an other profile) are not displayed in the '''Relation Kind''' dialog.
+**Even if the SysML Profile (or another one) is applied on your model, if your are not in the good '''Architecture Context''', you won't be able to edit this kind of relationship. To change the '''Architecture Context''', from the '''Model Explorer View''', do '''Right-Click->Switch Architecture Context'''.
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/nattable-devDoc-main-toc.xml b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/nattable-devDoc-main-toc.xml
index 04a7a3ceed7..ecce6c3b6b9 100644
--- a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/nattable-devDoc-main-toc.xml
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/nattable-devDoc-main-toc.xml
@@ -9,5 +9,9 @@
<link toc="target/site/generated-eclipse-help/tableDevDoc-toc.xml"/>
<anchor id="tableDevDoc"/>
</topic>
+ <topic label="Matrix of Relationship">
+ <link toc="target/site/generated-eclipse-help/matrixDevDoc-toc.xml"/>
+ <anchor id="matrixDevDoc"/>
+ </topic>
</topic>
</toc>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/nattable-userDoc-main-toc.xml b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/nattable-userDoc-main-toc.xml
index e3755c9a447..ed45a9ef1e6 100644
--- a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/nattable-userDoc-main-toc.xml
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/nattable-userDoc-main-toc.xml
@@ -1,7 +1,16 @@
<?xml version='1.0' encoding='utf-8' ?>
<toc label="Using tables" link_to="../org.eclipse.papyrus.infra.doc/toc.xml#PapyrusDocCustom">
- <topic label="Using tables" >
- <link toc="target/site/generated-eclipse-help/tableUserDoc-toc.xml"/>
- <anchor id="tableUserDoc"/>
- </topic>
+ <topic label="Using tables" >
+ <topic label="General">
+ <link toc="target/site/generated-eclipse-help/tableUserDoc-toc.xml"/>
+ <anchor id="tableUserDoc"/>
+ </topic>
+
+ <topic label="Matrix of Relationships">
+ <link toc="target/site/generated-eclipse-help/matrixUserDoc-toc.xml"/>
+ <anchor id="matrixOfRelationshipsUserDoc"/>
+ </topic>
+
+ </topic>
+
</toc>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/tableDevDoc.mediawiki b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/tableDevDoc.mediawiki
index edc3e92abaf..5943bb18768 100644
--- a/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/tableDevDoc.mediawiki
+++ b/plugins/doc/org.eclipse.papyrus.infra.nattable.doc/src/site/mediawiki/tableDevDoc.mediawiki
@@ -2362,8 +2362,20 @@ The Papyrus tabular editor should allow to the developper to create matrix, we d
# others things to do?
# to conclude, don't forget to implements required methods to allow (or forbid) all features already supported by the table framework. The list of the supported feature is available [[Table_Documentation#Table_Features|here]].
-=Which is the difference between TableHeader... and LocalHeader...=
-//TODO
+=Which is the difference between TableHeaderAxisConfiguration and LocalTableHeaderAxisConfiguration=
+*'''TableHeaderAxisConfiguration''':
+**this object is a child of the '''TableConfiguration'''
+**it allows to define the initial configuration of the table for the rows and the columns.
+***display filter
+***display index
+***index style
+**it provides the configuration to use to get the axis displayed as rows or as columns with the field '''ownedAxisConfigurations'''.
+**it provides the configuration used by the label provider to display the label of the axis in the header, with the field '''ownedLabelConfigurations'''
+*'''LocalTableHeaderAxisConfiguration''':
+**This object looks like the previous one, but it is used in the '''Table'''. It is its equivalent at 'runtime'.
+**It is an override of the '''TableHeaderAxisConfiguration''' defined in the '''TableConfiguration'''
+
+
=Table embedded in the Property View=
The classes managing the NatTable widget in the property view are:
@@ -2379,33 +2391,3 @@ These tables have some custom behaviors:
-=Enhancements to plan for a next table version=
-*allow to a user/developper to add a new AxisManager to an existing table. Currently it is not possible, because the java AxisManager are represented in the nattableconfiguration file by an AxisManagerRepresentation. This one provides several configuration to the AxisManager, like LabelProvider to use
-
-*remove the paste with detached mode
-*store all axis for synchronized table too or provide an easy way for the user to define if the contents must be stored or not
-**all tables must be able to be stored
-**some user actions could required a full storage of the table
-**wrap all rows/columns in IAxis
-*nattableConfiguration should be a table
-*store all customization information in the table just after its creation. Currently, when a table is created, we continue to look for these information in the tableconfiguration until the user modifies the default configuration
-*add supports for queries in table, queries could be used for several features in the table:
-*#specific columns
-*#specific categories
-*#could be used in the JavaTester class (allow to know if the table can be created on not for a given context)
-*#used as configuration for AxisManager to filter the elements
-*#used as configuration for AxisManager to get the element to display (like cateegories)
-*#the possible queries would be ocl queries, java queries, others ? We could start this feature integrating Papyrus Facet which already provides OCL and java queries.
-*hierarchical rows for all tables
-*hierarchical columns too (need to develop our own layer!
-*filter on rows to filter column (specific layer too)
-*invert layer (already exist in NatTable, but static and not dynamic (need a boolean)
-*feature "Rows Connect/Disconnect Columns Axis" must be reimplemented. Currently, this feature is linked to the composte Axis Manager, we should move it to each sub-axis manager. Moreover, this property must be a part of the Table metamodel.
-**an other possibility, all axis should be notified when one of the axis (opposite or same side) add/remove/move/... elements and must be able to chain a command if required.
-**this possibility is not incompatible with the connect/disconnect feature
-**master and slave should be a removed concept with this kind of solution
-*property master/slave of the axis must be a property of the metamodel and not a java implementation
-*property table about cell editor declaration must be improved. If we use "Cell" instead of "Column", we lose the possibility to add columns and declaring cell editor by columns for them. Maybe this property should be managed by the axis manager and not by the table.
-*cell configruation, axis manager, filter, ... and so on, shoudl be represented as EMF object in separate file, in order to be easily referenced by table. It will be more efficient than using String as id to identify them. Moreover dependency problem will be the same. We will get unresolved proxy instead of contribution to extension point unknown.
-*table must allow to use as TreeContentProvider the tree of the ModelExplorer, in order to be able to get the same hierarchy provided by Facet (+ custom ???)
-*table framework should allow to load axis/cell/labelprovider/celleditors... in the user workspace without launch a runtime

Back to the top