Merge branch 'change/7154/3'
diff --git a/org.eclipse.opencert.apm.assurproj.reuse/src/org/eclipse/opencert/apm/assurproj/reuse/views/ReuseAssistanceView.java b/org.eclipse.opencert.apm.assurproj.reuse/src/org/eclipse/opencert/apm/assurproj/reuse/views/ReuseAssistanceView.java
index c86c626..28a7096 100644
--- a/org.eclipse.opencert.apm.assurproj.reuse/src/org/eclipse/opencert/apm/assurproj/reuse/views/ReuseAssistanceView.java
+++ b/org.eclipse.opencert.apm.assurproj.reuse/src/org/eclipse/opencert/apm/assurproj/reuse/views/ReuseAssistanceView.java
Binary files differ
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/src/org/eclipse/opencert/infra/dashboard/pages/adapters/AbstractCreateNewChessDiagramHyperLinkAdapter.java b/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/AbstractCreateNewChessDiagramHyperLinkAdapter.java
index abe1926..e102ce9 100644
--- a/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/AbstractCreateNewChessDiagramHyperLinkAdapter.java
+++ b/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/AbstractCreateNewChessDiagramHyperLinkAdapter.java
@@ -1,125 +1,125 @@
-/*******************************************************************************

- * Copyright (c) 2018 ALL4TEC.

- *

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v2.0

- * which accompanies this distribution, and is available at

- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html

- *

- * SPDX-License-Identifier: EPL-2.0

- *

- * Contributors:

- *   Thanh Liem PHAN (ALL4TEC) - initial API and implementation

- *******************************************************************************/

-package org.eclipse.opencert.infra.dashboard.pages.adapters;

-

-import java.util.ArrayList;

-import java.util.List;

-import java.util.Objects;

-

-import org.eclipse.emf.ecore.EObject;

-import org.eclipse.opencert.infra.dashboard.helpers.ChessPapyrusHelper;

-import org.eclipse.opencert.infra.dashboard.helpers.EclipseHelper;

-import org.eclipse.papyrus.commands.Activator;

-import org.eclipse.papyrus.commands.ICreationCommand;

-import org.eclipse.papyrus.infra.core.resource.ModelSet;

-import org.eclipse.papyrus.infra.core.services.ServiceException;

-import org.eclipse.papyrus.infra.core.services.ServicesRegistry;

-import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor;

-import org.eclipse.papyrus.views.modelexplorer.ModelExplorerPage;

-import org.eclipse.papyrus.views.modelexplorer.ModelExplorerPageBookView;

-import org.eclipse.papyrus.views.modelexplorer.ModelExplorerView;

-import org.eclipse.ui.IViewPart;

-import org.eclipse.ui.PartInitException;

-import org.eclipse.ui.forms.events.HyperlinkAdapter;

-import org.eclipse.uml2.uml.Model;

-

-/**

- * A {@link HyperlinkAdapter} to create a new CHESS diagram.

- */

-public abstract class AbstractCreateNewChessDiagramHyperLinkAdapter

