Bug 516901 - Replaced references to Architecture model elements by their
unique ids instead.

Actions:   
- refactoring of the sysml.architecture model to give ids to various
diagrams and tables. 
- changed the SysMLTableReconciler_1_3_0 to put the diagramKindId
attribute instead of the diagramKind reference in the
PapyrusDiagramStyle. 
diff --git a/plugins/architecture/org.eclipse.papyrus.sysml.architecture/model/sysml.architecture b/plugins/architecture/org.eclipse.papyrus.sysml.architecture/model/sysml.architecture
index 89fa3f6..0addd02 100755
--- a/plugins/architecture/org.eclipse.papyrus.sysml.architecture/model/sysml.architecture
+++ b/plugins/architecture/org.eclipse.papyrus.sysml.architecture/model/sysml.architecture
@@ -1,23 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<architecture:ArchitectureDomain xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" xmlns:gmfdiagrepresentation="http://www.eclipse.org/papyrus/infra/gmfdiag/representation" xmlns:nattablerepresentation="http://www.eclipse.org/papyrus/infra/nattable/representation" xmi:id="_yMTQcMSdEeaKZJ_pGfaSiA" name="Systems Engineering" description="The domain of developing software systems">
-  <stakeholders xmi:id="_yMTQccSdEeaKZJ_pGfaSiA" name="Systems Engineer" description="An engineer interested in system development">
+<architecture:ArchitectureDomain xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" xmlns:gmfdiagrepresentation="http://www.eclipse.org/papyrus/infra/gmfdiag/representation" xmlns:nattablerepresentation="http://www.eclipse.org/papyrus/infra/nattable/representation" xmi:id="_yMTQcMSdEeaKZJ_pGfaSiA" id="org.eclipse.papyrus.systemsEngineering" name="Systems Engineering" description="The domain of developing software systems">
+  <stakeholders xmi:id="_yMTQccSdEeaKZJ_pGfaSiA" id="org.eclipse.papyrus.systemsEngineering.systemsEngineer" name="Systems Engineer" description="An engineer interested in system development">
     <concerns href="#_yMTQcsSdEeaKZJ_pGfaSiA"/>
     <concerns href="platform:/plugin/org.eclipse.papyrus.uml.architecture/model/uml.architecture#_HQhf4sSYEeaKZJ_pGfaSiA"/>
     <concerns href="platform:/plugin/org.eclipse.papyrus.uml.architecture/model/uml.architecture#_HQhf48SYEeaKZJ_pGfaSiA"/>
     <concerns href="#_yMTQc8SdEeaKZJ_pGfaSiA"/>
     <concerns href="platform:/plugin/org.eclipse.papyrus.uml.architecture/model/uml.architecture#_HQhf5MSYEeaKZJ_pGfaSiA"/>
   </stakeholders>
-  <concerns xmi:id="_yMTQcsSdEeaKZJ_pGfaSiA" name="Requirements" description="The concern of developing the system's requirements"/>
-  <concerns xmi:id="_yMTQc8SdEeaKZJ_pGfaSiA" name="Parametrics" description="The concern of developing the system's parametrics"/>
-  <contexts xsi:type="architecture:ArchitectureDescriptionLanguage" xmi:id="_yMTQdMSdEeaKZJ_pGfaSiA" name="SysML" description="The Systems Modeling Language" id="org.eclipse.papyrus.sysml.architecture.SysML" icon="platform:/plugin/org.eclipse.papyrus.sysml.architecture/icons/sysml.gif" creationCommandClass="org.eclipse.papyrus.sysml.diagram.common.commands.CreateSysMLModelCommand">
-    <viewpoints xmi:id="_M5u1AMShEeaKZJ_pGfaSiA" name="Systems Analysis" description="A viewpoint allowing systems analysis with SysML" id="org.eclipse.papyrus.sysml.analysis">
+  <concerns xmi:id="_yMTQcsSdEeaKZJ_pGfaSiA" id="org.eclipse.papyrus.systemsEngineering.requirements" name="Requirements" description="The concern of developing the system's requirements"/>
+  <concerns xmi:id="_yMTQc8SdEeaKZJ_pGfaSiA" id="org.eclipse.papyrus.systemsEngineering.parametrics" name="Parametrics" description="The concern of developing the system's parametrics"/>
+  <contexts xsi:type="architecture:ArchitectureDescriptionLanguage" xmi:id="_yMTQdMSdEeaKZJ_pGfaSiA" id="org.eclipse.papyrus.sysml.architecture.SysML" name="SysML" description="The Systems Modeling Language" icon="platform:/plugin/org.eclipse.papyrus.sysml.architecture/icons/sysml.gif" creationCommandClass="org.eclipse.papyrus.sysml.diagram.common.commands.CreateSysMLModelCommand">
+    <viewpoints xmi:id="_M5u1AMShEeaKZJ_pGfaSiA" id="org.eclipse.papyrus.sysml.analysis" name="Systems Analysis" description="A viewpoint allowing systems analysis with SysML">
       <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" href="#_iBC4gHDvEeWh-MssWmCB_A"/>
       <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.uml.architecture/model/uml.architecture#_yeY0sHDvEeWh-MssWmCB_A"/>
       <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" href="#_m2D8IHDuEeWh-MssWmCB_A"/>
       <representationKinds xsi:type="nattablerepresentation:PapyrusTable" href="#_lTE0gHDwEeWh-MssWmCB_A"/>
       <representationKinds xsi:type="nattablerepresentation:PapyrusTable" href="platform:/plugin/org.eclipse.papyrus.uml.architecture/model/uml.architecture#_d4-QwCT-EeedRqoTe_1ZiA"/>
     </viewpoints>
