Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvlorenzo2011-05-13 05:11:06 -0400
committervlorenzo2011-05-13 05:11:06 -0400
commitf562c479206136c9f92940d4d9c3100319acea98 (patch)
treed67399c06d804a0bd8ad80aee9b64dbb303d4ba8 /plugins/sysml
parentafb90c78c533c611d4505518189b83dee50acccf (diff)
downloadorg.eclipse.papyrus-f562c479206136c9f92940d4d9c3100319acea98.tar.gz
org.eclipse.papyrus-f562c479206136c9f92940d4d9c3100319acea98.tar.xz
org.eclipse.papyrus-f562c479206136c9f92940d4d9c3100319acea98.zip
NEW - bug 345698: Add Table Plugins to releng
https://bugs.eclipse.org/bugs/show_bug.cgi?id=345698 NEW - bug 334240: [Enhancement] [TableEditor] Papyrus shall support Tabular Editors https://bugs.eclipse.org/bugs/show_bug.cgi?id=334240
Diffstat (limited to 'plugins/sysml')
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/.classpath7
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/.project34
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/META-INF/MANIFEST.MF21
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/about.html28
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/build.properties11
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/plugin.properties3
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/plugin.xml11
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/requirementsFacets.facetSet49
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/requirementsQueries.querySet52
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/Activator.java45
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementBase_ClassQuery.java34
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementDerivedFromQuery.java36
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementDerivedQuery.java36
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementIdQuery.java39
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementMasterQuery.java34
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementRefinedByQuery.java37
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementSatifiedByQuery.java37
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementTextQuery.java39
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementTracedToQuery.java39
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementVerifiedByQuery.java38
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementIdQuery.java91
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementTextQuery.java78
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/.classpath7
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/.project34
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/META-INF/MANIFEST.MF25
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/about.html28
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/build.properties12
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/icons/allocation_table.pngbin0 -> 555 bytes
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/plugin.properties3
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/plugin.xml67
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/allocate.querySet18
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/allocate.tableconfiguration12
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/table_SysML_Allocation_showOnlyClientAndSupplier.uiCustom90
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/Activator.java45
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/CreateAllocationTableCommand.java86
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/CreateAllocationTableFactory.java36
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/editor/AllocationTableEditor.java43
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/CreateAbstractionQuery.java68
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/CreateAllocateQuery.java69
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/IsAllocateQuery.java45
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/tester/AllocationPropertyTester.java62
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/.classpath7
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/.project29
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/META-INF/MANIFEST.MF26
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/about.html28
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/build.properties12
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/icons/table_requirement.pngbin0 -> 461 bytes
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/plugin.properties3
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/plugin.xml68
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/requirements.tableconfiguration10
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/requirementsTable.querySet13
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/table_UML_Class_hideAllClassFeatures.uiCustom282
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/Activator.java48
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/CreateRequirementTableCommand.java99
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/CreateRequirementTableFactory.java29
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/editor/RequirementTableEditor.java45
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/queries/CreateRequirement.java69
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/queries/IsRequirement.java51
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/tester/RequirementPropertyTester.java56
59 files changed, 2424 insertions, 0 deletions
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/.classpath b/plugins/sysml/org.eclipse.papyrus.sysml.facets/.classpath
new file mode 100644
index 00000000000..45f024e850e
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/.project b/plugins/sysml/org.eclipse.papyrus.sysml.facets/.project
new file mode 100644
index 00000000000..f7d6054b667
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.sysml.facets</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.emf.facet.common.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.emf.facet.common.ProjectNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/META-INF/MANIFEST.MF b/plugins/sysml/org.eclipse.papyrus.sysml.facets/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..3eb9613ec6f
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.facet.infra.common.core,
+ org.eclipse.emf.facet.infra.query.core,
+ org.eclipse.emf.ecore,
+ org.eclipse.uml2.uml,
+ org.eclipse.papyrus.sysml;bundle-version="0.8.0",
+ org.eclipse.emf.edit,
+ org.eclipse.emf.transaction,
+ org.eclipse.uml2.common.edit
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .,bin
+Bundle-Version: 0.8.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.sysml.facets.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.sysml.facets;singleton:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/about.html b/plugins/sysml/org.eclipse.papyrus.sysml.facets/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/build.properties b/plugins/sysml/org.eclipse.papyrus.sysml.facets/build.properties
new file mode 100644
index 00000000000..af947bfb91e
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/build.properties
@@ -0,0 +1,11 @@
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ resources/,\
+ about.html,\
+ plugin.properties
+source.. = src/
+src.includes = resources/,\
+ META-INF/,\
+ about.html
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/plugin.properties b/plugins/sysml/org.eclipse.papyrus.sysml.facets/plugin.properties
new file mode 100644
index 00000000000..f0cf24e236a
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.papyrus.sysml.facets
+providerName = Eclipse Modeling Project
+pluginName = EMF Facets for Papyrus SysML \ No newline at end of file
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/plugin.xml b/plugins/sysml/org.eclipse.papyrus.sysml.facets/plugin.xml
new file mode 100644
index 00000000000..db4988ec55b
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+
+<plugin>
+ <extension point="org.eclipse.emf.facet.infra.facet.registration">
+ <facetset file="resources/requirementsFacets.facetSet"/>
+ </extension>
+ <extension point="org.eclipse.emf.facet.infra.query.registration">
+ <modelqueryset file="resources/requirementsQueries.querySet"/>
+ </extension>
+</plugin>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/requirementsFacets.facetSet b/plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/requirementsFacets.facetSet
new file mode 100644
index 00000000000..a3095424567
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/requirementsFacets.facetSet
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="ASCII"?>
+<facet:FacetSet 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:facet="http://www.eclipse.org/EmfFacet/infra/facet/0.8.incubation" xmlns:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" name="requirementsFacets" nsURI="http://www.eclipse.org/papyrus/sysml/requirements/SysMLRequirementsFacetSet.facetSet" nsPrefix="SysMLRequirementsFacetSet">
+ <eClassifiers xsi:type="facet:Facet" name="Requirement" abstract="true">
+ <eSuperTypes href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ <eStructuralFeatures xsi:type="facet:FacetAttribute" name="text" lowerBound="1" volatile="true" unsettable="true">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <valueQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#GetRequirementTextQuery"/>
+ <setQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#SetRequirementTextQuery"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="facet:FacetAttribute" name="id" lowerBound="1" volatile="true" unsettable="true">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <valueQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#GetRequirementIdQuery"/>
+ <setQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#SetRequirementIdQuery"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="facet:FacetReference" name="/derived" upperBound="-1" volatile="true" unsettable="true">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ <valueQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#GetRequirementDerivedQuery"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="facet:FacetReference" name="/derivedFrom" upperBound="-1" volatile="true" unsettable="true">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ <valueQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#GetRequirementDerivedFromQuery"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="facet:FacetReference" name="/satisfiedBy" upperBound="-1" volatile="true" unsettable="true">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//NamedElement"/>
+ <valueQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#GetRequirementSatisfiedByQuery"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="facet:FacetReference" name="/refinedBy" upperBound="-1" volatile="true" unsettable="true">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//NamedElement"/>
+ <valueQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#GetRequirementRefinedByQuery"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="facet:FacetReference" name="/tracedTo" upperBound="-1" volatile="true" unsettable="true">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//NamedElement"/>
+ <valueQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#GetRequirementTracedToQuery"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="facet:FacetReference" name="/verifiedBy" upperBound="-1" volatile="true" unsettable="true">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ <valueQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#GetRequirementVerifiedByQuery"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="facet:FacetReference" name="/master" volatile="true" unsettable="true">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ <valueQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#GetRequirementMasterQuery"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="facet:FacetReference" name="base_Class" lowerBound="1" volatile="true" unsettable="true">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ <valueQuery xsi:type="query:JavaModelQuery" href="requirementsQueries.querySet#GetRequirementBase_ClassQuery"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <extendedPackage href="http://www.eclipse.org/uml2/3.0.0/UML#/"/>
+</facet:FacetSet>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/requirementsQueries.querySet b/plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/requirementsQueries.querySet
new file mode 100644
index 00000000000..7b9454118ca
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/resources/requirementsQueries.querySet
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ASCII"?>
+<query:ModelQuerySet 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:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" name="requirementsQueries" description="These queries are used to manage the requirements">
+ <associatedMetamodels href="http://www.eclipse.org/uml2/3.0.0/UML#/"/>
+ <queries xsi:type="query:JavaModelQuery" name="GetRequirementIdQuery" description="Query to get the attribute &quot;id&quot; of the requirement" lowerBound="1" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.getter.GetRequirementIdQuery">
+ <returnType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="GetRequirementTextQuery" description="Query to get the attribute &quot;text&quot; of the requirement" lowerBound="1" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.getter.GetRequirementTextQuery">
+ <returnType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="GetRequirementDerivedQuery" description="Query to get the reference &quot;derived&quot; of the requirement" upperBound="-1" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.getter.GetRequirementDerivedQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="GetRequirementDerivedFromQuery" description="Query to get the reference &quot;derivedBy&quot; of the requirement" upperBound="-1" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.getter.GetRequirementDerivedFromQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="GetRequirementSatisfiedByQuery" description="Query to get the reference &quot;satisfiedBy&quot; of the requirement" upperBound="-1" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.getter.GetRequirementSatifiedByQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//NamedElement"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="GetRequirementRefinedByQuery" description="Query to get the reference &quot;redefinedBy&quot; of the requirement" upperBound="-1" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.getter.GetRequirementRefinedByQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//NamedElement"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="GetRequirementTracedToQuery" description="Query to get the reference &quot;tracedTo&quot; of the requirement" upperBound="-1" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.getter.GetRequirementTracedToQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//NamedElement"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="GetRequirementVerifiedByQuery" description="Query to get the reference &quot;verified by&quot; of the requirement" upperBound="-1" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.getter.GetRequirementVerifiedByQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="GetRequirementMasterQuery" description="Query to get the field reference &quot;master&quot; of the requirement" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.getter.GetRequirementMasterQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="GetRequirementBase_ClassQuery" description="Query to get the reference &quot;base_class&quot; of the requirement" lowerBound="1" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.getter.GetRequirementBase_ClassQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="SetRequirementIdQuery" description="Query to set the attribute &quot;id&quot; of the requirement" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.setter.SetRequirementIdQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="SetRequirementTextQuery" description="Query to set the attribute &quot;text&quot; of the requirement" implementationClassName="org.eclipse.papyrus.sysml.facets.query.value.setter.SetRequirementTextQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+</query:ModelQuerySet>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/Activator.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/Activator.java
new file mode 100644
index 00000000000..d285eeebf1d
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/Activator.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software)
+ *******************************************************************************/
+package org.eclipse.papyrus.sysml.facets;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/** The activator class controls the plug-in life cycle */
+public class Activator extends Plugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.emf.facet.sysml"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ @Override
+ public void start(final BundleContext context) throws Exception {
+ super.start(context);
+ Activator.plugin = this;
+ }
+
+ @Override
+ public void stop(final BundleContext context) throws Exception {
+ Activator.plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return Activator.plugin;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementBase_ClassQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementBase_ClassQuery.java
new file mode 100644
index 00000000000..baf9708a897
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementBase_ClassQuery.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.getter;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to get the text of the requirement */
+public class GetRequirementBase_ClassQuery implements IJavaModelQuery<Class, Class> {
+
+ public Class evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ Object value = context.getValue(ste, SysmlResource.REQUIREMENT_BASE_CLASS_ID);
+ return (Class)value;
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementDerivedFromQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementDerivedFromQuery.java
new file mode 100644
index 00000000000..dd02fa168ad
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementDerivedFromQuery.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.getter;
+
+import java.util.Collection;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to get the text of the requirement */
+public class GetRequirementDerivedFromQuery implements IJavaModelQuery<Class, Collection<Class>> {
+
+ public Collection<Class> evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ Object value = context.getValue(ste, SysmlResource.REQUIREMENT_DERIVED_FROM_ID);
+ return (Collection<Class>)value;
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementDerivedQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementDerivedQuery.java
new file mode 100644
index 00000000000..0ad4a44d827
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementDerivedQuery.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.getter;
+
+import java.util.Collection;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to get the text of the requirement */
+public class GetRequirementDerivedQuery implements IJavaModelQuery<Class, Collection<Class>> {
+
+ public Collection<Class> evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ Object value = context.getValue(ste, SysmlResource.REQUIREMENT_DERIVED_ID);
+ return (Collection<Class>)value;
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementIdQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementIdQuery.java
new file mode 100644
index 00000000000..971cefde6cb
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementIdQuery.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.getter;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to get the id of the requirement */
+public class GetRequirementIdQuery implements IJavaModelQuery<Class, String> {
+
+ public String evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ Object value = context.getValue(ste, SysmlResource.REQUIREMENT_ID_ID);
+ if(value == null) {
+ return ""; //$NON-NLS-1$
+ }
+ if(value instanceof String) {
+ return (String)value;
+ }
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementMasterQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementMasterQuery.java
new file mode 100644
index 00000000000..827180ac391
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementMasterQuery.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.getter;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to get the text of the requirement */
+public class GetRequirementMasterQuery implements IJavaModelQuery<Class, Class> {
+
+ public Class evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ Object value = context.getValue(ste, SysmlResource.REQUIREMENT_MASTER_ID);
+ return (Class)value;
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementRefinedByQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementRefinedByQuery.java
new file mode 100644
index 00000000000..670ea5b500f
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementRefinedByQuery.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.getter;
+
+import java.util.Collection;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to get the text of the requirement */
+public class GetRequirementRefinedByQuery implements IJavaModelQuery<Class, Collection<NamedElement>> {
+
+ public Collection<NamedElement> evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ Object value = context.getValue(ste, SysmlResource.REQUIREMENT_REFINED_BY_ID);
+ return (Collection<NamedElement>)value;
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementSatifiedByQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementSatifiedByQuery.java
new file mode 100644
index 00000000000..c133e91e97c
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementSatifiedByQuery.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.getter;
+
+import java.util.Collection;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to get the text of the requirement */
+public class GetRequirementSatifiedByQuery implements IJavaModelQuery<Class, Collection<NamedElement>> {
+
+ public Collection<NamedElement> evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ Object value = context.getValue(ste, SysmlResource.REQUIREMENT_SATISFIED_BY_ID);
+ return (Collection<NamedElement>)value;
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementTextQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementTextQuery.java
new file mode 100644
index 00000000000..ffe1142693b
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementTextQuery.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.getter;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to get the text of the requirement */
+public class GetRequirementTextQuery implements IJavaModelQuery<Class, String> {
+
+ public String evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ Object value = context.getValue(ste, SysmlResource.REQUIREMENT_TEXT_ID);
+ if(value == null) {
+ return ""; //$NON-NLS-1$
+ }
+ if(value instanceof String) {
+ return (String)value;
+ }
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementTracedToQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementTracedToQuery.java
new file mode 100644
index 00000000000..f3d0d02835c
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementTracedToQuery.java
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.getter;
+
+import java.util.Collection;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Stereotype;
+
+/**
+ * Query to get the text of the requirement
+ */
+public class GetRequirementTracedToQuery implements IJavaModelQuery<Class, Collection<NamedElement>> {
+
+ public Collection<NamedElement> evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ Object value = context.getValue(ste, SysmlResource.REQUIREMENT_TRACED_TO_ID);
+ return (Collection<NamedElement>)value;
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementVerifiedByQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementVerifiedByQuery.java
new file mode 100644
index 00000000000..702a6c73eb3
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/getter/GetRequirementVerifiedByQuery.java
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.getter;
+
+import java.util.Collection;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to get the text of the requirement */
+
+public class GetRequirementVerifiedByQuery implements IJavaModelQuery<Class, Collection<Operation>> {
+
+ public Collection<Operation> evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ Object value = context.getValue(ste, SysmlResource.REQUIREMENT_VERIFIED_BY_ID);
+ return (Collection<Operation>)value;
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementIdQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementIdQuery.java
new file mode 100644
index 00000000000..a60705e49e3
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementIdQuery.java
@@ -0,0 +1,91 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.setter;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQueryWithEditingDomain;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.emf.facet.infra.query.runtime.ModelQueryParameterValue;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to set the attribute "id" of the requirement */
+public class SetRequirementIdQuery implements IJavaModelQueryWithEditingDomain<Class, EObject> {
+
+ /**
+ *
+ * @see org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery#evaluate(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.facet.infra.query.core.java.ParameterValueList)
+ *
+ * @param context
+ * @param parameterValues
+ * @return
+ * @throws ModelQueryExecutionException
+ */
+ public EObject evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ *
+ * @see org.eclipse.emf.facet.infra.query.core.java.IJavaModelQueryWithEditingDomain#evaluate(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.facet.infra.query.core.java.ParameterValueList, org.eclipse.emf.edit.domain.EditingDomain)
+ *
+ * @param arg0
+ * @param parameter
+ * @param arg2
+ * @return
+ * @throws ModelQueryExecutionException
+ */
+ public EObject evaluate(final Class context, final ParameterValueList parameter, final EditingDomain editingDomain) throws ModelQueryExecutionException {
+ final Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null) {
+ if(parameter.size() != 0) {
+ final ModelQueryParameterValue newValue = parameter.get(0);
+ if(newValue != null && newValue.getValue() instanceof String) {
+ Command command = null;
+ TransactionalEditingDomain domain = null;
+ if(!(editingDomain instanceof TransactionalEditingDomain)) {
+ //if we work with a uml file, it is possible to get a UML2AdapterFactoryEditingDomain instead of TransactionEditingDomain
+ domain = TransactionUtil.getEditingDomain(context);
+ } else {
+ domain = (TransactionalEditingDomain)editingDomain;
+ }
+ if(domain != null) {
+ command = new RecordingCommand(domain) {
+
+ @Override
+ protected void doExecute() {
+ context.setValue(ste, SysmlResource.REQUIREMENT_ID_ID, newValue.getValue());
+ }
+ };
+ }
+ if(command != null && command.canExecute()) {
+ domain.getCommandStack().execute(command);
+ }
+ }
+ }
+ }
+ return context;
+ }
+
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementTextQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementTextQuery.java
new file mode 100644
index 00000000000..cc0683a3a89
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.facets/src/org/eclipse/papyrus/sysml/facets/query/value/setter/SetRequirementTextQuery.java
@@ -0,0 +1,78 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.facets.query.value.setter;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQueryWithEditingDomain;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.emf.facet.infra.query.runtime.ModelQueryParameterValue;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Query to set the attribute "text" of the requirement */
+public class SetRequirementTextQuery implements IJavaModelQueryWithEditingDomain<Class, EObject> {
+
+ /**
+ *
+ * @see org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery#evaluate(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.facet.infra.query.core.java.ParameterValueList)
+ *
+ * @param context
+ * @param parameterValues
+ * @return
+ * @throws ModelQueryExecutionException
+ */
+ public EObject evaluate(final Class context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ *
+ * @see org.eclipse.emf.facet.infra.query.core.java.IJavaModelQueryWithEditingDomain#evaluate(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.facet.infra.query.core.java.ParameterValueList, org.eclipse.emf.edit.domain.EditingDomain)
+ *
+ * @param context
+ * @param parameter
+ * @param editingDomain
+ * @return
+ * @throws ModelQueryExecutionException
+ */
+ public EObject evaluate(final Class context, final ParameterValueList parameter, final EditingDomain editingDomain) throws ModelQueryExecutionException {
+ final Stereotype ste = context.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ if(ste != null && editingDomain instanceof TransactionalEditingDomain) {
+ if(parameter.size() != 0) {
+ final ModelQueryParameterValue newValue = parameter.get(0);
+ if(newValue != null && newValue.getValue() instanceof String) {
+ RecordingCommand command = new RecordingCommand((TransactionalEditingDomain)editingDomain) {
+
+ @Override
+ protected void doExecute() {
+ context.setValue(ste, SysmlResource.REQUIREMENT_TEXT_ID, newValue.getValue());
+ }
+ };
+ if(command.canExecute()) {
+ editingDomain.getCommandStack().execute(command);
+ }
+ }
+ }
+ }
+ return context;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/.classpath b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/.classpath
new file mode 100644
index 00000000000..45f024e850e
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/.project b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/.project
new file mode 100644
index 00000000000..8415b6fa7a1
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.sysml.table.allocation</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.emf.facet.common.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.emf.facet.common.ProjectNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/META-INF/MANIFEST.MF b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..eca96784d8f
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.emf.facet.infra.common.core,
+ org.eclipse.emf.facet.infra.query.core,
+ org.eclipse.papyrus.service.edit;bundle-version="0.8.0",
+ org.eclipse.papyrus.sysml.service.types;bundle-version="0.8.0",
+ org.eclipse.papyrus.diagram.common;bundle-version="0.8.0",
+ org.eclipse.papyrus.table.common,
+ org.eclipse.core.expressions,
+ org.eclipse.papyrus.table.instance;bundle-version="0.8.0",
+ org.eclipse.emf.facet.widgets.nattable;bundle-version="0.1.0",
+ org.eclipse.emf.facet.widgets.nattable.tableconfiguration;bundle-version="0.1.0",
+ org.eclipse.emf.facet.widgets.nattable.instance;bundle-version="0.1.0",
+ org.eclipse.papyrus.sysml
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .,bin
+Bundle-Version: 0.8.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.sysml.table.allocation.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.sysml.table.allocation;single
+ ton:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/about.html b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/build.properties b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/build.properties
new file mode 100644
index 00000000000..1ddc2f6b354
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/build.properties
@@ -0,0 +1,12 @@
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ resources/,\
+ plugin.xml,\
+ icons/,\
+ about.html
+source.. = src/
+src.includes = about.html,\
+ resources/,\
+ icons/
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/icons/allocation_table.png b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/icons/allocation_table.png
new file mode 100644
index 00000000000..2188991260e
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/icons/allocation_table.png
Binary files differ
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/plugin.properties b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/plugin.properties
new file mode 100644
index 00000000000..842ff06fe4c
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.papyrus.sysml.table.allocation
+providerName = Eclipse Modeling Project
+pluginName = Papyrus Table Editor For Allocation \ No newline at end of file
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/plugin.xml b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/plugin.xml
new file mode 100644
index 00000000000..8970b328ab4
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/plugin.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse version="3.4"?>
+
+<plugin>
+ <extension point="org.eclipse.papyrus.core.papyrusDiagram">
+ <editorDiagram factoryClass="org.eclipse.papyrus.sysml.table.allocation.CreateAllocationTableFactory" icon="icons/allocation_table.png">
+ </editorDiagram>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution allPopups="false" locationURI="toolbar:org.eclipse.papyrus.table.ui.toolbar">
+ <command commandId="org.eclipse.papyrus.sysml.table.allocation.create.table.command" icon="icons/allocation_table.png" id="org.eclipse.papyrus.table.ui.toolbar.allocation.table" style="push" tooltip="Create a new SysML Allocation table">
+ <visibleWhen>
+ <with variable="activeEditorId">
+ <equals value="org.eclipse.papyrus.core.papyrusEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution allPopups="false" locationURI="popup:org.eclipse.papyrus.modelexplorer.popupmenu.createtable">
+ <command commandId="org.eclipse.papyrus.sysml.table.allocation.create.table.command" icon="icons/allocation_table.png" id="org.eclipse.papyrus.modelexplorer.popupmenu.createtable.allocation.table" style="push" tooltip="Create a new SysML Allocation table">
+ <visibleWhen>
+ <with variable="activeEditorId">
+ <equals value="org.eclipse.papyrus.core.papyrusEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution allPopups="false" locationURI="menu:org.eclipse.papyrus.table.ui.menu.tables">
+ <command commandId="org.eclipse.papyrus.sysml.table.allocation.create.table.command" icon="icons/allocation_table.png" id="org.eclipse.papyrus.table.ui.menu.tables.allocation.table" style="push" tooltip="Create a new SysML Allocation table">
+ <visibleWhen>
+ <with variable="activeEditorId">
+ <equals value="org.eclipse.papyrus.core.papyrusEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.commands">
+ <command categoryId="org.eclipse.papyrus.editor.category" description="Create a new SysML Allocation table" id="org.eclipse.papyrus.sysml.table.allocation.create.table.command" name="SysML &amp;Allocation Table">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler class="org.eclipse.papyrus.sysml.table.allocation.CreateAllocationTableCommand" commandId="org.eclipse.papyrus.sysml.table.allocation.create.table.command">
+ <activeWhen>
+ <and>
+ <with variable="selection">
+ <test forcePluginActivation="true" property="org.eclipse.papyrus.sysml.table.allocation.tester.isAppliedAllocations" value="true">
+ </test>
+ </with>
+ </and>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.emf.facet.infra.query.registration">
+ <modelqueryset file="resources/allocate.querySet"/>
+ </extension>
+ <extension point="org.eclipse.core.expressions.propertyTesters">
+ <propertyTester class="org.eclipse.papyrus.sysml.table.allocation.tester.AllocationPropertyTester" id="org.eclipse.papyrus.sysml.table.allocation.tester" namespace="org.eclipse.papyrus.sysml.table.allocation.tester" properties="isAppliedAllocations" type="org.eclipse.jface.viewers.IStructuredSelection">
+ </propertyTester>
+ </extension>
+ <extension point="org.eclipse.emf.facet.infra.browser.custom.core.registration">
+ <browserCustomization file="resources/table_SysML_Allocation_showOnlyClientAndSupplier.uiCustom"/>
+ </extension>
+</plugin>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/allocate.querySet b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/allocate.querySet
new file mode 100644
index 00000000000..bb53c6cba0a
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/allocate.querySet
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="ASCII"?>
+<query:ModelQuerySet 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:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" name="allocate" description="Query Set for Allocation">
+ <associatedMetamodels href="http://www.eclipse.org/uml2/3.0.0/UML#/"/>
+ <associatedMetamodels href="http://www.eclipse.org/papyrus/0.7.0/SysML#/"/>
+ <associatedMetamodels href="http://www.eclipse.org/EmfFacet/infra/browser/custom/0.8#/"/>
+ <queries xsi:type="query:JavaModelQuery" name="IsAllocateQuery" description="Test is the element is an Allocate" implementationClassName="org.eclipse.papyrus.sysml.table.allocation.queries.IsAllocateQuery">
+ <returnType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Element"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="CreateAbstractionQuery" description="Create a new Abstraction" lowerBound="1" implementationClassName="org.eclipse.papyrus.sysml.table.allocation.queries.CreateAbstractionQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Abstraction"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="CreateAllocateQuery" description="Create a new Allocation" lowerBound="1" implementationClassName="org.eclipse.papyrus.sysml.table.allocation.queries.CreateAllocateQuery">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Abstraction"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </queries>
+</query:ModelQuerySet>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/allocate.tableconfiguration b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/allocate.tableconfiguration
new file mode 100644
index 00000000000..eec8474c97a
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/allocate.tableconfiguration
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tableconfiguration:TableConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" xmlns:tableconfiguration="http://www.eclipse.org/EMF_Facet/ModelCellEditor/0.1.0/tableconfiguration">
+ <canBePresentedInTheTable xsi:type="query:JavaModelQuery" href="emffacet:/query/allocate#IsAllocateQuery"/>
+ <defaultCustomizations href="emffacet:/customization/table_SysML_Allocation_showOnlyClientAndSupplier#/"/>
+ <defaultCustomizations href="emffacet:/customization/table_Ecore_hideEAnnotationFeature#/"/>
+ <instantiationMethod name="CreateAbstractionQuery" description="Create a new Abstraction">
+ <instantiationQuery xsi:type="query:JavaModelQuery" href="emffacet:/query/allocate#CreateAbstractionQuery"/>
+ </instantiationMethod>
+ <instantiationMethod name="CreateAllocateQuery" description="Create a new Allocate">
+ <instantiationQuery xsi:type="query:JavaModelQuery" href="emffacet:/query/allocate#CreateAllocateQuery"/>
+ </instantiationMethod>
+</tableconfiguration:TableConfiguration>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/table_SysML_Allocation_showOnlyClientAndSupplier.uiCustom b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/table_SysML_Allocation_showOnlyClientAndSupplier.uiCustom
new file mode 100644
index 00000000000..f760181f0e3
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/resources/table_SysML_Allocation_showOnlyClientAndSupplier.uiCustom
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="ASCII"?>
+<uicustom:MetamodelView xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:uicustom="http://www.eclipse.org/EmfFacet/infra/browser/custom/0.8" metamodelURI="http://www.eclipse.org/uml2/3.0.0/UML" allQuerySetsAvailable="false">
+ <types metaclassName="uml.Element">
+ <references referenceName="ownedElement">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="owner">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="ownedComment">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.NamedElement">
+ <attributes attributeName="name">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </attributes>
+ <attributes attributeName="visibility">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </attributes>
+ <attributes attributeName="qualifiedName">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </attributes>
+ <references referenceName="clientDependency">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="namespace">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="nameExpression">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.ParameterableElement">
+ <references referenceName="owningTemplateParameter">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="templateParameter">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.Relationship">
+ <references referenceName="relatedElement">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.DirectedRelationship">
+ <references referenceName="source">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="target">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.Abstraction">
+ <references referenceName="mapping">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+</uicustom:MetamodelView> \ No newline at end of file
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/Activator.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/Activator.java
new file mode 100644
index 00000000000..5f829acfd95
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/Activator.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software)
+ *******************************************************************************/
+package org.eclipse.papyrus.sysml.table.allocation;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/** The activator class controls the plug-in life cycle */
+public class Activator extends Plugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.sysml.table.allocation"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ @Override
+ public void start(final BundleContext context) throws Exception {
+ super.start(context);
+ Activator.plugin = this;
+ }
+
+ @Override
+ public void stop(final BundleContext context) throws Exception {
+ Activator.plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return Activator.plugin;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/CreateAllocationTableCommand.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/CreateAllocationTableCommand.java
new file mode 100644
index 00000000000..7aebcb536bc
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/CreateAllocationTableCommand.java
@@ -0,0 +1,86 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.allocation;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.facet.widgets.nattable.tableconfiguration.TableConfiguration;
+import org.eclipse.papyrus.sysml.table.allocation.editor.AllocationTableEditor;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.papyrus.table.common.handlers.AbstractCreateNattableEditorCommand;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+
+
+
+/**
+ * The command to create the Requirement Table
+ *
+ *
+ *
+ */
+public class CreateAllocationTableCommand extends AbstractCreateNattableEditorCommand {
+
+ /**
+ *
+ * Constructor.
+ *
+ */
+ public CreateAllocationTableCommand() {
+ super(AllocationTableEditor.EDITOR_TYPE, AllocationTableEditor.DEFAULT_NAME);
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.table.common.handlers.AbstractCreateNattableEditorCommand#getTableConfiguration()
+ *
+ * @return
+ */
+ @Override
+ protected TableConfiguration getTableConfiguration() {
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ String symbolicName = Activator.getDefault().getBundle().getSymbolicName();
+ URI uri = URI.createPlatformPluginURI(symbolicName + "/resources/allocate.tableconfiguration", true); //$NON-NLS-1$
+ Resource resource = resourceSet.getResource(uri, true);
+
+ TableConfiguration tableConfiguration = null;
+ if(resource.getContents().get(0) instanceof org.eclipse.emf.facet.widgets.nattable.tableconfiguration.TableConfiguration) {
+ tableConfiguration = (TableConfiguration)resource.getContents().get(0);
+ return tableConfiguration;
+ }
+ return null;
+ }
+ /**
+ *
+ * @see org.eclipse.papyrus.table.common.handlers.AbstractCreateNattableEditorCommand#isEnabled()
+ *
+ * @return
+ */
+ @Override
+ public boolean isEnabled() {
+ EObject object = getTableContext();
+ if(object instanceof Element) {
+ Element el = (Element)object;
+ Package pack = el.getNearestPackage();
+ //we can create an Allocation Table only when the profile is applied
+ return pack.getAppliedProfile(SysmlResource.ALLOCATIONS_ID, true) != null;
+ }
+ return false;
+ }
+
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/CreateAllocationTableFactory.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/CreateAllocationTableFactory.java
new file mode 100644
index 00000000000..60db909131b
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/CreateAllocationTableFactory.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.allocation;
+
+import org.eclipse.papyrus.sysml.table.allocation.editor.AllocationTableEditor;
+import org.eclipse.papyrus.table.common.factory.AbstractNattableEditorFactory;
+
+/**
+ * the factory for the AllocationTable
+ *
+ *
+ *
+ */
+public class CreateAllocationTableFactory extends AbstractNattableEditorFactory {
+
+ /**
+ * Constructor.
+ *
+ * @param diagramClass
+ * @param expectedType
+ */
+ public CreateAllocationTableFactory() {
+ super(AllocationTableEditor.class, AllocationTableEditor.EDITOR_TYPE);
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/editor/AllocationTableEditor.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/editor/AllocationTableEditor.java
new file mode 100644
index 00000000000..6c41d9ad24b
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/editor/AllocationTableEditor.java
@@ -0,0 +1,43 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.allocation.editor;
+
+import org.eclipse.papyrus.core.services.ServicesRegistry;
+import org.eclipse.papyrus.table.common.editor.AbstractNattableEditor;
+import org.eclipse.papyrus.table.instance.papyrustableinstance.PapyrusTableInstance;
+
+
+/**
+ *
+ * The requirement table editor
+ *
+ */
+public class AllocationTableEditor extends AbstractNattableEditor {
+
+
+ /** the type of the editor */
+ public static final String EDITOR_TYPE = "PapyrusAllocationTable"; //$NON-NLS-1$
+
+ public static final String DEFAULT_NAME = "AllocationTable"; //$NON-NLS-1$
+
+ /**
+ * @param servicesRegistry
+ * @param rawModel2
+ *
+ */
+ public AllocationTableEditor(ServicesRegistry servicesRegistry, PapyrusTableInstance rawModel) {
+ super(servicesRegistry, rawModel);
+ }
+
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/CreateAbstractionQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/CreateAbstractionQuery.java
new file mode 100644
index 00000000000..e5bce405b57
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/CreateAbstractionQuery.java
@@ -0,0 +1,68 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.allocation.queries;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.emf.facet.infra.query.runtime.ModelQueryParameterValue;
+import org.eclipse.emf.facet.widgets.celleditors.ICommandFactoriesRegistry;
+import org.eclipse.emf.facet.widgets.celleditors.ICommandFactory;
+import org.eclipse.emf.facet.widgets.nattable.tableconfiguration.InstantiationMethodParameters;
+import org.eclipse.uml2.uml.Abstraction;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.UMLPackage;
+
+/** Create a new Abstraction */
+public class CreateAbstractionQuery implements IJavaModelQuery<Package, Abstraction> {
+
+ /**
+ *
+ * @see org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery#evaluate(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.facet.infra.query.core.java.ParameterValueList)
+ *
+ * @param context
+ * @param parameterValues
+ * @return
+ * @throws ModelQueryExecutionException
+ */
+ public Abstraction evaluate(final Package context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ EditingDomain editingDomain = null;
+ ModelQueryParameterValue model = parameterValues.getParameterValueByName(InstantiationMethodParameters.getEditingDomainParameter().getName());
+ if(model != null) {
+ if(model.getValue() instanceof EditingDomain) {
+ editingDomain = (EditingDomain)model.getValue();
+ }
+ }
+ if(editingDomain != null) {
+ ICommandFactory commandFactory = ICommandFactoriesRegistry.INSTANCE.getCommandFactoryFor(editingDomain);
+
+ if(context != null) {
+ Abstraction abstraction = UMLFactory.eINSTANCE.createAbstraction();
+
+ String name = org.eclipse.papyrus.diagram.common.helper.NamedElementHelper.EINSTANCE.getNewUMLElementName(context, abstraction.eClass());
+ abstraction.setName(name);
+ Command command = commandFactory.createAddCommand(editingDomain, context, UMLPackage.eINSTANCE.getPackage_PackagedElement(), abstraction);
+
+ editingDomain.getCommandStack().execute(command);
+ return abstraction;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/CreateAllocateQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/CreateAllocateQuery.java
new file mode 100644
index 00000000000..ee3d793a881
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/CreateAllocateQuery.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.allocation.queries;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.emf.facet.infra.query.runtime.ModelQueryParameterValue;
+import org.eclipse.emf.facet.widgets.nattable.tableconfiguration.InstantiationMethodParameters;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.papyrus.diagram.common.command.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.service.edit.service.ElementEditServiceUtils;
+import org.eclipse.papyrus.service.edit.service.IElementEditService;
+import org.eclipse.papyrus.sysml.service.types.element.SysMLElementTypes;
+import org.eclipse.uml2.uml.Abstraction;
+import org.eclipse.uml2.uml.Package;
+
+/** Test if the element is an Allocation */
+public class CreateAllocateQuery implements IJavaModelQuery<Package, Abstraction> {
+
+ /**
+ *
+ * @see org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery#evaluate(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.facet.infra.query.core.java.ParameterValueList)
+ *
+ * @param context
+ * @param parameterValues
+ * @return
+ * @throws ModelQueryExecutionException
+ */
+ public Abstraction evaluate(final Package context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ EditingDomain editingDomain = null;
+ ModelQueryParameterValue model = parameterValues.getParameterValueByName(InstantiationMethodParameters.getEditingDomainParameter().getName());
+ if(model != null) {
+ if(model.getValue() instanceof EditingDomain) {
+ editingDomain = (EditingDomain)model.getValue();
+ }
+ }
+ if(editingDomain != null) {
+ if(context != null) {
+
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(context);
+ CreateElementRequest createRequest = new CreateElementRequest(context, SysMLElementTypes.ALLOCATE);
+ ICommand createGMFCommand = provider.getEditCommand(createRequest);
+ editingDomain.getCommandStack().execute(new GMFtoEMFCommandWrapper(createGMFCommand));
+ if(createGMFCommand.getCommandResult() != null) {//when the Model is not a SysML model, return null!
+ Object returnedValue = createGMFCommand.getCommandResult().getReturnValue();
+ return (Abstraction)returnedValue;
+ }
+ return null;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/IsAllocateQuery.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/IsAllocateQuery.java
new file mode 100644
index 00000000000..84b81b061f3
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/queries/IsAllocateQuery.java
@@ -0,0 +1,45 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.allocation.queries;
+
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.uml2.uml.Abstraction;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Stereotype;
+
+/** Test is the element is an Abstraction */
+public class IsAllocateQuery implements IJavaModelQuery<Element, Boolean> {
+
+ /**
+ *
+ * @see org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery#evaluate(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.facet.infra.query.core.java.ParameterValueList)
+ *
+ * @param context
+ * @param parameterValues
+ * @return
+ * @throws ModelQueryExecutionException
+ */
+ public Boolean evaluate(final Element context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+
+ if(context instanceof Abstraction) {
+ Abstraction abstraction = (Abstraction)context;
+ Stereotype ste = abstraction.getAppliedStereotype("SysML::Allocations::Allocate"); //$NON-NLS-1$
+ return new Boolean(ste != null);
+ }
+ return new Boolean(false);
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/tester/AllocationPropertyTester.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/tester/AllocationPropertyTester.java
new file mode 100644
index 00000000000..3677994f225
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.allocation/src/org/eclipse/papyrus/sysml/table/allocation/tester/AllocationPropertyTester.java
@@ -0,0 +1,62 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.allocation.tester;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.sysml.table.allocation.CreateAllocationTableCommand;
+
+/**
+ * Property tester for Allocation Table
+ *
+ *
+ *
+ */
+public class AllocationPropertyTester extends PropertyTester {
+
+ /**
+ * the property to test
+ */
+ public static final String IS_APPLIED_ALLOCATIONS = "isAppliedAllocations"; //$NON-NLS-1$
+
+ /**
+ *
+ * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
+ *
+ * @param receiver
+ * @param property
+ * @param args
+ * @param expectedValue
+ * @return
+ */
+ public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+ if(IS_APPLIED_ALLOCATIONS.equals(property) && receiver instanceof IStructuredSelection) {
+ boolean currentValue = testIsAppliedAllocation((IStructuredSelection)receiver);
+ return (new Boolean(currentValue).equals(expectedValue));
+ }
+ return false;
+ }
+
+ /**
+ * returns <code>true</code> if the first selected element is inside a package where the profile SysML::Allocations is applied
+ *
+ * @param selection
+ * @return
+ */
+ private boolean testIsAppliedAllocation(IStructuredSelection selection) {
+ CreateAllocationTableCommand handler = new CreateAllocationTableCommand();
+ return handler.isEnabled();
+ }
+
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/.classpath b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/.classpath
new file mode 100644
index 00000000000..45f024e850e
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/.project b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/.project
new file mode 100644
index 00000000000..606bd416f06
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.sysml.table.requirement</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.emf.facet.common.ProjectNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/META-INF/MANIFEST.MF b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..d6d3cb88a5d
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.emf.facet.widgets.nattable.instance,
+ org.eclipse.emf.facet.infra.query.core,
+ org.eclipse.papyrus.diagram.common,
+ org.eclipse.papyrus.service.edit,
+ org.eclipse.papyrus.sysml.service.types,
+ org.eclipse.papyrus.table.common;bundle-version="0.8.0",
+ org.eclipse.core.expressions,
+ org.eclipse.emf.facet.infra.common.core;bundle-version="0.1.0",
+ org.eclipse.papyrus.table.instance;bundle-version="0.8.0",
+ org.eclipse.emf.facet.widgets.nattable;bundle-version="0.1.0",
+ org.eclipse.emf.facet.infra.browser.custom.core,
+ org.eclipse.papyrus.sysml;bundle-version="0.8.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .,bin
+Bundle-Version: 0.8.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.sysml.table.requirement.Activato
+ r
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.sysml.table.requirement;singl
+ eton:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/about.html b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/build.properties b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/build.properties
new file mode 100644
index 00000000000..8ffbec87079
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/build.properties
@@ -0,0 +1,12 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ icons/,\
+ about.html,\
+ resources/,\
+ plugin.xml
+src.includes = about.html,\
+ resources/,\
+ icons/
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/icons/table_requirement.png b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/icons/table_requirement.png
new file mode 100644
index 00000000000..b56387b43e0
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/icons/table_requirement.png
Binary files differ
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/plugin.properties b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/plugin.properties
new file mode 100644
index 00000000000..0161afc7aa4
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.papyrus.sysml.table.requirement
+providerName = Eclipse Modeling Project
+pluginName = Papyrus Table Editor For Requirements \ No newline at end of file
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/plugin.xml b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/plugin.xml
new file mode 100644
index 00000000000..8d484f5efc8
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/plugin.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse version="3.4"?>
+
+<plugin>
+ <extension point="org.eclipse.papyrus.core.papyrusDiagram">
+ <editorDiagram factoryClass="org.eclipse.papyrus.sysml.table.requirement.CreateRequirementTableFactory" icon="icons/table_requirement.png">
+ </editorDiagram>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution allPopups="false" locationURI="toolbar:org.eclipse.papyrus.table.ui.toolbar">
+ <command commandId="org.eclipse.papyrus.sysml.table.requirement.create.table.command" icon="icons/table_requirement.png" style="push" tooltip="Create a New SysML Requirement Table">
+ <visibleWhen>
+ <with variable="activeEditorId">
+ <equals value="org.eclipse.papyrus.core.papyrusEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution allPopups="false" locationURI="popup:org.eclipse.papyrus.modelexplorer.popupmenu.createtable">
+ <command commandId="org.eclipse.papyrus.sysml.table.requirement.create.table.command" icon="icons/table_requirement.png" style="push" tooltip="Create a New SysML Requirement Table">
+ <visibleWhen>
+ <with variable="activeEditorId">
+ <equals value="org.eclipse.papyrus.core.papyrusEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution allPopups="false" locationURI="menu:org.eclipse.papyrus.table.ui.menu.tables">
+ <command commandId="org.eclipse.papyrus.sysml.table.requirement.create.table.command" icon="icons/table_requirement.png" style="push" tooltip="Create a New SysML Requirement Table">
+ <visibleWhen>
+ <with variable="activeEditorId">
+ <equals value="org.eclipse.papyrus.core.papyrusEditor">
+ </equals>
+ </with>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.commands">
+ <command categoryId="org.eclipse.papyrus.editor.category" description="Create a new SysML Requirement Table" id="org.eclipse.papyrus.sysml.table.requirement.create.table.command" name="SysML Requirement Table">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler class="org.eclipse.papyrus.sysml.table.requirement.CreateRequirementTableCommand" commandId="org.eclipse.papyrus.sysml.table.requirement.create.table.command">
+ <activeWhen>
+ <and>
+ <with variable="selection">
+ <test forcePluginActivation="true" property="org.eclipse.papyrus.sysml.table.requirement.tester.isAppliedRequirements" value="true">
+ </test>
+ </with>
+ </and>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.propertyTesters">
+ <propertyTester class="org.eclipse.papyrus.sysml.table.requirement.tester.RequirementPropertyTester" id="org.eclipse.papyrus.sysml.table.requirement.tester" namespace="org.eclipse.papyrus.sysml.table.requirement.tester" properties="isAppliedRequirements" type="org.eclipse.jface.viewers.IStructuredSelection">
+ </propertyTester>
+ </extension>
+ <extension point="org.eclipse.emf.facet.infra.browser.custom.core.registration">
+ <browserCustomization file="resources/table_UML_Class_hideAllClassFeatures.uiCustom">
+ </browserCustomization>
+ </extension>
+ <extension point="org.eclipse.emf.facet.infra.query.registration">
+ <modelqueryset file="resources/requirementsTable.querySet"/>
+ </extension>
+</plugin>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/requirements.tableconfiguration b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/requirements.tableconfiguration
new file mode 100644
index 00000000000..cccdc4cc986
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/requirements.tableconfiguration
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tableconfiguration:TableConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" xmlns:tableconfiguration="http://www.eclipse.org/EMF_Facet/ModelCellEditor/0.1.0/tableconfiguration">
+ <canBePresentedInTheTable xsi:type="query:JavaModelQuery" href="emffacet:/query/requirementsTable#IsRequirement"/>
+ <defaultFacets href="emffacet:/facet/requirementsFacets#//Requirement"/>
+ <defaultCustomizations href="emffacet:/customization/table_UML_Class_hideAllClassFeatures#/"/>
+ <defaultCustomizations href="emffacet:/customization/table_Ecore_hideEAnnotationFeature#/"/>
+ <instantiationMethod name="Create Requirement" description="This method creates a new Class stereotyped with requirement">
+ <instantiationQuery xsi:type="query:JavaModelQuery" href="emffacet:/query/requirementsTable#CreateRequirements"/>
+ </instantiationMethod>
+</tableconfiguration:TableConfiguration>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/requirementsTable.querySet b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/requirementsTable.querySet
new file mode 100644
index 00000000000..cafdda9349a
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/requirementsTable.querySet
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ASCII"?>
+<query:ModelQuerySet 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:query="http://www.eclipse.org/EmfFacet/infra/query/0.8.incubation" name="requirementsTable" description="This query set is used by the requirements table">
+ <associatedMetamodels href="http://www.eclipse.org/uml2/3.0.0/UML#/"/>
+ <associatedMetamodels href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ <queries xsi:type="query:JavaModelQuery" name="CreateRequirements" description="This query creates a new Class stereotyped Requirement" implementationClassName="org.eclipse.papyrus.sysml.table.requirement.queries.CreateRequirement">
+ <returnType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+ </queries>
+ <queries xsi:type="query:JavaModelQuery" name="IsRequirement" description="This query test if the EObject is a class stereotyped with requirement" lowerBound="1" implementationClassName="org.eclipse.papyrus.sysml.table.requirement.queries.IsRequirement">
+ <returnType xsi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/3.0.0/UML#//Boolean"/>
+ <scope href="http://www.eclipse.org/uml2/3.0.0/UML#//Class"/>
+ </queries>
+</query:ModelQuerySet>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/table_UML_Class_hideAllClassFeatures.uiCustom b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/table_UML_Class_hideAllClassFeatures.uiCustom
new file mode 100644
index 00000000000..e3b98a64c7f
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/resources/table_UML_Class_hideAllClassFeatures.uiCustom
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="ASCII"?>
+<uicustom:MetamodelView xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uicustom="http://www.eclipse.org/EmfFacet/infra/browser/custom/0.8" metamodelURI="http://www.eclipse.org/uml2/3.0.0/UML" allQuerySetsAvailable="false">
+ <types metaclassName="uml.Element">
+ <references referenceName="ownedElement">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="owner">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="ownedComment">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.NamedElement">
+ <attributes attributeName="name">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </attributes>
+ <attributes attributeName="visibility">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </attributes>
+ <attributes attributeName="qualifiedName">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </attributes>
+ <references referenceName="clientDependency">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="namespace">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="nameExpression">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.Namespace">
+ <references referenceName="elementImport">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="packageImport">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="ownedRule">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="member">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="importedMember">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="ownedMember">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.RedefinableElement">
+ <attributes attributeName="isLeaf">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </attributes>
+ <references referenceName="redefinedElement">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="redefinitionContext">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.ParameterableElement">
+ <references referenceName="owningTemplateParameter">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="templateParameter">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.Type">
+ <references referenceName="package">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.TemplateableElement">
+ <references referenceName="templateBinding">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="ownedTemplateSignature">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.Classifier">
+ <attributes attributeName="isAbstract">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </attributes>
+ <references referenceName="generalization">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="powertypeExtent">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="feature">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="inheritedMember">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="redefinedClassifier">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="general">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="substitution">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="attribute">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="representation">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="collaborationUse">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="ownedUseCase">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="useCase">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.StructuredClassifier">
+ <references referenceName="ownedAttribute">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="part">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="role">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="ownedConnector">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.EncapsulatedClassifier">
+ <references referenceName="ownedPort">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.BehavioredClassifier">
+ <references referenceName="ownedBehavior">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="classifierBehavior">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="interfaceRealization">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="ownedTrigger">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+ <types metaclassName="uml.Class">
+ <attributes attributeName="isActive">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </attributes>
+ <references referenceName="nestedClassifier">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="ownedOperation">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="superClass">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="ownedReception">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ <references referenceName="extension">
+ <customizedFeatures>
+ <defaultValue xsi:type="uicustom:StaticFeatureValue" value="false"/>
+ </customizedFeatures>
+ </references>
+ </types>
+</uicustom:MetamodelView>
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/Activator.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/Activator.java
new file mode 100644
index 00000000000..bf6ad48cd11
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/Activator.java
@@ -0,0 +1,48 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.requirement;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/** The activator class controls the plug-in life cycle */
+public class Activator extends Plugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.sysml.table.requirement"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ @Override
+ public void start(final BundleContext context) throws Exception {
+ super.start(context);
+ Activator.plugin = this;
+ }
+
+ @Override
+ public void stop(final BundleContext context) throws Exception {
+ Activator.plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return Activator.plugin;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/CreateRequirementTableCommand.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/CreateRequirementTableCommand.java
new file mode 100644
index 00000000000..27eec6e6ce6
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/CreateRequirementTableCommand.java
@@ -0,0 +1,99 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.requirement;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.facet.widgets.nattable.internal.Messages;
+import org.eclipse.emf.facet.widgets.nattable.tableconfiguration.TableConfiguration;
+import org.eclipse.papyrus.sysml.table.requirement.editor.RequirementTableEditor;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.papyrus.table.common.handlers.AbstractCreateNattableEditorCommand;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+
+
+
+/**
+ * The command to create the Requirement Table
+ *
+ *
+ *
+ */
+public class CreateRequirementTableCommand extends AbstractCreateNattableEditorCommand {
+
+ /**
+ *
+ * Constructor.
+ *
+ */
+ public CreateRequirementTableCommand() {
+ super(RequirementTableEditor.EDITOR_TYPE, RequirementTableEditor.DEFAULT_NAME);
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.table.common.handlers.AbstractCreateNattableEditorCommand#getTableConfiguration()
+ *
+ * @return
+ */
+ @Override
+ protected TableConfiguration getTableConfiguration() {
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ String symbolicName = org.eclipse.papyrus.sysml.table.requirement.Activator.getDefault().getBundle().getSymbolicName();
+ URI uri = URI.createPlatformPluginURI(symbolicName + "/resources/requirements.tableconfiguration", true); //$NON-NLS-1$
+ Resource resource = resourceSet.getResource(uri, true);
+
+ TableConfiguration tableConfiguration = null;
+ if(resource.getContents().get(0) instanceof org.eclipse.emf.facet.widgets.nattable.tableconfiguration.TableConfiguration) {
+ tableConfiguration = (TableConfiguration)resource.getContents().get(0);
+ return tableConfiguration;
+ }
+ return null;
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.table.common.handlers.AbstractCreateNattableEditorCommand#isEnabled()
+ *
+ * @return
+ */
+ @Override
+ public boolean isEnabled() {
+ EObject object = getTableContext();
+ if(object instanceof Element) {
+ Element el = (Element)object;
+ Package pack = el.getNearestPackage();
+ //we can create an Allocation Table only when the profile is applied
+ return pack.getAppliedProfile(SysmlResource.REQUIREMENTS_ID, true) != null;
+ }
+ return false;
+ }
+
+ @Override
+ protected List<String> getHiddenColumnName() {
+ List<String> hiddenColumns = new ArrayList<String>();
+ hiddenColumns.add(Messages.NatTableWidget_metaclass);
+ //TODO should be externalized, currently not externalized in EMF-Facet
+ hiddenColumns.add("/eContainer"); //$NON-NLS-1$
+ return hiddenColumns;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/CreateRequirementTableFactory.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/CreateRequirementTableFactory.java
new file mode 100644
index 00000000000..c4232b6bc59
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/CreateRequirementTableFactory.java
@@ -0,0 +1,29 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.requirement;
+
+import org.eclipse.papyrus.sysml.table.requirement.editor.RequirementTableEditor;
+
+public class CreateRequirementTableFactory extends org.eclipse.papyrus.table.common.factory.AbstractNattableEditorFactory {
+
+ /**
+ * Constructor.
+ *
+ * @param diagramClass
+ * @param expectedType
+ */
+ public CreateRequirementTableFactory() {
+ super(RequirementTableEditor.class, RequirementTableEditor.EDITOR_TYPE);
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/editor/RequirementTableEditor.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/editor/RequirementTableEditor.java
new file mode 100644
index 00000000000..664dac97f24
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/editor/RequirementTableEditor.java
@@ -0,0 +1,45 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.requirement.editor;
+
+import org.eclipse.papyrus.core.services.ServicesRegistry;
+import org.eclipse.papyrus.table.common.editor.AbstractNattableEditor;
+import org.eclipse.papyrus.table.instance.papyrustableinstance.PapyrusTableInstance;
+
+
+
+
+/**
+ *
+ * The requirement table editor
+ *
+ */
+public class RequirementTableEditor extends AbstractNattableEditor {
+
+
+ /** the type of the editor */
+ public static final String EDITOR_TYPE = "PapyrusRequirementTable"; //$NON-NLS-1$
+
+ /** the default name */
+ public static final String DEFAULT_NAME = "RequirementTable"; //$NON-NLS-1$
+
+ /**
+ * @param servicesRegistry
+ * @param rawModel2
+ *
+ */
+ public RequirementTableEditor(final ServicesRegistry servicesRegistry, final PapyrusTableInstance rawModel) {
+ super(servicesRegistry, rawModel);
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/queries/CreateRequirement.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/queries/CreateRequirement.java
new file mode 100644
index 00000000000..85b16416ab1
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/queries/CreateRequirement.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.requirement.queries;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.emf.facet.infra.query.runtime.ModelQueryParameterValue;
+import org.eclipse.emf.facet.widgets.nattable.tableconfiguration.InstantiationMethodParameters;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.papyrus.diagram.common.command.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.service.edit.service.ElementEditServiceUtils;
+import org.eclipse.papyrus.service.edit.service.IElementEditService;
+import org.eclipse.papyrus.sysml.service.types.element.SysMLElementTypes;
+import org.eclipse.uml2.uml.Package;
+
+/** a query which creates a new requirement and associates it with its parent (contained by the scope) */
+public class CreateRequirement implements IJavaModelQuery<Package, org.eclipse.uml2.uml.Class> {
+
+ /**
+ *
+ * @see org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery#evaluate(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.facet.infra.query.core.java.ParameterValueList)
+ *
+ * @param context
+ * @param parameterValues
+ * @return
+ * @throws ModelQueryExecutionException
+ */
+ public org.eclipse.uml2.uml.Class evaluate(final Package context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+ EditingDomain editingDomain = null;
+ ModelQueryParameterValue model = parameterValues.getParameterValueByName(InstantiationMethodParameters.getEditingDomainParameter().getName());
+ if(model != null) {
+ if(model.getValue() instanceof EditingDomain) {
+ editingDomain = (EditingDomain)model.getValue();
+ }
+ }
+ if(editingDomain != null) {
+ if(context != null) {
+
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(context);
+
+ CreateElementRequest createRequest = new CreateElementRequest(context, SysMLElementTypes.REQUIREMENT);
+ ICommand createGMFCommand = provider.getEditCommand(createRequest);
+
+ editingDomain.getCommandStack().execute(new GMFtoEMFCommandWrapper(createGMFCommand));
+ if(createGMFCommand.getCommandResult() != null) {//it's null, when the model is not a SysML model
+ Object returnedValue = createGMFCommand.getCommandResult().getReturnValue();
+ return (org.eclipse.uml2.uml.Class)returnedValue;
+ }
+
+ }
+ }
+ return null;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/queries/IsRequirement.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/queries/IsRequirement.java
new file mode 100644
index 00000000000..895bb06a4f4
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/queries/IsRequirement.java
@@ -0,0 +1,51 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.requirement.queries;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.facet.infra.query.core.exception.ModelQueryExecutionException;
+import org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery;
+import org.eclipse.emf.facet.infra.query.core.java.ParameterValueList;
+import org.eclipse.papyrus.sysml.util.SysmlResource;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Stereotype;
+
+/**
+ * Test if the eobject is a Requirement
+ *
+ *
+ *
+ */
+public class IsRequirement implements IJavaModelQuery<EObject, Boolean> {
+
+ /**
+ *
+ * @see org.eclipse.emf.facet.infra.query.core.java.IJavaModelQuery#evaluate(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.facet.infra.query.core.java.ParameterValueList)
+ *
+ * @param context
+ * @param parameterValues
+ * @return
+ * @throws ModelQueryExecutionException
+ */
+ public Boolean evaluate(final EObject context, final ParameterValueList parameterValues) throws ModelQueryExecutionException {
+
+ if(context instanceof Classifier) {
+ Classifier classifier = (Classifier)context;
+ Stereotype ste = classifier.getAppliedStereotype(SysmlResource.REQUIREMENT_ID);
+ return ste != null ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return Boolean.FALSE;
+ }
+}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/tester/RequirementPropertyTester.java b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/tester/RequirementPropertyTester.java
new file mode 100644
index 00000000000..b60ac2ac388
--- /dev/null
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.table.requirement/src/org/eclipse/papyrus/sysml/table/requirement/tester/RequirementPropertyTester.java
@@ -0,0 +1,56 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.sysml.table.requirement.tester;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.sysml.table.requirement.CreateRequirementTableCommand;
+
+
+public class RequirementPropertyTester extends PropertyTester {
+
+ /**
+ * the property to test
+ */
+ public static final String IS_APPLIED_REQUIREMENTS = "isAppliedRequirements"; //$NON-NLS-1$
+
+ /**
+ *
+ * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
+ *
+ * @param receiver
+ * @param property
+ * @param args
+ * @param expectedValue
+ * @return
+ */
+ public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+ if(IS_APPLIED_REQUIREMENTS.equals(property) && receiver instanceof IStructuredSelection) {
+ boolean currentValue = testIsAppliedRequirements((IStructuredSelection)receiver);
+ return (new Boolean(currentValue).equals(expectedValue));
+ }
+ return false;
+ }
+
+ /**
+ * returns <code>true</code> if the first selected element is inside a package where the profile SysML::Allocations is applied
+ *
+ * @param selection
+ * @return
+ */
+ private boolean testIsAppliedRequirements(IStructuredSelection selection) {
+ CreateRequirementTableCommand handler = new CreateRequirementTableCommand();
+ return handler.isEnabled();
+ }
+}

Back to the top