diff options
38 files changed, 417 insertions, 333 deletions
diff --git a/plugins/org.eclipse.osee.ats.config.demo/plugin.xml b/plugins/org.eclipse.osee.ats.config.demo/plugin.xml index ff239e9c328..edf088cc610 100644 --- a/plugins/org.eclipse.osee.ats.config.demo/plugin.xml +++ b/plugins/org.eclipse.osee.ats.config.demo/plugin.xml @@ -37,16 +37,10 @@ </OseeTypes> </extension> <extension - point="org.eclipse.osee.ats.AtsTeamWorkflow"> - <AtsTeamWorkflow + point="org.eclipse.osee.ats.AtsTeamWorkflowProvider"> + <TeamWorkflowProvider classname="org.eclipse.osee.ats.config.demo.artifact.DemoTeamWorkflows"> - </AtsTeamWorkflow> - </extension> - <extension - point="org.eclipse.osee.framework.skynet.core.ArtifactFactory"> - <ArtifactFactory - classname="org.eclipse.osee.ats.config.demo.artifact.DemoArtifactFactory"> - </ArtifactFactory> + </TeamWorkflowProvider> </extension> <extension point="org.eclipse.osee.framework.ui.skynet.ArtifactImageProvider"> diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/artifact/DemoArtifactFactory.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/artifact/DemoArtifactFactory.java deleted file mode 100644 index 87d45255f57..00000000000 --- a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/artifact/DemoArtifactFactory.java +++ /dev/null @@ -1,36 +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.config.demo.artifact; - -import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; -import org.eclipse.osee.framework.core.data.IArtifactType; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.model.Branch; -import org.eclipse.osee.framework.skynet.core.artifact.Artifact; -import org.eclipse.osee.framework.skynet.core.artifact.ArtifactFactory; -import org.eclipse.osee.support.test.util.DemoArtifactTypes; - -/** - * Provides the factory for the loading of the XYZ demo artifact types. - * - * @author Donald G. Dunne - */ -public class DemoArtifactFactory extends ArtifactFactory { - public DemoArtifactFactory() { - super(DemoArtifactTypes.DemoCodeTeamWorkflow, DemoArtifactTypes.DemoTestTeamWorkflow, - DemoArtifactTypes.DemoReqTeamWorkflow); - } - - @Override - protected Artifact getArtifactInstance(String guid, String humandReadableId, Branch branch, IArtifactType artifactType) throws OseeCoreException { - return new TeamWorkFlowArtifact(this, guid, humandReadableId, branch, artifactType); - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/artifact/DemoTeamWorkflows.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/artifact/DemoTeamWorkflows.java index 44270ed4875..1eda565f94d 100644 --- a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/artifact/DemoTeamWorkflows.java +++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/artifact/DemoTeamWorkflows.java @@ -14,9 +14,10 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; -import org.eclipse.osee.ats.actions.wizard.AtsTeamWorkflowAdapter; +import org.eclipse.osee.ats.actions.wizard.TeamWorkflowProviderAdapter; import org.eclipse.osee.ats.artifact.ActionableItemArtifact; import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; +import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.exception.OseeCoreException; @@ -26,7 +27,7 @@ import org.eclipse.osee.support.test.util.TestUtil; /** * @author Donald G. Dunne */ -public class DemoTeamWorkflows extends AtsTeamWorkflowAdapter { +public class DemoTeamWorkflows extends TeamWorkflowProviderAdapter { private static List<? extends IArtifactType> workflowArtifactTypes; @@ -48,7 +49,7 @@ public class DemoTeamWorkflows extends AtsTeamWorkflowAdapter { } @Override - public Collection<? extends IArtifactType> getTeamWorkflowArtifactNames() throws OseeCoreException { + public Collection<? extends IArtifactType> getTeamWorkflowArtifactTypes() throws OseeCoreException { if (workflowArtifactTypes == null) { if (TestUtil.isDemoDb()) { workflowArtifactTypes = @@ -61,4 +62,9 @@ public class DemoTeamWorkflows extends AtsTeamWorkflowAdapter { return workflowArtifactTypes; } + @Override + public String getPcrId(TeamWorkFlowArtifact teamArt) { + return ""; + } + } diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/AddCommonBranchForAtsDemo.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/AddCommonBranchForAtsDemo.java index ad6b3995bfe..7d851048bb2 100644 --- a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/AddCommonBranchForAtsDemo.java +++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/AddCommonBranchForAtsDemo.java @@ -10,11 +10,19 @@ *******************************************************************************/ package org.eclipse.osee.ats.config.demo.config; +import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.database.init.AddCommonBranch; +import org.eclipse.osee.support.test.util.TestUtil; /** * @author Donald G. Dunne */ public class AddCommonBranchForAtsDemo extends AddCommonBranch { - // provided for db init + + @Override + public void run() throws OseeCoreException { + TestUtil.setDemoDb(true); + super.run(); + } + } diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDatabaseConfig.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDatabaseConfig.java index fde93183fc9..00805775e0a 100644 --- a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDatabaseConfig.java +++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoDatabaseConfig.java @@ -21,7 +21,6 @@ import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.model.Branch; -import org.eclipse.osee.framework.database.core.OseeInfo; import org.eclipse.osee.framework.database.init.IDbInitializationTask; import org.eclipse.osee.framework.skynet.core.OseeSystemArtifacts; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; @@ -30,6 +29,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.BranchManager; import org.eclipse.osee.framework.skynet.core.utility.Requirements; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkItemDefinition.WriteType; import org.eclipse.osee.support.test.util.DemoSawBuilds; +import org.eclipse.osee.support.test.util.TestUtil; /** * Initialization class that will load configuration information for a sample DB. @@ -41,6 +41,8 @@ public class DemoDatabaseConfig implements IDbInitializationTask { @Override public void run() throws OseeCoreException { + TestUtil.setDemoDb(true); + if (AtsUtil.dbInitWorkItemDefs()) { new DemoCodeWorkFlowDefinition().config(WriteType.New, null); new DemoTestWorkFlowDefinition().config(WriteType.New, null); @@ -56,7 +58,6 @@ public class DemoDatabaseConfig implements IDbInitializationTask { BranchManager.createTopLevelBranch(DemoCISBuilds.CIS_Bld_1); populateProgramBranch(DemoCISBuilds.CIS_Bld_1); - OseeInfo.putValue(OseeInfo.DB_TYPE_KEY, "demo"); } private void populateProgramBranch(IOseeBranch branch) throws OseeCoreException { diff --git a/plugins/org.eclipse.osee.ats/plugin.xml b/plugins/org.eclipse.osee.ats/plugin.xml index 3f79c2cc116..1e3e2f626e6 100644 --- a/plugins/org.eclipse.osee.ats/plugin.xml +++ b/plugins/org.eclipse.osee.ats/plugin.xml @@ -4,7 +4,7 @@ <extension-point id="AtsNavigateItem" name="AtsNavigateItem" schema="schema/AtsNavigateItem.exsd"/> <extension-point id="AtsStateItem" name="AtsStateItem" schema="schema/AtsStateItem.exsd"/> <extension-point id="AtsWizardItem" name="AtsWizardItem" schema="schema/AtsWizardItem.exsd"/> - <extension-point id="AtsTeamWorkflow" name="AtsTeamWorkflow" schema="schema/AtsTeamWorkflow.exsd"/> + <extension-point id="AtsTeamWorkflowProvider" name="AtsTeamWorkflowProvider" schema="schema/AtsTeamWorkflowProvider.exsd"/> <extension-point id="AtsNotification" name="AtsNotification" schema="schema/AtsNotification.exsd"/> <extension-point id="AtsWorldEditorItem" name="AtsWorldEditorItem" schema="schema/AtsWorldEditorItem.exsd"/> <extension-point id="AtsHealthCheck" name="AtsHealthCheck" schema="schema/AtsHealthCheck.exsd"/> @@ -121,6 +121,10 @@ <category name="OSEE ATS" id="org.eclipse.osee.ats.category"/> + <category + id="org.eclipse.osee.ats.review.category" + name="OSEE Review"> + </category> <view class="org.eclipse.osee.ats.navigate.NavigateView" icon="images/atsNavigate.gif" diff --git a/plugins/org.eclipse.osee.ats/schema/AtsTeamWorkflow.exsd b/plugins/org.eclipse.osee.ats/schema/AtsTeamWorkflowProvider.exsd index 330a90eeda3..fa74290a79c 100644 --- a/plugins/org.eclipse.osee.ats/schema/AtsTeamWorkflow.exsd +++ b/plugins/org.eclipse.osee.ats/schema/AtsTeamWorkflowProvider.exsd @@ -3,7 +3,7 @@ <schema targetNamespace="org.eclipse.osee.ats" xmlns="http://www.w3.org/2001/XMLSchema"> <annotation> <appInfo> - <meta.schema plugin="org.eclipse.osee.ats" id="AtsTeamWorflow" name="AtsTeamWorflow"/> + <meta.schema plugin="org.eclipse.osee.ats" id="TeamWorkflowProvider" name="TeamWorkflowProvider"/> </appInfo> <documentation> This extension point should be used when a plugin wants to configure ATS to use a class that is an extension off TeamWorkflowArtifact class. These methods will provide the capability necessary for ATS to manage the new extensions. @@ -18,7 +18,7 @@ </annotation> <complexType> <sequence minOccurs="1" maxOccurs="unbounded"> - <element ref="AtsTeamWorkflow"/> + <element ref="TeamWorkflowProvider"/> </sequence> <attribute name="point" type="string" use="required"> <annotation> @@ -47,7 +47,7 @@ </complexType> </element> - <element name="AtsTeamWorkflow"> + <element name="TeamWorkflowProvider"> <complexType> <attribute name="classname" type="string" use="required"> <annotation> @@ -55,7 +55,7 @@ </documentation> <appInfo> - <meta.attribute kind="java" basedOn=":org.eclipse.osee.ats.actions.wizard.IAtsTeamWorkflow"/> + <meta.attribute kind="java" basedOn=":org.eclipse.osee.ats.actions.wizard.ITeamWorkflowProvider"/> </appInfo> </annotation> </attribute> diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/AtsArtifactImageProvider.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/AtsArtifactImageProvider.java index 2ffdf465005..9dea444d32c 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/AtsArtifactImageProvider.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/AtsArtifactImageProvider.java @@ -12,7 +12,7 @@ package org.eclipse.osee.ats; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; -import org.eclipse.osee.ats.artifact.TeamWorkflowExtensions; +import org.eclipse.osee.ats.artifact.TeamWorkflowProviders; import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.util.FavoritesManager; import org.eclipse.osee.ats.util.SubscribeManager; @@ -48,7 +48,7 @@ public class AtsArtifactImageProvider extends ArtifactImageProvider { ArtifactImageManager.registerOverrideImageProvider(this, AtsArtifactTypes.Task); ArtifactImageManager.registerOverrideImageProvider(this, AtsArtifactTypes.PeerToPeerReview); ArtifactImageManager.registerOverrideImageProvider(this, AtsArtifactTypes.DecisionReview); - for (IArtifactType artifactType : TeamWorkflowExtensions.getAllTeamWorkflowArtifactTypes()) { + for (IArtifactType artifactType : TeamWorkflowProviders.getAllTeamWorkflowArtifactTypes()) { ArtifactImageManager.registerOverrideImageProvider(this, artifactType); } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsTeamWorkflow.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/ITeamWorkflowProvider.java index 2106c27ab61..218613d2851 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/IAtsTeamWorkflow.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/ITeamWorkflowProvider.java @@ -21,7 +21,7 @@ import org.eclipse.osee.framework.core.exception.OseeCoreException; /** * @author Donald G. Dunne */ -public interface IAtsTeamWorkflow { +public interface ITeamWorkflowProvider { /** * Return true if this class/plugin is responsible for the creation of the Team Workflow that will be created for the @@ -56,9 +56,20 @@ public interface IAtsTeamWorkflow { * * @return collection of all team workflow artifact type names */ - public Collection<? extends IArtifactType> getTeamWorkflowArtifactNames() throws OseeCoreException; + public Collection<? extends IArtifactType> getTeamWorkflowArtifactTypes() throws OseeCoreException; public String getWorkflowDefinitionId(AbstractWorkflowArtifact artifact) throws OseeCoreException; public String getRelatedTaskWorkflowDefinitionId(AbstractWorkflowArtifact artifact) throws OseeCoreException; + + /** + * Assigned or computed Id that will show at the top of the editor + */ + public String getPcrId(TeamWorkFlowArtifact teamArt) throws OseeCoreException; + + /** + * 5-9 character short name for UI and display purposes + */ + public String getArtifactTypeShortName(TeamWorkFlowArtifact teamArt); + } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/AtsTeamWorkflowAdapter.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/TeamWorkflowProviderAdapter.java index 54bb7bbc891..4d11207ca78 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/AtsTeamWorkflowAdapter.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/wizard/TeamWorkflowProviderAdapter.java @@ -14,7 +14,7 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.exception.OseeCoreException; -public abstract class AtsTeamWorkflowAdapter implements IAtsTeamWorkflow { +public abstract class TeamWorkflowProviderAdapter implements ITeamWorkflowProvider { @SuppressWarnings("unused") @Override @@ -41,7 +41,7 @@ public abstract class AtsTeamWorkflowAdapter implements IAtsTeamWorkflow { @SuppressWarnings("unused") @Override - public Collection<? extends IArtifactType> getTeamWorkflowArtifactNames() throws OseeCoreException { + public Collection<? extends IArtifactType> getTeamWorkflowArtifactTypes() throws OseeCoreException { return Collections.emptyList(); } @@ -57,4 +57,15 @@ public abstract class AtsTeamWorkflowAdapter implements IAtsTeamWorkflow { return null; } + @SuppressWarnings("unused") + @Override + public String getPcrId(TeamWorkFlowArtifact teamArt) throws OseeCoreException { + return null; + } + + @Override + public String getArtifactTypeShortName(TeamWorkFlowArtifact teamArt) { + return null; + } + } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AbstractWorkflowArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AbstractWorkflowArtifact.java index b14ce0e9573..9b8615a4567 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AbstractWorkflowArtifact.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AbstractWorkflowArtifact.java @@ -71,11 +71,9 @@ import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.framework.skynet.core.utility.Artifacts; import org.eclipse.osee.framework.ui.plugin.util.HelpContext; import org.eclipse.osee.framework.ui.plugin.util.Result; -import org.eclipse.osee.framework.ui.skynet.FrameworkArtifactImageProvider; import org.eclipse.osee.framework.ui.skynet.group.IGroupExplorerProvider; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IWorkPage; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkPageType; -import org.eclipse.swt.graphics.Image; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; @@ -223,14 +221,6 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple atsWorldRelations.add(typeSideToken); } - @Override - public Image getAssigneeImage() throws OseeCoreException { - if (isDeleted()) { - return null; - } - return FrameworkArtifactImageProvider.getUserImage(getStateMgr().getAssignees()); - } - public void clearCaches() { implementersStr = null; } @@ -268,17 +258,6 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple public String implementersStr = null; - @Override - public String getAssigneeStr() throws OseeCoreException { - if (isCompletedOrCancelled()) { - if (implementersStr == null && !getImplementers().isEmpty()) { - implementersStr = "(" + Artifacts.toString("; ", getImplementers()) + ")"; - } - return implementersStr; - } - return Artifacts.toString("; ", getStateMgr().getAssignees()); - } - public double getEstimatedHoursFromArtifact() throws OseeCoreException { if (isAttributeTypeValid(AtsAttributeTypes.EstimatedHours)) { return getSoleAttributeValue(AtsAttributeTypes.EstimatedHours, 0.0); @@ -436,7 +415,7 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple } public static Set<IArtifactType> getAllSMAType() throws OseeCoreException { - Set<IArtifactType> artTypeNames = TeamWorkflowExtensions.getAllTeamWorkflowArtifactTypes(); + Set<IArtifactType> artTypeNames = TeamWorkflowProviders.getAllTeamWorkflowArtifactTypes(); artTypeNames.add(AtsArtifactTypes.Task); artTypeNames.add(AtsArtifactTypes.DecisionReview); artTypeNames.add(AtsArtifactTypes.PeerToPeerReview); @@ -453,7 +432,7 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple public static List<TeamWorkFlowArtifact> getAllTeamWorkflowArtifacts() throws OseeCoreException { List<TeamWorkFlowArtifact> result = new ArrayList<TeamWorkFlowArtifact>(); - for (IArtifactType artType : TeamWorkflowExtensions.getAllTeamWorkflowArtifactTypes()) { + for (IArtifactType artType : TeamWorkflowProviders.getAllTeamWorkflowArtifactTypes()) { List<TeamWorkFlowArtifact> teamArts = org.eclipse.osee.framework.jdk.core.util.Collections.castAll(ArtifactQuery.getArtifactListFromType(artType, AtsUtil.getAtsBranch())); @@ -1091,17 +1070,6 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple return statePages; } - /** - * Assigned or computed Id that will show at the top of the editor - */ - public String getPcrId() throws OseeCoreException { - TeamWorkFlowArtifact teamArt = getParentTeamWorkflow(); - if (teamArt != null) { - return teamArt.getTeamName() + " " + getHumanReadableId(); - } - return ""; - } - protected void addPriviledgedUsersUpTeamDefinitionTree(TeamDefinitionArtifact tda, Set<User> users) throws OseeCoreException { users.addAll(tda.getLeads()); users.addAll(tda.getPrivilegedMembers()); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java index 541ad2e3fcb..4e794e4e106 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionArtifact.java @@ -11,172 +11,30 @@ package org.eclipse.osee.ats.artifact; import java.util.Collection; -import java.util.HashSet; import java.util.Map; import java.util.Set; -import org.eclipse.osee.ats.column.ChangeTypeColumn; -import org.eclipse.osee.ats.column.PriorityColumn; import org.eclipse.osee.ats.util.AtsRelationTypes; import org.eclipse.osee.ats.world.IWorldViewArtifact; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.model.Branch; -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.User; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactFactory; -import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; -import org.eclipse.osee.framework.skynet.core.utility.Artifacts; -import org.eclipse.swt.graphics.Image; /** * @author Donald G. Dunne */ public class ActionArtifact extends AbstractAtsArtifact implements IWorldViewArtifact { - public static enum CreateTeamOption { - Duplicate_If_Exists; // If option exists, then duplication of workflow of same team definition is allowed - }; - public ActionArtifact(ArtifactFactory parentFactory, String guid, String humanReadableId, Branch branch, IArtifactType artifactType) throws OseeCoreException { super(parentFactory, guid, humanReadableId, branch, artifactType); } - public void resetAttributesOffChildren(SkynetTransaction transaction) throws OseeCoreException { - ChangeTypeColumn.resetChangeTypeOffChildren(this); - resetPriorityOffChildren(); - resetUserCommunityOffChildren(); - resetTitleOffChildren(); - resetValidationOffChildren(); - resetDescriptionOffChildren(); - persist(transaction); - } - - public boolean hasAtsWorldChildren() { - return true; - } - - public Set<ActionableItemArtifact> getActionableItems() throws OseeCoreException { - Set<ActionableItemArtifact> aias = new HashSet<ActionableItemArtifact>(); - for (TeamWorkFlowArtifact team : getTeamWorkFlowArtifacts()) { - aias.addAll(team.getActionableItemsDam().getActionableItems()); - } - return aias; - } - - /** - * Reset Action title only if all children are titled the same - */ - private void resetTitleOffChildren() throws OseeCoreException { - String title = ""; - for (TeamWorkFlowArtifact team : getTeamWorkFlowArtifacts()) { - if (title.isEmpty()) { - title = team.getName(); - } else if (!title.equals(team.getName())) { - return; - } - } - if (!title.equals(getName())) { - setName(title); - } - } - - // Set validation to true if any require validation - private void resetValidationOffChildren() throws OseeCoreException { - boolean validationRequired = false; - for (TeamWorkFlowArtifact team : getTeamWorkFlowArtifacts()) { - if (team.getSoleAttributeValue(AtsAttributeTypes.ValidationRequired, false)) { - validationRequired = true; - } - } - if (validationRequired != getSoleAttributeValue(AtsAttributeTypes.ValidationRequired, false)) { - setSoleAttributeValue(AtsAttributeTypes.ValidationRequired, validationRequired); - } - } - - /** - * Reset Action title only if all children are titled the same - */ - private void resetDescriptionOffChildren() throws OseeCoreException { - String desc = ""; - for (TeamWorkFlowArtifact team : getTeamWorkFlowArtifacts()) { - if (desc.isEmpty()) { - desc = team.getSoleAttributeValue(AtsAttributeTypes.Description, ""); - } else if (!desc.equals(team.getSoleAttributeValue(AtsAttributeTypes.Description, ""))) { - return; - } - } - if (!desc.equals(getSoleAttributeValue(AtsAttributeTypes.Description, ""))) { - setSoleAttributeValue(AtsAttributeTypes.Description, desc); - } - if (desc.isEmpty()) { - deleteSoleAttribute(AtsAttributeTypes.Description); - } - } - - private void resetPriorityOffChildren() throws OseeCoreException { - String priorityType = null; - Collection<TeamWorkFlowArtifact> teamArts = getTeamWorkFlowArtifacts(); - if (teamArts.size() == 1) { - priorityType = PriorityColumn.getPriorityStr(teamArts.iterator().next()); - } else { - for (TeamWorkFlowArtifact team : teamArts) { - if (!team.isCancelled()) { - if (priorityType == null) { - priorityType = PriorityColumn.getPriorityStr(team); - } else if (!priorityType.equals(PriorityColumn.getPriorityStr(team))) { - return; - } - } - } - } - if (Strings.isValid(priorityType)) { - setSoleAttributeValue(AtsAttributeTypes.PriorityType, priorityType); - } - } - - private void resetUserCommunityOffChildren() throws OseeCoreException { - Set<String> userComs = new HashSet<String>(); - for (TeamWorkFlowArtifact team : getTeamWorkFlowArtifacts()) { - if (!team.isCancelled()) { - userComs.addAll(team.getAttributesToStringList(AtsAttributeTypes.UserCommunity)); - } - } - setAttributeValues(AtsAttributeTypes.UserCommunity, userComs); - } - public Collection<TeamWorkFlowArtifact> getTeamWorkFlowArtifacts() throws OseeCoreException { return getRelatedArtifactsUnSorted(AtsRelationTypes.ActionToWorkflow_WorkFlow, TeamWorkFlowArtifact.class); } @Override - public String getAssigneeStr() throws OseeCoreException { - Set<User> pocs = new HashSet<User>(); - Set<User> implementers = new HashSet<User>(); - for (TeamWorkFlowArtifact team : getTeamWorkFlowArtifacts()) { - if (team.isCompletedOrCancelled()) { - implementers.addAll(team.getImplementers()); - } else { - pocs.addAll(team.getStateMgr().getAssignees()); - } - } - return Artifacts.toString("; ", pocs) + (implementers.isEmpty() ? "" : "(" + Artifacts.toString("; ", - implementers) + ")"); - } - - @Override - public Image getAssigneeImage() throws OseeCoreException { - for (TeamWorkFlowArtifact team : getTeamWorkFlowArtifacts()) { - Image image = team.getAssigneeImage(); - if (image != null) { - return image; - } - } - return null; - } - - @Override public void atsDelete(Set<Artifact> deleteArts, Map<Artifact, Object> allRelated) throws OseeCoreException { super.atsDelete(deleteArts, allRelated); // Delete all products @@ -326,8 +184,4 @@ public class ActionArtifact extends AbstractAtsArtifact implements IWorldViewArt return rollPercent.intValue(); } - public String getWorldViewLastUpdated() throws OseeCoreException { - return DateUtil.getMMDDYYHHMM(getLastModified()); - } - } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsArtifactFactory.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsArtifactFactory.java index 6d6d217de12..d7f36c5a875 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsArtifactFactory.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsArtifactFactory.java @@ -13,12 +13,16 @@ package org.eclipse.osee.ats.artifact; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.logging.Level; +import org.eclipse.osee.ats.actions.wizard.ITeamWorkflowProvider; +import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; import org.eclipse.osee.framework.core.exception.OseeArgumentException; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.model.Branch; +import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactFactory; @@ -31,6 +35,15 @@ public class AtsArtifactFactory extends ArtifactFactory { super(AtsArtifactTypes.Action, AtsArtifactTypes.PeerToPeerReview, AtsArtifactTypes.DecisionReview, AtsArtifactTypes.ActionableItem, AtsArtifactTypes.Task, AtsArtifactTypes.TeamWorkflow, AtsArtifactTypes.TeamDefinition, AtsArtifactTypes.Version, AtsArtifactTypes.Goal); + for (ITeamWorkflowProvider atsTeamWorkflow : TeamWorkflowProviders.getAtsTeamWorkflowExtensions()) { + try { + for (IArtifactType teamWorkflowTypeName : atsTeamWorkflow.getTeamWorkflowArtifactTypes()) { + registerAsResponsible(teamWorkflowTypeName); + } + } catch (OseeCoreException ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + } + } } @Override @@ -53,8 +66,10 @@ public class AtsArtifactFactory extends ArtifactFactory { return new PeerToPeerReviewArtifact(this, guid, humandReadableId, branch, artifactType); } else if (artifactType.equals(AtsArtifactTypes.Goal)) { return new GoalArtifact(this, guid, humandReadableId, branch, artifactType); + } else if (TeamWorkflowProviders.getAllTeamWorkflowArtifactTypes().contains(artifactType)) { + return new TeamWorkFlowArtifact(this, guid, humandReadableId, branch, artifactType); } else { - throw new OseeArgumentException("did not recognize the artifact type [%s]", artifactType); + throw new OseeArgumentException("AtsArtifactFactory did not recognize the artifact type [%s]", artifactType); } } @@ -64,6 +79,7 @@ public class AtsArtifactFactory extends ArtifactFactory { artifactTypes.add(AtsArtifactTypes.Version); artifactTypes.add(AtsArtifactTypes.TeamDefinition); artifactTypes.add(AtsArtifactTypes.ActionableItem); + artifactTypes.add(AtsArtifactTypes.WorkDefinition); artifactTypes.add(CoreArtifactTypes.WorkRuleDefinition); artifactTypes.add(CoreArtifactTypes.WorkFlowDefinition); artifactTypes.add(CoreArtifactTypes.WorkWidgetDefinition); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java index 5ab69727815..3a8f37841c4 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkFlowArtifact.java @@ -18,6 +18,7 @@ import java.util.logging.Level; import org.eclipse.nebula.widgets.xviewer.XViewerCells; import org.eclipse.osee.ats.config.AtsCacheManager; import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.ActionArtifactRollup; import org.eclipse.osee.ats.util.AtsBranchManager; import org.eclipse.osee.ats.util.AtsRelationTypes; import org.eclipse.osee.ats.util.StateManager; @@ -75,7 +76,8 @@ public class TeamWorkFlowArtifact extends AbstractTaskableArtifact implements IB public void saveSMA(SkynetTransaction transaction) { super.saveSMA(transaction); try { - getParentActionArtifact().resetAttributesOffChildren(transaction); + ActionArtifactRollup rollup = new ActionArtifactRollup(getParentActionArtifact(), transaction); + rollup.resetAttributesOffChildren(); } catch (Exception ex) { OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Can't reset Action parent of children", ex); } @@ -230,20 +232,14 @@ public class TeamWorkFlowArtifact extends AbstractTaskableArtifact implements IB return branchMgr; } - /** - * 5-9 character short name for UI and display purposes - */ - public String getArtifactTypeShortName() { - return ""; - } - public String getBranchName() { String smaTitle = getName(); if (smaTitle.length() > 40) { smaTitle = smaTitle.substring(0, 39) + "..."; } - if (Strings.isValid(getArtifactTypeShortName())) { - return String.format("%s - %s - %s", getHumanReadableId(), getArtifactTypeShortName(), smaTitle); + String typeName = TeamWorkflowManager.getArtifactTypeShortName(this); + if (Strings.isValid(typeName)) { + return String.format("%s - %s - %s", getHumanReadableId(), typeName, smaTitle); } else { return String.format("%s - %s", getHumanReadableId(), smaTitle); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkflowManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkflowManager.java index bb62ad3ca34..7b39cebfc25 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkflowManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkflowManager.java @@ -12,10 +12,12 @@ package org.eclipse.osee.ats.artifact; import java.util.Date; +import org.eclipse.osee.ats.actions.wizard.ITeamWorkflowProvider; import org.eclipse.osee.ats.util.TeamState; import org.eclipse.osee.ats.util.TransitionOption; import org.eclipse.osee.ats.workflow.TransitionManager; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.UserManager; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; @@ -184,4 +186,31 @@ public class TeamWorkflowManager { return Result.TrueResult; } + /** + * Assigned or computed Id that will show at the top of the editor + */ + public static String getPcrId(AbstractWorkflowArtifact awa) throws OseeCoreException { + TeamWorkFlowArtifact teamArt = awa.getParentTeamWorkflow(); + for (ITeamWorkflowProvider atsTeamWorkflow : TeamWorkflowProviders.getAtsTeamWorkflowExtensions()) { + String pcrId = atsTeamWorkflow.getPcrId(teamArt); + if (Strings.isValid(pcrId)) { + return pcrId; + } + } + if (teamArt != null) { + return teamArt.getTeamName() + " " + awa.getHumanReadableId(); + } + return ""; + } + + public static String getArtifactTypeShortName(TeamWorkFlowArtifact teamArt) { + for (ITeamWorkflowProvider atsTeamWorkflow : TeamWorkflowProviders.getAtsTeamWorkflowExtensions()) { + String typeName = atsTeamWorkflow.getArtifactTypeShortName(teamArt); + if (Strings.isValid(typeName)) { + return typeName; + } + } + return null; + } + } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkflowExtensions.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkflowProviders.java index 603cf0607f8..44165efbfd2 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkflowExtensions.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamWorkflowProviders.java @@ -16,7 +16,7 @@ import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtension; import org.eclipse.core.runtime.IExtensionPoint; import org.eclipse.core.runtime.Platform; -import org.eclipse.osee.ats.actions.wizard.IAtsTeamWorkflow; +import org.eclipse.osee.ats.actions.wizard.ITeamWorkflowProvider; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.framework.core.data.IArtifactType; @@ -28,19 +28,19 @@ import org.osgi.framework.Bundle; /** * @author Donald G. Dunne */ -public final class TeamWorkflowExtensions { +public final class TeamWorkflowProviders { - private static Set<IAtsTeamWorkflow> teamWorkflowExtensionItems; + private static Set<ITeamWorkflowProvider> atsTeamWorkflows; - private TeamWorkflowExtensions() { + private TeamWorkflowProviders() { // private constructor } public static Set<IArtifactType> getAllTeamWorkflowArtifactTypes() throws OseeCoreException { Set<IArtifactType> artifactTypes = new HashSet<IArtifactType>(); artifactTypes.add(AtsArtifactTypes.TeamWorkflow); - for (IAtsTeamWorkflow ext : getAtsTeamWorkflowExtensions()) { - artifactTypes.addAll(ext.getTeamWorkflowArtifactNames()); + for (ITeamWorkflowProvider ext : getAtsTeamWorkflowExtensions()) { + artifactTypes.addAll(ext.getTeamWorkflowArtifactTypes()); } return artifactTypes; } @@ -48,16 +48,17 @@ public final class TeamWorkflowExtensions { /* * due to lazy initialization, this function is non-reentrant therefore, the synchronized keyword is necessary */ - public synchronized static Set<IAtsTeamWorkflow> getAtsTeamWorkflowExtensions() { - if (teamWorkflowExtensionItems != null) { - return teamWorkflowExtensionItems; + public synchronized static Set<ITeamWorkflowProvider> getAtsTeamWorkflowExtensions() { + if (atsTeamWorkflows != null) { + return atsTeamWorkflows; } - teamWorkflowExtensionItems = new HashSet<IAtsTeamWorkflow>(); + atsTeamWorkflows = new HashSet<ITeamWorkflowProvider>(); - IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint("org.eclipse.osee.ats.AtsTeamWorkflow"); + IExtensionPoint point = + Platform.getExtensionRegistry().getExtensionPoint("org.eclipse.osee.ats.AtsTeamWorkflowProvider"); if (point == null) { OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Can't access AtsTeamWorkflow extension point"); - return teamWorkflowExtensionItems; + return atsTeamWorkflows; } IExtension[] extensions = point.getExtensions(); for (IExtension extension : extensions) { @@ -65,7 +66,7 @@ public final class TeamWorkflowExtensions { String classname = null; String bundleName = null; for (IConfigurationElement el : elements) { - if (el.getName().equals("AtsTeamWorkflow")) { + if (el.getName().equals("TeamWorkflowProvider")) { classname = el.getAttribute("classname"); bundleName = el.getContributor().getName(); if (classname != null && bundleName != null) { @@ -73,15 +74,16 @@ public final class TeamWorkflowExtensions { try { Class<?> taskClass = bundle.loadClass(classname); Object obj = taskClass.newInstance(); - teamWorkflowExtensionItems.add((IAtsTeamWorkflow) obj); + atsTeamWorkflows.add((ITeamWorkflowProvider) obj); } catch (Exception ex) { - OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Error loading AtsTeamWorkflow extension", ex); + OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, + "Error loading TeamWorkflowProvider extension", ex); } } } } } - return teamWorkflowExtensionItems; + return atsTeamWorkflows; } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/AssigneeColumn.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/AssigneeColumn.java index 63df874da31..f268622fe6f 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/AssigneeColumn.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/AssigneeColumn.java @@ -17,9 +17,11 @@ import org.eclipse.nebula.widgets.xviewer.XViewerCells; import org.eclipse.nebula.widgets.xviewer.XViewerColumn; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.ActionArtifact; +import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.ActionManager; +import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.util.xviewer.column.XViewerAtsColumn; -import org.eclipse.osee.ats.world.IWorldViewArtifact; import org.eclipse.osee.ats.world.WorldXViewerFactory; import org.eclipse.osee.framework.core.data.SystemUser; import org.eclipse.osee.framework.core.exception.OseeCoreException; @@ -30,6 +32,7 @@ import org.eclipse.osee.framework.skynet.core.UserManager; 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.AWorkbench; +import org.eclipse.osee.framework.ui.skynet.FrameworkArtifactImageProvider; import org.eclipse.osee.framework.ui.skynet.widgets.dialog.UserCheckTreeDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; @@ -142,8 +145,8 @@ public class AssigneeColumn extends XViewerAtsColumn implements IXViewerValueCol @Override public String getColumnText(Object element, XViewerColumn column, int columnIndex) { try { - if (element instanceof IWorldViewArtifact) { - return ((IWorldViewArtifact) element).getAssigneeStr(); + if (element instanceof Artifact) { + return getAssigneeStr((Artifact) element); } } catch (OseeCoreException ex) { return XViewerCells.getCellExceptionString(ex); @@ -177,12 +180,59 @@ public class AssigneeColumn extends XViewerAtsColumn implements IXViewerValueCol @Override public Image getColumnImage(Object element, XViewerColumn xCol, int columnIndex) { try { - if (element instanceof IWorldViewArtifact) { - return ((IWorldViewArtifact) element).getAssigneeImage(); + if (element instanceof Artifact) { + return AssigneeColumn.getAssigneeImage((Artifact) element); } } catch (Exception ex) { // do nothing } return null; } + + public static Image getAssigneeImage(Artifact artifact) throws OseeCoreException { + if (artifact.isDeleted()) { + return null; + } + if (artifact instanceof AbstractWorkflowArtifact) { + return FrameworkArtifactImageProvider.getUserImage(((AbstractWorkflowArtifact) artifact).getStateMgr().getAssignees()); + } + if (artifact.isOfType(AtsArtifactTypes.Action)) { + for (TeamWorkFlowArtifact team : ActionManager.getTeamWorkFlowArtifacts(artifact)) { + Image image = AssigneeColumn.getAssigneeImage(team); + if (image != null) { + return image; + } + } + } + return null; + + } + + public static String getAssigneeStr(Artifact artifact) throws OseeCoreException { + if (artifact.isOfType(AtsArtifactTypes.Action)) { + Set<User> pocs = new HashSet<User>(); + Set<User> implementers = new HashSet<User>(); + for (TeamWorkFlowArtifact team : ActionManager.getTeamWorkFlowArtifacts(artifact)) { + if (team.isCompletedOrCancelled()) { + implementers.addAll(team.getImplementers()); + } else { + pocs.addAll(team.getStateMgr().getAssignees()); + } + } + return Artifacts.toString("; ", pocs) + (implementers.isEmpty() ? "" : "(" + Artifacts.toString("; ", + implementers) + ")"); + } else if (artifact.isOfType(AtsArtifactTypes.StateMachineArtifact)) { + AbstractWorkflowArtifact awa = (AbstractWorkflowArtifact) artifact; + if (awa.isCompletedOrCancelled()) { + if (awa.implementersStr == null && !awa.getImplementers().isEmpty()) { + awa.implementersStr = "(" + Artifacts.toString("; ", awa.getImplementers()) + ")"; + } + return awa.implementersStr; + } + return Artifacts.toString("; ", awa.getStateMgr().getAssignees()); + + } + return ""; + } + } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ChangeTypeColumn.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ChangeTypeColumn.java index e6f28771a10..2402f554027 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ChangeTypeColumn.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ChangeTypeColumn.java @@ -17,8 +17,11 @@ import org.eclipse.osee.ats.artifact.ActionArtifact; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.ActionManager; +import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.util.xviewer.column.XViewerAtsAttributeValueColumn; +import org.eclipse.osee.framework.core.exception.OseeArgumentException; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; @@ -181,9 +184,12 @@ public class ChangeTypeColumn extends XViewerAtsAttributeValueColumn { return null; } - public static void resetChangeTypeOffChildren(ActionArtifact actionArt) throws OseeCoreException { + public static void resetChangeTypeOffChildren(Artifact actionArt) throws OseeCoreException { + if (!actionArt.isOfType(AtsArtifactTypes.Action)) { + throw new OseeArgumentException("Artifact must be an Action instead of [%s]", actionArt.getArtifactTypeName()); + } ChangeType changeType = null; - Collection<TeamWorkFlowArtifact> teamArts = actionArt.getTeamWorkFlowArtifacts(); + Collection<TeamWorkFlowArtifact> teamArts = ActionManager.getTeamWorkFlowArtifacts(actionArt); if (teamArts.size() == 1) { changeType = getChangeType(teamArts.iterator().next()); } else { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ParentIdColumn.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ParentIdColumn.java index b8e01de6bfa..55468cf9073 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ParentIdColumn.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/column/ParentIdColumn.java @@ -9,6 +9,7 @@ import org.eclipse.nebula.widgets.xviewer.IXViewerValueColumn; import org.eclipse.nebula.widgets.xviewer.XViewerCells; import org.eclipse.nebula.widgets.xviewer.XViewerColumn; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; +import org.eclipse.osee.ats.artifact.TeamWorkflowManager; import org.eclipse.osee.ats.util.xviewer.column.XViewerAtsColumn; import org.eclipse.osee.ats.world.WorldXViewerFactory; import org.eclipse.osee.framework.core.exception.OseeCoreException; @@ -42,12 +43,11 @@ public class ParentIdColumn extends XViewerAtsColumn implements IXViewerValueCol public String getColumnText(Object element, XViewerColumn column, int columnIndex) { try { if (element instanceof AbstractWorkflowArtifact && ((AbstractWorkflowArtifact) element).getParentSMA() != null) { - return ((AbstractWorkflowArtifact) element).getParentSMA().getPcrId(); + return TeamWorkflowManager.getPcrId(((AbstractWorkflowArtifact) element).getParentSMA()); } } catch (OseeCoreException ex) { return XViewerCells.getCellExceptionString(ex); } return ""; } - } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAActionableItemHeader.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAActionableItemHeader.java index 9c6ab4b9575..2ec61968874 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAActionableItemHeader.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAActionableItemHeader.java @@ -15,6 +15,7 @@ import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.ActionableItemsColumn; import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.ActionManager; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLevel; @@ -88,7 +89,7 @@ public class SMAActionableItemHeader extends Composite { } final TeamWorkFlowArtifact teamWf = (TeamWorkFlowArtifact) sma; if (!sma.isCancelled() && !sma.isCompleted()) { - if (teamWf.getParentActionArtifact().getActionableItems().isEmpty()) { + if (ActionManager.getActionableItems(teamWf.getParentActionArtifact()).isEmpty()) { label.setText(" " + "Error: No Actionable Items identified."); label.setForeground(Displays.getSystemColor(SWT.COLOR_RED)); } else { @@ -108,7 +109,7 @@ public class SMAActionableItemHeader extends Composite { label.update(); layout(); } else { - if (teamWf.getParentActionArtifact().getActionableItems().isEmpty()) { + if (ActionManager.getActionableItems(teamWf.getParentActionArtifact()).isEmpty()) { label.setText(" " + "Error: No Actionable Items identified."); label.setForeground(Displays.getSystemColor(SWT.COLOR_RED)); } else { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPrint.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPrint.java index 1f6e05cadac..de8f3c45274 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPrint.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPrint.java @@ -19,7 +19,9 @@ import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.TaskArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.artifact.TeamWorkflowManager; import org.eclipse.osee.ats.artifact.note.NoteItem; +import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.ChangeTypeColumn; import org.eclipse.osee.ats.column.DeadlineColumn; import org.eclipse.osee.ats.column.PriorityColumn; @@ -29,7 +31,6 @@ import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.util.Overview; import org.eclipse.osee.ats.workdef.StateXWidgetPage; -import org.eclipse.osee.ats.world.IWorldViewArtifact; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.AHTML; import org.eclipse.osee.framework.jdk.core.util.DateUtil; @@ -75,7 +76,7 @@ public class SMAPrint extends Action { // AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Team: ", TeamColumn.getName(sma)), // - AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Assignees: ", ((IWorldViewArtifact) sma).getAssigneeStr()), + AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Assignees: ", AssigneeColumn.getAssigneeStr(sma)), // AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Originator: ", sma.getCreatedBy().getName()), // @@ -90,11 +91,12 @@ public class SMAPrint extends Action { AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Priority: ", PriorityColumn.getPriorityStr(sma)), AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Need By: ", DeadlineColumn.getDateStr(sma))})); + String pcrId = TeamWorkflowManager.getPcrId(sma); resultData.addRaw(AHTML.addRowMultiColumnTable(new String[] { // AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Workflow: ", sma.getArtifactTypeName()), AHTML.getLabelValueStr(AHTML.LABEL_FONT, "HRID: ", sma.getHumanReadableId()), - (sma.getPcrId() == null ? "" : AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Id: ", sma.getPcrId()))})); + (pcrId == null ? "" : AHTML.getLabelValueStr(AHTML.LABEL_FONT, "Id: ", pcrId))})); resultData.addRaw(AHTML.endMultiColumnTable()); for (NoteItem note : sma.getNotes().getNoteItems()) { if (note.getState().equals("")) { @@ -136,7 +138,7 @@ public class SMAPrint extends Action { rd.addRaw(AHTML.addRowMultiColumnTable(new String[] { art.getName(), art.getStateMgr().getCurrentStateName().replaceAll("(Task|State)", ""), - art.getAssigneeStr(), + AssigneeColumn.getAssigneeStr(art), art.getPercentCompleteSMATotal() + "", art.getHoursSpentSMATotal() + "", art.getSoleAttributeValue(AtsAttributeTypes.Resolution, ""), diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java index 3ebcd83db80..5582d2a4d95 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowTab.java @@ -41,6 +41,7 @@ import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.GoalArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.artifact.TeamWorkflowManager; import org.eclipse.osee.ats.artifact.note.NoteItem; import org.eclipse.osee.ats.config.AtsBulkLoad; import org.eclipse.osee.ats.internal.AtsPlugin; @@ -607,7 +608,8 @@ public class SMAWorkFlowTab extends FormPage implements IActionable { if (sma.isTeamWorkflow()) { FormsUtil.createLabelText(toolkit, topLineComp, "Team: ", ((TeamWorkFlowArtifact) sma).getTeamName()); } else if ((sma.isTask() || sma.isReview()) && sma.getParentSMA() != null) { - FormsUtil.createLabelText(toolkit, topLineComp, "Parent Id: ", sma.getParentSMA().getPcrId()); + String pcrId = TeamWorkflowManager.getPcrId(sma.getParentSMA()); + FormsUtil.createLabelText(toolkit, topLineComp, "Parent Id: ", pcrId); } } catch (OseeCoreException ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); @@ -616,8 +618,9 @@ public class SMAWorkFlowTab extends FormPage implements IActionable { sma.getHumanReadableId()); try { - if (Strings.isValid(sma.getPcrId())) { - FormsUtil.createLabelText(toolkit, topLineComp, " Id: ", sma.getPcrId()); + String pcrId = TeamWorkflowManager.getPcrId(sma); + if (Strings.isValid(pcrId)) { + FormsUtil.createLabelText(toolkit, topLineComp, " Id: ", pcrId); } } catch (OseeCoreException ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateChangeReports.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateChangeReports.java index 333f0d44e31..302380ffbd6 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateChangeReports.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/health/ValidateChangeReports.java @@ -22,7 +22,7 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; -import org.eclipse.osee.ats.artifact.TeamWorkflowExtensions; +import org.eclipse.osee.ats.artifact.TeamWorkflowProviders; import org.eclipse.osee.ats.health.change.DataChangeReportComparer; import org.eclipse.osee.ats.health.change.ValidateChangeReportParser; import org.eclipse.osee.ats.internal.AtsPlugin; @@ -126,7 +126,7 @@ public class ValidateChangeReports extends XNavigateItemAction { StringBuffer sbFull = new StringBuffer(AHTML.beginMultiColumnTable(100, 1)); String[] columnHeaders = new String[] {"HRID", "PCR", "Results"}; sbFull.append(AHTML.addHeaderRowMultiColumnTable(columnHeaders)); - for (IArtifactType artifactType : TeamWorkflowExtensions.getAllTeamWorkflowArtifactTypes()) { + for (IArtifactType artifactType : TeamWorkflowProviders.getAllTeamWorkflowArtifactTypes()) { sbFull.append(AHTML.addRowSpanMultiColumnTable(artifactType.getName(), columnHeaders.length)); try { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/hyper/ActionHyperItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/hyper/ActionHyperItem.java index fa5fd84d781..1f511115a93 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/hyper/ActionHyperItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/hyper/ActionHyperItem.java @@ -16,6 +16,7 @@ import java.util.logging.Level; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.ActionArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLog; @@ -122,10 +123,8 @@ public class ActionHyperItem extends HyperViewItem { return null; } try { - if (artifact instanceof AbstractWorkflowArtifact) { - return ((AbstractWorkflowArtifact) artifact).getAssigneeImage(); - } else if (artifact instanceof ActionArtifact) { - return ((ActionArtifact) artifact).getAssigneeImage(); + if (artifact instanceof AbstractWorkflowArtifact || artifact instanceof ActionArtifact) { + return AssigneeColumn.getAssigneeImage((Artifact) artifact); } } catch (Exception ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DuplicateWorkflowBlam.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DuplicateWorkflowBlam.java index b07cdd346a5..82e2b7518bb 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DuplicateWorkflowBlam.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DuplicateWorkflowBlam.java @@ -17,12 +17,11 @@ import java.util.HashSet; import java.util.List; import java.util.Set; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.ats.actions.wizard.IAtsTeamWorkflow; +import org.eclipse.osee.ats.actions.wizard.ITeamWorkflowProvider; import org.eclipse.osee.ats.artifact.AbstractTaskableArtifact; -import org.eclipse.osee.ats.artifact.ActionArtifact.CreateTeamOption; import org.eclipse.osee.ats.artifact.TaskArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; -import org.eclipse.osee.ats.artifact.TeamWorkflowExtensions; +import org.eclipse.osee.ats.artifact.TeamWorkflowProviders; import org.eclipse.osee.ats.artifact.log.LogType; import org.eclipse.osee.ats.editor.SMAEditor; import org.eclipse.osee.ats.internal.AtsPlugin; @@ -62,6 +61,9 @@ public class DuplicateWorkflowBlam extends AbstractBlam { private final static String DUPLICATE_METHOD = "Duplicate Method"; private final static String TITLE = "New Title (blank for same title)"; private Collection<? extends TeamWorkFlowArtifact> defaultTeamWorkflows; + public static enum CreateTeamOption { + Duplicate_If_Exists; // If option exists, then duplication of workflow of same team definition is allowed + }; public DuplicateWorkflowBlam() { // do nothing @@ -167,7 +169,7 @@ public class DuplicateWorkflowBlam extends AbstractBlam { dupArt.persist(transaction); // Notify all extension points that workflow is being duplicated in case they need to add, remove // attributes or relations - for (IAtsTeamWorkflow teamExtension : TeamWorkflowExtensions.getAtsTeamWorkflowExtensions()) { + for (ITeamWorkflowProvider teamExtension : TeamWorkflowProviders.getAtsTeamWorkflowExtensions()) { teamExtension.teamWorkflowDuplicating(teamArt, dupArt); } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionArtifactRollup.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionArtifactRollup.java new file mode 100644 index 00000000000..7a7b3ba8ac3 --- /dev/null +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionArtifactRollup.java @@ -0,0 +1,125 @@ +/* + * Created on Mar 7, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.ats.util; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; +import org.eclipse.osee.ats.artifact.AtsAttributeTypes; +import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.column.ChangeTypeColumn; +import org.eclipse.osee.ats.column.PriorityColumn; +import org.eclipse.osee.framework.core.exception.OseeArgumentException; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; + +public class ActionArtifactRollup { + + private final Artifact action; + private final SkynetTransaction transaction; + + public ActionArtifactRollup(Artifact action, SkynetTransaction transaction) throws OseeArgumentException { + this.action = action; + this.transaction = transaction; + if (!action.isOfType(AtsArtifactTypes.Action)) { + throw new OseeArgumentException("Artifact must be an Action instead of [%s]", action.getArtifactTypeName()); + } + } + + public void resetAttributesOffChildren() throws OseeCoreException { + ChangeTypeColumn.resetChangeTypeOffChildren(action); + resetPriorityOffChildren(); + resetUserCommunityOffChildren(); + resetTitleOffChildren(); + resetValidationOffChildren(); + resetDescriptionOffChildren(); + action.persist(transaction); + } + + /** + * Reset Action title only if all children are titled the same + */ + private void resetTitleOffChildren() throws OseeCoreException { + String title = ""; + for (TeamWorkFlowArtifact team : ActionManager.getTeamWorkFlowArtifacts(action)) { + if (title.isEmpty()) { + title = team.getName(); + } else if (!title.equals(team.getName())) { + return; + } + } + if (!title.equals(action.getName())) { + action.setName(title); + } + } + + // Set validation to true if any require validation + private void resetValidationOffChildren() throws OseeCoreException { + boolean validationRequired = false; + for (TeamWorkFlowArtifact team : ActionManager.getTeamWorkFlowArtifacts(action)) { + if (team.getSoleAttributeValue(AtsAttributeTypes.ValidationRequired, false)) { + validationRequired = true; + } + } + if (validationRequired != action.getSoleAttributeValue(AtsAttributeTypes.ValidationRequired, false)) { + action.setSoleAttributeValue(AtsAttributeTypes.ValidationRequired, validationRequired); + } + } + + /** + * Reset Action title only if all children are titled the same + */ + private void resetDescriptionOffChildren() throws OseeCoreException { + String desc = ""; + for (TeamWorkFlowArtifact team : ActionManager.getTeamWorkFlowArtifacts(action)) { + if (desc.isEmpty()) { + desc = team.getSoleAttributeValue(AtsAttributeTypes.Description, ""); + } else if (!desc.equals(team.getSoleAttributeValue(AtsAttributeTypes.Description, ""))) { + return; + } + } + if (!desc.equals(action.getSoleAttributeValue(AtsAttributeTypes.Description, ""))) { + action.setSoleAttributeValue(AtsAttributeTypes.Description, desc); + } + if (desc.isEmpty()) { + action.deleteSoleAttribute(AtsAttributeTypes.Description); + } + } + + private void resetPriorityOffChildren() throws OseeCoreException { + String priorityType = null; + Collection<TeamWorkFlowArtifact> teamArts = ActionManager.getTeamWorkFlowArtifacts(action); + if (teamArts.size() == 1) { + priorityType = PriorityColumn.getPriorityStr(teamArts.iterator().next()); + } else { + for (TeamWorkFlowArtifact team : teamArts) { + if (!team.isCancelled()) { + if (priorityType == null) { + priorityType = PriorityColumn.getPriorityStr(team); + } else if (!priorityType.equals(PriorityColumn.getPriorityStr(team))) { + return; + } + } + } + } + if (Strings.isValid(priorityType)) { + action.setSoleAttributeValue(AtsAttributeTypes.PriorityType, priorityType); + } + } + + private void resetUserCommunityOffChildren() throws OseeCoreException { + Set<String> userComs = new HashSet<String>(); + for (TeamWorkFlowArtifact team : ActionManager.getTeamWorkFlowArtifacts(action)) { + if (!team.isCancelled()) { + userComs.addAll(team.getAttributesToStringList(AtsAttributeTypes.UserCommunity)); + } + } + action.setAttributeValues(AtsAttributeTypes.UserCommunity, userComs); + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionManager.java index a646c9b71b2..0afdd1ce723 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionManager.java @@ -12,19 +12,21 @@ package org.eclipse.osee.ats.util; import java.util.Collection; import java.util.Date; +import java.util.HashSet; +import java.util.Set; import java.util.logging.Level; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.ats.actions.wizard.IAtsTeamWorkflow; import org.eclipse.osee.ats.actions.wizard.INewActionListener; +import org.eclipse.osee.ats.actions.wizard.ITeamWorkflowProvider; import org.eclipse.osee.ats.artifact.ActionArtifact; -import org.eclipse.osee.ats.artifact.ActionArtifact.CreateTeamOption; import org.eclipse.osee.ats.artifact.ActionableItemArtifact; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; -import org.eclipse.osee.ats.artifact.TeamWorkflowExtensions; +import org.eclipse.osee.ats.artifact.TeamWorkflowProviders; import org.eclipse.osee.ats.column.ChangeTypeColumn; import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.operation.DuplicateWorkflowBlam.CreateTeamOption; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.exception.OseeArgumentException; import org.eclipse.osee.framework.core.exception.OseeCoreException; @@ -85,10 +87,10 @@ public class ActionManager { public static TeamWorkFlowArtifact createTeamWorkflow(ActionArtifact actionArt, TeamDefinitionArtifact teamDef, Collection<ActionableItemArtifact> actionableItems, Collection<User> assignees, SkynetTransaction transaction, Date createdDate, User createdBy, INewActionListener newActionListener, CreateTeamOption... createTeamOption) throws OseeCoreException { IArtifactType teamWorkflowArtifact = AtsArtifactTypes.TeamWorkflow; - IAtsTeamWorkflow teamExt = null; + ITeamWorkflowProvider teamExt = null; // Check if any plugins want to create the team workflow themselves - for (IAtsTeamWorkflow teamExtension : TeamWorkflowExtensions.getAtsTeamWorkflowExtensions()) { + for (ITeamWorkflowProvider teamExtension : TeamWorkflowProviders.getAtsTeamWorkflowExtensions()) { boolean isResponsible = false; try { isResponsible = teamExtension.isResponsibleForTeamWorkflowCreation(teamDef, actionableItems); @@ -204,4 +206,19 @@ public class ActionManager { } } + public static Set<ActionableItemArtifact> getActionableItems(Artifact action) throws OseeCoreException { + Set<ActionableItemArtifact> aias = new HashSet<ActionableItemArtifact>(); + if (action.isOfType(AtsArtifactTypes.Action)) { + for (TeamWorkFlowArtifact team : ((ActionArtifact) action).getTeamWorkFlowArtifacts()) { + aias.addAll(team.getActionableItemsDam().getActionableItems()); + } + } + return aias; + } + + public static Collection<TeamWorkFlowArtifact> getTeamWorkFlowArtifacts(Artifact actionArt) throws OseeCoreException { + return actionArt.getRelatedArtifactsUnSorted(AtsRelationTypes.ActionToWorkflow_WorkFlow, + TeamWorkFlowArtifact.class); + } + } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionableItemManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionableItemManager.java index 442f050172e..1e39fe24fba 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionableItemManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/ActionableItemManager.java @@ -41,7 +41,7 @@ public class ActionableItemManager { "Select New Impacted Actionable Items\n\n" + "Note: Un-selecting existing items will NOT remove the impact.\n" + "Team Workflow with no impact should be transitioned to Cancelled.", Active.Active); - diag.setInitialAias(actionArt.getActionableItems()); + diag.setInitialAias(ActionManager.getActionableItems(actionArt)); if (diag.open() != 0) { return Result.FalseResult; } @@ -198,7 +198,8 @@ public class ActionableItemManager { teamArt.setTeamDefinition(teamDefinition); } SkynetTransaction transaction = new SkynetTransaction(branch, "Converate Actionable Item"); - teamArt.getParentActionArtifact().resetAttributesOffChildren(transaction); + ActionArtifactRollup rollup = new ActionArtifactRollup(teamArt.getParentActionArtifact(), transaction); + rollup.resetAttributesOffChildren(); teamArt.persist(transaction); transaction.execute(); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java index a5bbc26da84..ab9d8268d57 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/Import/ExcelAtsActionArtifactExtractor.java @@ -26,7 +26,6 @@ import java.util.Set; import java.util.logging.Level; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.osee.ats.artifact.ActionArtifact; -import org.eclipse.osee.ats.artifact.ActionArtifact.CreateTeamOption; import org.eclipse.osee.ats.artifact.ActionableItemArtifact; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; @@ -34,6 +33,7 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.artifact.VersionArtifact; import org.eclipse.osee.ats.config.AtsCacheManager; import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.operation.DuplicateWorkflowBlam.CreateTeamOption; import org.eclipse.osee.ats.util.ActionManager; import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.util.AtsNotifyUsers; diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/WorkDefinitionFactory.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/WorkDefinitionFactory.java index 0d07cb754ac..f916ac6dfc8 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/WorkDefinitionFactory.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/WorkDefinitionFactory.java @@ -10,7 +10,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.logging.Level; -import org.eclipse.osee.ats.actions.wizard.IAtsTeamWorkflow; +import org.eclipse.osee.ats.actions.wizard.ITeamWorkflowProvider; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.DecisionReviewArtifact; @@ -19,7 +19,7 @@ import org.eclipse.osee.ats.artifact.PeerToPeerReviewArtifact; 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.TeamWorkflowExtensions; +import org.eclipse.osee.ats.artifact.TeamWorkflowProviders; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.util.widgets.DecisionOption; @@ -446,7 +446,7 @@ public class WorkDefinitionFactory { private static WorkDefinitionMatch getWorkDefinitionForTask(TaskArtifact taskArt) throws OseeCoreException { WorkDefinitionMatch match = new WorkDefinitionMatch(); - for (IAtsTeamWorkflow provider : TeamWorkflowExtensions.getAtsTeamWorkflowExtensions()) { + for (ITeamWorkflowProvider provider : TeamWorkflowProviders.getAtsTeamWorkflowExtensions()) { String workFlowDefId = provider.getRelatedTaskWorkflowDefinitionId(taskArt.getParentSMA()); if (Strings.isValid(workFlowDefId)) { String translatedId = getOverrideWorkDefId(workFlowDefId); @@ -494,7 +494,7 @@ public class WorkDefinitionFactory { if (!match.isMatched() && artifact instanceof AbstractWorkflowArtifact) { AbstractWorkflowArtifact aba = (AbstractWorkflowArtifact) artifact; // Check extensions for definition handling - for (IAtsTeamWorkflow provider : TeamWorkflowExtensions.getAtsTeamWorkflowExtensions()) { + for (ITeamWorkflowProvider provider : TeamWorkflowProviders.getAtsTeamWorkflowExtensions()) { String workFlowDefId = provider.getWorkflowDefinitionId(aba); if (Strings.isValid(workFlowDefId)) { match = diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/item/AtsWorkDefinitions.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/item/AtsWorkDefinitions.java index b3849bfe2d0..19350005461 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/item/AtsWorkDefinitions.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/item/AtsWorkDefinitions.java @@ -18,7 +18,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; -import org.eclipse.osee.ats.actions.wizard.IAtsTeamWorkflow; +import org.eclipse.osee.ats.actions.wizard.ITeamWorkflowProvider; import org.eclipse.osee.ats.artifact.ATSAttributes; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.AtsArtifactToken; @@ -28,7 +28,7 @@ import org.eclipse.osee.ats.artifact.GoalArtifact; import org.eclipse.osee.ats.artifact.PeerToPeerReviewArtifact; import org.eclipse.osee.ats.artifact.TaskArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; -import org.eclipse.osee.ats.artifact.TeamWorkflowExtensions; +import org.eclipse.osee.ats.artifact.TeamWorkflowProviders; import org.eclipse.osee.ats.column.ChangeTypeXWidget; import org.eclipse.osee.ats.column.EstimatedHoursRequiredXWidget; import org.eclipse.osee.ats.column.EstimatedHoursXWidget; @@ -232,7 +232,7 @@ public final class AtsWorkDefinitions implements IWorkDefinitionProvider { public WorkFlowDefinitionMatch getWorkFlowDefinitionForTask(TaskArtifact taskArt) throws OseeCoreException { WorkFlowDefinitionMatch match = new WorkFlowDefinitionMatch(); - for (IAtsTeamWorkflow provider : TeamWorkflowExtensions.getAtsTeamWorkflowExtensions()) { + for (ITeamWorkflowProvider provider : TeamWorkflowProviders.getAtsTeamWorkflowExtensions()) { String workFlowDefId = provider.getRelatedTaskWorkflowDefinitionId(taskArt.getParentSMA()); if (Strings.isValid(workFlowDefId)) { match.setWorkFlowDefinition((WorkFlowDefinition) WorkItemDefinitionFactory.getWorkItemDefinition(workFlowDefId)); @@ -277,7 +277,7 @@ public final class AtsWorkDefinitions implements IWorkDefinitionProvider { if (artifact instanceof AbstractWorkflowArtifact) { AbstractWorkflowArtifact aba = (AbstractWorkflowArtifact) artifact; // Check extensions for definition handling - for (IAtsTeamWorkflow provider : TeamWorkflowExtensions.getAtsTeamWorkflowExtensions()) { + for (ITeamWorkflowProvider provider : TeamWorkflowProviders.getAtsTeamWorkflowExtensions()) { String workFlowDefId = provider.getWorkflowDefinitionId(aba); if (Strings.isValid(workFlowDefId)) { WorkFlowDefinition workDef = diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java index 8ccc78a4e4c..fd5e116405e 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/IWorldViewArtifact.java @@ -11,14 +11,9 @@ package org.eclipse.osee.ats.world; import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.swt.graphics.Image; public interface IWorldViewArtifact { - Image getAssigneeImage() throws OseeCoreException; - - String getAssigneeStr() throws OseeCoreException; - /** * @return estimated hours from workflow attribute, tasks and reviews */ diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldAssigneeFilter.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldAssigneeFilter.java index 8c3e098adcf..18410aa3276 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldAssigneeFilter.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldAssigneeFilter.java @@ -13,6 +13,7 @@ package org.eclipse.osee.ats.world; import java.util.regex.Pattern; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; +import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLevel; @@ -31,9 +32,8 @@ public class WorldAssigneeFilter extends ViewerFilter { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { try { - Artifact art = (Artifact) element; - if (art instanceof IWorldViewArtifact) { - return p.matcher(((IWorldViewArtifact) art).getAssigneeStr()).find(); + if (element instanceof Artifact) { + return p.matcher(AssigneeColumn.getAssigneeStr((Artifact) element)).find(); } } catch (Exception ex) { OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java index 1c17542950a..0587db9bf23 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewer.java @@ -49,6 +49,7 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.GoalOrderColumn; import org.eclipse.osee.ats.column.IPersistAltLeftClickProvider; import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.ActionArtifactRollup; import org.eclipse.osee.ats.util.ArtifactEmailWizard; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.util.TeamState; @@ -167,7 +168,8 @@ public class WorldXViewer extends XViewer implements ISelectedAtsArtifacts, IPer try { transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Reset Action off Children"); for (ActionArtifact actionArt : getSelectedActionArtifacts()) { - actionArt.resetAttributesOffChildren(transaction); + ActionArtifactRollup rollup = new ActionArtifactRollup(actionArt, transaction); + rollup.resetAttributesOffChildren(); } transaction.execute(); } catch (OseeCoreException ex) { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerSorter.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerSorter.java index d0c15cd1e5e..cebc5d44266 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerSorter.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/WorldXViewerSorter.java @@ -38,18 +38,18 @@ public class WorldXViewerSorter extends XViewerSorter { return 0; } XViewerColumn sortXCol = xViewer.getCustomizeMgr().getSortXCols().get(sortXColIndex); - IWorldViewArtifact m1 = (IWorldViewArtifact) (Artifact) o1; - IWorldViewArtifact m2 = (IWorldViewArtifact) (Artifact) o2; + Artifact m1 = (Artifact) o1; + Artifact m2 = (Artifact) o2; if (sortXCol.equals(AssigneeColumn.getInstance())) { int compareInt = - getComparator().compare(m1.getAssigneeStr().replaceFirst("\\(", ""), - m2.getAssigneeStr().replaceFirst("\\(", "")); + getComparator().compare(AssigneeColumn.getAssigneeStr(m1).replaceFirst("\\(", ""), + AssigneeColumn.getAssigneeStr(m2).replaceFirst("\\(", "")); return getCompareBasedOnDirection(sortXCol, compareInt, viewer, o1, o2, sortXColIndex); } else if (sortXCol.equals(ChangeTypeColumn.getInstance())) { int compareInt = - getComparator().compare(ChangeTypeColumn.getChangeType((Artifact) m1).ordinal() + "", - ChangeTypeColumn.getChangeType((Artifact) m2).ordinal() + ""); + getComparator().compare(ChangeTypeColumn.getChangeType(m1).ordinal() + "", + ChangeTypeColumn.getChangeType(m2).ordinal() + ""); return getCompareBasedOnDirection(sortXCol, compareInt, viewer, o1, o2, sortXColIndex); } diff --git a/plugins/org.eclipse.osee.client.integration.tests/MasterTestSuite_DemoDbInit.launch b/plugins/org.eclipse.osee.client.integration.tests/MasterTestSuite_DemoDbInit.launch index 962da5d46fb..1028acdf4d1 100644 --- a/plugins/org.eclipse.osee.client.integration.tests/MasterTestSuite_DemoDbInit.launch +++ b/plugins/org.eclipse.osee.client.integration.tests/MasterTestSuite_DemoDbInit.launch @@ -35,8 +35,8 @@ <stringAttribute key="pde.version" value="3.3"/> <stringAttribute key="product" value="org.eclipse.sdk.ide"/> <booleanAttribute key="run_in_ui_thread" value="true"/> -<stringAttribute key="selected_target_plugins" value="javax.xml@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.birt.chart.device.svg@default:default,org.eclipse.ant.core@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.equinox.p2.director.app@default:default,org.apache.batik.parser@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.platform.doc.isv@default:default,org.mortbay.jetty.util@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.jdt@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.boot@default:default,de.itemis.xtext.antlr@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.xtend@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.birt.chart.device.swt@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.xtext.xtend@default:default,org.eclipse.equinox.p2.ui@default:default,org.apache.commons.httpclient@default:default,org.apache.ant@default:default,org.eclipse.jsch.core@default:default,org.eclipse.help.ui@default:default,org.eclipse.ant.launching@default:default,com.ibm.icu@default:default,org.eclipse.platform@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.ui.intro@default:default,org.eclipse.help@default:default,org.eclipse.core.filebuffers@default:default,org.apache.batik.bridge@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.ui.console@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.birt.chart.engine.extension@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.apache.commons.logging*1.1.1.v201005080502@default:default,org.eclipse.core.net@default:default,org.eclipse.equinox.util@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.help.appserver@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.equinox.security@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.debug.core@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.pde.ua.core@default:default,com.google.collect@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.pde.core@default:default,org.eclipse.xtext.generator@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.osgi@-1:true,org.apache.xml.serializer@default:default,org.mozilla.javascript@default:default,org.w3c.css.sac@default:default,org.w3c.dom.smil@default:default,org.eclipse.compare.core@default:default,org.eclipse.xtext@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.apache.lucene@default:default,org.eclipse.core.runtime@default:true,org.apache.batik.css@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.ant.ui@default:default,org.mortbay.jetty.server@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.equinox.concurrent@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.team.svn@default:default,org.apache.commons.cli@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.pde.ui@default:default,org.eclipse.compare.win32@default:default,org.eclipse.equinox.security.win32.x86@default:false,javax.servlet@default:default,org.eclipse.equinox.p2.repository@default:default,org.apache.batik.xml@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.emf.mwe.utils@default:default,org.aopalliance@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.ui.win32@default:false,org.eclipse.team.svn.help@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.sdk@default:default,org.eclipse.nebula.widgets.calendarcombo@default:default,org.apache.xml.resolver@default:default,org.eclipse.ui@default:default,org.apache.batik.svggen@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.cvs@default:default,org.apache.commons.net@default:default,org.sat4j.pb@default:default,org.eclipse.update.core.win32@default:false,org.eclipse.team.svn.core@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.core.expressions@default:default,org.eclipse.osgi.services@default:default,org.eclipse.equinox.common@2:true,org.eclipse.jdt.junit@default:default,org.apache.lucene.analysis@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.search@default:default,org.antlr.gen@default:default,org.eclipse.birt.core@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.swt@default:default,org.h2@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.draw2d@default:default,org.polarion.eclipse.team.svn.connector.svnkit16@default:default,org.apache.batik.transcoder@default:default,org.eclipse.ui.browser@default:default,org.objectweb.asm@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.xtext.ui@default:default,javax.servlet.jsp@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.update.core@default:default,com.jcraft.jsch@default:default,org.eclipse.core.resources@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.osgi.util@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.ui.navigator.resources@default:default,org.apache.xerces@default:default,org.hamcrest.core@default:default,org.eclipse.update.ui@default:default,org.apache.log4j@default:default,org.eclipse.help.base@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.compare@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.equinox.app@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.birt.chart.device.extension@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.core.jobs@default:default,org.eclipse.jdt.core@default:default,org.eclipse.birt.chart.engine@default:default,org.eclipse.core.commands@default:default,org.apache.batik.ext.awt@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.xtext.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.emf.compare.ui@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,com.google.inject@default:default,org.eclipse.ui.forms@default:default,org.apache.batik.util@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.emf.edit.ui@default:default,org.eclipse.equinox.p2.core@default:default,org.polarion.eclipse.team.svn.connector@default:default,org.eclipse.ui.views@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.apache.batik.dom.svg@default:default,org.eclipse.emf.compare@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.core.runtime.compatibility@default:default,javax.mail.glassfish@default:default,org.eclipse.emf.common@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.apache.commons.lang@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.xpand@default:default,org.eclipse.pde@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.team.core@default:default,com.lowagie.text@default:default,org.eclipse.jdt.compiler.tool@default:false,org.w3c.dom.svg@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.jface@default:default,org.apache.oro@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.ui.editors@default:default,javax.activation@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.sat4j.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.ecf.identity@default:default,org.apache.batik.util.gui@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.zest.core@default:default,org.eclipse.nebula.widgets.xviewer@default:default,org.eclipse.pde.build@default:default,org.apache.jasper@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.pde.launching@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.jdt.core.manipulation@default:default,org.apache.batik.dom@default:default,org.eclipse.jface.text@default:default,org.apache.commons.el@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.rcp@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.emf.codegen.ecore@default:default,org.apache.batik.pdf@default:default,org.eclipse.core.databinding@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.zest.layouts@default:default,org.eclipse.core.variables@default:default,org.eclipse.help.webapp@default:default,org.eclipse.gef@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.equinox.ds@default:true,org.antlr.runtime@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.debug.ui@default:default,org.eclipse.ui.ide@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.update.configurator@3:true,org.junit4@default:default,org.eclipse.text@default:default,org.apache.commons.codec@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,javax.wsdl@default:default,org.eclipse.jdt.doc.user@default:default"/> -<stringAttribute key="selected_workspace_plugins" value="org.eclipse.osee.framework.messaging.event.skynet@default:default,org.eclipse.osee.framework.h2@default:default,org.eclipse.osee.coverage.help.ui@default:default,org.eclipse.osee.framework.skynet.core@default:default,org.eclipse.osee.framework.core.model.test@default:false,net.jini@default:default,org.eclipse.osee.framework.ui.skynet.test@default:false,org.eclipse.osee.support.test.util@default:default,org.eclipse.osee.framework.lifecycle.test@default:false,org.eclipse.osee.ats.test@default:false,org.eclipse.osee.framework.database.init@default:default,org.eclipse.osee.framework.jdbcodbc@default:default,org.eclipse.osee.framework.messaging@default:default,org.eclipse.osee.framework.jini@default:default,org.eclipse.osee.framework.messaging.event.res@default:default,org.eclipse.osee.framework.templates@default:default,org.eclipse.osee.ats.help.ui@default:default,org.eclipse.osee.demo.db.connection@default:default,org.eclipse.osee.framework.jdk.core@default:default,org.eclipse.osee.framework.messaging.test@default:false,org.eclipse.osee.framework.svn@default:default,org.eclipse.osee.define@default:default,org.eclipse.osee.framework.ui.plugin@default:default,org.eclipse.osee.ats.dsl@default:default,org.eclipse.osee.framework.jdk.core.test@default:false,org.eclipse.osee.framework.core.dsl.integration.test@default:false,org.eclipse.osee.framework.core.dsl.integration@default:default,org.eclipse.osee.ats.config.demo@default:default,jms.libraries@default:default,org.eclipse.osee.framework.plugin.core@default:default,org.eclipse.osee.framework.access@default:default,org.eclipse.osee.framework.ui.swt@default:default,org.eclipse.osee.framework.core.test@default:false,org.eclipse.osee.framework.core.message.test@default:false,org.eclipse.osee.framework.core@default:default,org.eclipse.osee.framework.core.model@default:default,org.eclipse.osee.framework.help.ui@default:default,org.eclipse.osee.client.integration.tests@default:default,org.eclipse.osee.ote.define@default:default,org.eclipse.osee.coverage.test@default:false,org.eclipse.osee.ats.dsl.ui@default:default,org.eclipse.osee.framework.logging@default:default,org.eclipse.osee.framework.core.client@default:default,org.eclipse.osee.framework.ui.ws@default:default,org.eclipse.osee.ats@default:default,org.eclipse.osee.define.test@default:false,org.eclipse.osee.framework.core.dsl@default:default,org.eclipse.osee.framework.skynet.core.test@default:false,org.eclipse.osee.framework.database.test@default:false,org.eclipse.osee.framework.postgresql@default:default,org.eclipse.osee.coverage@default:default,org.eclipse.osee.framework.database@default:default,org.eclipse.osee.framework.ui.jdk@default:default,org.eclipse.osee.framework.core.dsl.ui.integration@default:default,org.eclipse.osee.framework.messaging.event.res.test@default:false,org.eclipse.osee.framework.ui.skynet@default:default,org.eclipse.osee.framework.access.test@default:false,org.eclipse.osee.framework.core.message@default:default,org.eclipse.osee.framework.lifecycle@default:default,org.postgresql.driver@default:default"/> +<stringAttribute key="selected_target_plugins" value="org.mortbay.jetty.util@default:default,org.apache.xml.resolver@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.update.configurator@3:true,org.eclipse.core.jobs@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.team.svn.help@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.zest.core@default:default,org.apache.lucene@default:default,org.eclipse.equinox.http.registry@default:default,org.objectweb.asm@default:default,org.eclipse.equinox.p2.director@default:default,org.apache.commons.httpclient@default:default,org.eclipse.ltk.core.refactoring@default:default,de.itemis.xtext.antlr@default:default,org.apache.commons.logging*1.1.1.v201005080502@default:default,org.eclipse.rcp@default:default,org.eclipse.team.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.update.core.win32@default:false,org.mortbay.jetty.server@default:default,org.apache.ant@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.compare.win32@default:default,org.apache.commons.lang@default:default,org.eclipse.equinox.p2.operations@default:default,com.jcraft.jsch@default:default,org.eclipse.core.resources@default:default,org.eclipse.debug.ui@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.help@default:default,org.eclipse.equinox.preferences@default:default,org.polarion.eclipse.team.svn.connector@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.equinox.frameworkadmin@default:default,org.antlr.runtime@default:default,javax.activation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.platform@default:default,org.h2@default:default,org.eclipse.nebula.widgets.xviewer@default:default,org.eclipse.ui.ide@default:default,org.eclipse.equinox.concurrent@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.eclipse.xpand@default:default,org.sat4j.core@default:default,javax.servlet@default:default,org.apache.commons.cli@default:default,org.eclipse.core.databinding@default:default,org.apache.batik.xml@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.apache.log4j@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.apache.jasper@default:default,org.eclipse.jdt.core@default:default,org.eclipse.core.runtime@default:true,org.eclipse.ui.editors@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.jdt.compiler.apt@default:false,javax.servlet.jsp@default:default,org.eclipse.ant.ui@default:default,org.eclipse.equinox.ds@default:true,org.eclipse.debug.core@default:default,org.eclipse.pde.launching@default:default,org.apache.batik.css@default:default,org.eclipse.core.variables@default:default,org.eclipse.birt.chart.device.svg@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.eclipse.nebula.widgets.calendarcombo@default:default,org.eclipse.xtext.builder@default:default,org.apache.lucene.analysis@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ui.views@default:default,org.eclipse.ui.intro.universal@default:default,org.apache.batik.dom@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.apache.commons.net@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.jsch.core@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.emf.common@default:default,org.w3c.dom.svg@default:default,org.eclipse.xtext.generator@default:default,org.hamcrest.core@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.jface.databinding@default:default,org.polarion.eclipse.team.svn.connector.svnkit16@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.help.base@default:default,org.eclipse.ant.launching@default:default,org.eclipse.pde.ui@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.emf.ecore@default:default,org.apache.batik.dom.svg@default:default,org.eclipse.compare@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.core.expressions@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ant.core@default:default,org.junit4@default:default,org.eclipse.pde@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.birt.chart.engine@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.w3c.dom.smil@default:default,org.eclipse.cvs@default:default,org.eclipse.core.net@default:default,org.eclipse.team.svn@default:default,org.eclipse.equinox.p2.repository@default:default,org.apache.xml.serializer@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.help.appserver@default:default,org.eclipse.emf.compare.match@default:default,com.lowagie.text@default:default,org.apache.batik.util.gui@default:default,org.eclipse.update.ui@default:default,org.eclipse.draw2d@default:default,org.eclipse.gef@default:default,org.eclipse.xtext.xtend@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.intro@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.compare.core@default:default,org.eclipse.jface.text@default:default,org.apache.commons.el@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.xtext.logging@default:false,org.eclipse.platform.doc.isv@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.apache.batik.pdf@default:default,org.mozilla.javascript@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.ui@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.equinox.common@2:true,javax.xml@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.help.ui@default:default,org.eclipse.xtext@default:default,org.eclipse.core.databinding.observable@default:default,org.antlr.gen@default:default,org.apache.batik.bridge@default:default,org.sat4j.pb@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.equinox.app@default:default,org.eclipse.jdt.debug@default:default,org.apache.batik.svggen@default:default,org.eclipse.search@default:default,org.apache.batik.parser@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.osgi.services@default:default,org.eclipse.ui.console@default:default,org.eclipse.ecf.filetransfer@default:default,com.google.collect@default:default,org.eclipse.osgi@-1:true,org.eclipse.jdt.apt.core@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.sdk@default:default,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.emf.mwe.core@default:default,org.eclipse.birt.chart.device.extension@default:default,org.eclipse.core.externaltools@default:default,org.aopalliance@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.jface@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.apache.oro@default:default,org.apache.batik.util@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.equinox.util@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.osgi.util@default:default,org.eclipse.birt.chart.engine.extension@default:default,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.xtext.util@default:default,org.eclipse.ui.cheatsheets@default:default,com.google.inject@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.equinox.http.servlet@default:default,org.apache.commons.codec@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.workbench@default:default,com.ibm.icu@default:default,org.eclipse.emf.edit@default:default,org.eclipse.text@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ecf@default:default,org.eclipse.zest.layouts@default:default,org.eclipse.jdt.core.manipulation@default:default,org.apache.batik.ext.awt@default:default,org.eclipse.swt@default:default,org.eclipse.equinox.security@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.core.boot@default:default,org.w3c.css.sac@default:default,org.eclipse.birt.core@default:default,org.eclipse.core.contenttype@default:default,org.apache.xerces@default:default,org.eclipse.core.commands@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.team.core@default:default,org.eclipse.pde.build@default:default,org.eclipse.update.core@default:default,org.eclipse.pde.core@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.xtend@default:default,javax.wsdl@default:default,org.eclipse.emf.compare@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.jdt.junit@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.team.cvs.ssh2@default:default,javax.mail.glassfish@default:default,org.eclipse.birt.chart.device.swt@default:default,org.apache.batik.transcoder@default:default,org.eclipse.xtext.ui@default:default"/> +<stringAttribute key="selected_workspace_plugins" value="org.eclipse.osee.ats.dsl@default:default,org.eclipse.osee.framework.core.test@default:false,org.eclipse.osee.framework.help.ui@default:default,org.eclipse.osee.framework.jdk.core.test@default:false,org.eclipse.osee.framework.core.message.test@default:false,org.eclipse.osee.framework.skynet.core@default:default,org.eclipse.osee.framework.ui.skynet.test@default:false,org.eclipse.osee.framework.svn@default:default,jms.libraries@default:default,org.eclipse.osee.framework.logging@default:default,org.eclipse.osee.support.test.util@default:default,org.postgresql.driver@default:default,org.eclipse.osee.framework.messaging@default:default,org.eclipse.osee.framework.templates@default:default,org.eclipse.osee.define.test@default:false,org.eclipse.osee.framework.jdk.core@default:default,org.eclipse.osee.client.integration.tests@default:default,org.eclipse.osee.framework.messaging.event.res.test@default:false,org.eclipse.osee.framework.lifecycle@default:default,org.eclipse.osee.framework.database@default:default,org.eclipse.osee.framework.database.init@default:default,org.eclipse.osee.coverage.help.ui@default:default,org.eclipse.osee.framework.plugin.core@default:default,org.eclipse.osee.framework.core.dsl.integration.test@default:false,org.eclipse.osee.framework.core@default:default,org.eclipse.osee.framework.ui.jdk@default:default,org.eclipse.osee.ats.help.ui@default:default,net.jini@default:default,org.eclipse.osee.framework.h2@default:default,org.eclipse.osee.ats.config.demo@default:default,org.eclipse.osee.framework.database.test@default:false,org.eclipse.osee.framework.core.model@default:default,org.eclipse.osee.ote.define@default:default,org.eclipse.osee.ats.dsl.ui@default:default,org.eclipse.osee.framework.messaging.test@default:false,org.eclipse.osee.framework.lifecycle.test@default:false,org.eclipse.osee.framework.core.dsl@default:default,org.eclipse.osee.framework.skynet.core.test@default:false,org.eclipse.osee.framework.ui.skynet@default:default,org.eclipse.osee.framework.postgresql@default:default,org.eclipse.osee.framework.access@default:default,org.eclipse.osee.framework.messaging.event.res@default:default,org.eclipse.osee.coverage.test@default:false,org.eclipse.osee.ats.test@default:false,org.eclipse.osee.framework.core.client@default:default,org.eclipse.osee.framework.core.dsl.ui.integration@default:default,org.eclipse.osee.ats@default:default,org.eclipse.osee.framework.ui.swt@default:default,org.eclipse.osee.framework.core.dsl.integration@default:default,org.eclipse.osee.framework.access.test@default:false,org.eclipse.osee.framework.core.model.test@default:false,org.eclipse.osee.demo.db.connection@default:default,org.eclipse.osee.framework.ui.plugin@default:default,org.eclipse.osee.coverage@default:default,org.eclipse.osee.framework.messaging.event.skynet@default:default,org.eclipse.osee.framework.core.message@default:default,org.eclipse.osee.framework.ui.ws@default:default,org.eclipse.osee.framework.jdbcodbc@default:default,org.eclipse.osee.framework.jini@default:default,org.eclipse.osee.define@default:default"/> <booleanAttribute key="show_selected_only" value="false"/> <booleanAttribute key="tracing" value="false"/> <booleanAttribute key="useCustomFeatures" value="false"/> diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactFactory.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactFactory.java index 129b6cac0f6..ae49b107335 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactFactory.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactFactory.java @@ -10,9 +10,10 @@ *******************************************************************************/ package org.eclipse.osee.framework.skynet.core.artifact; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; +import java.util.Set; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.core.enums.ModificationType; @@ -31,10 +32,12 @@ import org.eclipse.osee.framework.jdk.core.util.Strings; */ public abstract class ArtifactFactory { - private final Collection<IArtifactType> artifactTypeNames; + private final Set<IArtifactType> artifactTypeNames = new HashSet<IArtifactType>(5); protected ArtifactFactory(IArtifactType... artifactTypes) { - this.artifactTypeNames = Arrays.asList(artifactTypes); + for (IArtifactType artifactType : artifactTypes) { + registerAsResponsible(artifactType); + } } public Artifact makeNewArtifact(IOseeBranch branch, IArtifactType artifactTypeToken, String guid, String humandReadableId, ArtifactProcessor earlyArtifactInitialization) throws OseeCoreException { @@ -135,6 +138,12 @@ public abstract class ArtifactFactory { return artifactTypeNames.contains(artifactType); } + public void registerAsResponsible(IArtifactType artifactType) { + if (!artifactTypeNames.contains(artifactType)) { + artifactTypeNames.add(artifactType); + } + } + /** * Return any artifact types of artifacts that should never be garbage collected. This includes artifacts like user * artifacts and config artifacts that should always stay loaded for performance reasons. diff --git a/plugins/org.eclipse.osee.support.test.util/src/org/eclipse/osee/support/test/util/TestUtil.java b/plugins/org.eclipse.osee.support.test.util/src/org/eclipse/osee/support/test/util/TestUtil.java index 8c9297853d0..c6b7bba8433 100644 --- a/plugins/org.eclipse.osee.support.test.util/src/org/eclipse/osee/support/test/util/TestUtil.java +++ b/plugins/org.eclipse.osee.support.test.util/src/org/eclipse/osee/support/test/util/TestUtil.java @@ -53,6 +53,14 @@ public class TestUtil { return DEMO_DB_TYPE.equals(OseeInfo.getCachedValue(OseeInfo.DB_TYPE_KEY)); } + public static void setDemoDb(boolean set) throws OseeCoreException { + if (set) { + OseeInfo.putValue(OseeInfo.DB_TYPE_KEY, DEMO_DB_TYPE); + } else { + OseeInfo.putValue(OseeInfo.DB_TYPE_KEY, ""); + } + } + public static void sleep(long milliseconds) throws Exception { System.out.println("Sleeping " + milliseconds); Thread.sleep(milliseconds); |