package org.js.model.workflow.actions; import org.eclipse.emf.common.util.EList; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jwt.we.conf.model.AspectInstance; import org.eclipse.swt.widgets.Display; import org.js.model.rbac.AccessControlModel; import org.js.model.rbac.Role; import org.js.model.workflow.ACMConnector; import org.js.model.workflow.StakeholderTypes; import org.js.model.workflow.ui.StakeholderTypesUIShell; import org.js.model.workflow.util.WorkflowConfUtil; public class SetStakeholerTypes extends MyAction { public SetStakeholerTypes() { } @Override public void run() { initialRes(); selectTypes(); save(); refresh(); } public void selectTypes() { AspectInstance acmAspect = WorkflowConfUtil.getAspectInstance( workflowModel, WorkflowConfUtil.ACM_ASPECT); StakeholderTypes shTypesAspect = (StakeholderTypes) WorkflowConfUtil .getAspectInstance(workflowModel, WorkflowConfUtil.STAKHOLDERTYPES_ASPECT); if (acmAspect == null) { String info = "Please import rbac model file."; MessageDialog.openInformation(getActiveShell(), "Warning", info); } else { AccessControlModel acm = ((ACMConnector) acmAspect).getAcmref(); if (shTypesAspect == null) { shTypesAspect = (StakeholderTypes) WorkflowConfUtil .addAspectInstance(workflowModel, WorkflowConfUtil.STAKHOLDERTYPES_ASPECT); } EList<Role> stakeholderhTypes = shTypesAspect.getStakeholderTypes(); try { Display display = Display.getDefault(); StakeholderTypesUIShell shell = new StakeholderTypesUIShell( display, acm,stakeholderhTypes); shell.open(); shell.layout(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } } catch (Exception e) { e.printStackTrace(); } } } }