-		extends AbstractCreateNewChessElementHyperLinkAdapter {

-

-	/**

-	 * {@inheritDoc}

-	 *

-	 * Overridden to create a new diagram.

-	 */

-	@Override

-	protected void createChessElement() {

-		// Create a new diagram command

-		ICreationCommand vCreationCommand = getDiagramCreationCommand();

-

-		// Get the first opened Chess Papyrus editor

-		IMultiDiagramEditor vActivePapyrusEditor = (IMultiDiagramEditor) EclipseHelper.getFirstPapyrusDiagramEditorPart();

-		

-		// If there is one Chess graphical editor is opened,

-		// try to goto the right package and create the new diagram there

-		if (Objects.nonNull(vActivePapyrusEditor)) {

-			ServicesRegistry vRegistry = vActivePapyrusEditor.getServicesRegistry();

-

-			if (Objects.nonNull(vRegistry)) {

-				ModelSet vModelSet = null;

-				try {

-					vModelSet = vRegistry.getService(ModelSet.class);

-				} catch (ServiceException pException) {

-					Activator.log.error(pException);

-				}

-

-				if (Objects.nonNull(vModelSet)) {

-					// Get the root model

-					Model vRootModel = ChessPapyrusHelper.INSTANCE.getUmlModelFromModelSet(vModelSet);

-

-					// Get the target packageable element

-					org.eclipse.uml2.uml.PackageableElement vTargetElement = getTargetElement(vRootModel);

-

-					if (Objects.nonNull(vTargetElement)) {

-						// First goto the active Papyrus editor

-						EclipseHelper.getActiveWorkbenchPage().activate(vActivePapyrusEditor);

-

-						// Then select the target element before creating a new diagram

-						IViewPart vModelExplorer = null;

-						try {

-							vModelExplorer = EclipseHelper.getActiveWorkbenchPage().showView(MODEL_EXPLORER_VIEW_ID);

-						} catch (PartInitException pException) {

-							Activator.log.error(pException);

-						}

-

-						if (vModelExplorer instanceof ModelExplorerPageBookView) {

-							ModelExplorerPageBookView vMEPBView = (ModelExplorerPageBookView) vModelExplorer;

-

-							if (vMEPBView.getCurrentPage() instanceof ModelExplorerPage) {

-								ModelExplorerPage vMEPage = (ModelExplorerPage) vMEPBView.getCurrentPage();

-

-								ModelExplorerView vMEView = (ModelExplorerView) vMEPage.getViewer();

-								List<EObject> vSelectElements = new ArrayList<>();

-								vSelectElements.add(vTargetElement);

-								vMEView.revealSemanticElement(vSelectElements);

-							}

-

-							// Create the new diagram inside the target element

-							vCreationCommand.createDiagram(vModelSet, vTargetElement, null);

-						}

-					}

-				}

-			}

-		} else {

-			// Otherwise, no Chess graphical editor is already opened, ask user to open one

-			ChessPapyrusHelper.INSTANCE.openNoActivePapyrusEditorMessageBox();

-		}

-	}

-

-	/**

-	 * @return The creation command to create a diagram

-	 */

-	protected abstract ICreationCommand getDiagramCreationCommand();

-

-	/**

-	 * Get the target packageable element in which the new diagram will be created.

-	 *

-	 * @param pRootModel

-	 *            The root model

-	 * @return The target package

-	 */

-	protected abstract org.eclipse.uml2.uml.PackageableElement getTargetElement(Model pRootModel);

-}