-    <viewpoints xmi:id="_PAtvoMShEeaKZJ_pGfaSiA" name="Systems Design" description="A viewpoint allowing systems design with SysML" id="org.eclipse.papyrus.sysml.design">
+    <viewpoints xmi:id="_PAtvoMShEeaKZJ_pGfaSiA" id="org.eclipse.papyrus.sysml.design" name="Systems Design" description="A viewpoint allowing systems design with SysML">
       <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" href="#_m2D8IHDuEeWh-MssWmCB_A"/>
       <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" href="#_eHbioHDvEeWh-MssWmCB_A"/>
       <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" href="#_eHbipHDvEeWh-MssWmCB_A"/>
@@ -47,7 +47,7 @@
     <elementTypes href="platform:/plugin/org.eclipse.papyrus.infra.types.rulebased/model/rulebased.elementtypesconfigurations#_ScP1oFYCEeS0WsAAtVmToA"/>
     <elementTypes href="platform:/plugin/org.eclipse.papyrus.uml.diagram.activity/model/activityDiagram.elementtypesconfigurations#_x8G0YGaNEeSyJIsxLao1Pw"/>
     <elementTypes href="platform:/plugin/org.eclipse.papyrus.uml.diagram.clazz/model/classdiagram.elementtypesconfigurations#_rWI4YHPzEeSnGJwaJWHCSg"/>
-    <elementTypes href="platform:/plugin/org.eclipse.papyrus.uml.diagram.communication/model/communicationdiagram-uml.elementtypesconfigurations#_rWI4YHPzEeSnGJwaJWHCSg"/>
+    <elementTypes href="platform:/plugin/org.eclipse.papyrus.uml.diagram.communication/model/communicationdiagram.elementtypesconfigurations#_rWI4YHPzEeSnGJwaJWHCSg"/>
     <elementTypes href="platform:/plugin/org.eclipse.papyrus.uml.diagram.composite/model/compositediagram.elementtypesconfigurations#_tL86sLazEeSbnofizoRSMQ"/>
     <elementTypes href="platform:/plugin/org.eclipse.papyrus.uml.diagram.interactionoverview/model/interactionOverviewDiagram.elementtypesconfigurations#_x8G0YGaNEeSyJIsxLao1Pw"/>
     <elementTypes href="platform:/plugin/org.eclipse.papyrus.uml.diagram.statemachine/model/stateMachineDiagram.elementtypesconfigurations#_wYwtMMeDEeSwP_9Vn5UnWg"/>
@@ -66,7 +66,7 @@
     <elementTypes href="platform:/plugin/org.eclipse.papyrus.sysml.service.types/model/sysml-portsandflows.elementtypesconfigurations#_6wATQLOjEeWH6Y3Wi2YKxg"/>
     <elementTypes href="platform:/plugin/org.eclipse.papyrus.sysml.service.types/model/sysml-requirements.elementtypesconfigurations#_LYuC4LOtEeWH6Y3Wi2YKxg"/>
     <elementTypes href="platform:/plugin/org.eclipse.papyrus.sysml.service.types/model/sysml.elementtypesconfigurations#_649xgFYBEeS0WsAAtVmToA"/>
