Autoselection in Assurance Project wizard improvement

diff --git a/org.eclipse.opencert.apm.assurproj.wizards/src/org/eclipse/opencert/apm/assurproj/wizards/ui/wizards/AssurProjRefFrameworkSelectionWizardPage.java b/org.eclipse.opencert.apm.assurproj.wizards/src/org/eclipse/opencert/apm/assurproj/wizards/ui/wizards/AssurProjRefFrameworkSelectionWizardPage.java
index 4d56974..f72b153 100644
--- a/org.eclipse.opencert.apm.assurproj.wizards/src/org/eclipse/opencert/apm/assurproj/wizards/ui/wizards/AssurProjRefFrameworkSelectionWizardPage.java
+++ b/org.eclipse.opencert.apm.assurproj.wizards/src/org/eclipse/opencert/apm/assurproj/wizards/ui/wizards/AssurProjRefFrameworkSelectionWizardPage.java
@@ -543,36 +543,46 @@
 		while (actIterator.hasNext()){

 			RefActivity act=actIterator.next();

 			EList<RefActivity> subActivities = act.getSubActivity();

+			

+			EList<RefRequirement> requirements = act.getOwnedRequirement();

+			EList<RefApplicability> applicabilities = act.getApplicability();

+			UpdateCriticality(criticalityViewer,aplicabilityViewer, tviewer,applicabilities,act,null);

+			UpdateReqCriticality(criticalityViewer,aplicabilityViewer, tviewer,requirements,act);

+			

 			if(subActivities.size()>0){

 				UpdateActCriticality(criticalityViewer,aplicabilityViewer, tviewer,subActivities);

 			}

-			EList<RefRequirement> requirements = act.getOwnedRequirement();

-			EList<RefApplicability> applicabilities = act.getApplicability();

-			UpdateCriticality(criticalityViewer,aplicabilityViewer, tviewer,applicabilities);

-			UpdateReqCriticality(criticalityViewer,aplicabilityViewer, tviewer,requirements);

-			

 		}

 	}

 	

 	public void UpdateReqCriticality(CheckboxTreeViewerExt criticalityViewer, 

 			CheckboxTreeViewerExt aplicabilityViewer,

 			CheckboxTreeViewerExt tviewer,

-			EList<RefRequirement> requirements){

+			EList<RefRequirement> requirements,

+			RefActivity act){

 		Iterator<RefRequirement> reqIterator = requirements.iterator();

 		while(reqIterator.hasNext()){

 			RefRequirement req = reqIterator.next();

 			EList<RefRequirement> subReq = req.getSubRequirement();

-			if(subReq.size()>0){

-				UpdateReqCriticality(criticalityViewer,aplicabilityViewer, tviewer,subReq);

-			}

+			

 			EList<RefApplicability> reqApplicabilities = req.getApplicability();

-			UpdateCriticality(criticalityViewer, aplicabilityViewer, tviewer,reqApplicabilities);

+			UpdateCriticality(criticalityViewer, aplicabilityViewer, tviewer,reqApplicabilities,act,req);

+			

+			if(subReq.size()>0){

+				UpdateReqCriticality(criticalityViewer,aplicabilityViewer, tviewer,subReq,act);

+			}

 		}

 		

 	

 	}