+/*******************************************************************************
+ * Copyright (c) 2018 ALL4TEC.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Thanh Liem PHAN (ALL4TEC) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.opencert.infra.dashboard.pages.adapters;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.opencert.infra.dashboard.helpers.ChessPapyrusHelper;
+import org.eclipse.opencert.infra.dashboard.helpers.EclipseHelper;
+import org.eclipse.papyrus.commands.Activator;
+import org.eclipse.papyrus.commands.ICreationCommand;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor;
+import org.eclipse.papyrus.views.modelexplorer.ModelExplorerPage;
+import org.eclipse.papyrus.views.modelexplorer.ModelExplorerPageBookView;
+import org.eclipse.papyrus.views.modelexplorer.ModelExplorerView;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.forms.events.HyperlinkAdapter;
+import org.eclipse.uml2.uml.Model;
+
+/**
+ * A {@link HyperlinkAdapter} to create a new CHESS diagram.
+ */
+public abstract class AbstractCreateNewChessDiagramHyperLinkAdapter
+		extends AbstractCreateNewChessElementHyperLinkAdapter {
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * Overridden to create a new diagram.
+	 */
+	@Override
+	protected void createChessElement() {
+		// Create a new diagram command
+		ICreationCommand vCreationCommand = getDiagramCreationCommand();
+
+		// Get the first opened Chess Papyrus editor
+		IMultiDiagramEditor vActivePapyrusEditor = (IMultiDiagramEditor) EclipseHelper.getFirstPapyrusDiagramEditorPart();
+		
+		// If there is one Chess graphical editor is opened,
+		// try to goto the right package and create the new diagram there
+		if (Objects.nonNull(vActivePapyrusEditor)) {
+			ServicesRegistry vRegistry = vActivePapyrusEditor.getServicesRegistry();
+
+			if (Objects.nonNull(vRegistry)) {
+				ModelSet vModelSet = null;
+				try {
+					vModelSet = vRegistry.getService(ModelSet.class);
+				} catch (ServiceException pException) {
+					Activator.log.error(pException);
+				}
+
+				if (Objects.nonNull(vModelSet)) {
+					// Get the root model
+					Model vRootModel = ChessPapyrusHelper.INSTANCE.getUmlModelFromModelSet(vModelSet);
+
+					// Get the target packageable element
+					org.eclipse.uml2.uml.PackageableElement vTargetElement = getTargetElement(vRootModel);
+
+					if (Objects.nonNull(vTargetElement)) {
+						// First goto the active Papyrus editor
+						EclipseHelper.getActiveWorkbenchPage().activate(vActivePapyrusEditor);
+
+						// Then select the target element before creating a new diagram
+						IViewPart vModelExplorer = null;
+						try {
+							vModelExplorer = EclipseHelper.getActiveWorkbenchPage().showView(MODEL_EXPLORER_VIEW_ID);
+						} catch (PartInitException pException) {
+							Activator.log.error(pException);
+						}
+
+						if (vModelExplorer instanceof ModelExplorerPageBookView) {
+							ModelExplorerPageBookView vMEPBView = (ModelExplorerPageBookView) vModelExplorer;
+
+							if (vMEPBView.getCurrentPage() instanceof ModelExplorerPage) {
+								ModelExplorerPage vMEPage = (ModelExplorerPage) vMEPBView.getCurrentPage();
+
+								ModelExplorerView vMEView = (ModelExplorerView) vMEPage.getViewer();
+								List<EObject> vSelectElements = new ArrayList<>();
+								vSelectElements.add(vTargetElement);
+								vMEView.revealSemanticElement(vSelectElements);
+							}
+
+							// Create the new diagram inside the target element
+							vCreationCommand.createDiagram(vModelSet, vTargetElement, null);
+						}
+					}
+				}
+			}
+		} else {
+			// Otherwise, no Chess graphical editor is already opened, ask user to open one
+			ChessPapyrusHelper.INSTANCE.openNoActivePapyrusEditorMessageBox();
+		}
+	}
+
+	/**
+	 * @return The creation command to create a diagram
+	 */
+	protected abstract ICreationCommand getDiagramCreationCommand();
+
+	/**
+	 * Get the target packageable element in which the new diagram will be created.
+	 *
+	 * @param pRootModel
+	 *            The root model
+	 * @return The target package
+	 */
+	protected abstract org.eclipse.uml2.uml.PackageableElement getTargetElement(Model pRootModel);
+}
diff --git a/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/CreateNewChessBlockDefinitionDiagram.java b/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/CreateNewChessBlockDefinitionDiagram.java
index 18ef5b0..214663d 100644
--- a/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/CreateNewChessBlockDefinitionDiagram.java
+++ b/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/CreateNewChessBlockDefinitionDiagram.java
@@ -1,44 +1,44 @@
-/*******************************************************************************

- * Copyright (c) 2018 ALL4TEC.

- *

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v2.0

- * which accompanies this distribution, and is available at

- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html

- *

- * SPDX-License-Identifier: EPL-2.0

- *

- * Contributors:

- *   Thanh Liem PHAN (ALL4TEC) - initial API and implementation

- *******************************************************************************/

-package org.eclipse.opencert.infra.dashboard.pages.adapters;

-

-import org.eclipse.opencert.infra.dashboard.helpers.ChessPapyrusHelper;

-import org.eclipse.papyrus.commands.ICreationCommand;

-import org.eclipse.papyrus.sysml.diagram.blockdefinition.BlockDefinitionDiagramCreateCommand;

-import org.eclipse.ui.forms.events.HyperlinkAdapter;

-import org.eclipse.uml2.uml.Model;

-import org.eclipse.uml2.uml.PackageableElement;

-

-/**

- * A {@link HyperlinkAdapter} to create a new CHESS block definition diagram.

- */

-public class CreateNewChessBlockDefinitionDiagram extends AbstractCreateNewChessDiagramHyperLinkAdapter {

-

-	/**

-	 * {@inheritDoc}

-	 */

-	@Override

-	protected ICreationCommand getDiagramCreationCommand() {

-		return new BlockDefinitionDiagramCreateCommand();

-	}

-

-	/**

-	 * {@inheritDoc}

-	 */

-	@Override

-	protected PackageableElement getTargetElement(final Model pRootModel) {

-		return ChessPapyrusHelper.INSTANCE.getPackageFromModelByName(pRootModel,

-				ChessPapyrusHelper.MODEL_SYSTEM_VIEW_NAME);

-	}

-}

