diff options
author | ddunne | 2008-11-05 18:39:10 +0000 |
---|---|---|
committer | ddunne | 2008-11-05 18:39:10 +0000 |
commit | 619b9aa9ecd1579531784216d298f5957a5f06f1 (patch) | |
tree | 70a32ccca0c2ab3bcebe6901b8e56fecf3e06f09 | |
parent | 89589c66d8a683095678b86a70a9e1ed9fea81d0 (diff) | |
download | org.eclipse.osee-619b9aa9ecd1579531784216d298f5957a5f06f1.tar.gz org.eclipse.osee-619b9aa9ecd1579531784216d298f5957a5f06f1.tar.xz org.eclipse.osee-619b9aa9ecd1579531784216d298f5957a5f06f1.zip |
-rw-r--r-- | org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEditor.java | 34 | ||||
-rw-r--r-- | org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/TaskEditor.java | 27 | ||||
-rw-r--r-- | org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/task/IXTaskViewer.java | 2 | ||||
-rw-r--r-- | org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsMetricsComposite.java (renamed from org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldMetricsComposite.java) | 10 | ||||
-rw-r--r-- | org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IAtsMetricsProvider.java | 17 | ||||
-rw-r--r-- | org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldEditor.java | 18 | ||||
-rw-r--r-- | org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java | 49 |
7 files changed, 132 insertions, 25 deletions
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEditor.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEditor.java index 7da69a84846..d700437bb3c 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEditor.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEditor.java @@ -11,7 +11,6 @@ package org.eclipse.osee.ats.editor; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -22,16 +21,15 @@ import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.osee.ats.AtsPlugin; -import org.eclipse.osee.ats.artifact.ATSAttributes; import org.eclipse.osee.ats.artifact.ReviewSMArtifact; import org.eclipse.osee.ats.artifact.StateMachineArtifact; import org.eclipse.osee.ats.artifact.TaskArtifact; import org.eclipse.osee.ats.navigate.VisitedItems; import org.eclipse.osee.ats.util.AtsRelation; -import org.eclipse.osee.ats.util.Overview; import org.eclipse.osee.ats.util.widgets.task.IXTaskViewer; +import org.eclipse.osee.ats.world.AtsMetricsComposite; +import org.eclipse.osee.ats.world.IAtsMetricsProvider; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; -import org.eclipse.osee.framework.jdk.core.util.AHTML; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.access.AccessControlManager; import org.eclipse.osee.framework.skynet.core.access.PermissionEnum; @@ -68,7 +66,6 @@ import org.eclipse.osee.framework.ui.skynet.ats.OseeAts; import org.eclipse.osee.framework.ui.skynet.history.RevisionHistoryView; import org.eclipse.osee.framework.ui.skynet.notify.OseeNotificationManager; import org.eclipse.osee.framework.ui.skynet.util.OSEELog; -import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialog; import org.eclipse.osee.framework.ui.swt.IDirtiableEditor; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; @@ -92,16 +89,17 @@ import org.eclipse.ui.part.MultiPageEditorPart; /** * @author Donald G. Dunne */ -public class SMAEditor extends AbstractArtifactEditor implements IDirtiableEditor, IActionable, IArtifactsPurgedEventListener, IRelationModifiedEventListener, IFrameworkTransactionEventListener, IBranchEventListener, IXTaskViewer { +public class SMAEditor extends AbstractArtifactEditor implements IDirtiableEditor, IActionable, IAtsMetricsProvider, IArtifactsPurgedEventListener, IRelationModifiedEventListener, IFrameworkTransactionEventListener, IBranchEventListener, IXTaskViewer { public static final String EDITOR_ID = "org.eclipse.osee.ats.editor.SMAEditor"; private SMAManager smaMgr; - private int workFlowPageIndex, taskPageIndex, historyPageIndex, relationPageIndex, attributesPageIndex, - detailsPageIndex; + private int workFlowPageIndex, taskPageIndex, metricsPageIndex, historyPageIndex, relationPageIndex, + attributesPageIndex, detailsPageIndex; private SMAWorkFlowTab workFlowTab; private SMATaskComposite taskComposite; private SMAHistoryComposite historyComposite; private RelationsComposite relationsComposite; private AttributesComposite attributesComposite; + private AtsMetricsComposite metricsComposite; private final MultiPageEditorPart editor; public static enum PriviledgedEditMode { Off, CurrentState, Global @@ -174,6 +172,8 @@ public class SMAEditor extends AbstractArtifactEditor implements IDirtiableEdito if (relationsComposite != null) { relationsComposite.disposeRelationsComposite(); } + if (metricsComposite != null) metricsComposite.disposeComposite(); + super.dispose(); } @@ -275,6 +275,7 @@ public class SMAEditor extends AbstractArtifactEditor implements IDirtiableEdito createRelationsTab(); createAttributesTab(); createDetailsTab(); + createMetricsTab(); setActivePage(workFlowPageIndex); } catch (Exception ex) { @@ -292,6 +293,15 @@ public class SMAEditor extends AbstractArtifactEditor implements IDirtiableEdito setPageText(detailsPageIndex, "Details"); } + private void createMetricsTab() { + Composite composite = createCommonPageComposite(); + createCommonToolBar(composite); + metricsComposite = new AtsMetricsComposite(this, getContainer(), SWT.NONE); + metricsPageIndex = addPage(metricsComposite); + setPageText(metricsPageIndex, "Metrics"); + + } + private void createAttributesTab() { if (!AtsPlugin.isAtsAdmin()) return; @@ -741,4 +751,12 @@ public class SMAEditor extends AbstractArtifactEditor implements IDirtiableEdito return null; } + /* (non-Javadoc) + * @see org.eclipse.osee.ats.world.IAtsMetricsProvider#getMetricsArtifacts() + */ + @Override + public Collection<? extends Artifact> getMetricsArtifacts() { + return Arrays.asList(smaMgr.getSma()); + } + }
\ No newline at end of file diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/TaskEditor.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/TaskEditor.java index a090969a15c..efea5f06a59 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/TaskEditor.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/TaskEditor.java @@ -24,6 +24,8 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.osee.ats.AtsPlugin; import org.eclipse.osee.ats.artifact.TaskArtifact; import org.eclipse.osee.ats.util.widgets.task.IXTaskViewer; +import org.eclipse.osee.ats.world.AtsMetricsComposite; +import org.eclipse.osee.ats.world.IAtsMetricsProvider; import org.eclipse.osee.ats.world.search.WorldSearchItem; import org.eclipse.osee.ats.world.search.WorldSearchItem.SearchType; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; @@ -47,11 +49,12 @@ import org.eclipse.ui.PartInitException; /** * @author Donald G. Dunne */ -public class TaskEditor extends AbstractArtifactEditor implements IDirtiableEditor, IXTaskViewer { +public class TaskEditor extends AbstractArtifactEditor implements IDirtiableEditor, IAtsMetricsProvider, IXTaskViewer { public static final String EDITOR_ID = "org.eclipse.osee.ats.editor.TaskEditor"; - private int taskPageIndex; + private int taskPageIndex, metricsPageIndex; private SMATaskComposite taskComposite; private Collection<TaskArtifact> tasks = new HashSet<TaskArtifact>(); + private AtsMetricsComposite metricsComposite; /* * (non-Javadoc) @@ -64,7 +67,7 @@ public class TaskEditor extends AbstractArtifactEditor implements IDirtiableEdit SkynetTransaction transaction = new SkynetTransaction(BranchManager.getAtsBranch()); for (TaskArtifact taskArt : tasks) { taskArt.saveSMA(transaction); - } + } transaction.execute(); } catch (Exception ex) { OSEELog.logException(AtsPlugin.class, ex, true); @@ -104,9 +107,9 @@ public class TaskEditor extends AbstractArtifactEditor implements IDirtiableEdit public void dispose() { for (TaskArtifact taskArt : tasks) if (taskArt != null && !taskArt.isDeleted() && taskArt.isSMAEditorDirty().isTrue()) taskArt.revertSMA(); - if (taskComposite != null) { - taskComposite.dispose(); - } + if (taskComposite != null) taskComposite.disposeTaskComposite(); + if (metricsComposite != null) metricsComposite.disposeComposite(); + super.dispose(); } @@ -155,6 +158,10 @@ public class TaskEditor extends AbstractArtifactEditor implements IDirtiableEdit taskPageIndex = addPage(taskComposite); setPageText(taskPageIndex, "Tasks"); + metricsComposite = new AtsMetricsComposite(this, getContainer(), SWT.NONE); + metricsPageIndex = addPage(metricsComposite); + setPageText(metricsPageIndex, "Metrics"); + setActivePage(taskPageIndex); } catch (Exception ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); @@ -317,4 +324,12 @@ public class TaskEditor extends AbstractArtifactEditor implements IDirtiableEdit } } + /* (non-Javadoc) + * @see org.eclipse.osee.ats.world.IAtsMetricsProvider#getMetricsArtifacts() + */ + @Override + public Collection<? extends Artifact> getMetricsArtifacts() { + return tasks; + } + } diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/task/IXTaskViewer.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/task/IXTaskViewer.java index 5317cbb09c4..e2ecc4e58bc 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/task/IXTaskViewer.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/task/IXTaskViewer.java @@ -31,8 +31,6 @@ public interface IXTaskViewer { public IDirtiableEditor getEditor() throws OseeCoreException; - - public boolean isTaskable() throws OseeCoreException; public String getCurrentStateName() throws OseeCoreException; diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldMetricsComposite.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsMetricsComposite.java index c2738e18363..745ae23fa1e 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldMetricsComposite.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsMetricsComposite.java @@ -33,11 +33,11 @@ import org.eclipse.swt.widgets.ToolItem; /**
* @author Donald G. Dunne
*/
-public class WorldMetricsComposite extends ScrolledComposite {
+public class AtsMetricsComposite extends ScrolledComposite {
private Composite toolBarComposite;
private Composite metricsComposite;
- private final WorldComposite worldComposite;
+ private final IAtsMetricsProvider iAtsMetricsProvider;
private final Color BACKGROUND_COLOR = Display.getCurrent().getSystemColor(SWT.COLOR_WHITE);
private final Color FOREGROUND_COLOR = Display.getCurrent().getSystemColor(SWT.COLOR_BLUE);
private final Composite mainComp;
@@ -46,9 +46,9 @@ public class WorldMetricsComposite extends ScrolledComposite { * @param parent
* @param style
*/
- public WorldMetricsComposite(WorldComposite worldComposite, Composite parent, int style) {
+ public AtsMetricsComposite(IAtsMetricsProvider iAtsMetricsProvider, Composite parent, int style) {
super(parent, style | SWT.V_SCROLL | SWT.H_SCROLL);
- this.worldComposite = worldComposite;
+ this.iAtsMetricsProvider = iAtsMetricsProvider;
setLayout(new GridLayout(1, true));
setLayoutData(new GridData(GridData.FILL_BOTH));
@@ -106,7 +106,7 @@ public class WorldMetricsComposite extends ScrolledComposite { adapt(metricsComposite);
addSpace();
- SMAMetrics sMet = new SMAMetrics(worldComposite.getLoadedArtifacts(), null);
+ SMAMetrics sMet = new SMAMetrics(iAtsMetricsProvider.getMetricsArtifacts(), null);
Label label = new Label(metricsComposite, SWT.NONE);
label.setText(sMet.toStringLong());
adapt(label);
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IAtsMetricsProvider.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IAtsMetricsProvider.java new file mode 100644 index 00000000000..a14bbe4c2c7 --- /dev/null +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IAtsMetricsProvider.java @@ -0,0 +1,17 @@ +/*
+ * Created on Nov 5, 2008
+ *
+ * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
+ */
+package org.eclipse.osee.ats.world;
+
+import java.util.Collection;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+
+/**
+ * @author Donald G. Dunne
+ */
+public interface IAtsMetricsProvider {
+
+ public Collection<? extends Artifact> getMetricsArtifacts();
+}
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldEditor.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldEditor.java index 2a7ab118599..21a3166ea47 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldEditor.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldEditor.java @@ -10,12 +10,14 @@ *******************************************************************************/ package org.eclipse.osee.ats.world; +import java.util.Collection; import java.util.logging.Level; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.osee.ats.AtsPlugin; import org.eclipse.osee.ats.world.search.WorldSearchItem.SearchType; import org.eclipse.osee.framework.db.connection.exception.OseeArgumentException; import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.ui.skynet.OseeContributionItem; import org.eclipse.osee.framework.ui.skynet.artifact.editor.AbstractArtifactEditor; import org.eclipse.osee.framework.ui.swt.IDirtiableEditor; @@ -25,11 +27,11 @@ import org.eclipse.ui.IEditorInput; /** * @author Donald G. Dunne */ -public class WorldEditor extends AbstractArtifactEditor implements IDirtiableEditor { +public class WorldEditor extends AbstractArtifactEditor implements IDirtiableEditor, IAtsMetricsProvider { public static final String EDITOR_ID = "org.eclipse.osee.ats.world.WorldEditor"; private int mainPageIndex, metricsPageIndex; private WorldComposite worldComposite; - private WorldMetricsComposite metricsComposite; + private AtsMetricsComposite metricsComposite; /* * (non-Javadoc) @@ -85,9 +87,9 @@ public class WorldEditor extends AbstractArtifactEditor implements IDirtiableEdi // Create Main tab worldComposite = new WorldComposite(EDITOR_ID, null, getContainer(), SWT.NONE); mainPageIndex = addPage(worldComposite); - setPageText(mainPageIndex, "Main"); + setPageText(mainPageIndex, "Actions"); - metricsComposite = new WorldMetricsComposite(worldComposite, getContainer(), SWT.NONE); + metricsComposite = new AtsMetricsComposite(this, getContainer(), SWT.NONE); metricsPageIndex = addPage(metricsComposite); setPageText(metricsPageIndex, "Metrics"); @@ -114,4 +116,12 @@ public class WorldEditor extends AbstractArtifactEditor implements IDirtiableEdi OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); } } + + /* (non-Javadoc) + * @see org.eclipse.osee.ats.world.IAtsMetricsProvider#getArtifacts() + */ + @Override + public Collection<? extends Artifact> getMetricsArtifacts() { + return worldComposite.getLoadedArtifacts(); + } } 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 0db0b2a114f..d9dc6b39610 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 @@ -170,6 +170,9 @@ public class WorldXViewer extends XViewer implements IArtifactsPurgedEventListen OseeEventManager.addListener(this); } + Action editStatusAction; + Action editNotesAction; + Action editEstimateAction; Action editChangeTypeAction; Action editPriorityAction; Action editTargetVersionAction; @@ -193,6 +196,43 @@ public class WorldXViewer extends XViewer implements IArtifactsPurgedEventListen } }); + editNotesAction = new Action("Edit Notes", Action.AS_PUSH_BUTTON) { + @Override + public void run() { + if (SMAManager.promptChangeAttribute(ATSAttributes.SMA_NOTE_ATTRIBUTE, getSelectedSMAArtifacts(), true)) { + update(getSelectedSMAArtifacts().toArray(), null); + } + } + }; + + editStatusAction = new Action("Edit Status", Action.AS_PUSH_BUTTON) { + @Override + public void run() { + try { + if (SMAManager.promptChangeStatus(getSelectedSMAArtifacts(), true)) { + update(getSelectedSMAArtifacts().toArray(), null); + } + } catch (Exception ex) { + OSEELog.logException(AtsPlugin.class, ex, true); + } + } + }; + + editEstimateAction = new Action("Edit Estimated Hours", Action.AS_PUSH_BUTTON) { + @Override + public void run() { + try { + if (ArtifactPromptChange.promptChangeFloatAttribute( + ATSAttributes.ESTIMATED_HOURS_ATTRIBUTE.getStoreName(), + ATSAttributes.ESTIMATED_HOURS_ATTRIBUTE.getDisplayName(), getSelectedSMAArtifacts(), true)) { + update(getSelectedSMAArtifacts().toArray(), null); + } + } catch (Exception ex) { + OSEELog.logException(AtsPlugin.class, ex, true); + } + } + }; + editChangeTypeAction = new Action("Edit Change Type", Action.AS_PUSH_BUTTON) { @Override public void run() { @@ -501,6 +541,15 @@ public class WorldXViewer extends XViewer implements IArtifactsPurgedEventListen mm.insertBefore(MENU_GROUP_PRE, editAssigneeAction); editAssigneeAction.setEnabled(getSelectedSMAArtifacts().size() > 0); + mm.insertBefore(MENU_GROUP_PRE, editStatusAction); + editStatusAction.setEnabled(getSelectedSMAArtifacts().size() > 0); + + mm.insertBefore(MENU_GROUP_PRE, editEstimateAction); + editEstimateAction.setEnabled(getSelectedSMAArtifacts().size() > 0); + + mm.insertBefore(MENU_GROUP_PRE, editNotesAction); + editNotesAction.setEnabled(getSelectedSMAArtifacts().size() > 0); + mm.insertBefore(MENU_GROUP_PRE, editActionableItemsAction); editActionableItemsAction.setEnabled(getSelectedActionArtifacts().size() == 1 || getSelectedTeamWorkflowArtifacts().size() == 1); |