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);
+ }
+}