Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDunne (US), Donald G2024-05-08 18:50:01 +0000
committerDonald Dunne2024-05-08 19:38:34 +0000
commitcc17b0ebe0d31aad91663ddeed7eacde9ace11fa (patch)
tree80d9ebaebc59a582218f989f2c0ebdd3d01e6e70
parent664eadb1ebb3ffb36bc8e2cab3a61c5e43da4fb6 (diff)
downloadorg.eclipse.osee-cc17b0ebe0d31aad91663ddeed7eacde9ace11fa.tar.gz
org.eclipse.osee-cc17b0ebe0d31aad91663ddeed7eacde9ace11fa.tar.xz
org.eclipse.osee-cc17b0ebe0d31aad91663ddeed7eacde9ace11fa.zip
feature[TW26304]: Create Last Transition Date column
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsWorkItemService.java9
-rw-r--r--plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/column/DaysInCurrentStateColumnUI.java16
-rw-r--r--plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/column/LastTransitionDateColumnUI.java71
-rw-r--r--plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/world/WorldXViewerFactory.java2
4 files changed, 82 insertions, 16 deletions
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsWorkItemService.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsWorkItemService.java
index d6c33c96223..d3b02e55e3d 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsWorkItemService.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workflow/IAtsWorkItemService.java
@@ -237,6 +237,14 @@ public interface IAtsWorkItemService {
return getTimeInState(workItem, workItem.getCurrentState());
}
+ default public Date getLastTransitionDate(IAtsWorkItem workItem) {
+ IAtsLogItem logItem = getStateStartedData(workItem, workItem.getCurrentState());
+ if (logItem != null) {
+ return logItem.getDate();
+ }
+ return null;
+ }
+
/**
* This method is for backward compatibility and should NOT be used outside core ATS
*/
@@ -279,4 +287,5 @@ public interface IAtsWorkItemService {
}
boolean isAllowSiblingCreation(IAtsWorkItem workItem);
+
} \ No newline at end of file
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/column/DaysInCurrentStateColumnUI.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/column/DaysInCurrentStateColumnUI.java
index 531ec1987cf..e22117d5f2d 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/column/DaysInCurrentStateColumnUI.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/column/DaysInCurrentStateColumnUI.java
@@ -13,24 +13,17 @@
package org.eclipse.osee.ats.ide.column;
-import java.util.HashSet;
-import java.util.Set;
import org.eclipse.nebula.widgets.xviewer.IXViewerValueColumn;
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.IAtsWorkItem;
-import org.eclipse.osee.ats.api.data.AtsArtifactTypes;
import org.eclipse.osee.ats.api.util.AtsUtil;
-import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.ide.internal.AtsApiService;
import org.eclipse.osee.ats.ide.util.xviewer.column.XViewerAtsColumn;
import org.eclipse.osee.ats.ide.world.WorldXViewerFactory;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Collections;
import org.eclipse.osee.framework.jdk.core.util.DateUtil;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.skynet.core.utility.Artifacts;
import org.eclipse.osee.framework.ui.skynet.util.LogUtil;
/**
@@ -69,15 +62,6 @@ public class DaysInCurrentStateColumnUI extends XViewerAtsColumn implements IXVi
return "0.0";
}
return AtsUtil.doubleToI18nString(timeInCurrState / DateUtil.MILLISECONDS_IN_A_DAY);
- } else if (Artifacts.isOfType(element, AtsArtifactTypes.Action)) {
- Set<String> strs = new HashSet<>();
- for (IAtsTeamWorkflow team : AtsApiService.get().getWorkItemService().getTeams(element)) {
- String str = getColumnText(team, column, columnIndex);
- if (Strings.isValid(str)) {
- strs.add(str);
- }
- }
- return Collections.toString(", ", strs);
}
} catch (OseeCoreException ex) {
LogUtil.getCellExceptionString(ex);
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/column/LastTransitionDateColumnUI.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/column/LastTransitionDateColumnUI.java
new file mode 100644
index 00000000000..0781d824bd2
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/column/LastTransitionDateColumnUI.java
@@ -0,0 +1,71 @@
+/*********************************************************************
+ * Copyright (c) 2024 Boeing
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ **********************************************************************/
+
+package org.eclipse.osee.ats.ide.column;
+
+import java.util.Date;
+import org.eclipse.nebula.widgets.xviewer.IXViewerValueColumn;
+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.IAtsWorkItem;
+import org.eclipse.osee.ats.ide.internal.AtsApiService;
+import org.eclipse.osee.ats.ide.util.xviewer.column.XViewerAtsColumn;
+import org.eclipse.osee.ats.ide.world.WorldXViewerFactory;
+import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.util.DateUtil;
+import org.eclipse.osee.framework.ui.skynet.util.LogUtil;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class LastTransitionDateColumnUI extends XViewerAtsColumn implements IXViewerValueColumn {
+
+ public static LastTransitionDateColumnUI instance = new LastTransitionDateColumnUI();
+
+ public static LastTransitionDateColumnUI getInstance() {
+ return instance;
+ }
+
+ private LastTransitionDateColumnUI() {
+ super(WorldXViewerFactory.COLUMN_NAMESPACE + ".lastTransitionDate", "Last Transition State", 80,
+ XViewerAlign.Center, false, SortDataType.Date, false, "Date of the transition to the current state.");
+ }
+
+ /**
+ * XViewer uses copies of column definitions so originals that are registered are not corrupted. Classes extending
+ * XViewerValueColumn MUST extend this constructor so the correct sub-class is created
+ */
+ @Override
+ public LastTransitionDateColumnUI copy() {
+ LastTransitionDateColumnUI newXCol = new LastTransitionDateColumnUI();
+ super.copy(this, newXCol);
+ return newXCol;
+ }
+
+ @Override
+ public String getColumnText(Object element, XViewerColumn column, int columnIndex) {
+ try {
+ if (element instanceof IAtsWorkItem) {
+ Date transitionDate =
+ AtsApiService.get().getWorkItemService().getLastTransitionDate((IAtsWorkItem) element);
+ if (transitionDate != null) {
+ return DateUtil.getMMDDYYHHMM(transitionDate);
+ }
+ }
+ } catch (OseeCoreException ex) {
+ LogUtil.getCellExceptionString(ex);
+ }
+ return "";
+ }
+}
diff --git a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/world/WorldXViewerFactory.java b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/world/WorldXViewerFactory.java
index 3a60cbef7a0..5ddf2b2edcb 100644
--- a/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/world/WorldXViewerFactory.java
+++ b/plugins/org.eclipse.osee.ats.ide/src/org/eclipse/osee/ats/ide/world/WorldXViewerFactory.java
@@ -52,6 +52,7 @@ import org.eclipse.osee.ats.ide.column.GoalsColumnUI;
import org.eclipse.osee.ats.ide.column.GroupsColumnUI;
import org.eclipse.osee.ats.ide.column.ImplementorColumnUI;
import org.eclipse.osee.ats.ide.column.LastStatusedColumnUI;
+import org.eclipse.osee.ats.ide.column.LastTransitionDateColumnUI;
import org.eclipse.osee.ats.ide.column.NumberOfTasksColumnUI;
import org.eclipse.osee.ats.ide.column.NumberOfTasksRemainingColumnUI;
import org.eclipse.osee.ats.ide.column.OriginatingWorkFlowColumnUI;
@@ -350,6 +351,7 @@ public class WorldXViewerFactory extends SkynetXViewerFactory {
LastModifiedTransactionColumn.getInstance(),
LastModifiedTransactionCommentColumn.getInstance(),
LastStatusedColumnUI.getInstance(),
+ LastTransitionDateColumnUI.getInstance(),
NumberOfTasksColumnUI.getInstance(),
NumberOfTasksRemainingColumnUI.getInstance(),
OriginatingWorkFlowColumnUI.getInstance(),

Back to the top