Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2016-10-24 18:48:58 +0000
committerDonald Dunne2016-11-29 16:03:49 +0000
commit56c3bae0570c2cfe3165c539a5acec823070591a (patch)
treefbde1c80c0b95dae5d7af2282e8e2131dbcbdd4c
parente2a7e0bb54d27123e06beb02d99f92b8a0ccf394 (diff)
downloadorg.eclipse.osee-56c3bae0570c2cfe3165c539a5acec823070591a.tar.gz
org.eclipse.osee-56c3bae0570c2cfe3165c539a5acec823070591a.tar.xz
org.eclipse.osee-56c3bae0570c2cfe3165c539a5acec823070591a.zip
bug[ats_ATS320962]: Second Goal Search produces NPE.0.24.3.v201611291713-NRB
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldEditorParameterSearchItem.java27
1 files changed, 26 insertions, 1 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldEditorParameterSearchItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldEditorParameterSearchItem.java
index 56c948ec27a..a5edc23a6b0 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldEditorParameterSearchItem.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldEditorParameterSearchItem.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.osee.ats.world;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -23,6 +24,7 @@ import org.eclipse.osee.ats.api.query.AtsSearchUserType;
import org.eclipse.osee.ats.api.user.IAtsUser;
import org.eclipse.osee.ats.api.version.IAtsVersion;
import org.eclipse.osee.ats.api.workdef.StateType;
+import org.eclipse.osee.ats.api.workflow.WorkItemType;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.search.widget.ActionableItemSearchWidget;
import org.eclipse.osee.ats.search.widget.ColorTeamSearchWidget;
@@ -72,6 +74,9 @@ public abstract class WorldEditorParameterSearchItem extends WorldSearchItem imp
private final Pattern displayName = Pattern.compile("displayName=\"(.*?)\"");
private String shortName = "";
private final List<String> widgetOrder = new LinkedList<>();
+ private static List<WorkItemType> GOAL_SPRINT_BACKLOG_WORKITEMTYPES =
+ Arrays.asList(WorkItemType.AgileBacklog, WorkItemType.AgileSprint, WorkItemType.Goal);
+ private static List<WorkItemType> TEAM_DEF_WORKITEMTYPES = null;
private TitleSearchWidget title;
private StateTypeSearchWidget stateType;
private UserSearchWidget user;
@@ -121,7 +126,7 @@ public abstract class WorldEditorParameterSearchItem extends WorldSearchItem imp
if (workItemType != null && workItemType.get().isEmpty()) {
return new Result("You must select a workflow type.");
}
- if ((teamDef != null && teamDef.get().isEmpty()) && (ai != null && ai.get().isEmpty())) {
+ if ((teamDef != null && teamDef.get() != null && teamDef.get().isEmpty()) && (ai != null && ai.get().isEmpty()) && isTeamDefWorkItemTypesSelected()) {
return new Result("You must select either Actionable Item(s) or Team Definition(s).");
}
return Result.TrueResult;
@@ -131,6 +136,26 @@ public abstract class WorldEditorParameterSearchItem extends WorldSearchItem imp
}
}
+ private List<WorkItemType> getTeamDefWorkItemTypes() {
+ if (TEAM_DEF_WORKITEMTYPES == null) {
+ TEAM_DEF_WORKITEMTYPES = new LinkedList<>();
+ for (WorkItemType type : WorkItemType.values()) {
+ if (!GOAL_SPRINT_BACKLOG_WORKITEMTYPES.contains(type)) {
+ TEAM_DEF_WORKITEMTYPES.add(type);
+ }
+ }
+ }
+ return TEAM_DEF_WORKITEMTYPES;
+ }
+
+ /**
+ * @return true if any of the work item types are related to team defs and ais
+ */
+ private boolean isTeamDefWorkItemTypesSelected() {
+ boolean sel = !Collections.setIntersection(getTeamDefWorkItemTypes(), workItemType.get()).isEmpty();
+ return sel;
+ }
+
@Override
public void run(WorldEditor worldEditor, SearchType searchType, boolean forcePend) {
boolean pend = Collections.getAggregate(tableLoadOptions).contains(TableLoadOption.ForcePend) || forcePend;

Back to the top