-    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_m2D8IHDuEeWh-MssWmCB_A" name="Block Definition Diagram" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.blockdefinition/icons/obj16/Diagram_BlockDefinition.gif" implementationID="BlockDefinition" creationCommandClass="org.eclipse.papyrus.sysml.diagram.blockdefinition.BlockDefinitionDiagramCreateCommand">
+    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_m2D8IHDuEeWh-MssWmCB_A" id="org.eclipse.papyrus.sysml.diagram.blockDefinition" name="Block Definition Diagram" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.blockdefinition/icons/obj16/Diagram_BlockDefinition.gif" implementationID="BlockDefinition" creationCommandClass="org.eclipse.papyrus.sysml.diagram.blockdefinition.BlockDefinitionDiagramCreateCommand">
       <concerns href="platform:/plugin/org.eclipse.papyrus.uml.architecture/model/uml.architecture#_HQhf48SYEeaKZJ_pGfaSiA"/>
       <modelRules xmi:id="_m2D8IXDuEeWh-MssWmCB_A">
         <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
@@ -84,7 +84,7 @@
       </owningRules>
       <childRules xmi:id="_m2D8JXDuEeWh-MssWmCB_A"/>
     </representationKinds>
-    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_M-Q3sHDuEeWh-MssWmCB_A" name="Internal Block Diagram" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.internalblock/icons/obj16/Diagram_InternalBlock.gif" implementationID="InternalBlock" creationCommandClass="org.eclipse.papyrus.sysml.diagram.internalblock.InternalBlockDiagramCreateCommand">
+    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_M-Q3sHDuEeWh-MssWmCB_A" id="org.eclipse.papyrus.sysml.diagram.internalBlock" name="Internal Block Diagram" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.internalblock/icons/obj16/Diagram_InternalBlock.gif" implementationID="InternalBlock" creationCommandClass="org.eclipse.papyrus.sysml.diagram.internalblock.InternalBlockDiagramCreateCommand">
       <concerns href="platform:/plugin/org.eclipse.papyrus.uml.architecture/model/uml.architecture#_HQhf48SYEeaKZJ_pGfaSiA"/>
       <modelRules xmi:id="_M-Q3sXDuEeWh-MssWmCB_A">
         <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
@@ -102,7 +102,7 @@
       </owningRules>
       <childRules xmi:id="_M-Q3tXDuEeWh-MssWmCB_A"/>
     </representationKinds>
-    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_eHbioHDvEeWh-MssWmCB_A" name="Parametric Diagram" concerns="_yMTQc8SdEeaKZJ_pGfaSiA" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.parametric/icons/obj16/Diagram_Parametric.png" implementationID="Parametric" creationCommandClass="org.eclipse.papyrus.sysml.diagram.parametric.ParametricDiagramCreateCommand">
+    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_eHbioHDvEeWh-MssWmCB_A" id="org.eclipse.papyrus.sysml.diagram.parametric.root.package" name="Parametric Diagram" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.parametric/icons/obj16/Diagram_Parametric.png" concerns="_yMTQc8SdEeaKZJ_pGfaSiA" implementationID="Parametric" creationCommandClass="org.eclipse.papyrus.sysml.diagram.parametric.ParametricDiagramCreateCommand">
       <modelRules xmi:id="_eHbioXDvEeWh-MssWmCB_A">
         <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
       </modelRules>
@@ -111,7 +111,7 @@
       </owningRules>
       <childRules xmi:id="_eHbio3DvEeWh-MssWmCB_A"/>
     </representationKinds>
-    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_eHbipHDvEeWh-MssWmCB_A" name="Parametric Diagram" concerns="_yMTQc8SdEeaKZJ_pGfaSiA" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.parametric/icons/obj16/Diagram_Parametric.png" implementationID="Parametric" creationCommandClass="org.eclipse.papyrus.sysml.diagram.parametric.ParametricDiagramCreateCommand">
+    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_eHbipHDvEeWh-MssWmCB_A" id="org.eclipse.papyrus.sysml.diagram.parametric.root.constraintBlock" name="Parametric Diagram" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.parametric/icons/obj16/Diagram_Parametric.png" concerns="_yMTQc8SdEeaKZJ_pGfaSiA" implementationID="Parametric" creationCommandClass="org.eclipse.papyrus.sysml.diagram.parametric.ParametricDiagramCreateCommand">
       <modelRules xmi:id="_eHbipXDvEeWh-MssWmCB_A">
         <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
         <stereotypes href="http://www.eclipse.org/papyrus/0.7.0/SysML#//constraints/ConstraintBlock"/>
@@ -129,7 +129,7 @@
       <paletteRules xmi:id="_eHbiq3DvEeWh-MssWmCB_A" permit="false" element="parametric.tool.value"/>
       <paletteRules xmi:id="_eHbirHDvEeWh-MssWmCB_A" element=""/>
     </representationKinds>
