diff options
Diffstat (limited to 'plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java')
-rw-r--r-- | plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java | 71 |
1 files changed, 36 insertions, 35 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java index 604510a35e8..9934a9900f1 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java @@ -22,15 +22,14 @@ import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.osee.ats.artifact.ATSLog.LogType; +import org.eclipse.osee.ats.artifact.AbstractReviewArtifact; +import org.eclipse.osee.ats.artifact.AbstractReviewArtifact.ReviewBlockType; +import org.eclipse.osee.ats.artifact.AbstractTaskableArtifact; +import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.LogItem; -import org.eclipse.osee.ats.artifact.ReviewSMArtifact; -import org.eclipse.osee.ats.artifact.ReviewSMArtifact.ReviewBlockType; -import org.eclipse.osee.ats.artifact.StateMachineArtifact; -import org.eclipse.osee.ats.artifact.StateMachineArtifact.TransitionOption; import org.eclipse.osee.ats.artifact.TaskArtifact; -import org.eclipse.osee.ats.artifact.TaskableStateMachineArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; -import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact.DefaultTeamState; +import org.eclipse.osee.ats.editor.stateItem.AtsStateItemManager; import org.eclipse.osee.ats.editor.stateItem.IAtsStateItem; import org.eclipse.osee.ats.editor.widget.ReviewInfoXWidget; import org.eclipse.osee.ats.editor.widget.StateHoursSpentXWidget; @@ -38,6 +37,8 @@ import org.eclipse.osee.ats.editor.widget.StatePercentCompleteXWidget; import org.eclipse.osee.ats.editor.widget.TaskInfoXWidget; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.util.DefaultTeamState; +import org.eclipse.osee.ats.util.TransitionOption; import org.eclipse.osee.ats.util.XCancellationReasonTextWidget; import org.eclipse.osee.ats.util.widgets.ReviewManager; import org.eclipse.osee.ats.util.widgets.dialog.SMAStatusDialog; @@ -98,7 +99,7 @@ public class SMAWorkFlowSection extends SectionPart { private XComboViewer transitionToStateCombo; private Button transitionButton; private Label transitionAssigneesLabel; - protected final StateMachineArtifact sma; + protected final AbstractWorkflowArtifact sma; private final AtsWorkPage atsWorkPage; private final boolean isEditable, isCurrentState, isGlobalEditable; private final XFormToolkit toolkit; @@ -107,7 +108,7 @@ public class SMAWorkFlowSection extends SectionPart { private boolean sectionCreated = false; private Section section; - public SMAWorkFlowSection(Composite parent, XFormToolkit toolkit, int style, AtsWorkPage page, StateMachineArtifact sma) throws OseeCoreException { + public SMAWorkFlowSection(Composite parent, XFormToolkit toolkit, int style, AtsWorkPage page, AbstractWorkflowArtifact sma) throws OseeCoreException { super(parent, toolkit, style | ExpandableComposite.TWISTIE | ExpandableComposite.TITLE_BAR); this.toolkit = toolkit; this.atsWorkPage = page; @@ -134,7 +135,7 @@ public class SMAWorkFlowSection extends SectionPart { section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); // section.setBackground(Displays.getSystemColor(SWT.COLOR_MAGENTA)); - boolean isCurrentSectionExpanded = sma.isCurrentSectionExpanded(atsWorkPage.getName()); + boolean isCurrentSectionExpanded = isCurrentSectionExpanded(atsWorkPage.getName()); if (isCurrentSectionExpanded) { createSection(section); @@ -159,6 +160,13 @@ public class SMAWorkFlowSection extends SectionPart { } } + /** + * Override to apply different algorithm to current section expansion. + */ + public boolean isCurrentSectionExpanded(String stateName) throws OseeCoreException { + return sma.getStateMgr().getCurrentStateName().equals(stateName); + } + private synchronized void createSection(Section section) throws OseeCoreException { if (sectionCreated) { return; @@ -196,7 +204,7 @@ public class SMAWorkFlowSection extends SectionPart { createMetricsHeader(workComp); // Add any dynamic XWidgets declared for page by IAtsStateItem extensions - for (IAtsStateItem item : sma.getStateItems().getStateItems(atsWorkPage.getId())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems(atsWorkPage.getId())) { for (XWidget xWidget : item.getDynamicXWidgetsPreBody(sma)) { xWidget.createWidgets(workComp, 2); allXWidgets.add(xWidget); @@ -221,7 +229,7 @@ public class SMAWorkFlowSection extends SectionPart { allXWidgets.addAll(dynamicXWidgetLayout.getXWidgets()); // Add any dynamic XWidgets declared for page by IAtsStateItem extensions - for (IAtsStateItem item : sma.getStateItems().getStateItems(atsWorkPage.getId())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems(atsWorkPage.getId())) { for (XWidget xWidget : item.getDynamicXWidgetsPostBody(sma)) { xWidget.createWidgets(workComp, 2); allXWidgets.add(xWidget); @@ -239,7 +247,7 @@ public class SMAWorkFlowSection extends SectionPart { } // Check extension points for page creation - for (IAtsStateItem item : sma.getStateItems().getStateItems(atsWorkPage.getId())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems(atsWorkPage.getId())) { Result result = item.pageCreated(toolkit, atsWorkPage, sma, xModListener, isEditable || isGlobalEditable); if (result.isFalse()) { result.popup(); @@ -299,20 +307,15 @@ public class SMAWorkFlowSection extends SectionPart { } private void createTaskFooter(Composite parent, String forStateName) throws OseeCoreException { - if (isShowTaskInfo()) { + if (sma instanceof AbstractTaskableArtifact) { Composite comp = new Composite(parent, SWT.None); GridLayout layout = new GridLayout(6, false); comp.setLayout(layout); comp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - allXWidgets.add(new TaskInfoXWidget(getManagedForm(), ((TaskableStateMachineArtifact) sma), forStateName, - comp, 2)); + allXWidgets.add(new TaskInfoXWidget(getManagedForm(), ((AbstractTaskableArtifact) sma), forStateName, comp, 2)); } } - protected boolean isShowTaskInfo() throws OseeCoreException { - return sma.isTaskable(); - } - protected boolean isShowReviewInfo() { return sma.isTeamWorkflow(); } @@ -419,7 +422,7 @@ public class SMAWorkFlowSection extends SectionPart { return; } // Notify extensions of widget modified - for (IAtsStateItem item : sma.getStateItems().getStateItems(atsWorkPage.getId())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems(atsWorkPage.getId())) { try { item.widgetModified(fSection, xWidget); } catch (Exception ex) { @@ -583,7 +586,7 @@ public class SMAWorkFlowSection extends SectionPart { public void updateTransitionToAssignees() throws OseeCoreException { Collection<User> assignees = null; // Determine if the is an override set of assigness - for (IAtsStateItem item : sma.getStateItems().getStateItems(atsWorkPage.getId())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems(atsWorkPage.getId())) { assignees = item.getOverrideTransitionToAssignees(this); if (assignees != null) { break; @@ -600,7 +603,7 @@ public class SMAWorkFlowSection extends SectionPart { public void updateTransitionToState() throws OseeCoreException { // Determine if there is a transitionToStateOverride for this page String transitionStateOverride = null; - for (IAtsStateItem item : sma.getStateItems().getStateItems(atsWorkPage.getId())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems(atsWorkPage.getId())) { transitionStateOverride = item.getOverrideTransitionToStateName(this); if (transitionStateOverride != null) { break; @@ -726,15 +729,13 @@ public class SMAWorkFlowSection extends SectionPart { } // Loop through this state's tasks to confirm complete - if (sma.isTaskable()) { - if (sma instanceof TaskableStateMachineArtifact) { - for (TaskArtifact taskArt : ((TaskableStateMachineArtifact) sma).getTaskArtifactsFromCurrentState()) { - if (taskArt.isInWork()) { - AWorkbench.popup( - "Transition Blocked", - "Task Not Complete\n\nTitle: " + taskArt.getName() + "\n\nHRID: " + taskArt.getHumanReadableId()); - return; - } + if (sma instanceof AbstractTaskableArtifact && !sma.isCancelledOrCompleted()) { + for (TaskArtifact taskArt : ((AbstractTaskableArtifact) sma).getTaskArtifactsFromCurrentState()) { + if (taskArt.isInWork()) { + AWorkbench.popup( + "Transition Blocked", + "Task Not Complete\n\nTitle: " + taskArt.getName() + "\n\nHRID: " + taskArt.getHumanReadableId()); + return; } } } @@ -751,7 +752,7 @@ public class SMAWorkFlowSection extends SectionPart { // Loop through this state's blocking reviews to confirm complete if (sma.isTeamWorkflow()) { - for (ReviewSMArtifact reviewArt : ReviewManager.getReviewsFromCurrentState((TeamWorkFlowArtifact) sma)) { + for (AbstractReviewArtifact reviewArt : ReviewManager.getReviewsFromCurrentState((TeamWorkFlowArtifact) sma)) { if (reviewArt.getReviewBlockType() == ReviewBlockType.Transition && !reviewArt.isCancelledOrCompleted()) { AWorkbench.popup("Transition Blocked", "All Blocking Reviews must be completed before transition."); return; @@ -760,7 +761,7 @@ public class SMAWorkFlowSection extends SectionPart { } // Check extension points for valid transition - for (IAtsStateItem item : sma.getStateItems().getStateItems(atsWorkPage.getId())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems(atsWorkPage.getId())) { try { result = item.transitioning(sma, sma.getStateMgr().getCurrentStateName(), @@ -850,7 +851,7 @@ public class SMAWorkFlowSection extends SectionPart { return transitionToStateCombo; } - public StateMachineArtifact getSma() { + public AbstractWorkflowArtifact getSma() { return sma; } @@ -872,7 +873,7 @@ public class SMAWorkFlowSection extends SectionPart { return widgets; } - public static boolean isEditable(StateMachineArtifact sma, AtsWorkPage page) throws OseeCoreException { + public static boolean isEditable(AbstractWorkflowArtifact sma, AtsWorkPage page) throws OseeCoreException { // must be writeable return !sma.isReadOnly() && // and access control writeable |