Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java')
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java1338
1 files changed, 669 insertions, 669 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java
index 7259d0c50d5..4559511a5ab 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java
@@ -1,673 +1,673 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Boeing.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Boeing - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.osee.ats.editor;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.Level;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.osee.ats.actions.AddNoteAction;
-import org.eclipse.osee.ats.actions.CopyActionDetailsAction;
-import org.eclipse.osee.ats.actions.EmailActionAction;
-import org.eclipse.osee.ats.actions.FavoriteAction;
-import org.eclipse.osee.ats.actions.OpenInArtifactEditorAction;
-import org.eclipse.osee.ats.actions.OpenInAtsWorldAction;
-import org.eclipse.osee.ats.actions.OpenParentAction;
-import org.eclipse.osee.ats.actions.OpenTeamDefinitionAction;
-import org.eclipse.osee.ats.actions.OpenVersionArtifactAction;
-import org.eclipse.osee.ats.actions.PrivilegedEditAction;
-import org.eclipse.osee.ats.actions.ReloadAction;
-import org.eclipse.osee.ats.actions.ResourceHistoryAction;
-import org.eclipse.osee.ats.actions.ShowChangeReportAction;
-import org.eclipse.osee.ats.actions.ShowMergeManagerAction;
-import org.eclipse.osee.ats.artifact.AtsAttributeTypes;
-import org.eclipse.osee.ats.artifact.GoalArtifact;
-import org.eclipse.osee.ats.artifact.NoteItem;
-import org.eclipse.osee.ats.artifact.StateMachineArtifact;
-import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact;
-import org.eclipse.osee.ats.config.AtsBulkLoad;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.AtsUtil;
-import org.eclipse.osee.ats.workflow.AtsWorkPage;
-import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.operation.Operations;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.plugin.core.IActionable;
-import org.eclipse.osee.framework.ui.plugin.OseeUiActions;
-import org.eclipse.osee.framework.ui.plugin.util.Result;
-import org.eclipse.osee.framework.ui.skynet.ArtifactImageManager;
-import org.eclipse.osee.framework.ui.skynet.XFormToolkit;
-import org.eclipse.osee.framework.ui.skynet.artifact.annotation.AnnotationComposite;
-import org.eclipse.osee.framework.ui.skynet.artifact.editor.parts.MessageSummaryNote;
-import org.eclipse.osee.framework.ui.skynet.util.FormsUtil;
-import org.eclipse.osee.framework.ui.skynet.util.LoadingComposite;
-import org.eclipse.osee.framework.ui.skynet.util.OseeDictionary;
-import org.eclipse.osee.framework.ui.skynet.widgets.IArtifactStoredWidget;
-import org.eclipse.osee.framework.ui.skynet.widgets.XDate;
-import org.eclipse.osee.framework.ui.swt.ALayout;
-import org.eclipse.osee.framework.ui.swt.Displays;
-import org.eclipse.osee.framework.ui.swt.ExceptionComposite;
-import org.eclipse.osee.framework.ui.swt.IDirtiableEditor;
-import org.eclipse.osee.framework.ui.swt.Widgets;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.IMessage;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * @author Donald G. Dunne
- */
-public class SMAWorkFlowTab extends FormPage implements IActionable {
- private final StateMachineArtifact sma;
- private final ArrayList<SMAWorkFlowSection> sections = new ArrayList<SMAWorkFlowSection>();
- private final XFormToolkit toolkit;
- private final List<AtsWorkPage> atsWorkPages = new ArrayList<AtsWorkPage>();
- private ScrolledForm scrolledForm;
- private final Integer HEADER_COMP_COLUMNS = 4;
- private static Map<String, Integer> guidToScrollLocation = new HashMap<String, Integer>();
- private SMARelationsHyperlinkComposite smaRelationsComposite;
- private IManagedForm managedForm;
- private Composite bodyComp;
- private Composite atsBody;
- private SMAActionableItemHeader actionableItemHeader;
- private SMAWorkflowMetricsHeader workflowMetricsHeader;
- private SMADetailsSection smaDetailsSection;
- private SMARelationsSection smaRelationsSection;
- private SMAOperationsSection smaOperationsSection;
- private SMAGoalMembersSection smaGoalMembersSection;
- private SMAHistorySection smaHistorySection;
- private LoadingComposite loadingComposite;
- private static String PRIVILEGED_EDIT = "(Priviledged Edit Enabled)";
-
- public SMAWorkFlowTab(StateMachineArtifact sma) {
- super(sma.getEditor(), "overview", "Workflow");
- this.sma = sma;
- toolkit = sma.getEditor().getToolkit();
- }
-
- @Override
- protected void createFormContent(IManagedForm managedForm) {
- super.createFormContent(managedForm);
-
- this.managedForm = managedForm;
- try {
- scrolledForm = managedForm.getForm();
- scrolledForm.addDisposeListener(new DisposeListener() {
- @Override
- public void widgetDisposed(DisposeEvent e) {
- storeScrollLocation();
- }
- });
- updateTitleBar();
-
- bodyComp = managedForm.getForm().getBody();
- GridLayout gridLayout = new GridLayout(1, false);
- bodyComp.setLayout(gridLayout);
- GridData gd = new GridData(SWT.LEFT, SWT.LEFT, true, false);
- gd.widthHint = 300;
- bodyComp.setLayoutData(gd);
-
- setLoading(true);
- if (sma.getHelpContext() != null) {
- AtsPlugin.getInstance().setHelp(scrolledForm, sma.getHelpContext(), "org.eclipse.osee.ats.help.ui");
- }
-
- refreshData();
-
- } catch (Exception ex) {
- handleException(ex);
- }
- }
-
- private void updateTitleBar() throws OseeCoreException {
- String titleString = sma.getEditor().getTitleStr();
- String displayableTitle = Strings.escapeAmpersands(titleString);
- scrolledForm.setText(displayableTitle);
- scrolledForm.setImage(ArtifactImageManager.getImage(sma));
- }
-
- @Override
- public void showBusy(boolean busy) {
- super.showBusy(busy);
- if (Widgets.isAccessible(getManagedForm().getForm())) {
- getManagedForm().getForm().getForm().setBusy(busy);
- }
- }
-
- public void refreshData() {
+/*******************************************************************************
+ * Copyright (c) 2004, 2007 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.osee.ats.editor;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.IJobChangeEvent;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.core.runtime.jobs.JobChangeAdapter;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.osee.ats.actions.AddNoteAction;
+import org.eclipse.osee.ats.actions.CopyActionDetailsAction;
+import org.eclipse.osee.ats.actions.EmailActionAction;
+import org.eclipse.osee.ats.actions.FavoriteAction;
+import org.eclipse.osee.ats.actions.OpenInArtifactEditorAction;
+import org.eclipse.osee.ats.actions.OpenInAtsWorldAction;
+import org.eclipse.osee.ats.actions.OpenParentAction;
+import org.eclipse.osee.ats.actions.OpenTeamDefinitionAction;
+import org.eclipse.osee.ats.actions.OpenVersionArtifactAction;
+import org.eclipse.osee.ats.actions.PrivilegedEditAction;
+import org.eclipse.osee.ats.actions.ReloadAction;
+import org.eclipse.osee.ats.actions.ResourceHistoryAction;
+import org.eclipse.osee.ats.actions.ShowChangeReportAction;
+import org.eclipse.osee.ats.actions.ShowMergeManagerAction;
+import org.eclipse.osee.ats.artifact.AtsAttributeTypes;
+import org.eclipse.osee.ats.artifact.GoalArtifact;
+import org.eclipse.osee.ats.artifact.NoteItem;
+import org.eclipse.osee.ats.artifact.StateMachineArtifact;
+import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.config.AtsBulkLoad;
+import org.eclipse.osee.ats.internal.AtsPlugin;
+import org.eclipse.osee.ats.util.AtsUtil;
+import org.eclipse.osee.ats.workflow.AtsWorkPage;
+import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.core.operation.Operations;
+import org.eclipse.osee.framework.jdk.core.util.Strings;
+import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.IActionable;
+import org.eclipse.osee.framework.ui.plugin.OseeUiActions;
+import org.eclipse.osee.framework.ui.plugin.util.Result;
+import org.eclipse.osee.framework.ui.skynet.ArtifactImageManager;
+import org.eclipse.osee.framework.ui.skynet.XFormToolkit;
+import org.eclipse.osee.framework.ui.skynet.artifact.annotation.AnnotationComposite;
+import org.eclipse.osee.framework.ui.skynet.artifact.editor.parts.MessageSummaryNote;
+import org.eclipse.osee.framework.ui.skynet.util.FormsUtil;
+import org.eclipse.osee.framework.ui.skynet.util.LoadingComposite;
+import org.eclipse.osee.framework.ui.skynet.util.OseeDictionary;
+import org.eclipse.osee.framework.ui.skynet.widgets.IArtifactStoredWidget;
+import org.eclipse.osee.framework.ui.skynet.widgets.XDate;
+import org.eclipse.osee.framework.ui.swt.ALayout;
+import org.eclipse.osee.framework.ui.swt.Displays;
+import org.eclipse.osee.framework.ui.swt.ExceptionComposite;
+import org.eclipse.osee.framework.ui.swt.IDirtiableEditor;
+import org.eclipse.osee.framework.ui.swt.Widgets;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.IMessage;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.events.HyperlinkAdapter;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.progress.UIJob;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class SMAWorkFlowTab extends FormPage implements IActionable {
+ private final StateMachineArtifact sma;
+ private final ArrayList<SMAWorkFlowSection> sections = new ArrayList<SMAWorkFlowSection>();
+ private final XFormToolkit toolkit;
+ private final List<AtsWorkPage> atsWorkPages = new ArrayList<AtsWorkPage>();
+ private ScrolledForm scrolledForm;
+ private final Integer HEADER_COMP_COLUMNS = 4;
+ private static Map<String, Integer> guidToScrollLocation = new HashMap<String, Integer>();
+ private SMARelationsHyperlinkComposite smaRelationsComposite;
+ private IManagedForm managedForm;
+ private Composite bodyComp;
+ private Composite atsBody;
+ private SMAActionableItemHeader actionableItemHeader;
+ private SMAWorkflowMetricsHeader workflowMetricsHeader;
+ private SMADetailsSection smaDetailsSection;
+ private SMARelationsSection smaRelationsSection;
+ private SMAOperationsSection smaOperationsSection;
+ private SMAGoalMembersSection smaGoalMembersSection;
+ private SMAHistorySection smaHistorySection;
+ private LoadingComposite loadingComposite;
+ private static String PRIVILEGED_EDIT = "(Priviledged Edit Enabled)";
+
+ public SMAWorkFlowTab(StateMachineArtifact sma) {
+ super(sma.getEditor(), "overview", "Workflow");
+ this.sma = sma;
+ toolkit = sma.getEditor().getToolkit();
+ }
+
+ @Override
+ protected void createFormContent(IManagedForm managedForm) {
+ super.createFormContent(managedForm);
+
+ this.managedForm = managedForm;
+ try {
+ scrolledForm = managedForm.getForm();
+ scrolledForm.addDisposeListener(new DisposeListener() {
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ storeScrollLocation();
+ }
+ });
+ updateTitleBar();
+
+ bodyComp = managedForm.getForm().getBody();
+ GridLayout gridLayout = new GridLayout(1, false);
+ bodyComp.setLayout(gridLayout);
+ GridData gd = new GridData(SWT.LEFT, SWT.LEFT, true, false);
+ gd.widthHint = 300;
+ bodyComp.setLayoutData(gd);
+
+ setLoading(true);
+ if (sma.getHelpContext() != null) {
+ AtsPlugin.getInstance().setHelp(scrolledForm, sma.getHelpContext(), "org.eclipse.osee.ats.help.ui");
+ }
+
+ refreshData();
+
+ } catch (Exception ex) {
+ handleException(ex);
+ }
+ }
+
+ private void updateTitleBar() throws OseeCoreException {
+ String titleString = sma.getEditor().getTitleStr();
+ String displayableTitle = Strings.escapeAmpersands(titleString);
+ scrolledForm.setText(displayableTitle);
+ scrolledForm.setImage(ArtifactImageManager.getImage(sma));
+ }
+
+ @Override
+ public void showBusy(boolean busy) {
+ super.showBusy(busy);
+ if (Widgets.isAccessible(getManagedForm().getForm())) {
+ getManagedForm().getForm().getForm().setBusy(busy);
+ }
+ }
+
+ public void refreshData() {
Operations.executeAsJob(AtsBulkLoad.getConfigLoadingOperation(), true, Job.LONG,
new ReloadJobChangeAdapter(sma.getEditor()));
- // Don't put in operation cause doesn't have to be loaded before editor displays
- OseeDictionary.load();
- }
- private final class ReloadJobChangeAdapter extends JobChangeAdapter {
-
- private final IDirtiableEditor editor;
-
- private ReloadJobChangeAdapter(IDirtiableEditor editor) {
- this.editor = editor;
- showBusy(true);
- }
-
- @Override
- public void scheduled(IJobChangeEvent event) {
- super.scheduled(event);
- }
-
- @Override
- public void aboutToRun(IJobChangeEvent event) {
- super.aboutToRun(event);
- }
-
- @Override
- public void done(IJobChangeEvent event) {
- super.done(event);
- Job job = new UIJob("Draw Workflow Tab") {
-
- @Override
- public IStatus runInUIThread(IProgressMonitor monitor) {
- try {
- updateTitleBar();
- refreshToolbar();
- setLoading(false);
- createAtsBody();
- addMessageDecoration(scrolledForm);
- FormsUtil.addHeadingGradient(toolkit, scrolledForm, true);
- editor.onDirtied();
- } catch (OseeCoreException ex) {
- handleException(ex);
- } finally {
- showBusy(false);
- }
- return Status.OK_STATUS;
- }
- };
- Operations.scheduleJob(job, false, Job.SHORT, null);
- }
- }
-
- private void handleException(Exception ex) {
- setLoading(false);
- if (Widgets.isAccessible(atsBody)) {
- atsBody.dispose();
- }
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- new ExceptionComposite(bodyComp, ex);
- bodyComp.layout();
- }
-
- private void setLoading(boolean set) {
- if (set) {
- loadingComposite = new LoadingComposite(bodyComp);
- bodyComp.layout();
- } else {
- if (Widgets.isAccessible(loadingComposite)) {
- loadingComposite.dispose();
- }
- }
- showBusy(set);
- }
-
- private void createAtsBody() throws OseeCoreException {
- if (Widgets.isAccessible(atsBody)) {
- atsBody.dispose();
- }
- atsBody = toolkit.createComposite(bodyComp);
- atsBody.setLayoutData(new GridData(GridData.FILL_BOTH));
- atsBody.setLayout(new GridLayout(1, false));
-
- createHeaderSection(sma.getCurrentAtsWorkPage());
- createGoalSection();
- createPageSections();
- createHistorySection();
- createRelationsSection();
- createOperationsSection();
- createDetailsSection();
-
- atsBody.layout();
- atsBody.setFocus();
- // Jump to scroll location if set
- Integer selection = guidToScrollLocation.get(sma.getGuid());
- if (selection != null) {
- JumpScrollbarJob job = new JumpScrollbarJob("");
- job.schedule(500);
- }
-
- }
-
- private void createDetailsSection() {
- try {
- smaDetailsSection = new SMADetailsSection(sma.getEditor(), atsBody, toolkit, SWT.NONE);
- managedForm.addPart(smaDetailsSection);
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- }
-
- private void createOperationsSection() {
- try {
- smaOperationsSection = new SMAOperationsSection(sma.getEditor(), atsBody, toolkit, SWT.NONE);
- managedForm.addPart(smaOperationsSection);
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- }
-
- private void createRelationsSection() {
- try {
- smaRelationsSection = new SMARelationsSection(sma.getEditor(), atsBody, toolkit, SWT.NONE);
- managedForm.addPart(smaRelationsSection);
-
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- }
-
- private void createHistorySection() {
- try {
- smaHistorySection = new SMAHistorySection(sma.getEditor(), atsBody, toolkit, SWT.NONE);
- managedForm.addPart(smaHistorySection);
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- }
-
- private void createGoalSection() {
- try {
- if (sma instanceof GoalArtifact) {
- smaGoalMembersSection = new SMAGoalMembersSection(sma.getEditor(), atsBody, toolkit, SWT.NONE);
- managedForm.addPart(smaGoalMembersSection);
- }
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- }
-
- private void createPageSections() {
- try {
- // Only display current or past states
- for (AtsWorkPage atsWorkPage : sma.getAtsWorkPages()) {
- try {
- if (sma.isCurrentState(atsWorkPage.getName()) || sma.getStateMgr().isStateVisited(atsWorkPage.getName())) {
- // Don't show completed or cancelled state if not currently those state
- if (atsWorkPage.isCompletePage() && !sma.isCompleted()) {
- continue;
- }
- if (atsWorkPage.isCancelledPage() && !sma.isCancelled()) {
- continue;
- }
- SMAWorkFlowSection section = new SMAWorkFlowSection(atsBody, toolkit, SWT.NONE, atsWorkPage, sma);
- managedForm.addPart(section);
- control = section.getMainComp();
- sections.add(section);
- atsWorkPages.add(atsWorkPage);
- }
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- }
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- }
-
- private void createHeaderSection(AtsWorkPage currentAtsWorkPage) {
- Composite headerComp = toolkit.createComposite(atsBody);
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.widthHint = 100;
- headerComp.setLayoutData(gd);
- headerComp.setLayout(ALayout.getZeroMarginLayout(1, false));
- // mainComp.setBackground(Displays.getSystemColor(SWT.COLOR_RED));
-
- // Display relations
- try {
- createCurrentStateAndTeamHeaders(headerComp, toolkit);
- createTargetVersionAndAssigneeHeader(headerComp, currentAtsWorkPage, toolkit);
-
- createLatestHeader(headerComp, toolkit);
- if (sma.isTeamWorkflow()) {
- actionableItemHeader = new SMAActionableItemHeader(headerComp, toolkit, sma);
- }
- workflowMetricsHeader = new SMAWorkflowMetricsHeader(headerComp, toolkit, sma);
- createSMANotesHeader(headerComp, toolkit, sma, HEADER_COMP_COLUMNS);
- createStateNotesHeader(headerComp, toolkit, sma, HEADER_COMP_COLUMNS, null);
- createAnnotationsHeader(headerComp, toolkit);
-
- sections.clear();
- atsWorkPages.clear();
-
- if (SMARelationsHyperlinkComposite.relationExists(sma)) {
- smaRelationsComposite = new SMARelationsHyperlinkComposite(atsBody, toolkit, SWT.NONE);
- smaRelationsComposite.create(sma);
- }
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- }
-
- protected boolean isShowTargetedVersion() throws OseeCoreException {
- return sma.isTargetedVersionable();
- }
-
- private void createTargetVersionAndAssigneeHeader(Composite parent, AtsWorkPage page, XFormToolkit toolkit) throws OseeCoreException {
- boolean isShowTargetedVersion = isShowTargetedVersion();
- boolean isCurrentNonCompleteCanceledState = page.isCurrentNonCompleteCancelledState(sma);
- if (!isShowTargetedVersion && !isCurrentNonCompleteCanceledState) {
- return;
- }
-
- Composite comp = toolkit.createContainer(parent, 6);
- comp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- comp.setLayout(ALayout.getZeroMarginLayout(6, false));
-
- // Targeted Version
- if (isShowTargetedVersion) {
- new SMATargetedVersionHeader(comp, SWT.NONE, sma, toolkit);
- toolkit.createLabel(comp, " ");
- }
-
- // Create Privileged Edit label
- if (sma.getEditor().isPriviledgedEditModeEnabled()) {
- Label label = toolkit.createLabel(comp, PRIVILEGED_EDIT);
- label.setForeground(Displays.getSystemColor(SWT.COLOR_RED));
- label.setToolTipText("Priviledged Edit Mode is Enabled. Editing any field in any state is authorized. Select icon to disable");
- }
-
- // Current Assignees
- if (isCurrentNonCompleteCanceledState) {
- boolean editable = !sma.isCancelledOrCompleted() && !sma.isReadOnly() &&
- // and access control writeable
- sma.isAccessControlWrite() && //
-
- (SMAWorkFlowSection.isEditable(sma, page) || //
- // page is define to allow anyone to edit
- sma.getWorkPageDefinition().hasWorkRule(AtsWorkDefinitions.RuleWorkItemId.atsAllowAssigneeToAll.name()) ||
- // team definition has allowed anyone to edit
- sma.teamDefHasWorkRule(AtsWorkDefinitions.RuleWorkItemId.atsAllowAssigneeToAll.name()));
-
- new SMAAssigneesHeader(comp, SWT.NONE, sma, toolkit, editable);
- }
- }
-
- private void addMessageDecoration(ScrolledForm form) {
- form.getForm().addMessageHyperlinkListener(new HyperlinkAdapter() {
-
- @Override
- public void linkActivated(HyperlinkEvent e) {
- String title = e.getLabel();
- Object href = e.getHref();
- if (href instanceof IMessage[]) {
- Point noteLocation = ((Control) e.widget).toDisplay(0, 0);
- noteLocation.x += 10;
- noteLocation.y += 10;
-
- MessageSummaryNote note = new MessageSummaryNote(getManagedForm(), title, (IMessage[]) href);
- note.setLocation(noteLocation);
- note.open();
- }
- }
-
- });
- }
-
- private void refreshToolbar() throws OseeCoreException {
- IToolBarManager toolBarMgr = scrolledForm.getToolBarManager();
- toolBarMgr.removeAll();
-
- if (sma.isTeamWorkflow() && (((TeamWorkFlowArtifact) sma).getBranchMgr().isCommittedBranchExists() || ((TeamWorkFlowArtifact) sma).getBranchMgr().isWorkingBranchInWork())) {
- toolBarMgr.add(new ShowMergeManagerAction((TeamWorkFlowArtifact) sma));
- toolBarMgr.add(new ShowChangeReportAction((TeamWorkFlowArtifact) sma));
- }
- toolBarMgr.add(new FavoriteAction(sma.getEditor()));
- if (sma.getParentSMA() != null) {
- toolBarMgr.add(new OpenParentAction(sma));
- }
- toolBarMgr.add(new EmailActionAction(sma.getEditor()));
- toolBarMgr.add(new AddNoteAction(sma));
- toolBarMgr.add(new OpenInAtsWorldAction(sma));
- if (AtsUtil.isAtsAdmin()) {
- toolBarMgr.add(new OpenInArtifactEditorAction(sma.getEditor()));
- }
- toolBarMgr.add(new OpenVersionArtifactAction(sma));
- toolBarMgr.add(new OpenTeamDefinitionAction(sma));
- toolBarMgr.add(new CopyActionDetailsAction(sma));
- toolBarMgr.add(new PrivilegedEditAction(sma));
- toolBarMgr.add(new ResourceHistoryAction(sma));
- toolBarMgr.add(new ReloadAction(sma));
-
- OseeUiActions.addButtonToEditorToolBar(sma.getEditor(), this, AtsPlugin.getInstance(),
- scrolledForm.getToolBarManager(), SMAEditor.EDITOR_ID, "ATS Editor");
-
- scrolledForm.updateToolBar();
- }
-
- public Result isXWidgetDirty() throws OseeCoreException {
- for (SMAWorkFlowSection section : sections) {
- Result result = section.isXWidgetDirty();
- if (result.isTrue()) {
- return result;
- }
- }
- return Result.FalseResult;
- }
-
- public Result isXWidgetSavable() {
- for (SMAWorkFlowSection section : sections) {
- Result result = section.isXWidgetSavable();
- if (result.isFalse()) {
- return result;
- }
- }
- return Result.TrueResult;
- }
-
- public void saveXWidgetToArtifact() throws OseeCoreException {
- List<IArtifactStoredWidget> artWidgets = new ArrayList<IArtifactStoredWidget>();
- // Collect all dirty widgets first (so same attribute shown on different sections don't colide
- for (SMAWorkFlowSection section : sections) {
- section.getDirtyIArtifactWidgets(artWidgets);
- }
- for (IArtifactStoredWidget widget : artWidgets) {
- widget.saveToArtifact();
- }
- }
-
- @Override
- public void dispose() {
- if (actionableItemHeader != null) {
- actionableItemHeader.dispose();
- }
- if (workflowMetricsHeader != null) {
- workflowMetricsHeader.dispose();
- }
- if (smaDetailsSection != null) {
- smaDetailsSection.dispose();
- }
- if (smaHistorySection != null) {
- smaHistorySection.dispose();
- }
- if (smaRelationsSection != null) {
- smaRelationsSection.dispose();
- }
- if (smaGoalMembersSection != null) {
- smaGoalMembersSection.dispose();
- }
- for (SMAWorkFlowSection section : sections) {
- section.dispose();
- }
-
- if (toolkit != null) {
- toolkit.dispose();
- }
- }
-
- @Override
- public String getActionDescription() {
- return "Workflow Tab";
- }
-
- private Control control = null;
-
- private void storeScrollLocation() {
- if (scrolledForm != null) {
- Integer selection = scrolledForm.getVerticalBar().getSelection();
- // System.out.println("Storing selection => " + selection);
- guidToScrollLocation.put(sma.getGuid(), selection);
- }
- }
-
- private class JumpScrollbarJob extends Job {
- public JumpScrollbarJob(String name) {
- super(name);
- }
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- Displays.ensureInDisplayThread(new Runnable() {
- @Override
- public void run() {
- Integer selection = guidToScrollLocation.get(sma.getGuid());
- // System.out.println("Restoring selection => " + selection);
-
- // Find the ScrolledComposite operating on the control.
- ScrolledComposite sComp = null;
- if (control == null || control.isDisposed()) {
- return;
- }
- Composite parent = control.getParent();
- while (parent != null) {
- if (parent instanceof ScrolledComposite) {
- sComp = (ScrolledComposite) parent;
- break;
- }
- parent = parent.getParent();
- }
-
- if (sComp != null) {
- sComp.setOrigin(0, selection);
- }
- }
- });
- return Status.OK_STATUS;
-
- }
- }
-
- private void createCurrentStateAndTeamHeaders(Composite comp, XFormToolkit toolkit) {
- Composite topLineComp = new Composite(comp, SWT.NONE);
- topLineComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- topLineComp.setLayout(ALayout.getZeroMarginLayout(3, false));
- toolkit.adapt(topLineComp);
-
- try {
- FormsUtil.createLabelText(toolkit, topLineComp, "Current State: ", sma.getStateMgr().getCurrentStateName());
- FormsUtil.createLabelText(toolkit, topLineComp, "Created: ",
- XDate.getDateStr(sma.getLog().getCreationDate(), XDate.MMDDYYHHMM));
- } catch (OseeCoreException ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
-
- new SMAOriginatorHeader(topLineComp, SWT.NONE, sma, toolkit);
-
- if (sma.isTeamWorkflow()) {
- FormsUtil.createLabelText(toolkit, topLineComp, "Team: ", ((TeamWorkFlowArtifact) sma).getTeamName());
- }
- FormsUtil.createLabelText(toolkit, topLineComp, sma.getArtifactSuperTypeName() + "Id: ", sma.getHumanReadableId());
-
- try {
- if (Strings.isValid(sma.getPcrId())) {
- FormsUtil.createLabelText(toolkit, topLineComp, " Id: ", sma.getPcrId());
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- }
-
- private void createLatestHeader(Composite comp, XFormToolkit toolkit) {
- if (sma.isHistoricalVersion()) {
- Label label =
- toolkit.createLabel(
- comp,
- "This is a historical version of this " + sma.getArtifactTypeName() + " and can not be edited; Select \"Open Latest\" to view/edit latest version.");
- label.setForeground(Displays.getSystemColor(SWT.COLOR_RED));
- }
- }
-
- private void createAnnotationsHeader(Composite comp, XFormToolkit toolkit) {
- if (sma.getAnnotations().size() > 0) {
- new AnnotationComposite(toolkit, comp, SWT.None, sma);
- }
- }
-
- public static void createSMANotesHeader(Composite comp, XFormToolkit toolkit, StateMachineArtifact sma, int horizontalSpan) throws OseeCoreException {
- // Display SMA Note
+ // Don't put in operation cause doesn't have to be loaded before editor displays
+ OseeDictionary.load();
+ }
+ private final class ReloadJobChangeAdapter extends JobChangeAdapter {
+
+ private final IDirtiableEditor editor;
+
+ private ReloadJobChangeAdapter(IDirtiableEditor editor) {
+ this.editor = editor;
+ showBusy(true);
+ }
+
+ @Override
+ public void scheduled(IJobChangeEvent event) {
+ super.scheduled(event);
+ }
+
+ @Override
+ public void aboutToRun(IJobChangeEvent event) {
+ super.aboutToRun(event);
+ }
+
+ @Override
+ public void done(IJobChangeEvent event) {
+ super.done(event);
+ Job job = new UIJob("Draw Workflow Tab") {
+
+ @Override
+ public IStatus runInUIThread(IProgressMonitor monitor) {
+ try {
+ updateTitleBar();
+ refreshToolbar();
+ setLoading(false);
+ createAtsBody();
+ addMessageDecoration(scrolledForm);
+ FormsUtil.addHeadingGradient(toolkit, scrolledForm, true);
+ editor.onDirtied();
+ } catch (OseeCoreException ex) {
+ handleException(ex);
+ } finally {
+ showBusy(false);
+ }
+ return Status.OK_STATUS;
+ }
+ };
+ Operations.scheduleJob(job, false, Job.SHORT, null);
+ }
+ }
+
+ private void handleException(Exception ex) {
+ setLoading(false);
+ if (Widgets.isAccessible(atsBody)) {
+ atsBody.dispose();
+ }
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ new ExceptionComposite(bodyComp, ex);
+ bodyComp.layout();
+ }
+
+ private void setLoading(boolean set) {
+ if (set) {
+ loadingComposite = new LoadingComposite(bodyComp);
+ bodyComp.layout();
+ } else {
+ if (Widgets.isAccessible(loadingComposite)) {
+ loadingComposite.dispose();
+ }
+ }
+ showBusy(set);
+ }
+
+ private void createAtsBody() throws OseeCoreException {
+ if (Widgets.isAccessible(atsBody)) {
+ atsBody.dispose();
+ }
+ atsBody = toolkit.createComposite(bodyComp);
+ atsBody.setLayoutData(new GridData(GridData.FILL_BOTH));
+ atsBody.setLayout(new GridLayout(1, false));
+
+ createHeaderSection(sma.getCurrentAtsWorkPage());
+ createGoalSection();
+ createPageSections();
+ createHistorySection();
+ createRelationsSection();
+ createOperationsSection();
+ createDetailsSection();
+
+ atsBody.layout();
+ atsBody.setFocus();
+ // Jump to scroll location if set
+ Integer selection = guidToScrollLocation.get(sma.getGuid());
+ if (selection != null) {
+ JumpScrollbarJob job = new JumpScrollbarJob("");
+ job.schedule(500);
+ }
+
+ }
+
+ private void createDetailsSection() {
+ try {
+ smaDetailsSection = new SMADetailsSection(sma.getEditor(), atsBody, toolkit, SWT.NONE);
+ managedForm.addPart(smaDetailsSection);
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ }
+
+ private void createOperationsSection() {
+ try {
+ smaOperationsSection = new SMAOperationsSection(sma.getEditor(), atsBody, toolkit, SWT.NONE);
+ managedForm.addPart(smaOperationsSection);
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ }
+
+ private void createRelationsSection() {
+ try {
+ smaRelationsSection = new SMARelationsSection(sma.getEditor(), atsBody, toolkit, SWT.NONE);
+ managedForm.addPart(smaRelationsSection);
+
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ }
+
+ private void createHistorySection() {
+ try {
+ smaHistorySection = new SMAHistorySection(sma.getEditor(), atsBody, toolkit, SWT.NONE);
+ managedForm.addPart(smaHistorySection);
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ }
+
+ private void createGoalSection() {
+ try {
+ if (sma instanceof GoalArtifact) {
+ smaGoalMembersSection = new SMAGoalMembersSection(sma.getEditor(), atsBody, toolkit, SWT.NONE);
+ managedForm.addPart(smaGoalMembersSection);
+ }
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ }
+
+ private void createPageSections() {
+ try {
+ // Only display current or past states
+ for (AtsWorkPage atsWorkPage : sma.getAtsWorkPages()) {
+ try {
+ if (sma.isCurrentState(atsWorkPage.getName()) || sma.getStateMgr().isStateVisited(atsWorkPage.getName())) {
+ // Don't show completed or cancelled state if not currently those state
+ if (atsWorkPage.isCompletePage() && !sma.isCompleted()) {
+ continue;
+ }
+ if (atsWorkPage.isCancelledPage() && !sma.isCancelled()) {
+ continue;
+ }
+ SMAWorkFlowSection section = new SMAWorkFlowSection(atsBody, toolkit, SWT.NONE, atsWorkPage, sma);
+ managedForm.addPart(section);
+ control = section.getMainComp();
+ sections.add(section);
+ atsWorkPages.add(atsWorkPage);
+ }
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ }
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ }
+
+ private void createHeaderSection(AtsWorkPage currentAtsWorkPage) {
+ Composite headerComp = toolkit.createComposite(atsBody);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.widthHint = 100;
+ headerComp.setLayoutData(gd);
+ headerComp.setLayout(ALayout.getZeroMarginLayout(1, false));
+ // mainComp.setBackground(Displays.getSystemColor(SWT.COLOR_RED));
+
+ // Display relations
+ try {
+ createCurrentStateAndTeamHeaders(headerComp, toolkit);
+ createTargetVersionAndAssigneeHeader(headerComp, currentAtsWorkPage, toolkit);
+
+ createLatestHeader(headerComp, toolkit);
+ if (sma.isTeamWorkflow()) {
+ actionableItemHeader = new SMAActionableItemHeader(headerComp, toolkit, sma);
+ }
+ workflowMetricsHeader = new SMAWorkflowMetricsHeader(headerComp, toolkit, sma);
+ createSMANotesHeader(headerComp, toolkit, sma, HEADER_COMP_COLUMNS);
+ createStateNotesHeader(headerComp, toolkit, sma, HEADER_COMP_COLUMNS, null);
+ createAnnotationsHeader(headerComp, toolkit);
+
+ sections.clear();
+ atsWorkPages.clear();
+
+ if (SMARelationsHyperlinkComposite.relationExists(sma)) {
+ smaRelationsComposite = new SMARelationsHyperlinkComposite(atsBody, toolkit, SWT.NONE);
+ smaRelationsComposite.create(sma);
+ }
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ }
+
+ protected boolean isShowTargetedVersion() throws OseeCoreException {
+ return sma.isTargetedVersionable();
+ }
+
+ private void createTargetVersionAndAssigneeHeader(Composite parent, AtsWorkPage page, XFormToolkit toolkit) throws OseeCoreException {
+ boolean isShowTargetedVersion = isShowTargetedVersion();
+ boolean isCurrentNonCompleteCanceledState = page.isCurrentNonCompleteCancelledState(sma);
+ if (!isShowTargetedVersion && !isCurrentNonCompleteCanceledState) {
+ return;
+ }
+
+ Composite comp = toolkit.createContainer(parent, 6);
+ comp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ comp.setLayout(ALayout.getZeroMarginLayout(6, false));
+
+ // Targeted Version
+ if (isShowTargetedVersion) {
+ new SMATargetedVersionHeader(comp, SWT.NONE, sma, toolkit);
+ toolkit.createLabel(comp, " ");
+ }
+
+ // Create Privileged Edit label
+ if (sma.getEditor().isPriviledgedEditModeEnabled()) {
+ Label label = toolkit.createLabel(comp, PRIVILEGED_EDIT);
+ label.setForeground(Displays.getSystemColor(SWT.COLOR_RED));
+ label.setToolTipText("Priviledged Edit Mode is Enabled. Editing any field in any state is authorized. Select icon to disable");
+ }
+
+ // Current Assignees
+ if (isCurrentNonCompleteCanceledState) {
+ boolean editable = !sma.isCancelledOrCompleted() && !sma.isReadOnly() &&
+ // and access control writeable
+ sma.isAccessControlWrite() && //
+
+ (SMAWorkFlowSection.isEditable(sma, page) || //
+ // page is define to allow anyone to edit
+ sma.getWorkPageDefinition().hasWorkRule(AtsWorkDefinitions.RuleWorkItemId.atsAllowAssigneeToAll.name()) ||
+ // team definition has allowed anyone to edit
+ sma.teamDefHasWorkRule(AtsWorkDefinitions.RuleWorkItemId.atsAllowAssigneeToAll.name()));
+
+ new SMAAssigneesHeader(comp, SWT.NONE, sma, toolkit, editable);
+ }
+ }
+
+ private void addMessageDecoration(ScrolledForm form) {
+ form.getForm().addMessageHyperlinkListener(new HyperlinkAdapter() {
+
+ @Override
+ public void linkActivated(HyperlinkEvent e) {
+ String title = e.getLabel();
+ Object href = e.getHref();
+ if (href instanceof IMessage[]) {
+ Point noteLocation = ((Control) e.widget).toDisplay(0, 0);
+ noteLocation.x += 10;
+ noteLocation.y += 10;
+
+ MessageSummaryNote note = new MessageSummaryNote(getManagedForm(), title, (IMessage[]) href);
+ note.setLocation(noteLocation);
+ note.open();
+ }
+ }
+
+ });
+ }
+
+ private void refreshToolbar() throws OseeCoreException {
+ IToolBarManager toolBarMgr = scrolledForm.getToolBarManager();
+ toolBarMgr.removeAll();
+
+ if (sma.isTeamWorkflow() && (((TeamWorkFlowArtifact) sma).getBranchMgr().isCommittedBranchExists() || ((TeamWorkFlowArtifact) sma).getBranchMgr().isWorkingBranchInWork())) {
+ toolBarMgr.add(new ShowMergeManagerAction((TeamWorkFlowArtifact) sma));
+ toolBarMgr.add(new ShowChangeReportAction((TeamWorkFlowArtifact) sma));
+ }
+ toolBarMgr.add(new FavoriteAction(sma.getEditor()));
+ if (sma.getParentSMA() != null) {
+ toolBarMgr.add(new OpenParentAction(sma));
+ }
+ toolBarMgr.add(new EmailActionAction(sma.getEditor()));
+ toolBarMgr.add(new AddNoteAction(sma));
+ toolBarMgr.add(new OpenInAtsWorldAction(sma));
+ if (AtsUtil.isAtsAdmin()) {
+ toolBarMgr.add(new OpenInArtifactEditorAction(sma.getEditor()));
+ }
+ toolBarMgr.add(new OpenVersionArtifactAction(sma));
+ toolBarMgr.add(new OpenTeamDefinitionAction(sma));
+ toolBarMgr.add(new CopyActionDetailsAction(sma));
+ toolBarMgr.add(new PrivilegedEditAction(sma));
+ toolBarMgr.add(new ResourceHistoryAction(sma));
+ toolBarMgr.add(new ReloadAction(sma));
+
+ OseeUiActions.addButtonToEditorToolBar(sma.getEditor(), this, AtsPlugin.getInstance(),
+ scrolledForm.getToolBarManager(), SMAEditor.EDITOR_ID, "ATS Editor");
+
+ scrolledForm.updateToolBar();
+ }
+
+ public Result isXWidgetDirty() throws OseeCoreException {
+ for (SMAWorkFlowSection section : sections) {
+ Result result = section.isXWidgetDirty();
+ if (result.isTrue()) {
+ return result;
+ }
+ }
+ return Result.FalseResult;
+ }
+
+ public Result isXWidgetSavable() {
+ for (SMAWorkFlowSection section : sections) {
+ Result result = section.isXWidgetSavable();
+ if (result.isFalse()) {
+ return result;
+ }
+ }
+ return Result.TrueResult;
+ }
+
+ public void saveXWidgetToArtifact() throws OseeCoreException {
+ List<IArtifactStoredWidget> artWidgets = new ArrayList<IArtifactStoredWidget>();
+ // Collect all dirty widgets first (so same attribute shown on different sections don't colide
+ for (SMAWorkFlowSection section : sections) {
+ section.getDirtyIArtifactWidgets(artWidgets);
+ }
+ for (IArtifactStoredWidget widget : artWidgets) {
+ widget.saveToArtifact();
+ }
+ }
+
+ @Override
+ public void dispose() {
+ if (actionableItemHeader != null) {
+ actionableItemHeader.dispose();
+ }
+ if (workflowMetricsHeader != null) {
+ workflowMetricsHeader.dispose();
+ }
+ if (smaDetailsSection != null) {
+ smaDetailsSection.dispose();
+ }
+ if (smaHistorySection != null) {
+ smaHistorySection.dispose();
+ }
+ if (smaRelationsSection != null) {
+ smaRelationsSection.dispose();
+ }
+ if (smaGoalMembersSection != null) {
+ smaGoalMembersSection.dispose();
+ }
+ for (SMAWorkFlowSection section : sections) {
+ section.dispose();
+ }
+
+ if (toolkit != null) {
+ toolkit.dispose();
+ }
+ }
+
+ @Override
+ public String getActionDescription() {
+ return "Workflow Tab";
+ }
+
+ private Control control = null;
+
+ private void storeScrollLocation() {
+ if (scrolledForm != null) {
+ Integer selection = scrolledForm.getVerticalBar().getSelection();
+ // System.out.println("Storing selection => " + selection);
+ guidToScrollLocation.put(sma.getGuid(), selection);
+ }
+ }
+
+ private class JumpScrollbarJob extends Job {
+ public JumpScrollbarJob(String name) {
+ super(name);
+ }
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ Displays.ensureInDisplayThread(new Runnable() {
+ @Override
+ public void run() {
+ Integer selection = guidToScrollLocation.get(sma.getGuid());
+ // System.out.println("Restoring selection => " + selection);
+
+ // Find the ScrolledComposite operating on the control.
+ ScrolledComposite sComp = null;
+ if (control == null || control.isDisposed()) {
+ return;
+ }
+ Composite parent = control.getParent();
+ while (parent != null) {
+ if (parent instanceof ScrolledComposite) {
+ sComp = (ScrolledComposite) parent;
+ break;
+ }
+ parent = parent.getParent();
+ }
+
+ if (sComp != null) {
+ sComp.setOrigin(0, selection);
+ }
+ }
+ });
+ return Status.OK_STATUS;
+
+ }
+ }
+
+ private void createCurrentStateAndTeamHeaders(Composite comp, XFormToolkit toolkit) {
+ Composite topLineComp = new Composite(comp, SWT.NONE);
+ topLineComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ topLineComp.setLayout(ALayout.getZeroMarginLayout(3, false));
+ toolkit.adapt(topLineComp);
+
+ try {
+ FormsUtil.createLabelText(toolkit, topLineComp, "Current State: ", sma.getStateMgr().getCurrentStateName());
+ FormsUtil.createLabelText(toolkit, topLineComp, "Created: ",
+ XDate.getDateStr(sma.getLog().getCreationDate(), XDate.MMDDYYHHMM));
+ } catch (OseeCoreException ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+
+ new SMAOriginatorHeader(topLineComp, SWT.NONE, sma, toolkit);
+
+ if (sma.isTeamWorkflow()) {
+ FormsUtil.createLabelText(toolkit, topLineComp, "Team: ", ((TeamWorkFlowArtifact) sma).getTeamName());
+ }
+ FormsUtil.createLabelText(toolkit, topLineComp, sma.getArtifactSuperTypeName() + "Id: ", sma.getHumanReadableId());
+
+ try {
+ if (Strings.isValid(sma.getPcrId())) {
+ FormsUtil.createLabelText(toolkit, topLineComp, " Id: ", sma.getPcrId());
+ }
+ } catch (OseeCoreException ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ }
+ }
+
+ private void createLatestHeader(Composite comp, XFormToolkit toolkit) {
+ if (sma.isHistoricalVersion()) {
+ Label label =
+ toolkit.createLabel(
+ comp,
+ "This is a historical version of this " + sma.getArtifactTypeName() + " and can not be edited; Select \"Open Latest\" to view/edit latest version.");
+ label.setForeground(Displays.getSystemColor(SWT.COLOR_RED));
+ }
+ }
+
+ private void createAnnotationsHeader(Composite comp, XFormToolkit toolkit) {
+ if (sma.getAnnotations().size() > 0) {
+ new AnnotationComposite(toolkit, comp, SWT.None, sma);
+ }
+ }
+
+ public static void createSMANotesHeader(Composite comp, XFormToolkit toolkit, StateMachineArtifact sma, int horizontalSpan) throws OseeCoreException {
+ // Display SMA Note
String note = sma.getSoleAttributeValue(AtsAttributeTypes.SmaNote, "");
- if (!note.equals("")) {
- FormsUtil.createLabelOrHyperlink(comp, toolkit, horizontalSpan, "Note: " + note);
- }
- }
-
- public static void createStateNotesHeader(Composite comp, XFormToolkit toolkit, StateMachineArtifact sma, int horizontalSpan, String forStateName) {
- // Display global Notes
- for (NoteItem noteItem : sma.getNotes().getNoteItems()) {
- if (forStateName == null || noteItem.getState().equals(forStateName)) {
- FormsUtil.createLabelOrHyperlink(comp, toolkit, horizontalSpan, noteItem.toString());
- }
- }
- }
-
- public void refresh() {
- if (sma.getEditor() != null && !sma.isInTransition()) {
- // remove all pages
- for (SMAWorkFlowSection section : sections) {
- section.dispose();
- }
- // add pages back
- refreshData();
- }
- }
-
- public List<AtsWorkPage> getPages() {
- return atsWorkPages;
- }
-
- public List<SMAWorkFlowSection> getSections() {
- return sections;
- }
-
- public SMAWorkFlowSection getSectionForCurrentState() {
- return null;
- }
+ if (!note.equals("")) {
+ FormsUtil.createLabelOrHyperlink(comp, toolkit, horizontalSpan, "Note: " + note);
+ }
+ }
+
+ public static void createStateNotesHeader(Composite comp, XFormToolkit toolkit, StateMachineArtifact sma, int horizontalSpan, String forStateName) {
+ // Display global Notes
+ for (NoteItem noteItem : sma.getNotes().getNoteItems()) {
+ if (forStateName == null || noteItem.getState().equals(forStateName)) {
+ FormsUtil.createLabelOrHyperlink(comp, toolkit, horizontalSpan, noteItem.toString());
+ }
+ }
+ }
+
+ public void refresh() {
+ if (sma.getEditor() != null && !sma.isInTransition()) {
+ // remove all pages
+ for (SMAWorkFlowSection section : sections) {
+ section.dispose();
+ }
+ // add pages back
+ refreshData();
+ }
+ }
+
+ public List<AtsWorkPage> getPages() {
+ return atsWorkPages;
+ }
+
+ public List<SMAWorkFlowSection> getSections() {
+ return sections;
+ }
+
+ public SMAWorkFlowSection getSectionForCurrentState() {
+ return null;
+ }
} \ No newline at end of file

Back to the top