-    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_eHbirXDvEeWh-MssWmCB_A" name="Parametric Diagram" concerns="_yMTQc8SdEeaKZJ_pGfaSiA" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.parametric/icons/obj16/Diagram_Parametric.png" implementationID="Parametric" creationCommandClass="org.eclipse.papyrus.sysml.diagram.parametric.ParametricDiagramCreateCommand">
+    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_eHbirXDvEeWh-MssWmCB_A" id="org.eclipse.papyrus.sysml.diagram.parametric.root.block" name="Parametric Diagram" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.parametric/icons/obj16/Diagram_Parametric.png" concerns="_yMTQc8SdEeaKZJ_pGfaSiA" implementationID="Parametric" creationCommandClass="org.eclipse.papyrus.sysml.diagram.parametric.ParametricDiagramCreateCommand">
       <modelRules xmi:id="_eHbirnDvEeWh-MssWmCB_A">
         <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
         <stereotypes href="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks/Block"/>
@@ -143,7 +143,7 @@
       </owningRules>
       <childRules xmi:id="_eHbisXDvEeWh-MssWmCB_A"/>
     </representationKinds>
-    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_iBC4gHDvEeWh-MssWmCB_A" name="Requirement Diagram" concerns="_yMTQcsSdEeaKZJ_pGfaSiA" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.requirement/icons/obj16/Diagram_Requirement.gif" implementationID="RequirementDiagram" creationCommandClass="org.eclipse.papyrus.sysml.diagram.requirement.RequirementDiagramCreateCommand">
+    <representationKinds xsi:type="gmfdiagrepresentation:PapyrusDiagram" xmi:id="_iBC4gHDvEeWh-MssWmCB_A" id="org.eclipse.papyrus.sysml.diagram.requirement" name="Requirement Diagram" icon="platform:/plugin/org.eclipse.papyrus.sysml.diagram.requirement/icons/obj16/Diagram_Requirement.gif" concerns="_yMTQcsSdEeaKZJ_pGfaSiA" implementationID="RequirementDiagram" creationCommandClass="org.eclipse.papyrus.sysml.diagram.requirement.RequirementDiagramCreateCommand">
       <modelRules xmi:id="_iBC4gXDvEeWh-MssWmCB_A">
         <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
       </modelRules>
@@ -152,7 +152,7 @@
       </owningRules>
       <childRules xmi:id="_iBC4g3DvEeWh-MssWmCB_A"/>
     </representationKinds>
-    <representationKinds xsi:type="nattablerepresentation:PapyrusTable" xmi:id="_r5y7wHDuEeWh-MssWmCB_A" name="Allocation Table" icon="platform:/plugin/org.eclipse.papyrus.sysml.nattable.allocation.config/icons/table_SysML_Allocation.png" implementationID="PapyrusSysMLAllocationTable">
+    <representationKinds xsi:type="nattablerepresentation:PapyrusTable" xmi:id="_r5y7wHDuEeWh-MssWmCB_A" id="org.eclipse.papyrus.sysml.table.allocation" name="Allocation Table" icon="platform:/plugin/org.eclipse.papyrus.sysml.nattable.allocation.config/icons/table_SysML_Allocation.png" implementationID="PapyrusSysMLAllocationTable">
       <concerns href="platform:/plugin/org.eclipse.papyrus.uml.architecture/model/uml.architecture#_HQhf48SYEeaKZJ_pGfaSiA"/>
       <modelRules xmi:id="_r5y7wXDuEeWh-MssWmCB_A">
         <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
@@ -162,7 +162,7 @@
       </owningRules>
       <configuration href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.allocation.config/resources/allocation.nattableconfiguration#/"/>
     </representationKinds>
-    <representationKinds xsi:type="nattablerepresentation:PapyrusTable" xmi:id="_lTE0gHDwEeWh-MssWmCB_A" name="Requirement Table" description="" concerns="_yMTQcsSdEeaKZJ_pGfaSiA" icon="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/icons/table_SysML_Requirement.png" implementationID="PapyrusSysMLRequirementTable">
+    <representationKinds xsi:type="nattablerepresentation:PapyrusTable" xmi:id="_lTE0gHDwEeWh-MssWmCB_A" id="org.eclipse.papyrus.sysml.table.requirement" name="Requirement Table" description="" icon="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/icons/table_SysML_Requirement.png" concerns="_yMTQcsSdEeaKZJ_pGfaSiA" implementationID="PapyrusSysMLRequirementTable">
       <modelRules xmi:id="_lTE0gXDwEeWh-MssWmCB_A">
         <element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
       </modelRules>