+/*******************************************************************************
+ * Copyright (c) 2018 ALL4TEC.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Thanh Liem PHAN (ALL4TEC) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.opencert.infra.dashboard.pages.adapters;
+
+import org.eclipse.opencert.infra.dashboard.helpers.ChessPapyrusHelper;
+import org.eclipse.papyrus.commands.ICreationCommand;
+import org.eclipse.papyrus.sysml.diagram.blockdefinition.BlockDefinitionDiagramCreateCommand;
+import org.eclipse.ui.forms.events.HyperlinkAdapter;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.PackageableElement;
+
+/**
+ * A {@link HyperlinkAdapter} to create a new CHESS block definition diagram.
+ */
+public class CreateNewChessBlockDefinitionDiagram extends AbstractCreateNewChessDiagramHyperLinkAdapter {
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected ICreationCommand getDiagramCreationCommand() {
+		return new BlockDefinitionDiagramCreateCommand();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected PackageableElement getTargetElement(final Model pRootModel) {
+		return ChessPapyrusHelper.INSTANCE.getPackageFromModelByName(pRootModel,
+				ChessPapyrusHelper.MODEL_SYSTEM_VIEW_NAME);
+	}
+}
diff --git a/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/CreateNewChessRequirementDiagram.java b/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/CreateNewChessRequirementDiagram.java
index b8edda5..bfa8a7e 100644
--- a/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/CreateNewChessRequirementDiagram.java
+++ b/org.eclipse.opencert.infra.dashboard/src/org/eclipse/opencert/infra/dashboard/pages/adapters/CreateNewChessRequirementDiagram.java
@@ -1,44 +1,44 @@
-/*******************************************************************************

- * Copyright (c) 2018 ALL4TEC.

- *

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v2.0

- * which accompanies this distribution, and is available at

- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html

- *

- * SPDX-License-Identifier: EPL-2.0

- *

- * Contributors:

- *   Thanh Liem PHAN (ALL4TEC) - initial API and implementation

- *******************************************************************************/

-package org.eclipse.opencert.infra.dashboard.pages.adapters;

-

-import org.eclipse.opencert.infra.dashboard.helpers.ChessPapyrusHelper;

-import org.eclipse.papyrus.commands.ICreationCommand;

-import org.eclipse.papyrus.sysml.diagram.requirement.RequirementDiagramCreateCommand;

-import org.eclipse.ui.forms.events.HyperlinkAdapter;

-import org.eclipse.uml2.uml.Model;

-import org.eclipse.uml2.uml.PackageableElement;

-

-/**

- * A {@link HyperlinkAdapter} to create a new CHESS requirement diagram.

- */

-public class CreateNewChessRequirementDiagram extends AbstractCreateNewChessDiagramHyperLinkAdapter {

-

-	/**

-	 * {@inheritDoc}

-	 */

-	@Override

-	protected ICreationCommand getDiagramCreationCommand() {

-		return new RequirementDiagramCreateCommand();

-	}

-

-	/**

-	 * {@inheritDoc}

-	 */

-	@Override

-	protected PackageableElement getTargetElement(final Model pRootModel) {

-		return ChessPapyrusHelper.INSTANCE.getPackageFromModelByName(pRootModel,

-				ChessPapyrusHelper.MODEL_REQUIREMENT_VIEW_NAME);

-	}

-}

+/*******************************************************************************
+ * Copyright (c) 2018 ALL4TEC.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Thanh Liem PHAN (ALL4TEC) - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.opencert.infra.dashboard.pages.adapters;
+
+import org.eclipse.opencert.infra.dashboard.helpers.ChessPapyrusHelper;
+import org.eclipse.papyrus.commands.ICreationCommand;
+import org.eclipse.papyrus.sysml.diagram.requirement.RequirementDiagramCreateCommand;
+import org.eclipse.ui.forms.events.HyperlinkAdapter;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.PackageableElement;
+
+/**
+ * A {@link HyperlinkAdapter} to create a new CHESS requirement diagram.
+ */
+public class CreateNewChessRequirementDiagram extends AbstractCreateNewChessDiagramHyperLinkAdapter {
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected ICreationCommand getDiagramCreationCommand() {
+		return new RequirementDiagramCreateCommand();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	protected PackageableElement getTargetElement(final Model pRootModel) {
+		return ChessPapyrusHelper.INSTANCE.getPackageFromModelByName(pRootModel,
+				ChessPapyrusHelper.MODEL_REQUIREMENT_VIEW_NAME);
+	}
+}