Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/FavoritesManager.java')
-rw-r--r--plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/FavoritesManager.java55
1 files changed, 45 insertions, 10 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/FavoritesManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/FavoritesManager.java
index 4d9fab23a3a..c7b56bb044c 100644
--- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/FavoritesManager.java
+++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/FavoritesManager.java
@@ -10,16 +10,19 @@
*******************************************************************************/
package org.eclipse.osee.ats.util;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.List;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osee.ats.artifact.IFavoriteableArtifact;
-import org.eclipse.osee.ats.artifact.StateMachineArtifact;
+import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact;
import org.eclipse.osee.ats.internal.AtsPlugin;
import org.eclipse.osee.framework.core.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.UserManager;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction;
import org.eclipse.ui.PlatformUI;
@@ -28,13 +31,13 @@ import org.eclipse.ui.PlatformUI;
*/
public class FavoritesManager {
- private final Collection<StateMachineArtifact> smas;
+ private final Collection<AbstractWorkflowArtifact> smas;
- public FavoritesManager(StateMachineArtifact sma) {
+ public FavoritesManager(AbstractWorkflowArtifact sma) {
this(Arrays.asList(sma));
}
- public FavoritesManager(Collection<StateMachineArtifact> smas) {
+ public FavoritesManager(Collection<AbstractWorkflowArtifact> smas) {
super();
this.smas = smas;
}
@@ -45,7 +48,7 @@ public class FavoritesManager {
public void toggleFavorite(boolean prompt) {
try {
- if (((IFavoriteableArtifact) smas.iterator().next()).amIFavorite()) {
+ if ((amIFavorite(smas.iterator().next()))) {
boolean result = true;
if (prompt) {
result =
@@ -54,8 +57,8 @@ public class FavoritesManager {
}
if (result) {
SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Toggle Favorites");
- for (StateMachineArtifact sma : smas) {
- ((IFavoriteableArtifact) sma).removeFavorite(UserManager.getUser(), transaction);
+ for (AbstractWorkflowArtifact sma : smas) {
+ removeFavorite(sma, UserManager.getUser(), transaction);
}
transaction.execute();
}
@@ -68,8 +71,8 @@ public class FavoritesManager {
}
if (result) {
SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Toggle Favorites");
- for (StateMachineArtifact sma : smas) {
- ((IFavoriteableArtifact) sma).addFavorite(UserManager.getUser(), transaction);
+ for (AbstractWorkflowArtifact sma : smas) {
+ addFavorite(sma, UserManager.getUser(), transaction);
}
transaction.execute();
}
@@ -78,4 +81,36 @@ public class FavoritesManager {
OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex);
}
}
+
+ public static boolean amIFavorite(AbstractWorkflowArtifact workflow) {
+ try {
+ return isFavorite(workflow, UserManager.getUser());
+ } catch (OseeCoreException ex) {
+ return false;
+ }
+ }
+
+ public static void addFavorite(AbstractWorkflowArtifact workflow, User user, SkynetTransaction transaction) throws OseeCoreException {
+ if (!workflow.getRelatedArtifacts(AtsRelationTypes.FavoriteUser_User).contains(user)) {
+ workflow.addRelation(AtsRelationTypes.FavoriteUser_User, user);
+ workflow.persist(transaction);
+ }
+ }
+
+ public static void removeFavorite(AbstractWorkflowArtifact workflow, User user, SkynetTransaction transaction) throws OseeCoreException {
+ workflow.deleteRelation(AtsRelationTypes.FavoriteUser_User, user);
+ workflow.persist(transaction);
+ }
+
+ public static boolean isFavorite(AbstractWorkflowArtifact workflow, User user) throws OseeCoreException {
+ return workflow.getRelatedArtifacts(AtsRelationTypes.FavoriteUser_User).contains(user);
+ }
+
+ public static List<User> getFavorites(AbstractWorkflowArtifact workflow) throws OseeCoreException {
+ ArrayList<User> arts = new ArrayList<User>();
+ for (Artifact art : workflow.getRelatedArtifacts(AtsRelationTypes.FavoriteUser_User)) {
+ arts.add((User) art);
+ }
+ return arts;
+ }
}

Back to the top