-	public void UpdateCriticality(CheckboxTreeViewerExt criticalityViewer, CheckboxTreeViewerExt aplicabilityViewer,CheckboxTreeViewerExt tviewer,EList<RefApplicability> applicabilities){

+	public void UpdateCriticality(CheckboxTreeViewerExt criticalityViewer, CheckboxTreeViewerExt aplicabilityViewer,CheckboxTreeViewerExt tviewer,EList<RefApplicability> applicabilities, RefActivity act, RefRequirement req){

 		

+		//Is there is not applicabilities  related to the element,it will be checked if it's parent refActivity is checked

+		if(applicabilities.size()==0){		

+			if(req!=null){

+				tviewer.setChecked(req, tviewer.getChecked(act));

+			}

+		}

 		

 		Iterator<RefApplicability> applIterator = applicabilities.iterator();		

 		while(applIterator.hasNext()){

@@ -580,7 +590,7 @@
 			RefAssurableElement target = appli.getApplicTarget();

 			if (target!=null) {			

 				tviewer.setChecked(target, false);

-				tviewer.setChildrenStatus(target,false);

+				//tviewer.setChildrenStatus(target,false);

 				EList<RefCriticalityApplicability> critAppli = appli.getApplicCritic();

 				Iterator<RefCriticalityApplicability> critAppliIterator = critAppli.iterator();

 				while(critAppliIterator.hasNext()){

@@ -591,7 +601,7 @@
 					boolean statusApp =  aplicabilityViewer.getChecked(applicabilityLevel);

 					if(statusCrit && statusApp ){

 						tviewer.setChecked(target, true);

-						tviewer.setChildrenStatus(target,true);

+						//tviewer.setChildrenStatus(target,true);

 					}

 					

 					//ALC

@@ -607,6 +617,35 @@
 				}

 					

 			}	

+			else if (act!=null){

+				EList<RefCriticalityApplicability> critAppli = appli.getApplicCritic();

+				Iterator<RefCriticalityApplicability> critAppliIterator = critAppli.iterator();

+				while(critAppliIterator.hasNext()){

+					RefCriticalityApplicability critApp = critAppliIterator.next();

+					RefCriticalityLevel criticalityLevel = critApp.getCriticLevel();

+					RefApplicabilityLevel applicabilityLevel = critApp.getApplicLevel();

+					boolean statusCrit = criticalityViewer.getChecked(criticalityLevel);

+					boolean statusApp =  aplicabilityViewer.getChecked(applicabilityLevel);

+					if(statusCrit && statusApp ){						

+						tviewer.setChecked(act, true);						

+						//tviewer.setChildrenStatus(act,true);

+						if(req!=null){

+							tviewer.setChecked(req, true);						

+							//tviewer.setChildrenStatus(req,true);

+						}

+						

+					}

+					else{

+						tviewer.setChecked(act, false);

+						//tviewer.setChildrenStatus(act,false);

+						

+						if(req!=null){

+							tviewer.setChecked(req, false);						

+						//	tviewer.setChildrenStatus(req,false);

+						}

+					}

+				}

+			}

 		}

 

 	}

diff --git a/org.eclipse.opencert.infra.dashboard/META-INF/MANIFEST.MF b/org.eclipse.opencert.infra.dashboard/META-INF/MANIFEST.MF
index e59c480..470cebc 100644
--- a/org.eclipse.opencert.infra.dashboard/META-INF/MANIFEST.MF
+++ b/org.eclipse.opencert.infra.dashboard/META-INF/MANIFEST.MF
@@ -7,17 +7,17 @@
 Bundle-Vendor: Tecnalia
 Require-Bundle: org.eclipse.opencert.pkm.refframework.diagram;bundle-version="1.0.0",
  org.eclipse.amalgam.explorer.activity.ui;bundle-version="1.7.0",
- org.eclipse.ui.navigator;bundle-version="3.6.101",
  org.eclipse.sirius;bundle-version="4.1.4",
  org.apache.commons.lang;bundle-version="2.6.0",
- org.eclipse.ui.ide;bundle-version="3.12.3",
- org.eclipse.emf.common.ui;bundle-version="2.11.0",
- org.eclipse.ui.views.properties.tabbed;bundle-version="3.7.0",
  org.eclipse.papyrus.infra.onefile;bundle-version="2.0.0",
- org.eclipse.emf.cdo;bundle-version="4.5.0",
  org.eclipse.epf.authoring.ui;bundle-version="1.5.0",
  org.eclipse.opencert.apm.assurproj.wizards;bundle-version="1.0.0",
  org.polarsys.chess.wizards;bundle-version="0.9.0",
- org.eclipse.papyrus.sysml.modelexplorer;bundle-version="1.2.0"
+ org.eclipse.papyrus.sysml.diagram.requirement;bundle-version="2.0.0",
+ org.eclipse.papyrus.views.modelexplorer;bundle-version="2.1.0",
+ org.eclipse.papyrus.editor;bundle-version="1.3.0",
+ org.eclipse.papyrus.sysml.diagram.internalblock;bundle-version="2.0.0",
+ org.eclipse.papyrus.sysml.diagram.blockdefinition;bundle-version="2.0.0",
+ org.eclipse.papyrus.uml.profile;bundle-version="2.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.opencert.infra.dashboard/plugin.xml b/org.eclipse.opencert.infra.dashboard/plugin.xml
index c6defed..8e07d1b 100644
--- a/org.eclipse.opencert.infra.dashboard/plugin.xml
+++ b/org.eclipse.opencert.infra.dashboard/plugin.xml
@@ -342,9 +342,9 @@
                   id="org.eclipse.opencert.infra.dashboard.activity.create.chess.project"

                   image="icons/assuranceproject/chess_project_icon.png"

                   index="0"

-                  name="Create a CHESS project">

+                  name="Create a Papyrus CHESS project">

                <Description>

-                  Create a CHESS project.

+                  Create a Papyrus CHESS project.

                </Description>

             </Activity>

             <Activity

@@ -356,35 +356,41 @@
                </Description>

             </Activity>

             <Activity

+                  class="org.eclipse.opencert.infra.dashboard.pages.adapters.CreateNewChessRequirementDiagram"

                   id="org.eclipse.opencert.infra.dashboard.activity.specify.requirements.chess"

+                  image="icons/systemdesignanalysis/requirement_diagram.png"

                   index="2"

-                  name="Specify requirements in CHESS">

+                  name="Specify requirements in Papyrus CHESS">

                <Description>

-                  Specify requirements in CHESS.

+                  Specify requirements in Papyrus CHESS.

                </Description>

             </Activity>

             <Activity

+                  class="org.eclipse.opencert.infra.dashboard.pages.adapters.OpenImportUserModelDialogHyperLinkAdapter"

                   id="org.eclipse.opencert.infra.dashboard.activity.import.requirements.chess"

+                  image="icons/systemdesignanalysis/requirement_diagram.png"

                   index="3"

-                  name="Import requirements in CHESS">

+                  name="Import requirements in Papyrus CHESS">

                <Description>

-                  Import requirements in CHESS.

+                  Import requirements in Papyrus CHESS.

                </Description>

             </Activity>

             <Activity

+                  class="org.eclipse.opencert.infra.dashboard.pages.adapters.CreateNewChessBlockDefinitionDiagram"

                   id="org.eclipse.opencert.infra.dashboard.activity.create.system.components.chess"

+                  image="icons/systemdesignanalysis/block_definition_diagram.png"

                   index="4"

-                  name="Create system components in CHESS">

+                  name="Create system components in Papyrus CHESS">

                <Description>

-                  Create system components in CHESS.

+                  Create system components in Papyrus CHESS

                </Description>

             </Activity>

             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.import.savona.model"

                   index="5"

-                  name="Import a SAVONA model in CHESS">

+                  name="Import a SAVONA model in Papyrus CHESS">

                <Description>

-                  Import a SAVONA model in CHESS.

+                  Import a SAVONA model in Papyrus CHESS.

                </Description>

             </Activity>

          </Section>

@@ -408,9 +414,9 @@
             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.formalize.requirements.temporal.logic"

                   index="1"

-                  name="Formalize a requirement into temporal logics in CHESS">

+                  name="Formalize a requirement into temporal logics in Papyrus CHESS">

                <Description>

-                  Formalize a requirements into temporal logics in CHESS.

+                  Formalize a requirements into temporal logics in Papyrus CHESS.

                </Description>

             </Activity>

             <Activity

@@ -424,9 +430,9 @@
             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.define.contract.component.chess"

                   index="3"

-                  name="Define a contract for a component in CHESS">

+                  name="Define a contract for a component in Papyrus CHESS">

                <Description>

-                  Define a contract for a component in CHESS.

+                  Define a contract for a component in Papyrus CHESS.

                </Description>

             </Activity>

             <Activity

@@ -450,9 +456,9 @@
             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.decompose.component.chess"

                   index="0"

-                  name="Decompose a component in CHESS">

+                  name="Decompose a component in Papyrus CHESS">

                <Description>

-                  Decompose a component in CHESS.

+                  Decompose a component in Papyrus CHESS.

                </Description>

             </Activity>

             <Activity

@@ -466,9 +472,9 @@
             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.model.contracts.refinement.chess"

                   index="2"

-                  name="Model contracts refinement in CHESS">

+                  name="Model contracts refinement in Papyrus CHESS">

                <Description>

-                  Model contracts refinement in CHESS.

+                  Model contracts refinement in Papyrus CHESS.

                </Description>

             </Activity>

             <Activity

@@ -482,25 +488,25 @@
             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.apply.architectural.patterns.chess"

                   index="4"

-                  name="Apply architectural patterns in CHESS">

+                  name="Apply architectural patterns in Papyrus CHESS">

                <Description>

-                  Apply architectural patterns in CHESS.

+                  Apply architectural patterns in Papyrus CHESS.

                </Description>

             </Activity>

             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.specify.parameters.chess"

                   index="5"

-                  name="Specify parameters of the parameterized architecture in CHESS">

+                  name="Specify parameters of the parameterized architecture in Papyrus CHESS">

                <Description>

-                  Specify parameters of the parameterized architecture in CHESS.

+                  Specify parameters of the parameterized architecture in Papyrus CHESS.

                </Description>

             </Activity>

             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.instantiate.parameterized.architecture.chess"

                   index="6"

-                  name="Instantiate a parameterized architecture in CHESS">

+                  name="Instantiate a parameterized architecture in Papyrus CHESS">

                <Description>

-                  Instantiate a parameterized architecture in CHESS.

+                  Instantiate a parameterized architecture in Papyrus CHESS.

                </Description>

             </Activity>

          </Section>

@@ -516,25 +522,25 @@
             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.define.nominal.statemachine.chess"

                   index="0"

-                  name="Define a nominal state machine for a component in CHESS">

+                  name="Define a nominal state machine for a component in Papyrus CHESS">

                <Description>

-                  Define a nominal state machine for a component in CHESS.

+                  Define a nominal state machine for a component in Papyrus CHESS.

                </Description>

             </Activity>

             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.define.error.statemachine.chess"

                   index="1"

-                  name="Define an error state machine for a component in CHESS">

+                  name="Define an error state machine for a component in Papyrus CHESS">

                <Description>

-                  Define an error state machine for a component in CHESS.

+                  Define an error state machine for a component in Papyrus CHESS.

                </Description>

             </Activity>

             <Activity

                   id="org.eclipse.opencert.infra.dashboard.activity.define.failure.progation.rule.chess"

                   index="2"

-                  name="Define a failure propagation rule for a component in CHESS">

+                  name="Define a failure propagation rule for a component in Papyrus CHESS">

                <Description>

-                  Define a failure propagation rule for a component in CHESS.

+                  Define a failure propagation rule for a component in Papyrus CHESS.

                </Description>

             </Activity>

          </Section>