diff options
author | ddunne | 2009-07-13 02:06:19 +0000 |
---|---|---|
committer | ddunne | 2009-07-13 02:06:19 +0000 |
commit | e7a3a513ffa0b83cbe52aea0189624973d44d09c (patch) | |
tree | 1a67f44a55b07c0be15fefc3e4d7ada3713d361b | |
parent | 5032e534815a03adccc13ba10c65761269afd43f (diff) | |
download | org.eclipse.osee-e7a3a513ffa0b83cbe52aea0189624973d44d09c.tar.gz org.eclipse.osee-e7a3a513ffa0b83cbe52aea0189624973d44d09c.tar.xz org.eclipse.osee-e7a3a513ffa0b83cbe52aea0189624973d44d09c.zip |
Cleaned up navigate items
18 files changed, 851 insertions, 303 deletions
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 96a2b196d9c..504dbc79b06 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 @@ -40,10 +40,8 @@ import org.eclipse.osee.ats.world.search.ArtifactTypeSearchItem; import org.eclipse.osee.ats.world.search.ArtifactTypesSearchItem;
import org.eclipse.osee.ats.world.search.GroupWorldSearchItem;
import org.eclipse.osee.ats.world.search.MultipleHridSearchItem;
-import org.eclipse.osee.ats.world.search.MyCompletedSearchItem;
import org.eclipse.osee.ats.world.search.MyFavoritesSearchItem;
import org.eclipse.osee.ats.world.search.MyGoalWorkflowItem;
-import org.eclipse.osee.ats.world.search.MyOrigSearchItem;
import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem;
import org.eclipse.osee.ats.world.search.MySubscribedSearchItem;
import org.eclipse.osee.ats.world.search.MyWorldSearchItem;
@@ -102,6 +100,7 @@ public class AtsNavigateViewItems extends XNavigateViewItems { items.add(new SearchNavigateItem(null, new MyWorldSearchItem("My World", user)));
items.add(new SearchNavigateItem(null, new MyFavoritesSearchItem("My Favorites", user)));
+ items.add(new SearchNavigateItem(null, new MySubscribedSearchItem("My Subscribed", user)));
if (AtsUtil.isGoalEnabled()) items.add(new SearchNavigateItem(null, new MyGoalWorkflowItem("My Goals", user,
GoalSearchState.InWork)));
items.add(new SearchNavigateItem(null, new MyReviewWorkflowItem("My Reviews", user, ReviewState.InWork)));
@@ -109,36 +108,7 @@ public class AtsNavigateViewItems extends XNavigateViewItems { items.add(new XNavigateItemAction(null, new NewAction(), AtsImage.NEW_ACTION));
items.add(new SearchNavigateItem(null, new MyWorldSearchItem("User's World")));
- XNavigateItem otherItems = new XNavigateItemFolder(null, "Other My Searches");
- new SearchNavigateItem(otherItems, new MySubscribedSearchItem("My Subscribed", user));
- new SearchNavigateItem(otherItems, new MyOrigSearchItem("My Originator - InWork", user,
- MyOrigSearchItem.OriginatedState.InWork));
- new SearchNavigateItem(otherItems, new MyOrigSearchItem("My Originator - All", user,
- MyOrigSearchItem.OriginatedState.All));
- new SearchNavigateItem(otherItems, new MyCompletedSearchItem("My Completed", user));
- new SearchNavigateItem(otherItems, new MyReviewWorkflowItem("My Reviews - All", user, ReviewState.All));
- items.add(otherItems);
-
- otherItems = new XNavigateItemFolder(null, "Other User Searches");
- new SearchNavigateItem(otherItems, new MyWorldSearchItem("User's World"));
- new SearchNavigateItem(otherItems, new MyOrigSearchItem("User's Originator - InWork", null,
- MyOrigSearchItem.OriginatedState.InWork));
- new SearchNavigateItem(otherItems, new MyOrigSearchItem("User's Originator - All", null,
- MyOrigSearchItem.OriginatedState.All));
- new SearchNavigateItem(otherItems, new MyCompletedSearchItem("User's Completed"));
- new SearchNavigateItem(otherItems, new MyFavoritesSearchItem("User's Favorites"));
- new SearchNavigateItem(otherItems, new MySubscribedSearchItem("User's Subscribed"));
- new SearchNavigateItem(otherItems, new MyReviewWorkflowItem("User's Reviews - InWork", null,
- ReviewState.InWork));
- new SearchNavigateItem(otherItems, new MyReviewWorkflowItem("User's Reviews - All", null, ReviewState.All));
- if (AtsUtil.isAtsAdmin()) {
- new SearchNavigateItem(otherItems, new UserRelatedToAtsObjectSearch(
- "User's All Related Objects - Admin Only", null, false, LoadView.WorldEditor));
- new SearchNavigateItem(otherItems, new UserRelatedToAtsObjectSearch(
- "User's All Active Related Objects - Admin Only", null, true, LoadView.WorldEditor));
- }
- items.add(otherItems);
-
+ items.add(new SearchNavigateItem(null, new UserSearchWorkflowSearchItem()));
items.add(new SearchNavigateItem(null, new TaskSearchWorldSearchItem()));
items.add(new SearchNavigateItem(null, new GroupWorldSearchItem((Branch) null)));
items.add(new SearchNavigateItem(null, new TeamWorkflowSearchWorkflowSearchItem()));
@@ -163,16 +133,16 @@ public class AtsNavigateViewItems extends XNavigateViewItems { XNavigateItem reviewItem = new XNavigateItem(null, "Reviews", AtsImage.REVIEW);
new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType(
"Show Open " + DecisionReviewArtifact.ARTIFACT_NAME + "s", DecisionReviewArtifact.ARTIFACT_NAME, false,
- false));
+ false), AtsImage.REVIEW);
new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType(
"Show Workflows Waiting " + DecisionReviewArtifact.ARTIFACT_NAME + "s",
- DecisionReviewArtifact.ARTIFACT_NAME, false, true));
+ DecisionReviewArtifact.ARTIFACT_NAME, false, true), AtsImage.REVIEW);
new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType(
"Show Open " + PeerToPeerReviewArtifact.ARTIFACT_NAME + "s", PeerToPeerReviewArtifact.ARTIFACT_NAME,
- false, false));
+ false, false), AtsImage.REVIEW);
new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType(
"Show Workflows Waiting " + PeerToPeerReviewArtifact.ARTIFACT_NAME + "s",
- PeerToPeerReviewArtifact.ARTIFACT_NAME, false, true));
+ PeerToPeerReviewArtifact.ARTIFACT_NAME, false, true), AtsImage.REVIEW);
new NewPeerToPeerReviewItem(reviewItem);
new GenerateReviewParticipationReport(reviewItem);
items.add(reviewItem);
@@ -221,6 +191,11 @@ public class AtsNavigateViewItems extends XNavigateViewItems { new UpdateAssigneesRelations(adminItems);
new DisplayCurrentOseeEventListeners(adminItems);
+ new SearchNavigateItem(adminItems, new UserRelatedToAtsObjectSearch(
+ "User's All Related Objects - Admin Only", null, false, LoadView.WorldEditor));
+ new SearchNavigateItem(adminItems, new UserRelatedToAtsObjectSearch(
+ "User's All Active Related Objects - Admin Only", null, true, LoadView.WorldEditor));
+
new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Actions", "Action"));
new SearchNavigateItem(adminItems,
new ArtifactTypeSearchItem("Show all Decision Review", "Decision Review"));
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/SearchNavigateItem.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/SearchNavigateItem.java index ab513c0ef7d..2668b20132b 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/SearchNavigateItem.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/SearchNavigateItem.java @@ -14,6 +14,7 @@ import org.eclipse.osee.ats.AtsImage; import org.eclipse.osee.ats.world.search.WorldSearchItem; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; import org.eclipse.osee.framework.ui.skynet.ImageManager; +import org.eclipse.osee.framework.ui.skynet.OseeImage; import org.eclipse.osee.framework.ui.skynet.widgets.xnavigate.XNavigateItem; import org.eclipse.swt.graphics.Image; @@ -34,6 +35,11 @@ public class SearchNavigateItem extends XNavigateItem { this.wsi = wsi; } + public SearchNavigateItem(XNavigateItem parent, WorldSearchItem wsi, OseeImage oseeImage) throws OseeCoreException { + super(parent, wsi.getName(), oseeImage); + this.wsi = wsi; + } + public WorldSearchItem getWorldSearchItem() { return wsi; } diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/UserSearchWorkflowSearchItem.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/UserSearchWorkflowSearchItem.java new file mode 100644 index 00000000000..54f337f2523 --- /dev/null +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/UserSearchWorkflowSearchItem.java @@ -0,0 +1,396 @@ +/*******************************************************************************
+ * 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 java.util.Collection;
+import java.util.Collections;
+import java.util.Set;
+import java.util.logging.Level;
+import org.eclipse.osee.ats.AtsPlugin;
+import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact;
+import org.eclipse.osee.ats.artifact.VersionArtifact;
+import org.eclipse.osee.ats.artifact.VersionArtifact.VersionReleaseType;
+import org.eclipse.osee.ats.util.widgets.XHyperlabelTeamDefinitionSelection;
+import org.eclipse.osee.ats.world.WorldEditorParameterSearchItem;
+import org.eclipse.osee.ats.world.search.UserWorldSearchItem;
+import org.eclipse.osee.ats.world.search.UserWorldSearchItem.UserSearchOption;
+import org.eclipse.osee.framework.db.connection.exception.OseeArgumentException;
+import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
+import org.eclipse.osee.framework.logging.OseeLevel;
+import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.skynet.core.User;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.skynet.core.utility.Artifacts;
+import org.eclipse.osee.framework.ui.plugin.util.Result;
+import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
+import org.eclipse.osee.framework.ui.skynet.widgets.XCheckBox;
+import org.eclipse.osee.framework.ui.skynet.widgets.XCombo;
+import org.eclipse.osee.framework.ui.skynet.widgets.XMembersCombo;
+import org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener;
+import org.eclipse.osee.framework.ui.skynet.widgets.XWidget;
+import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayout;
+import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayoutData;
+import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IDynamicWidgetLayoutListener;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class UserSearchWorkflowSearchItem extends WorldEditorParameterSearchItem {
+
+ private XHyperlabelTeamDefinitionSelection teamCombo = null;
+ private XCombo versionCombo = null;
+ private XMembersCombo assigneeCombo;
+ private XCheckBox includeCancelledCheckbox;
+ private XCheckBox includeCompletedCheckbox;
+ private XCheckBox favoriteCheckbox;
+ private XCheckBox subscribedCheckbox;
+ private XCheckBox originatorCheckbox;
+ private XCheckBox reviewsCheckbox;
+ private XCheckBox teamWorkflowsCheckbox;
+ private XCheckBox tasksCheckbox;
+
+ public UserSearchWorkflowSearchItem() throws OseeArgumentException {
+ super("User Search", FrameworkImage.USER);
+ }
+
+ public UserSearchWorkflowSearchItem(UserSearchWorkflowSearchItem editTeamWorkflowSearchItem) throws OseeArgumentException {
+ super(editTeamWorkflowSearchItem, FrameworkImage.USER);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.ats.world.search.WorldSearchItem#copy()
+ */
+ @Override
+ public UserSearchWorkflowSearchItem copy() throws OseeArgumentException {
+ return new UserSearchWorkflowSearchItem(this);
+ }
+
+ public UserSearchWorkflowSearchItem copyProvider() throws OseeArgumentException {
+ return new UserSearchWorkflowSearchItem(this);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.ats.world.IWorldEditorParameterProvider#getParameterXWidgetXml()
+ */
+ @Override
+ public String getParameterXWidgetXml() throws OseeCoreException {
+ return "<xWidgets>" +
+ //
+ "<XWidget xwidgetType=\"XMembersCombo\" beginComposite=\"14\" displayName=\"Assignee\" horizontalLabel=\"true\"/>" +
+ //
+ "<XWidget displayName=\"Originated\" xwidgetType=\"XCheckBox\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\"/>" +
+ //
+ "<XWidget displayName=\"Subscribed\" xwidgetType=\"XCheckBox\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\"/>" +
+ //
+ "<XWidget displayName=\"Favorite\" xwidgetType=\"XCheckBox\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\"/>" +
+ //
+ "<XWidget displayName=\"Include Team Workflows\" xwidgetType=\"XCheckBox\" defaultValue=\"true\" labelAfter=\"true\" horizontalLabel=\"true\"/>" +
+ //
+ "<XWidget displayName=\"Include Reviews\" xwidgetType=\"XCheckBox\" defaultValue=\"true\" labelAfter=\"true\" horizontalLabel=\"true\"/>" +
+ //
+ "<XWidget displayName=\"Include Tasks\" endComposite=\"true\" xwidgetType=\"XCheckBox\" defaultValue=\"true\" labelAfter=\"true\" horizontalLabel=\"true\"/>" +
+ //
+ "<XWidget displayName=\"Version\" xwidgetType=\"XCombo()\" beginComposite=\"3\" horizontalLabel=\"true\"/>" +
+ //
+ "<XWidget displayName=\"Team Definitions(s)\" endComposite=\"true\" xwidgetType=\"XHyperlabelTeamDefinitionSelection\" horizontalLabel=\"true\"/>" +
+ //
+ "<XWidget displayName=\"Include Completed\" beginComposite=\"4\" xwidgetType=\"XCheckBox\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\"/>" +
+ //
+ "<XWidget displayName=\"Include Cancelled\" xwidgetType=\"XCheckBox\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\"/>" +
+ //
+ "</xWidgets>";
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.ats.world.IWorldEditorParameterProvider#performSearchGetResults(org.eclipse.osee.ats.world.search.WorldSearchItem.SearchType)
+ */
+ @Override
+ public Collection<? extends Artifact> performSearchGetResults(SearchType searchType) throws OseeCoreException {
+ return new UserWorldSearchItem(
+ getSelectedUser(),
+ getSelectedTeamDefinitions(),
+ (getSelectedVersionArtifact() != null ? Collections.singleton(getSelectedVersionArtifact()) : null),
+ //
+ (isFavoritesCheckbox() ? UserSearchOption.Favorites : UserSearchOption.None),
+ (isOriginatedCheckbox() ? UserSearchOption.Originator : UserSearchOption.None),
+ (isSubscribedCheckbox() ? UserSearchOption.Subscribed : UserSearchOption.None),
+ (isReviewsCheckbox() ? UserSearchOption.IncludeReviews : UserSearchOption.None),
+ (isTeamWorkflowsCheckbox() ? UserSearchOption.IncludeTeamWorkflows : UserSearchOption.None),
+ (isTasksCheckbox() ? UserSearchOption.IncludeTasks : UserSearchOption.None),
+ (isIncludeCancelledCheckbox() ? UserSearchOption.IncludeCancelled : UserSearchOption.None),
+ (isIncludeCompletedCheckbox() ? UserSearchOption.IncludeCompleted : UserSearchOption.None)
+
+ //
+ ).performSearch();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.ats.world.IWorldEditorProvider#getWorldEditorLabel(org.eclipse.osee.ats.world.search.WorldSearchItem.SearchType)
+ */
+ @Override
+ public String getSelectedName(SearchType searchType) throws OseeCoreException {
+ StringBuffer sb = new StringBuffer();
+ Collection<TeamDefinitionArtifact> teamDefs = getSelectedTeamDefinitions();
+ if (teamDefs.size() > 0) {
+ sb.append(" - Teams: " + org.eclipse.osee.framework.jdk.core.util.Collections.toString(",", teamDefs));
+ }
+ if (getSelectedVersionArtifact() != null) {
+ sb.append(" - Version: " + getSelectedVersionArtifact());
+ }
+ if (getSelectedUser() != null) {
+ sb.append(" - Assignee: " + getSelectedUser());
+ }
+ if (isIncludeCancelledCheckbox()) {
+ sb.append(" - Include Cancelled");
+ }
+ if (isIncludeCompletedCheckbox()) {
+ sb.append(" - Include Completed");
+ }
+ if (isOriginatedCheckbox()) {
+ sb.append(" - Originated");
+ }
+ if (isFavoritesCheckbox()) {
+ sb.append(" - Favorites");
+ }
+ if (isSubscribedCheckbox()) {
+ sb.append(" - Subscribed");
+ }
+ if (isReviewsCheckbox()) {
+ sb.append(" - Reviews");
+ }
+ if (isTeamWorkflowsCheckbox()) {
+ sb.append(" - Team Workflows");
+ }
+ if (isTasksCheckbox()) {
+ sb.append(" - Tasks");
+ }
+ return "User Search" + sb.toString();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.framework.ui.skynet.blam.operation.AbstractBlam#widgetCreated(org.eclipse.osee.framework.ui.skynet.widgets.XWidget, org.eclipse.ui.forms.widgets.FormToolkit, org.eclipse.osee.framework.skynet.core.artifact.Artifact, org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayout, org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener, boolean)
+ */
+ @Override
+ public void widgetCreated(XWidget widget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) throws OseeCoreException {
+ if (widget.getLabel().equals("Assignee")) {
+ assigneeCombo = (XMembersCombo) widget;
+ }
+ if (widget.getLabel().equals("Include Completed")) {
+ includeCompletedCheckbox = (XCheckBox) widget;
+ }
+ if (widget.getLabel().equals("Include Cancelled")) {
+ includeCancelledCheckbox = (XCheckBox) widget;
+ }
+ if (widget.getLabel().equals("Favorites")) {
+ favoriteCheckbox = (XCheckBox) widget;
+ }
+ if (widget.getLabel().equals("Subscribed")) {
+ subscribedCheckbox = (XCheckBox) widget;
+ }
+ if (widget.getLabel().equals("Originator")) {
+ originatorCheckbox = (XCheckBox) widget;
+ }
+ if (widget.getLabel().equals("Include Team Workflows")) {
+ teamWorkflowsCheckbox = (XCheckBox) widget;
+ }
+ if (widget.getLabel().equals("Include Reviews")) {
+ reviewsCheckbox = (XCheckBox) widget;
+ }
+ if (widget.getLabel().equals("Include Tasks")) {
+ tasksCheckbox = (XCheckBox) widget;
+ }
+ if (widget.getLabel().equals("Version")) {
+ versionCombo = (XCombo) widget;
+ versionCombo.getComboBox().setVisibleItemCount(25);
+ widget.setToolTip("Select Team to populate Version list");
+ }
+ if (widget.getLabel().equals("Team Definitions(s)")) {
+ teamCombo = (XHyperlabelTeamDefinitionSelection) widget;
+ teamCombo.addXModifiedListener(new XModifiedListener() {
+ @Override
+ public void widgetModified(XWidget widget) {
+ if (versionCombo != null) {
+ try {
+ Collection<TeamDefinitionArtifact> teamDefArts = getSelectedTeamDefinitions();
+ if (teamDefArts.size() == 0) {
+ versionCombo.setDataStrings(new String[] {});
+ return;
+ }
+ TeamDefinitionArtifact teamDefHoldingVersions =
+ teamDefArts.iterator().next().getTeamDefinitionHoldingVersions();
+ if (teamDefHoldingVersions == null) {
+ versionCombo.setDataStrings(new String[] {});
+ return;
+ }
+ Collection<String> names =
+ Artifacts.artNames(teamDefHoldingVersions.getVersionsArtifacts(VersionReleaseType.Both));
+ if (names.size() == 0) {
+ versionCombo.setDataStrings(new String[] {});
+ return;
+ }
+ versionCombo.setDataStrings(names.toArray(new String[names.size()]));
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex);
+ }
+ }
+ }
+ });
+ }
+ }
+
+ private User getSelectedUser() {
+ if (assigneeCombo == null) return null;
+ return assigneeCombo.getUser();
+ }
+
+ public void setSelectedUser(User user) {
+ if (assigneeCombo != null) assigneeCombo.set(user);
+ }
+
+ private boolean isIncludeCompletedCheckbox() {
+ if (includeCompletedCheckbox == null) return false;
+ return includeCompletedCheckbox.isSelected();
+ }
+
+ private boolean isIncludeCancelledCheckbox() {
+ if (includeCancelledCheckbox == null) return false;
+ return includeCancelledCheckbox.isSelected();
+ }
+
+ private boolean isFavoritesCheckbox() {
+ if (favoriteCheckbox == null) return false;
+ return favoriteCheckbox.isSelected();
+ }
+
+ private boolean isOriginatedCheckbox() {
+ if (originatorCheckbox == null) return false;
+ return originatorCheckbox.isSelected();
+ }
+
+ private boolean isSubscribedCheckbox() {
+ if (subscribedCheckbox == null) return false;
+ return subscribedCheckbox.isSelected();
+ }
+
+ private boolean isTeamWorkflowsCheckbox() {
+ if (teamWorkflowsCheckbox == null) return false;
+ return teamWorkflowsCheckbox.isSelected();
+ }
+
+ private boolean isReviewsCheckbox() {
+ if (reviewsCheckbox == null) return false;
+ return reviewsCheckbox.isSelected();
+ }
+
+ private boolean isTasksCheckbox() {
+ if (tasksCheckbox == null) return false;
+ return tasksCheckbox.isSelected();
+ }
+
+ public void includeCompletedCheckbox(boolean selected) {
+ if (includeCompletedCheckbox != null) includeCompletedCheckbox.set(selected);
+ }
+
+ public void includeCancelledCheckbox(boolean selected) {
+ if (includeCancelledCheckbox != null) includeCancelledCheckbox.set(selected);
+ }
+
+ private VersionArtifact getSelectedVersionArtifact() throws OseeCoreException {
+ if (versionCombo == null) return null;
+ String versionStr = versionCombo.get();
+ if (versionStr == null || versionStr.equals("")) return null;
+ Collection<TeamDefinitionArtifact> teamDefs = getSelectedTeamDefinitions();
+ if (teamDefs.size() > 0) {
+ TeamDefinitionArtifact teamDefHoldingVersions = teamDefs.iterator().next().getTeamDefinitionHoldingVersions();
+ if (teamDefHoldingVersions == null) return null;
+ for (VersionArtifact versionArtifact : teamDefHoldingVersions.getVersionsArtifacts(VersionReleaseType.Both)) {
+ if (versionArtifact.getDescriptiveName().equals(versionStr)) {
+ return versionArtifact;
+ }
+ }
+ }
+ return null;
+ }
+
+ public void setVersion(String versionStr) {
+ if (versionCombo != null && versionCombo.getInDataStrings() != null) {
+ // should check if the version combo was populated
+ if (versionCombo.getInDataStrings().length > 0) {
+ versionCombo.set(versionStr);
+ }
+ }
+ }
+
+ public Collection<TeamDefinitionArtifact> getSelectedTeamDefinitions() throws OseeCoreException {
+ if (teamCombo == null) return java.util.Collections.emptyList();
+ return teamCombo.getSelectedTeamDefintions();
+ }
+
+ public void setSelectedTeamDefinitions(Set<TeamDefinitionArtifact> selectedUsers) {
+ if (teamCombo != null) {
+ teamCombo.setSelectedTeamDefs(selectedUsers);
+ teamCombo.notifyXModifiedListeners();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.framework.ui.skynet.widgets.workflow.IDynamicWidgetLayoutListener#createXWidgetLayoutData(org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayoutData, org.eclipse.osee.framework.ui.skynet.widgets.XWidget, org.eclipse.ui.forms.widgets.FormToolkit, org.eclipse.osee.framework.skynet.core.artifact.Artifact, org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener, boolean)
+ */
+ @Override
+ public void createXWidgetLayoutData(DynamicXWidgetLayoutData layoutData, XWidget widget, FormToolkit toolkit, Artifact art, XModifiedListener modListener, boolean isEditable) throws OseeCoreException {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.framework.ui.skynet.widgets.workflow.IDynamicWidgetLayoutListener#widgetCreating(org.eclipse.osee.framework.ui.skynet.widgets.XWidget, org.eclipse.ui.forms.widgets.FormToolkit, org.eclipse.osee.framework.skynet.core.artifact.Artifact, org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayout, org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener, boolean)
+ */
+ @Override
+ public void widgetCreating(XWidget widget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) throws OseeCoreException {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.ats.world.WorldParameterSearchItem#isParameterSelectionValid()
+ */
+ @Override
+ public Result isParameterSelectionValid() throws OseeCoreException {
+ try {
+ User user = getSelectedUser();
+ if (user == null) {
+ return new Result("You must select at Assignee.");
+ }
+ if (!isTeamWorkflowsCheckbox() && !isReviewsCheckbox() && !isTasksCheckbox()) {
+ return new Result("You must select one or more of Team Workflows, Reviews or Tasks");
+ }
+ return Result.TrueResult;
+ } catch (Exception ex) {
+ OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
+ return new Result("Exception: " + ex.getLocalizedMessage());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.ats.world.IWorldEditorParameterProvider#getDynamicWidgetLayoutListener()
+ */
+ @Override
+ public IDynamicWidgetLayoutListener getDynamicWidgetLayoutListener() {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.ats.world.IWorldEditorProvider#getTargetedVersionArtifact()
+ */
+ @Override
+ public VersionArtifact getTargetedVersionArtifact() throws OseeCoreException {
+ if (versionCombo == null) return null;
+ return getSelectedVersionArtifact();
+ }
+
+}
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAMetrics.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAMetrics.java index 30b8227dc36..d8b83526952 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAMetrics.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAMetrics.java @@ -18,18 +18,15 @@ import java.util.HashSet; import java.util.List; import java.util.Set; import org.eclipse.osee.ats.artifact.ActionArtifact; -import org.eclipse.osee.ats.artifact.LogItem; 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.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.artifact.VersionArtifact; -import org.eclipse.osee.ats.util.AtsPriority.PriorityType; import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.type.HashCollection; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; -import org.eclipse.osee.framework.ui.skynet.util.ChangeType; import org.eclipse.osee.framework.ui.skynet.widgets.XDate; /** @@ -457,117 +454,4 @@ public class SMAMetrics { return getUserToAssignedSmas(user, null); } - public static Collection<StateMachineArtifact> getOpenAtDate(Date date, Collection<StateMachineArtifact> artifacts) throws OseeCoreException { - List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>(); - for (StateMachineArtifact sma : artifacts) { - Date createDate = sma.getWorldViewCreatedDate(); - Date completedCancelDate = null; - if (sma.getSmaMgr().isCancelledOrCompleted()) { - if (sma.getSmaMgr().isCancelled()) { - completedCancelDate = sma.getWorldViewCancelledDate(); - } else { - completedCancelDate = sma.getWorldViewCompletedDate(); - } - } - if (createDate.before(date) && (completedCancelDate == null || completedCancelDate.after(date))) { - smas.add(sma); - } - } - return smas; - } - - public static Collection<StateMachineArtifact> getCompletedCancelledBetweenDate(Date startDate, Date endDate, Collection<StateMachineArtifact> artifacts) throws OseeCoreException { - List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>(); - for (StateMachineArtifact sma : artifacts) { - Date completedCancelDate = null; - if (sma.getSmaMgr().isCancelledOrCompleted()) { - if (sma.getSmaMgr().isCancelled()) { - completedCancelDate = sma.getWorldViewCancelledDate(); - } else { - completedCancelDate = sma.getWorldViewCompletedDate(); - } - } - if (completedCancelDate == null) continue; - if (completedCancelDate.after(startDate) && completedCancelDate.before(endDate)) { - smas.add(sma); - } - } - return smas; - } - - public static Double getHoursSpent(Collection<StateMachineArtifact> artifacts) throws OseeCoreException { - Double hoursSpent = 0.0; - for (StateMachineArtifact sma : artifacts) { - hoursSpent += sma.getWorldViewHoursSpentTotal(); - } - return hoursSpent; - } - - public static Collection<StateMachineArtifact> getStateAtDate(Date date, Collection<String> states, Collection<StateMachineArtifact> artifacts) throws OseeCoreException { - List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>(); - for (StateMachineArtifact sma : artifacts) { - Date createDate = sma.getWorldViewCreatedDate(); - if (createDate.after(date)) continue; - // Find state at date - String currentState = sma.getSmaMgr().getStateMgr().getCurrentStateName(); - for (LogItem item : sma.getSmaMgr().getLog().getLogItems()) { - if (item.getDate().before(date)) { - currentState = item.getState(); - } - } - if (states.contains(currentState)) { - smas.add(sma); - } - } - return smas; - } - - /** - * Returns sma if change type, or parent team workflow's change type is in specified set - * - * @param changeTypes - * @param artifacts - * @throws OseeCoreException - */ - public static Collection<StateMachineArtifact> getChangeType(Collection<ChangeType> changeTypes, Collection<StateMachineArtifact> artifacts) throws OseeCoreException { - List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>(); - for (StateMachineArtifact sma : artifacts) { - TeamWorkFlowArtifact teamArt = sma.getParentTeamWorkflow(); - if (changeTypes.contains(teamArt.getChangeType())) { - smas.add(sma); - } - } - return smas; - - } - - /** - * Returns sma if priority type, or parent team workflow's priority type is in specified set - * - * @param priorityTypes - * @param artifacts - * @throws OseeCoreException - */ - public static Collection<StateMachineArtifact> getPriorityType(Collection<PriorityType> priorityTypes, Collection<StateMachineArtifact> artifacts) throws OseeCoreException { - List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>(); - for (StateMachineArtifact sma : artifacts) { - TeamWorkFlowArtifact teamArt = sma.getParentTeamWorkflow(); - if (priorityTypes.contains(teamArt.getPriority())) { - smas.add(sma); - } - } - return smas; - - } - - public static Collection<StateMachineArtifact> getSMAs(Collection<Artifact> artifacts) throws OseeCoreException { - List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>(); - for (Artifact artifact : artifacts) { - if (artifact instanceof StateMachineArtifact) { - smas.add((StateMachineArtifact) artifact); - } - } - return smas; - } - } diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAUtil.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAUtil.java new file mode 100644 index 00000000000..38d37fb4dc5 --- /dev/null +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/SMAUtil.java @@ -0,0 +1,207 @@ +/*
+ * Created on Jul 12, 2009
+ *
+ * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
+ */
+package org.eclipse.osee.ats.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+import org.eclipse.osee.ats.artifact.LogItem;
+import org.eclipse.osee.ats.artifact.StateMachineArtifact;
+import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact;
+import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.artifact.VersionArtifact;
+import org.eclipse.osee.ats.util.AtsPriority.PriorityType;
+import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.ui.skynet.util.ChangeType;
+
+/**
+ * This utility class provides methods to filter out certain types of state machine artifacts based on criteria
+ *
+ * @author Donald G. Dunne
+ */
+public class SMAUtil {
+
+ public static Collection<StateMachineArtifact> getCompletedCancelled(Collection<StateMachineArtifact> smas) throws OseeCoreException {
+ List<StateMachineArtifact> artifactsToReturn = new ArrayList<StateMachineArtifact>(smas.size());
+ for (StateMachineArtifact sma : smas) {
+ if (sma.getSmaMgr().isCancelledOrCompleted()) {
+ artifactsToReturn.add(sma);
+ }
+ }
+ return artifactsToReturn;
+ }
+
+ public static Collection<StateMachineArtifact> getInWork(Collection<StateMachineArtifact> smas) throws OseeCoreException {
+ List<StateMachineArtifact> artifactsToReturn = new ArrayList<StateMachineArtifact>(smas.size());
+ for (StateMachineArtifact sma : smas) {
+ if (!sma.getSmaMgr().isCancelledOrCompleted()) {
+ artifactsToReturn.add(sma);
+ }
+ }
+ return artifactsToReturn;
+ }
+
+ public static Collection<StateMachineArtifact> filterOutState(Collection<StateMachineArtifact> smas, Collection<String> stateNames) throws OseeCoreException {
+ List<StateMachineArtifact> artifactsToReturn = new ArrayList<StateMachineArtifact>(smas.size());
+ for (StateMachineArtifact sma : smas) {
+ if (!stateNames.contains(sma.getSmaMgr().getStateMgr().getCurrentStateName())) {
+ artifactsToReturn.add(sma);
+ }
+ }
+ return artifactsToReturn;
+ }
+
+ public static Collection<StateMachineArtifact> filterOutTypes(Collection<StateMachineArtifact> smas, Collection<Class<?>> classes) throws OseeCoreException {
+ List<StateMachineArtifact> artifactsToReturn = new ArrayList<StateMachineArtifact>(smas.size());
+ for (StateMachineArtifact sma : smas) {
+ boolean found = false;
+ for (Class<?> clazz : classes) {
+ if (clazz.isInstance(sma)) {
+ found = true;
+ }
+ }
+ if (!found) {
+ artifactsToReturn.add(sma);
+ }
+ }
+ return artifactsToReturn;
+ }
+
+ public static Collection<StateMachineArtifact> getOpenAtDate(Date date, Collection<StateMachineArtifact> artifacts) throws OseeCoreException {
+ List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>();
+ for (StateMachineArtifact sma : artifacts) {
+ Date createDate = sma.getWorldViewCreatedDate();
+ Date completedCancelDate = null;
+ if (sma.getSmaMgr().isCancelledOrCompleted()) {
+ if (sma.getSmaMgr().isCancelled()) {
+ completedCancelDate = sma.getWorldViewCancelledDate();
+ } else {
+ completedCancelDate = sma.getWorldViewCompletedDate();
+ }
+ }
+ if (createDate.before(date) && (completedCancelDate == null || completedCancelDate.after(date))) {
+ smas.add(sma);
+ }
+ }
+ return smas;
+ }
+
+ public static Collection<StateMachineArtifact> getCompletedCancelledBetweenDate(Date startDate, Date endDate, Collection<StateMachineArtifact> artifacts) throws OseeCoreException {
+ List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>();
+ for (StateMachineArtifact sma : artifacts) {
+ Date completedCancelDate = null;
+ if (sma.getSmaMgr().isCancelledOrCompleted()) {
+ if (sma.getSmaMgr().isCancelled()) {
+ completedCancelDate = sma.getWorldViewCancelledDate();
+ } else {
+ completedCancelDate = sma.getWorldViewCompletedDate();
+ }
+ }
+ if (completedCancelDate == null) continue;
+ if (completedCancelDate.after(startDate) && completedCancelDate.before(endDate)) {
+ smas.add(sma);
+ }
+ }
+ return smas;
+ }
+
+ public static Double getHoursSpent(Collection<StateMachineArtifact> artifacts) throws OseeCoreException {
+ Double hoursSpent = 0.0;
+ for (StateMachineArtifact sma : artifacts) {
+ hoursSpent += sma.getWorldViewHoursSpentTotal();
+ }
+ return hoursSpent;
+ }
+
+ public static Collection<StateMachineArtifact> getStateAtDate(Date date, Collection<String> states, Collection<StateMachineArtifact> artifacts) throws OseeCoreException {
+ List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>();
+ for (StateMachineArtifact sma : artifacts) {
+ Date createDate = sma.getWorldViewCreatedDate();
+ if (createDate.after(date)) continue;
+ // Find state at date
+ String currentState = sma.getSmaMgr().getStateMgr().getCurrentStateName();
+ for (LogItem item : sma.getSmaMgr().getLog().getLogItems()) {
+ if (item.getDate().before(date)) {
+ currentState = item.getState();
+ }
+ }
+ if (states.contains(currentState)) {
+ smas.add(sma);
+ }
+ }
+ return smas;
+ }
+
+ /**
+ * Returns sma if change type, or parent team workflow's change type is in specified set
+ *
+ * @param changeTypes
+ * @param artifacts
+ * @throws OseeCoreException
+ */
+ public static Collection<StateMachineArtifact> getChangeType(Collection<ChangeType> changeTypes, Collection<StateMachineArtifact> artifacts) throws OseeCoreException {
+ List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>();
+ for (StateMachineArtifact sma : artifacts) {
+ TeamWorkFlowArtifact teamArt = sma.getParentTeamWorkflow();
+ if (changeTypes.contains(teamArt.getChangeType())) {
+ smas.add(sma);
+ }
+ }
+ return smas;
+
+ }
+
+ /**
+ * Returns sma if priority type, or parent team workflow's priority type is in specified set
+ *
+ * @param priorityTypes
+ * @param artifacts
+ * @throws OseeCoreException
+ */
+ public static Collection<StateMachineArtifact> getPriorityType(Collection<PriorityType> priorityTypes, Collection<StateMachineArtifact> artifacts) throws OseeCoreException {
+ List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>();
+ for (StateMachineArtifact sma : artifacts) {
+ TeamWorkFlowArtifact teamArt = sma.getParentTeamWorkflow();
+ if (priorityTypes.contains(teamArt.getPriority())) {
+ smas.add(sma);
+ }
+ }
+ return smas;
+
+ }
+
+ public static Collection<StateMachineArtifact> getTeamDefinitionWorkflows(Collection<? extends Artifact> artifacts, Collection<TeamDefinitionArtifact> teamDefs) throws OseeCoreException {
+ List<StateMachineArtifact> returnSmas = new ArrayList<StateMachineArtifact>();
+ for (StateMachineArtifact sma : getSMAs(artifacts)) {
+ if (sma.getParentTeamWorkflow() == null) continue;
+ if (teamDefs.contains(sma.getParentTeamWorkflow().getTeamDefinition())) returnSmas.add(sma);
+ }
+ return returnSmas;
+ }
+
+ public static Collection<StateMachineArtifact> getVersionWorkflows(Collection<? extends Artifact> artifacts, Collection<VersionArtifact> versionArts) throws OseeCoreException {
+ List<StateMachineArtifact> returnSmas = new ArrayList<StateMachineArtifact>();
+ for (StateMachineArtifact sma : getSMAs(artifacts)) {
+ if (sma.getParentTeamWorkflow() == null) continue;
+ if (sma.getWorldViewTargetedVersion() == null) continue;
+ if (versionArts.contains(sma.getWorldViewTargetedVersion())) returnSmas.add(sma);
+ }
+ return returnSmas;
+ }
+
+ public static Collection<StateMachineArtifact> getSMAs(Collection<? extends Artifact> artifacts) throws OseeCoreException {
+ List<StateMachineArtifact> smas = new ArrayList<StateMachineArtifact>();
+ for (Artifact artifact : artifacts) {
+ if (artifact instanceof StateMachineArtifact) {
+ smas.add((StateMachineArtifact) artifact);
+ }
+ }
+ return smas;
+ }
+
+}
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/search/MyCompletedSearchItem.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/search/MyCompletedSearchItem.java deleted file mode 100644 index 73ee1ec01f0..00000000000 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/search/MyCompletedSearchItem.java +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************************* - * 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.world.search; - -import java.util.Collection; -import org.eclipse.osee.ats.artifact.ATSAttributes; -import org.eclipse.osee.ats.util.AtsUtil; -import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; -import org.eclipse.osee.framework.skynet.core.User; -import org.eclipse.osee.framework.skynet.core.artifact.Artifact; -import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; - -/** - * @author Donald G. Dunne - */ -public class MyCompletedSearchItem extends UserSearchItem { - - public MyCompletedSearchItem() { - this("My Completed", null); - } - - public MyCompletedSearchItem(String name) { - super(name, null); - } - - public MyCompletedSearchItem(String name, User user) { - super(name, user); - } - - public MyCompletedSearchItem(MyCompletedSearchItem myCompletedSearchItem) { - super(myCompletedSearchItem); - } - - @Override - protected Collection<Artifact> searchIt(User user) throws OseeCoreException { - if (isCancelled()) return EMPTY_SET; - // SMA having user as portion of current state attribute (Team WorkFlow and Task) - String valueToMatch = - "%state=\"Completed\" type=\"StateEntered\" userId=\"" + getSearchUser().getUserId() + "\"%"; - return ArtifactQuery.getArtifactsFromAttribute(ATSAttributes.LOG_ATTRIBUTE.getStoreName(), valueToMatch, - AtsUtil.getAtsBranch()); - } - - /* (non-Javadoc) - * @see org.eclipse.osee.ats.world.search.WorldUISearchItem#copy() - */ - @Override - public WorldUISearchItem copy() { - return new MyCompletedSearchItem(this); - } - -} diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/search/MyOrigSearchItem.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/search/MyOrigSearchItem.java deleted file mode 100644 index 54ea22b7df2..00000000000 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/search/MyOrigSearchItem.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * 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.world.search; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import org.eclipse.osee.ats.artifact.ATSAttributes; -import org.eclipse.osee.ats.artifact.StateMachineArtifact; -import org.eclipse.osee.ats.util.AtsUtil; -import org.eclipse.osee.framework.db.connection.exception.OseeCoreException; -import org.eclipse.osee.framework.skynet.core.User; -import org.eclipse.osee.framework.skynet.core.artifact.Artifact; -import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; -import org.eclipse.osee.framework.ui.skynet.FrameworkImage; - -/** - * @author Donald G. Dunne - */ -public class MyOrigSearchItem extends UserSearchItem { - - private final OriginatedState originatedState; - - public enum OriginatedState { - InWork, All - }; - - public MyOrigSearchItem(String name, User user, OriginatedState originatedState) { - super(name, user, FrameworkImage.USER); - this.originatedState = originatedState; - } - - public MyOrigSearchItem(MyOrigSearchItem myOrigSearchItem) { - super(myOrigSearchItem, null); - this.originatedState = myOrigSearchItem.originatedState; - } - - @Override - protected Collection<Artifact> searchIt(User user) throws OseeCoreException { - - Collection<Artifact> artifacts = - ArtifactQuery.getArtifactsFromAttribute(ATSAttributes.LOG_ATTRIBUTE.getStoreName(), - "%type=\"Originated\" userId=\"" + user.getUserId() + "\"%", AtsUtil.getAtsBranch()); - - List<Artifact> artifactsToReturn = new ArrayList<Artifact>(artifacts.size()); - for (Artifact artifact : artifacts) { - if (artifact instanceof StateMachineArtifact) { - if (originatedState == OriginatedState.All || (originatedState == OriginatedState.InWork && !((StateMachineArtifact) artifact).getSmaMgr().isCancelledOrCompleted())) { - artifactsToReturn.add(artifact); - } - } - } - return artifactsToReturn; - } - - /* (non-Javadoc) - * @see org.eclipse.osee.ats.world.search.WorldUISearchItem#copy() - */ - @Override - public WorldUISearchItem copy() { - return new MyOrigSearchItem(this); - } - -} diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/search/UserWorldSearchItem.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/search/UserWorldSearchItem.java new file mode 100644 index 00000000000..add8f1f0fb2 --- /dev/null +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/search/UserWorldSearchItem.java @@ -0,0 +1,122 @@ +/*
+ * Created on Jul 11, 2009
+ *
+ * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
+ */
+package org.eclipse.osee.ats.world.search;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+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.artifact.TeamDefinitionArtifact;
+import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact;
+import org.eclipse.osee.ats.artifact.VersionArtifact;
+import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact.DefaultTeamState;
+import org.eclipse.osee.ats.util.AtsRelation;
+import org.eclipse.osee.ats.util.AtsUtil;
+import org.eclipse.osee.ats.util.SMAUtil;
+import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.util.Collections;
+import org.eclipse.osee.framework.skynet.core.User;
+import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
+import org.eclipse.osee.framework.skynet.core.relation.CoreRelationEnumeration;
+import org.eclipse.osee.framework.skynet.core.relation.RelationManager;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class UserWorldSearchItem {
+
+ private final Collection<TeamDefinitionArtifact> teamDefs;
+ private final Collection<VersionArtifact> versions;
+ private final Collection<UserSearchOption> options;
+ private final User user;
+
+ public static enum UserSearchOption {
+ None,
+ Favorites,
+ Subscribed,
+ Originator,
+ IncludeCompleted,
+ IncludeCancelled,
+ IncludeTeamWorkflows,
+ IncludeReviews,
+ IncludeTasks
+ };
+
+ public UserWorldSearchItem(User user, Collection<TeamDefinitionArtifact> teamDefs, Collection<VersionArtifact> versions, UserSearchOption... userSearchOption) {
+ this.user = user;
+ this.teamDefs = teamDefs;
+ this.versions = versions;
+ this.options = Collections.getAggregate(userSearchOption);
+ }
+
+ public Collection<StateMachineArtifact> performSearch() throws OseeCoreException {
+ Set<StateMachineArtifact> searchArts = new HashSet<StateMachineArtifact>();
+ if (options.contains(UserSearchOption.Originator))
+ searchArts.addAll(getOriginatorArtifacts());
+ else if (options.contains(UserSearchOption.Subscribed))
+ searchArts.addAll(getSubscribedArtifacts());
+ else if (options.contains(UserSearchOption.Favorites))
+ searchArts.addAll(getFavoritesArtifacts());
+ else {
+ searchArts.addAll(SMAUtil.getSMAs(RelationManager.getRelatedArtifacts(Arrays.asList(user), 1,
+ CoreRelationEnumeration.Users_Artifact)));
+ // If include cancelled or completed, need to perform extra search
+ // Note: Don't need to do this for Originator, Subscribed or Favorites, cause it does completed canceled in it's own searches
+ if (options.contains(UserSearchOption.IncludeCancelled) || options.contains(UserSearchOption.IncludeCompleted)) {
+ searchArts.addAll(SMAUtil.getSMAs(ArtifactQuery.getArtifactsFromAttribute(
+ ATSAttributes.STATE_ATTRIBUTE.getStoreName(), "%<" + user.getUserId() + ">%", AtsUtil.getAtsBranch())));
+ }
+ }
+
+ Collection<Class<?>> filterClasses = new ArrayList<Class<?>>();
+ if (!options.contains(UserSearchOption.IncludeReviews)) filterClasses.add(ReviewSMArtifact.class);
+ if (!options.contains(UserSearchOption.IncludeTeamWorkflows)) filterClasses.add(TeamWorkFlowArtifact.class);
+ if (!options.contains(UserSearchOption.IncludeTasks)) filterClasses.add(TaskArtifact.class);
+
+ Collection<StateMachineArtifact> filteredArts = SMAUtil.filterOutTypes(searchArts, filterClasses);
+
+ if (teamDefs != null && teamDefs.size() > 0) filteredArts =
+ SMAUtil.getTeamDefinitionWorkflows(filteredArts, teamDefs);
+
+ if (versions != null && versions.size() > 0) filteredArts = SMAUtil.getVersionWorkflows(filteredArts, versions);
+
+ // Handle include completed/cancelled option
+ if (options.contains(UserSearchOption.IncludeCompleted) && options.contains(UserSearchOption.IncludeCancelled)) {
+ return filteredArts;
+ }
+
+ if (!options.contains(UserSearchOption.IncludeCancelled)) {
+ filteredArts =
+ SMAUtil.filterOutState(filteredArts, java.util.Collections.singleton(DefaultTeamState.Cancelled.name()));
+ }
+
+ if (!options.contains(UserSearchOption.IncludeCompleted)) {
+ filteredArts =
+ SMAUtil.filterOutState(filteredArts, java.util.Collections.singleton(DefaultTeamState.Completed.name()));
+ }
+
+ return filteredArts;
+ }
+
+ private Collection<StateMachineArtifact> getOriginatorArtifacts() throws OseeCoreException {
+ return Collections.castAll(ArtifactQuery.getArtifactsFromAttribute(ATSAttributes.LOG_ATTRIBUTE.getStoreName(),
+ "%type=\"Originated\" userId=\"" + user.getUserId() + "\"%", AtsUtil.getAtsBranch()));
+ }
+
+ private Collection<StateMachineArtifact> getSubscribedArtifacts() throws OseeCoreException {
+ return user.getRelatedArtifactsOfType(AtsRelation.SubscribedUser_Artifact, StateMachineArtifact.class);
+ }
+
+ private Collection<StateMachineArtifact> getFavoritesArtifacts() throws OseeCoreException {
+ return user.getRelatedArtifactsOfType(AtsRelation.FavoriteUser_Artifact, StateMachineArtifact.class);
+ }
+
+}
diff --git a/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF b/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF index 3c6023b8172..b120cca7809 100644 --- a/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF +++ b/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF @@ -69,6 +69,7 @@ Export-Package: org.eclipse.osee.framework.ui.skynet, org.eclipse.osee.framework.ui.skynet.commandHandlers.branch,
org.eclipse.osee.framework.ui.skynet.commandHandlers.branch.commit,
org.eclipse.osee.framework.ui.skynet.commandHandlers.renderer.handlers,
+ org.eclipse.osee.framework.ui.skynet.compare,
org.eclipse.osee.framework.ui.skynet.dbinit,
org.eclipse.osee.framework.ui.skynet.dialogs,
org.eclipse.osee.framework.ui.skynet.export,
diff --git a/org.eclipse.osee.framework.ui.skynet/images/aspect.gif b/org.eclipse.osee.framework.ui.skynet/images/aspect.gif Binary files differdeleted file mode 100644 index 11d750ac0f2..00000000000 --- a/org.eclipse.osee.framework.ui.skynet/images/aspect.gif +++ /dev/null diff --git a/org.eclipse.osee.framework.ui.skynet/images/product.gif b/org.eclipse.osee.framework.ui.skynet/images/product.gif Binary files differdeleted file mode 100644 index 346a94d0201..00000000000 --- a/org.eclipse.osee.framework.ui.skynet/images/product.gif +++ /dev/null diff --git a/org.eclipse.osee.framework.ui.skynet/images/task.gif b/org.eclipse.osee.framework.ui.skynet/images/task.gif Binary files differdeleted file mode 100644 index 36fc007591a..00000000000 --- a/org.eclipse.osee.framework.ui.skynet/images/task.gif +++ /dev/null diff --git a/org.eclipse.osee.framework.ui.skynet/images/results.gif b/org.eclipse.osee.framework.ui.skynet/images/www.gif Binary files differindex 4c882068b69..fdea33da196 100644 --- a/org.eclipse.osee.framework.ui.skynet/images/results.gif +++ b/org.eclipse.osee.framework.ui.skynet/images/www.gif diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/compare/IResultsEditorCompareTab.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/compare/IResultsEditorCompareTab.java new file mode 100644 index 00000000000..bd133123a6f --- /dev/null +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/compare/IResultsEditorCompareTab.java @@ -0,0 +1,25 @@ +/*******************************************************************************
+ * 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.framework.ui.skynet.results.compare;
+
+import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
+import org.eclipse.osee.framework.ui.skynet.results.IResultsEditorTab;
+
+/**
+ * @author Donald G. Dunne
+ */
+public interface IResultsEditorCompareTab extends IResultsEditorTab {
+
+ public String getLeftString() throws OseeCoreException;
+
+ public String getRightString() throws OseeCoreException;
+
+}
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/compare/ResultsEditorCompareTab.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/compare/ResultsEditorCompareTab.java new file mode 100644 index 00000000000..c8d96a6fad7 --- /dev/null +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/results/compare/ResultsEditorCompareTab.java @@ -0,0 +1,75 @@ +/*******************************************************************************
+ * 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.framework.ui.skynet.results.compare;
+
+import org.eclipse.osee.framework.db.connection.exception.OseeCoreException;
+import org.eclipse.osee.framework.ui.skynet.results.ResultsEditor;
+import org.eclipse.osee.framework.ui.swt.ALayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.ToolBar;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class ResultsEditorCompareTab implements IResultsEditorCompareTab {
+
+ private final String tabName;
+ private final String rightStr;
+ private final String leftStr;
+
+ public ResultsEditorCompareTab(String title, String tabName, String leftStr, String rightStr) {
+ this.tabName = tabName;
+ this.leftStr = leftStr;
+ this.rightStr = rightStr;
+ org.eclipse.core.runtime.Assert.isNotNull(tabName);
+ org.eclipse.core.runtime.Assert.isNotNull(leftStr);
+ org.eclipse.core.runtime.Assert.isNotNull(rightStr);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.framework.ui.skynet.results.IResultsEditorTab#getTabName()
+ */
+ @Override
+ public String getTabName() {
+ return tabName;
+ }
+
+ public Composite createTab(Composite parent, ResultsEditor resultsEditor) throws OseeCoreException {
+
+ Composite comp = ALayout.createCommonPageComposite(parent);
+ ToolBar toolBar = resultsEditor.createToolBar(comp);
+ createToolbar(toolBar);
+
+ GridData gd = new GridData(GridData.FILL_BOTH);
+ return comp;
+ }
+
+ private void createToolbar(ToolBar toolBar) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.framework.ui.skynet.results.compare.IResultsEditorCompareTab#getLeftString()
+ */
+ @Override
+ public String getLeftString() throws OseeCoreException {
+ return leftStr;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.framework.ui.skynet.results.compare.IResultsEditorCompareTab#getRightString()
+ */
+ @Override
+ public String getRightString() throws OseeCoreException {
+ return rightStr;
+ }
+
+}
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateItem.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateItem.java index 55c24f0581d..cbf1dd03d07 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateItem.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateItem.java @@ -25,19 +25,12 @@ public class XNavigateItem { private final List<XNavigateItem> children = new ArrayList<XNavigateItem>();
private String name;
private XNavigateItem parent;
- private final Image image;
+ private final OseeImage oseeImage;
public XNavigateItem(XNavigateItem parent, String name, OseeImage oseeImage) {
this.parent = parent;
this.name = name;
- this.image = oseeImage == null ? null : ImageManager.getImage(oseeImage);
- if (parent != null) parent.addChild(this);
- }
-
- public XNavigateItem(XNavigateItem parent, String name, Image oseeImage) {
- this.parent = parent;
- this.name = name;
- this.image = oseeImage;
+ this.oseeImage = oseeImage;
if (parent != null) parent.addChild(this);
}
@@ -69,7 +62,10 @@ public class XNavigateItem { * @return the image
*/
public Image getImage() {
- return image;
+ if (oseeImage != null) {
+ return ImageManager.getImage(oseeImage);
+ }
+ return null;
}
/**
diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateItemAction.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateItemAction.java index bb1d341d919..2095f73ee13 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateItemAction.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateItemAction.java @@ -15,7 +15,6 @@ import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.osee.framework.ui.plugin.util.Displays; import org.eclipse.osee.framework.ui.skynet.OseeImage; import org.eclipse.osee.framework.ui.skynet.widgets.xnavigate.XNavigateComposite.TableLoadOption; -import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; /** @@ -52,13 +51,6 @@ public class XNavigateItemAction extends XNavigateItem { this.promptFirst = promptFirst; } - @Deprecated - public XNavigateItemAction(XNavigateItem parent, Action action, Image oseeImage, boolean promptFirst) { - super(parent, action.getText(), oseeImage); - this.action = action; - this.promptFirst = promptFirst; - } - @Override public void run(TableLoadOption... tableLoadOptions) throws Exception { if (action != null) { diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateUrlItem.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateUrlItem.java index f2d8daf9a76..753d19be565 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateUrlItem.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xnavigate/XNavigateUrlItem.java @@ -14,6 +14,7 @@ import java.net.URL; import org.eclipse.osee.framework.db.connection.exception.OseeArgumentException; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.ui.skynet.FrameworkImage; import org.eclipse.osee.framework.ui.skynet.OseeImage; import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; import org.eclipse.osee.framework.ui.skynet.widgets.xnavigate.XNavigateComposite.TableLoadOption; @@ -40,7 +41,7 @@ public class XNavigateUrlItem extends XNavigateItemAction { * @throws OseeArgumentException */ public XNavigateUrlItem(XNavigateItem parent, String name, String url, boolean external) throws OseeArgumentException { - this(parent, name, url, external, null); + this(parent, name, url, external, FrameworkImage.GEAR); } public XNavigateUrlItem(XNavigateItem parent, String name, String url, boolean external, OseeImage oseeImage) throws OseeArgumentException { |