diff options
author | ddunne | 2010-02-23 20:27:01 +0000 |
---|---|---|
committer | ddunne | 2010-02-23 20:27:01 +0000 |
commit | 09d12539607a3a695d8e9f6bec1ad6bdd7ce947f (patch) | |
tree | a68fa2cf9f09581974384490f7fe82e55aee8140 /org.eclipse.osee.ats/src/org/eclipse/osee | |
parent | fb1974e4b2f8e06699f5529f39c7ba49ddc4847e (diff) | |
download | org.eclipse.osee-09d12539607a3a695d8e9f6bec1ad6bdd7ce947f.tar.gz org.eclipse.osee-09d12539607a3a695d8e9f6bec1ad6bdd7ce947f.tar.xz org.eclipse.osee-09d12539607a3a695d8e9f6bec1ad6bdd7ce947f.zip |
"Team Workflow" - EJK5D - "Improve ATS to better facilitate action ordering"
Diffstat (limited to 'org.eclipse.osee.ats/src/org/eclipse/osee')
11 files changed, 256 insertions, 2 deletions
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSAttributes.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSAttributes.java index c01de3d9a55..6d99a3305c7 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSAttributes.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ATSAttributes.java @@ -84,6 +84,8 @@ public class ATSAttributes { new ATSAttributes("Work Package", "Designated accounting work package for completing workflow.");
public static final ATSAttributes COMMIT_MANAGER_WIDGET =
new ATSAttributes("Commit Manager", "Commit branches to parent and parallel branches.");
+ public static final ATSAttributes POINTS_ATTRIBUTE =
+ new ATSAttributes("Points", "Abstract value that describes risk, complexity, and size of Actions.");
public static final ATSAttributes NUMERIC1_ATTRIBUTE =
new ATSAttributes("Numeric1", "Open field for user to be able to enter numbers for sorting.");
public static final ATSAttributes NUMERIC2_ATTRIBUTE =
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java index 645520892d5..38c6cd091f3 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java @@ -237,6 +237,16 @@ public class ActionArtifact extends ATSArtifact implements IWorldViewArtifact { return sb.toString().replaceFirst(", $", "");
}
+ public String getWorldViewPoint() throws OseeCoreException {
+ StringBuffer sb = new StringBuffer();
+ for (TeamWorkFlowArtifact team : getTeamWorkFlowArtifacts()) {
+ if (!team.getWorldViewPoint().equals("")) {
+ sb.append(team.getWorldViewPoint() + ", ");
+ }
+ }
+ return sb.toString().replaceFirst(", $", "");
+ }
+
public String getWorldViewNumberOfTasks() throws OseeCoreException {
StringBuffer sb = new StringBuffer();
for (TeamWorkFlowArtifact team : getTeamWorkFlowArtifacts()) {
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java index f749a7c9536..3f47d11792c 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/StateMachineArtifact.java @@ -750,6 +750,10 @@ public abstract class StateMachineArtifact extends ATSArtifact implements IGroup return getSoleAttributeValue(ATSAttributes.WORK_PACKAGE_ATTRIBUTE.getStoreName(), "");
}
+ public String getWorldViewPoint() throws OseeCoreException {
+ return getSoleAttributeValue(ATSAttributes.POINTS_ATTRIBUTE.getStoreName(), "");
+ }
+
public String getWorldViewNumeric1() throws OseeCoreException {
return AtsUtil.doubleToI18nString(getSoleAttributeValue(ATSAttributes.NUMERIC1_ATTRIBUTE.getStoreName(), 0.0),
true);
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java index e2f5f5c81be..b4ed61f4c18 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java @@ -183,6 +183,7 @@ public class AtsNavigateViewItems extends XNavigateViewItems { XNavigateItem utilItems = new XNavigateItem(null, "Util", FrameworkImage.GEAR);
new ImportActionsViaSpreadsheet(utilItems);
new XNavigateItemAction(utilItems, new CompareTwoStringsAction(), FrameworkImage.EDIT);
+ new GenerateGuid(utilItems);
items.add(utilItems);
BlamContributionManager.addBlamOperationsToNavigator(items);
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateGuid.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateGuid.java new file mode 100644 index 00000000000..1969c637787 --- /dev/null +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateGuid.java @@ -0,0 +1,35 @@ +/*******************************************************************************
+ * 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.navigate;
+
+import org.eclipse.osee.ats.AtsImage;
+import org.eclipse.osee.framework.jdk.core.util.GUID;
+import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
+import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
+import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
+import org.eclipse.osee.framework.ui.skynet.results.XResultData;
+
+public class GenerateGuid extends XNavigateItemAction {
+
+ public GenerateGuid(XNavigateItem parent) {
+ super(parent, "Generate Guid", AtsImage.REPORT);
+ }
+
+ @Override
+ public void run(TableLoadOption... tableLoadOptions) throws Exception {
+ XResultData resultData = new XResultData();
+ for (int x = 0; x < 20; x++) {
+ resultData.log(GUID.create());
+ }
+ resultData.report("GUIDs");
+ }
+
+}
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ChangePointDialog.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ChangePointDialog.java new file mode 100644 index 00000000000..310c56586df --- /dev/null +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ChangePointDialog.java @@ -0,0 +1,138 @@ +/******************************************************************************* + * 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.util; + +import java.util.ArrayList; +import org.eclipse.jface.viewers.ArrayContentProvider; +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.osee.ats.artifact.ATSAttributes; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.logging.OseeLevel; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.attribute.AttributeTypeManager; +import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.swt.ALayout; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.dialogs.ListDialog; + +/** + * @author Donald G. Dunne + */ +public class ChangePointDialog extends ListDialog { + + String selected = null; + boolean clearSelected = false; + + public ChangePointDialog(Shell parent) { + super(parent); + setContentProvider(new ArrayContentProvider()); + setLabelProvider(new PointLabelProvider()); + try { + setInput(AttributeTypeManager.getEnumerationValues(ATSAttributes.POINTS_ATTRIBUTE.getStoreName())); + } catch (OseeCoreException ex) { + OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex); + } + setShellStyle(getShellStyle() | SWT.RESIZE); + setTitle("Select Point"); + } + + public String getSelection() { + return (String) getResult()[0]; + } + + @Override + protected Control createDialogArea(Composite container) { + + (new Label(container, SWT.NONE)).setText(" Select Point:"); + + Control c = super.createDialogArea(container); + GridData gd = new GridData(GridData.FILL_BOTH); + gd.heightHint = 80; + gd.widthHint = 300; + getTableViewer().getTable().setLayoutData(gd); + GridLayout layout = ALayout.getZeroMarginLayout(); + layout.marginWidth = 20; + getTableViewer().getTable().getParent().setLayout(layout); + if (selected != null) { + ArrayList<Object> sel = new ArrayList<Object>(); + sel.add(selected); + getTableViewer().setSelection(new StructuredSelection(sel.toArray(new Object[sel.size()]))); + getTableViewer().getTable().setFocus(); + } + + Button clearButton = new Button(getTableViewer().getTable().getParent(), SWT.PUSH); + clearButton.setText("clear"); + clearButton.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + clearSelected = true; + close(); + } + }); + return c; + } + + @Override + protected void okPressed() { + if (getTableViewer().getSelection().isEmpty()) { + AWorkbench.popup("ERROR", "Must make selection."); + return; + } + super.okPressed(); + } + + public class PointLabelProvider implements ILabelProvider { + + public Image getImage(Object arg0) { + return null; + } + + public String getText(Object arg0) { + return arg0.toString(); + } + + public void addListener(ILabelProviderListener arg0) { + } + + public void dispose() { + } + + public boolean isLabelProperty(Object arg0, String arg1) { + return false; + } + + public void removeListener(ILabelProviderListener arg0) { + } + + } + + public void setSelected(String selected) { + this.selected = selected; + } + + public boolean isClearSelected() { + return clearSelected; + } + +} diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/PromptChangeUtil.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/PromptChangeUtil.java index b0fe7b8dcd4..21616f20075 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/PromptChangeUtil.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/PromptChangeUtil.java @@ -251,6 +251,44 @@ public class PromptChangeUtil { }
}
+ public static boolean promptChangePoints(StateMachineArtifact sma, boolean persist) throws OseeStateException {
+ if (sma.isTeamWorkflow()) {
+ return promptChangePoints(Arrays.asList((TeamWorkFlowArtifact) sma), persist);
+ }
+ return false;
+ }
+
+ public static boolean promptChangePoints(final Collection<? extends TeamWorkFlowArtifact> teams, boolean persist) throws OseeStateException {
+
+ final ChangePointDialog dialog = new ChangePointDialog(Display.getCurrent().getActiveShell());
+ try {
+ if (teams.size() == 1) {
+ dialog.setSelected(teams.iterator().next().getWorldViewPoint());
+ }
+ if (dialog.open() == 0) {
+
+ SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "ATS Prompt Change Points");
+
+ for (TeamWorkFlowArtifact team : teams) {
+ if (dialog.isClearSelected() || !team.getWorldViewPoint().equals(dialog.getSelection())) {
+ if (dialog.isClearSelected()) {
+ team.deleteAttributes(ATSAttributes.POINTS_ATTRIBUTE.getStoreName());
+ } else {
+ team.setSoleAttributeFromString(ATSAttributes.POINTS_ATTRIBUTE.getStoreName(),
+ dialog.getSelection());
+ }
+ team.saveSMA(transaction);
+ }
+ }
+ transaction.execute();
+ }
+ return true;
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Can't change points", ex);
+ return false;
+ }
+ }
+
public static boolean promptChangePriority(StateMachineArtifact sma, boolean persist) throws OseeStateException {
if (sma.isTeamWorkflow()) {
return promptChangePriority(Arrays.asList((TeamWorkFlowArtifact) sma), persist);
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java index 7137ab051b7..ccdf5d9d612 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java @@ -39,6 +39,8 @@ public interface IWorldViewArtifact { public String getWorldViewCancelledDateStr() throws OseeCoreException; + public String getWorldViewPoint() throws OseeCoreException; + public String getWorldViewNumeric1() throws OseeCoreException; public String getWorldViewNumeric2() throws OseeCoreException; diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldLabelProvider.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldLabelProvider.java index d614855a198..9a3ce5328a1 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldLabelProvider.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldLabelProvider.java @@ -237,6 +237,9 @@ public class WorldLabelProvider extends XViewerLabelProvider { if (xCol.equals(WorldXViewerFactory.Work_Package_Col)) {
return wva.getWorldViewWorkPackage();
}
+ if (xCol.equals(WorldXViewerFactory.Points_Col)) {
+ return wva.getWorldViewPoint();
+ }
if (xCol.equals(WorldXViewerFactory.Numeric1_Col)) {
return wva.getWorldViewNumeric1();
}
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java index a6921a5ba43..77151f973a8 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java @@ -463,6 +463,20 @@ public class WorldXViewer extends XViewer implements ISelectedAtsArtifacts, IArt } catch (OseeCoreException ex) {
OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex);
}
+ } else if (treeColumn.getData().equals(WorldXViewerFactory.Points_Col)) {
+ try {
+ Set<TeamWorkFlowArtifact> smas = new HashSet<TeamWorkFlowArtifact>();
+ for (TreeItem item : treeItems) {
+ Artifact art = (Artifact) item.getData();
+ if (art instanceof TeamWorkFlowArtifact) {
+ smas.add((TeamWorkFlowArtifact) art);
+ }
+ }
+ PromptChangeUtil.promptChangePoints(smas, true);
+ return;
+ } catch (OseeCoreException ex) {
+ OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex);
+ }
}
if (!(treeColumn.getData() instanceof XViewerAttributeColumn) && !(treeColumn.getData() instanceof XViewerAtsAttributeColumn)) {
AWorkbench.popup("ERROR", "Column is not attribute and thus not multi-editable " + treeColumn.getText());
@@ -513,7 +527,8 @@ public class WorldXViewer extends XViewer implements ISelectedAtsArtifacts, IArt @Override
public boolean isColumnMultiEditable(TreeColumn treeColumn, Collection<TreeItem> treeItems) {
- if (treeColumn.getData().equals(WorldXViewerFactory.Groups_Col)) {
+ if (treeColumn.getData().equals(WorldXViewerFactory.Groups_Col) || treeColumn.getData().equals(
+ WorldXViewerFactory.Points_Col)) {
return true;
}
if (!(treeColumn.getData() instanceof XViewerColumn)) {
@@ -953,6 +968,8 @@ public class WorldXViewer extends XViewer implements ISelectedAtsArtifacts, IArt } else if (xCol.equals(WorldXViewerFactory.Work_Package_Col)) {
modified =
PromptChangeUtil.promptChangeAttribute(sma, ATSAttributes.WORK_PACKAGE_ATTRIBUTE, persist, false);
+ } else if (xCol.equals(WorldXViewerFactory.Points_Col)) {
+ modified = PromptChangeUtil.promptChangePoints(sma, persist);
} else if (xCol.equals(WorldXViewerFactory.Numeric1_Col)) {
modified = PromptChangeUtil.promptChangeFloatAttribute(sma, ATSAttributes.NUMERIC1_ATTRIBUTE, persist);
} else if (xCol.equals(WorldXViewerFactory.Numeric2_Col)) {
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerFactory.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerFactory.java index d298d6d939d..f7b8e728ff9 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerFactory.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerFactory.java @@ -111,6 +111,9 @@ public class WorldXViewerFactory extends SkynetXViewerFactory { public static final XViewerColumn Work_Package_Col =
new XViewerAtsAttributeColumn(COLUMN_NAMESPACE + ".workPackage", ATSAttributes.WORK_PACKAGE_ATTRIBUTE, 80,
SWT.LEFT, false, SortDataType.String, true);
+ public static final XViewerColumn Points_Col =
+ new XViewerAtsAttributeColumn(COLUMN_NAMESPACE + ".points", ATSAttributes.POINTS_ATTRIBUTE, 40, SWT.LEFT,
+ false, SortDataType.Integer, true);
public static final XViewerColumn Numeric1_Col =
new XViewerAtsAttributeColumn(COLUMN_NAMESPACE + ".numeric1", ATSAttributes.NUMERIC1_ATTRIBUTE, 40, SWT.LEFT,
false, SortDataType.Float, true);
@@ -276,7 +279,8 @@ public class WorldXViewerFactory extends SkynetXViewerFactory { Percent_Rework_Col, Branch_Status_Col, Number_of_Tasks_Col, Number_of_Tasks_Remining_Col,
Last_Modified_Col, Last_Statused_Col, Validation_Required_Col, Review_Major_Defects,
Review_Minor_Defects, Review_Issues, Actions_Initiating_Workflow_Col, Artifact_Type_Col,
- Originating_Workflow, Parent_ID_Col, Days_In_Current_State, Parent_State_Col, Numeric1_Col, Numeric2_Col};
+ Originating_Workflow, Parent_ID_Col, Days_In_Current_State, Parent_State_Col, Points_Col, Numeric1_Col,
+ Numeric2_Col};
private static String NAMESPACE = "org.eclipse.osee.ats.WorldXViewer";
public WorldXViewerFactory() {
|