diff options
author | donald.g.dunne | 2016-09-06 17:01:53 +0000 |
---|---|---|
committer | donald.g.dunne | 2016-09-14 18:26:20 +0000 |
commit | 72b61d75865e156c2cd3dca44135b810ab93c817 (patch) | |
tree | c8637dc18f12abf7e3d05a605992edce4ac62190 /plugins | |
parent | a8cb7a9a8d25f9dd43cfa65716b424559a81d81c (diff) | |
download | org.eclipse.osee-72b61d75865e156c2cd3dca44135b810ab93c817.tar.gz org.eclipse.osee-72b61d75865e156c2cd3dca44135b810ab93c817.tar.xz org.eclipse.osee-72b61d75865e156c2cd3dca44135b810ab93c817.zip |
feature[ats_ATS216159]: Performance Rpt - Rename Work Package text column
Change-Id: I537a5a655b114ffc641ea8bb6857ec10e6968e21
Diffstat (limited to 'plugins')
10 files changed, 261 insertions, 33 deletions
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/column/ActivityIdColumnTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/column/ActivityIdColumnTest.java index 10269c06fe3..ebddaf12d3d 100644 --- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/column/ActivityIdColumnTest.java +++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/column/ActivityIdColumnTest.java @@ -20,7 +20,7 @@ import org.eclipse.osee.ats.api.ev.IAtsWorkPackage; import org.eclipse.osee.ats.api.workflow.IAtsAction; import org.eclipse.osee.ats.api.workflow.IAtsTask; import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow; -import org.eclipse.osee.ats.core.internal.column.ev.ActivityIdColumn; +import org.eclipse.osee.ats.core.internal.column.ev.WorkPackageColumn; import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; import org.junit.Assert; import org.junit.Before; @@ -30,7 +30,7 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; /** - * Test case for {@link ActivityIdColumn} + * Test case for {@link WorkPackageColumn} * * @author Donald G. Dunne */ @@ -74,7 +74,7 @@ public class ActivityIdColumnTest { @Test public void testGetWorkPackages_teamWf1() throws OseeCoreException { - ActivityIdColumn col = new ActivityIdColumn(earnedValueServiceProvider); + WorkPackageColumn col = new WorkPackageColumn(earnedValueServiceProvider); Set<IAtsWorkPackage> workPackages = new HashSet<>(); col.getWorkPackage(teamWf1); @@ -85,7 +85,7 @@ public class ActivityIdColumnTest { @Test public void testGetWorkPackages_task() throws OseeCoreException { - ActivityIdColumn col = new ActivityIdColumn(earnedValueServiceProvider); + WorkPackageColumn col = new WorkPackageColumn(earnedValueServiceProvider); Set<IAtsWorkPackage> workPackages = new HashSet<>(); col.getWorkPackage(task1); @@ -96,7 +96,7 @@ public class ActivityIdColumnTest { @Test public void testGetWorkPackageStr() { - ActivityIdColumn col = new ActivityIdColumn(earnedValueServiceProvider); + WorkPackageColumn col = new WorkPackageColumn(earnedValueServiceProvider); Assert.assertEquals("ActId 1 - ActId 1 Name", col.getColumnText(teamWf1)); String workPackageStr = col.getColumnText(action); diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/IActivityIdUtility.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/IWorkPackageUtility.java index b8b5a89ea32..1221fb581e4 100644 --- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/IActivityIdUtility.java +++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/IWorkPackageUtility.java @@ -18,7 +18,7 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; /** * @author Donald G. Dunne */ -public interface IActivityIdUtility extends IAtsColumn { +public interface IWorkPackageUtility extends IAtsColumn { IAtsWorkPackage getWorkPackage(IAtsObject atsObject) throws OseeCoreException; diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AtsColumnService.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AtsColumnService.java index 3e5dcff3865..0daad40edb5 100644 --- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AtsColumnService.java +++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AtsColumnService.java @@ -86,7 +86,7 @@ public class AtsColumnService implements IAtsColumnService { } else if (id.equals(AtsColumnId.AtsId.getId())) { column = new AtsIdColumn(services); } else if (id.equals(AtsColumnId.ActivityId.getId())) { - column = new ActivityIdColumn(services.getEarnedValueServiceProvider()); + column = new WorkPackageColumn(services.getEarnedValueServiceProvider()); } else if (id.equals(AtsColumnId.Implementers.getId())) { column = new ImplementerColumn(services); } else if (id.equals(AtsColumnId.ChangeType.getId())) { diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/ActivityIdColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageColumn.java index 184e6cb992b..f3da1eb1322 100644 --- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/ActivityIdColumn.java +++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageColumn.java @@ -14,20 +14,20 @@ import org.eclipse.osee.ats.api.IAtsObject; import org.eclipse.osee.ats.api.IAtsWorkItem; import org.eclipse.osee.ats.api.ev.IAtsEarnedValueServiceProvider; import org.eclipse.osee.ats.api.ev.IAtsWorkPackage; -import org.eclipse.osee.ats.core.column.IActivityIdUtility; +import org.eclipse.osee.ats.core.column.IWorkPackageUtility; import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.Strings; /** - * Provides for display of ActivityId and ActivityName from related Work Package + * Provides for display of Id and Name from related Work Package * * @author Donald G. Dunne */ -public class ActivityIdColumn implements IActivityIdUtility { +public class WorkPackageColumn implements IWorkPackageUtility { private final IAtsEarnedValueServiceProvider earnedValueServiceProvider; - public ActivityIdColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider) { + public WorkPackageColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider) { this.earnedValueServiceProvider = earnedValueServiceProvider; } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/WorkPackageColumn.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/WorkPackageTextColumn.java index 756d93e06a1..b349ba99108 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/WorkPackageColumn.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/WorkPackageTextColumn.java @@ -11,8 +11,8 @@ package org.eclipse.osee.ats.column; import java.util.logging.Level; -import org.eclipse.nebula.widgets.xviewer.core.model.XViewerAlign; import org.eclipse.nebula.widgets.xviewer.core.model.SortDataType; +import org.eclipse.nebula.widgets.xviewer.core.model.XViewerAlign; import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn; import org.eclipse.osee.ats.api.data.AtsArtifactTypes; import org.eclipse.osee.ats.api.data.AtsAttributeTypes; @@ -25,19 +25,21 @@ import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.utility.Artifacts; /** + * Provides string based Work Package widget + * * @author Donald G. Dunne */ -public class WorkPackageColumn extends XViewerAtsAttributeValueColumn { +public class WorkPackageTextColumn extends XViewerAtsAttributeValueColumn { - public static WorkPackageColumn instance = new WorkPackageColumn(); + public static WorkPackageTextColumn instance = new WorkPackageTextColumn(); - public static WorkPackageColumn getInstance() { + public static WorkPackageTextColumn getInstance() { return instance; } - protected WorkPackageColumn() { - super(AtsAttributeTypes.WorkPackage, WorldXViewerFactory.COLUMN_NAMESPACE + ".workPackage", - AtsAttributeTypes.WorkPackage.getUnqualifiedName(), 80, XViewerAlign.Left, false, SortDataType.String, true, ""); + protected WorkPackageTextColumn() { + super(AtsAttributeTypes.WorkPackage, WorldXViewerFactory.COLUMN_NAMESPACE + ".workPackage", "Work Package (text)", + 80, XViewerAlign.Left, false, SortDataType.String, true, ""); } /** @@ -45,8 +47,8 @@ public class WorkPackageColumn extends XViewerAtsAttributeValueColumn { * XViewerValueColumn MUST extend this constructor so the correct sub-class is created */ @Override - public WorkPackageColumn copy() { - WorkPackageColumn newXCol = new WorkPackageColumn(); + public WorkPackageTextColumn copy() { + WorkPackageTextColumn newXCol = new WorkPackageTextColumn(); super.copy(this, newXCol); return newXCol; } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ev/ActivityIdColumnUI.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ev/WorkPackageColumnUI.java index 9422530931f..744bc1ebfc8 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ev/ActivityIdColumnUI.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ev/WorkPackageColumnUI.java @@ -50,16 +50,16 @@ import org.eclipse.swt.widgets.TreeItem; * * @author Donald G. Dunne */ -public class ActivityIdColumnUI extends XViewerAtsColumn implements IMultiColumnEditProvider, IXViewerValueColumn, IAltLeftClickProvider { +public class WorkPackageColumnUI extends XViewerAtsColumn implements IMultiColumnEditProvider, IXViewerValueColumn, IAltLeftClickProvider { - public static ActivityIdColumnUI instance = new ActivityIdColumnUI(); + public static WorkPackageColumnUI instance = new WorkPackageColumnUI(); - public static ActivityIdColumnUI getInstance() { + public static WorkPackageColumnUI getInstance() { return instance; } - private ActivityIdColumnUI() { - super(AtsColumnId.ActivityId.getId(), "Activity Id", 80, XViewerAlign.Left, false, SortDataType.String, true, + private WorkPackageColumnUI() { + super(AtsColumnId.ActivityId.getId(), "Work Pacakge", 80, XViewerAlign.Left, false, SortDataType.String, true, "Provides Activity Id and Name from the selected Work Package related to the selected workflow."); } @@ -68,8 +68,8 @@ public class ActivityIdColumnUI extends XViewerAtsColumn implements IMultiColumn * XViewerValueColumn MUST extend this constructor so the correct sub-class is created */ @Override - public ActivityIdColumnUI copy() { - ActivityIdColumnUI newXCol = new ActivityIdColumnUI(); + public WorkPackageColumnUI copy() { + WorkPackageColumnUI newXCol = new WorkPackageColumnUI(); super.copy(this, newXCol); return newXCol; } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WfeWorkPackage.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WfeWorkPackage.java index 936a7312900..14dd42565cc 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WfeWorkPackage.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/WfeWorkPackage.java @@ -13,7 +13,7 @@ package org.eclipse.osee.ats.editor; import java.util.logging.Level; import org.eclipse.osee.ats.api.IAtsWorkItem; import org.eclipse.osee.ats.api.ev.IAtsWorkPackage; -import org.eclipse.osee.ats.column.ev.ActivityIdColumnUI; +import org.eclipse.osee.ats.column.ev.WorkPackageColumnUI; import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact; import org.eclipse.osee.ats.internal.Activator; import org.eclipse.osee.ats.internal.AtsClientService; @@ -72,7 +72,7 @@ public class WfeWorkPackage extends Composite { if (editor.isDirty()) { editor.doSave(null); } - ActivityIdColumnUI.promptChangeActivityId(sma, true); + WorkPackageColumnUI.promptChangeActivityId(sma, true); } catch (Exception ex) { OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/AtsWidgetProvider.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/AtsWidgetProvider.java index 13b5f84e9c0..29983f79fc7 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/AtsWidgetProvider.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/AtsWidgetProvider.java @@ -142,6 +142,8 @@ public class AtsWidgetProvider implements IXWidgetProvider { return new XProgramSelectionWidget(); } else if (widgetName.equals(XRunSprintSummaryButton.WIDGET_ID)) { return new XRunSprintSummaryButton(); + } else if (widgetName.equals(XWorkPackageWidget.WIDGET_ID)) { + return new XWorkPackageWidget(); } return toReturn; } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/XWorkPackageWidget.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/XWorkPackageWidget.java new file mode 100644 index 00000000000..eb89986e42e --- /dev/null +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/XWorkPackageWidget.java @@ -0,0 +1,224 @@ +/******************************************************************************* + * Copyright (c) 2014 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.widgets; + +import java.util.logging.Level; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.osee.ats.api.IAtsWorkItem; +import org.eclipse.osee.ats.api.data.AtsArtifactTypes; +import org.eclipse.osee.ats.column.ev.WorkPackageColumnUI; +import org.eclipse.osee.ats.core.client.workflow.AbstractWorkflowArtifact; +import org.eclipse.osee.ats.core.column.AtsColumnId; +import org.eclipse.osee.ats.internal.Activator; +import org.eclipse.osee.ats.internal.AtsClientService; +import org.eclipse.osee.framework.core.util.Result; +import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.skynet.widgets.GenericXWidget; +import org.eclipse.osee.framework.ui.skynet.widgets.IArtifactWidget; +import org.eclipse.osee.framework.ui.swt.Displays; +import org.eclipse.swt.SWT; +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.Event; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Text; + +public class XWorkPackageWidget extends GenericXWidget implements IArtifactWidget { + public static final String WIDGET_ID = XWorkPackageWidget.class.getSimpleName(); + protected static final int SIZING_TEXT_FIELD_WIDTH = 250; + + private Composite composite; + private AbstractWorkflowArtifact workflow; + private Text textWidget; + private Button button; + + public XWorkPackageWidget() { + super("Work Package"); + } + + @Override + protected void createControls(Composite parent, int horizontalSpan) { + composite = new Composite(parent, SWT.NONE); + GridLayout gL = new GridLayout(3, false); + gL.marginWidth = 0; + gL.marginHeight = 0; + composite.setLayout(gL); + composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + + // Create List Widgets + if (isDisplayLabel()) { + labelWidget = new Label(composite, SWT.NONE); + labelWidget.setText("Work Package:"); + } + + createButton(composite); + + textWidget = new Text(composite, SWT.BORDER | SWT.READ_ONLY); + GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); + data.widthHint = SIZING_TEXT_FIELD_WIDTH; + textWidget.setLayoutData(data); + textWidget.setBackground(Displays.getSystemColor(SWT.COLOR_WHITE)); + textWidget.setDoubleClickEnabled(false); + textWidget.addListener(SWT.MouseDoubleClick, new Listener() { + @Override + public void handleEvent(Event event) { + handlePromptChange(); + } + + }); + + refreshText(); + } + + private void createButton(Composite parent) { + button = new Button(parent, SWT.PUSH); + button.setText("Select"); + button.setLayoutData(new GridData()); + button.addListener(SWT.Selection, new Listener() { + + @Override + public void handleEvent(Event event) { + handlePromptChange(); + } + }); + } + + private void handlePromptChange() { + if (workflow.isInWork()) { + WorkPackageColumnUI.promptChangeActivityId(workflow, true); + } else { + AWorkbench.popup("Work Package can not be set on completed/cancelled workflow"); + } + + refreshText(); + } + + @Override + public void dispose() { + if (composite != null) { + composite.dispose(); + } + } + + @Override + public Control getControl() { + return textWidget; + } + + public Control getButtonControl() { + return button; + } + + @Override + public void setEditable(boolean editable) { + super.setEditable(editable); + if (getControl() != null && !getControl().isDisposed()) { + getControl().setEnabled(editable); + } + if (getButtonControl() != null && !getButtonControl().isDisposed()) { + getButtonControl().setEnabled(editable); + } + } + + @Override + public String getReportData() { + String result = ""; + try { + result = AtsClientService.get().getColumnService().getColumn(AtsColumnId.ActivityId).getColumnText(workflow); + } catch (Exception ex) { + result = "Error resolving work package (see log for details)"; + OseeLog.log(Activator.class, Level.SEVERE, result, ex); + } + return result; + } + + @Override + public IStatus isValid() { + if (isRequiredEntry() && isEmpty()) { + return new Status(IStatus.ERROR, org.eclipse.osee.ats.internal.Activator.PLUGIN_ID, + "Must select a Work Package"); + } + return Status.OK_STATUS; + } + + @Override + public boolean isEmpty() { + return AtsClientService.get().getEarnedValueService().getWorkPackage((IAtsWorkItem) workflow) == null; + } + + @Override + public void setFocus() { + textWidget.setFocus(); + } + + @Override + public void setDisplayLabel(final String displayLabel) { + Displays.ensureInDisplayThread(new Runnable() { + @Override + public void run() { + XWorkPackageWidget.super.setDisplayLabel(displayLabel); + getLabelWidget().setText(displayLabel); + } + }); + } + + @Override + public void setArtifact(Artifact artifact) { + if (artifact.isOfType(AtsArtifactTypes.AbstractWorkflowArtifact)) { + this.workflow = (AbstractWorkflowArtifact) artifact; + } + } + + @Override + public Artifact getArtifact() throws OseeCoreException { + return workflow; + } + + @Override + public void saveToArtifact() throws OseeCoreException { + // do nothing + } + + @Override + public void revert() throws OseeCoreException { + // do nothing + } + + @Override + public Result isDirty() throws OseeCoreException { + return Result.FalseResult; + } + + private void refreshText() { + String workPackageStr = getReportData(); + if (Strings.isValid(workPackageStr)) { + textWidget.setText(workPackageStr); + } else { + textWidget.setText(" -- Select A Work Package -- "); + } + } + + @Override + public void refresh() { + super.refresh(); + refreshText(); + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerFactory.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerFactory.java index 08030a1f29c..b72883f09de 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerFactory.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerFactory.java @@ -107,12 +107,12 @@ import org.eclipse.osee.ats.column.TargetedVersionColumnUI; import org.eclipse.osee.ats.column.ValidationRequiredColumn; import org.eclipse.osee.ats.column.WeeklyBenefitHrsColumn; import org.eclipse.osee.ats.column.WorkDaysNeededColumn; -import org.eclipse.osee.ats.column.WorkPackageColumn; +import org.eclipse.osee.ats.column.WorkPackageTextColumn; import org.eclipse.osee.ats.column.WorkingBranchArchivedColumn; import org.eclipse.osee.ats.column.WorkingBranchStateColumn; import org.eclipse.osee.ats.column.WorkingBranchTypeColumn; import org.eclipse.osee.ats.column.WorkingBranchUuidColumn; -import org.eclipse.osee.ats.column.ev.ActivityIdColumnUI; +import org.eclipse.osee.ats.column.ev.WorkPackageColumnUI; import org.eclipse.osee.ats.column.ev.WorkPackageGuidColumnUI; import org.eclipse.osee.ats.column.ev.WorkPackageIdColumnUI; import org.eclipse.osee.ats.column.ev.WorkPackageNameColumnUI; @@ -182,12 +182,12 @@ public class WorldXViewerFactory extends SkynetXViewerFactory { EstimatedReleaseDateColumn.getInstance(), EstimatedCompletionDateColumn.getInstance(), ReleaseDateColumn.getInstance(), - WorkPackageColumn.getInstance(), + WorkPackageTextColumn.getInstance(), WorkingBranchUuidColumn.getInstance(), WorkingBranchArchivedColumn.getInstance(), WorkingBranchStateColumn.getInstance(), WorkingBranchTypeColumn.getInstance(), - ActivityIdColumnUI.getInstance(), + WorkPackageColumnUI.getInstance(), WorkPackageIdColumnUI.getInstance(), WorkPackageNameColumnUI.getInstance(), WorkPackageTypeColumnUI.getInstance(), |