diff --git a/plugins/architecture/org.eclipse.papyrus.sysml.architecture/src/org/eclipse/papyrus/sysml/architecture/migration/SysMLTableReconciler_1_3_0.java b/plugins/architecture/org.eclipse.papyrus.sysml.architecture/src/org/eclipse/papyrus/sysml/architecture/migration/SysMLTableReconciler_1_3_0.java
index a2d4195..6265d9e 100755
--- a/plugins/architecture/org.eclipse.papyrus.sysml.architecture/src/org/eclipse/papyrus/sysml/architecture/migration/SysMLTableReconciler_1_3_0.java
+++ b/plugins/architecture/org.eclipse.papyrus.sysml.architecture/src/org/eclipse/papyrus/sysml/architecture/migration/SysMLTableReconciler_1_3_0.java
@@ -15,6 +15,7 @@
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.gmf.runtime.common.core.command.AbstractCommand;
 import org.eclipse.gmf.runtime.common.core.command.CommandResult;
 import org.eclipse.gmf.runtime.common.core.command.ICommand;
@@ -33,33 +34,32 @@
 public class SysMLTableReconciler_1_3_0 extends TableReconciler {
 
 	private static final String ALLOCATION_TABLE = "Allocation Table";
+	private static final String ALLOCATION_TABLE_URI = "org.eclipse.papyrus.sysml.nattable.allocation.config/resources/allocationTable.configuration";
 	private static final String REQUIREMENT_TABLE = "Requirement Table";
+	private static final String REQUIREMENT_TABLE_URI = "org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirementTable.configuration";
 
 	@Override
 	public ICommand getReconcileCommand(Table table) {
+		RepresentationKind newTableKind = null;
 		if (table.getPrototype() instanceof org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView) {
-			org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView oldTableKind =
-				(org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView) table.getPrototype();
-			
-			RepresentationKind newTableKind = null;
-			if (oldTableKind != null) {
-				if (ALLOCATION_TABLE.equals(oldTableKind.getName())) {
-					newTableKind = getTableKind(oldTableKind.getName(), table);
-				} else if (REQUIREMENT_TABLE.equals(oldTableKind.getName())) {
-					newTableKind = getTableKind(oldTableKind.getName(), table);
+			org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView oldTableKind = (org.eclipse.papyrus.infra.viewpoints.configuration.PapyrusView) table.getPrototype();
+			if (oldTableKind.eIsProxy()) {
+				if (EcoreUtil.getURI(oldTableKind).toString().contains(ALLOCATION_TABLE_URI)) {
+					newTableKind = getTableKind(ALLOCATION_TABLE, table);
+				} else if (EcoreUtil.getURI(oldTableKind).toString().contains(REQUIREMENT_TABLE_URI)) {
+					newTableKind = getTableKind(REQUIREMENT_TABLE, table);
 				}
-			};
-			
-			if (newTableKind != null)
-				return new ReplaceTablePrototypeCommand(table, newTableKind);
+			}
 		}
+		if (newTableKind != null)
+			return new ReplaceTablePrototypeCommand(table, newTableKind);
 		return null;
 	}
 
 	protected PapyrusTable getTableKind(String name, Table table) {
 		ArchitectureDomainManager manager = ArchitectureDomainManager.getInstance();
 		MergedArchitectureDescriptionLanguage context = (MergedArchitectureDescriptionLanguage) manager.getArchitectureContextById(SysMLArchitectureContextIds.SysML);
-		for(RepresentationKind pKind : context.getRepresentationKinds()) {
+		for (RepresentationKind pKind : context.getRepresentationKinds()) {
 			if (pKind.getName().equals(name)) {
 				PapyrusTable tKind = (PapyrusTable) pKind;
 				if (tKind.getModelRules().get(0).getElement().isInstance(table.getContext())) {
@@ -71,7 +71,7 @@
 	}
 
 	/**
-	 * A command to replace the old table prototype with the new representation kinds 
+	 * A command to replace the old table prototype with the new representation kinds
 	 */
 	protected class ReplaceTablePrototypeCommand extends AbstractCommand {
 
@@ -86,7 +86,8 @@
 
 		@Override
 		protected CommandResult doExecuteWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
-			table.setPrototype(newKind);
+			table.setPrototype(null);
+			table.setTableKindId(newKind.getId());
 			return CommandResult.newOKCommandResult();
 		}