diff options
author | ddunne | 2011-01-21 00:28:05 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2011-01-21 00:28:05 +0000 |
commit | 5f8e90759fe3b042211a3aa3e7f1e08deb881620 (patch) | |
tree | 16d785e1e26faa5154866a0a889ded73cc7463f7 | |
parent | 36b4e1e4979a58a70b0ae70995acd123e87a15a3 (diff) | |
download | org.eclipse.osee-5f8e90759fe3b042211a3aa3e7f1e08deb881620.tar.gz org.eclipse.osee-5f8e90759fe3b042211a3aa3e7f1e08deb881620.tar.xz org.eclipse.osee-5f8e90759fe3b042211a3aa3e7f1e08deb881620.zip |
feature: Convert ATS to XText for Work Definitions and Config
114 files changed, 3206 insertions, 2763 deletions
diff --git a/plugins/org.eclipse.osee.ats.config.demo/plugin.xml b/plugins/org.eclipse.osee.ats.config.demo/plugin.xml index daaba297a74..ff239e9c328 100644 --- a/plugins/org.eclipse.osee.ats.config.demo/plugin.xml +++ b/plugins/org.eclipse.osee.ats.config.demo/plugin.xml @@ -16,12 +16,6 @@ </DatabaseInitializationTask> </extension> <extension - point="org.eclipse.osee.ats.AtsAIandTeamConfig"> - <AtsAIandTeamConfig - vueFilename="support/Osee ATS Config Demo.vue"> - </AtsAIandTeamConfig> - </extension> - <extension point="org.eclipse.osee.ats.AtsNavigateItem"> <AtsNavigateItem classname="org.eclipse.osee.ats.config.demo.navigate.DemoNavigateViewItems"> @@ -61,6 +55,14 @@ </ArtifactImageProvider> </extension> <extension + id="DemoWorkDefinitionSheetProvider" + name="DemoWorkDefinitionSheetProvider" + point="org.eclipse.osee.ats.AtsWorkDefinitionSheetProvider"> + <AtsWorkDefinitionSheetProvider + classname="org.eclipse.osee.ats.config.demo.config.DemoWorkDefinitionSheetProvider"> + </AtsWorkDefinitionSheetProvider> + </extension> + <extension id="DemoTraceUnitHandler" name="DemoTraceUnitHandler" point="org.eclipse.osee.define.TraceUnitHandler"> diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateDemoActions.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateDemoActions.java index 80d653ed37c..92077c4eeb9 100644 --- a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateDemoActions.java +++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/PopulateDemoActions.java @@ -25,7 +25,6 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.artifact.TeamWorkflowManager; import org.eclipse.osee.ats.artifact.VersionArtifact; import org.eclipse.osee.ats.config.AtsBulkLoad; -import org.eclipse.osee.ats.config.demo.config.DemoDatabaseConfig; import org.eclipse.osee.ats.config.demo.config.DemoDbActionData; import org.eclipse.osee.ats.config.demo.config.DemoDbActionData.CreateReview; import org.eclipse.osee.ats.config.demo.config.DemoDbGroups; @@ -34,8 +33,6 @@ import org.eclipse.osee.ats.config.demo.config.DemoDbTasks; import org.eclipse.osee.ats.config.demo.config.DemoDbUtil; import org.eclipse.osee.ats.config.demo.config.DemoDbUtil.SoftwareRequirementStrs; import org.eclipse.osee.ats.config.demo.internal.OseeAtsConfigDemoActivator; -import org.eclipse.osee.ats.config.demo.util.DemoTeams; -import org.eclipse.osee.ats.config.demo.util.DemoTeams.Team; import org.eclipse.osee.ats.util.ActionManager; import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.util.AtsRelationTypes; @@ -222,12 +219,6 @@ public class PopulateDemoActions extends XNavigateItemAction { BranchType.BASELINE.getValue(), childBranch.getId()}); BranchManager.refreshBranches(); - // Map team definitions versions to their related branches - SkynetTransaction transaction = - new SkynetTransaction(AtsUtil.getAtsBranch(), "Populate Demo DB - Create Branch"); - DemoDatabaseConfig.mapTeamVersionToBranch(DemoTeams.getInstance().getTeamDef(Team.SAW_SW), - DemoSawBuilds.SAW_Bld_2.getName(), DemoSawBuilds.SAW_Bld_2.getName(), transaction); - transaction.execute(); } catch (Exception ex) { OseeLog.log(OseeAtsConfigDemoActivator.class, Level.SEVERE, ex); } 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 15ba31ceac1..0e4519e1d2a 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 @@ -10,22 +10,12 @@ *******************************************************************************/ package org.eclipse.osee.ats.config.demo.config; -import org.eclipse.osee.ats.artifact.AtsAttributeTypes; -import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; -import org.eclipse.osee.ats.artifact.VersionArtifact; import org.eclipse.osee.ats.config.demo.DemoCISBuilds; import org.eclipse.osee.ats.config.demo.DemoSubsystems; -import org.eclipse.osee.ats.config.demo.internal.OseeAtsConfigDemoActivator; -import org.eclipse.osee.ats.config.demo.util.DemoTeams; -import org.eclipse.osee.ats.config.demo.util.DemoTeams.Team; import org.eclipse.osee.ats.config.demo.workflow.DemoCodeWorkFlowDefinition; import org.eclipse.osee.ats.config.demo.workflow.DemoReqWorkFlowDefinition; import org.eclipse.osee.ats.config.demo.workflow.DemoSWDesignWorkFlowDefinition; import org.eclipse.osee.ats.config.demo.workflow.DemoTestWorkFlowDefinition; -import org.eclipse.osee.ats.util.AtsArtifactTypes; -import org.eclipse.osee.ats.util.AtsRelationTypes; -import org.eclipse.osee.ats.util.AtsUtil; -import org.eclipse.osee.ats.workflow.vue.AtsDbConfig; import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; import org.eclipse.osee.framework.core.exception.OseeCoreException; @@ -33,44 +23,28 @@ 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.UserManager; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; import org.eclipse.osee.framework.skynet.core.artifact.BranchManager; -import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; -import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; 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.DemoUsers; /** * Initialization class that will load configuration information for a sample DB. * * @author Donald G. Dunne */ -public class DemoDatabaseConfig extends AtsDbConfig implements IDbInitializationTask { +public class DemoDatabaseConfig implements IDbInitializationTask { @Override public void run() throws OseeCoreException { - SkynetTransaction transaction = new SkynetTransaction(BranchManager.getCommonBranch(), "Create Steve"); - // note, all other users are created through ATS Team/AI VUE import - UserManager.createUser(DemoUsers.Inactive_Steve, transaction); - transaction.execute(); - new DemoCodeWorkFlowDefinition().config(WriteType.New, null); new DemoTestWorkFlowDefinition().config(WriteType.New, null); new DemoReqWorkFlowDefinition().config(WriteType.New, null); new DemoSWDesignWorkFlowDefinition().config(WriteType.New, null); - // Creates Actionable Items and Teams - // Teams are related to workflow by id specified in team object in VUE diagram - executeLoadAIsAndTeamsAction(OseeAtsConfigDemoActivator.PLUGIN_ID); - - // Create initial version artifacts for Widget teams - createVersionArtifacts(); - // Create SAW_Bld_1 branch BranchManager.createTopLevelBranch(DemoSawBuilds.SAW_Bld_1); populateProgramBranch(DemoSawBuilds.SAW_Bld_1); @@ -79,31 +53,9 @@ public class DemoDatabaseConfig extends AtsDbConfig implements IDbInitialization BranchManager.createTopLevelBranch(DemoCISBuilds.CIS_Bld_1); populateProgramBranch(DemoCISBuilds.CIS_Bld_1); - // Map team definitions versions to their related branches - transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Demo Database Config"); - mapTeamVersionToBranch(DemoTeams.getInstance().getTeamDef(Team.SAW_SW), DemoSawBuilds.SAW_Bld_1.getName(), - DemoSawBuilds.SAW_Bld_1.getName(), transaction); - mapTeamVersionToBranch(DemoTeams.getInstance().getTeamDef(Team.CIS_SW), DemoCISBuilds.CIS_Bld_1.getName(), - DemoCISBuilds.CIS_Bld_1.getName(), transaction); - - // Set Joe Smith as Priviledged Member of SAW Test - Artifact teamDef = - ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.TeamDefinition, "SAW Test", AtsUtil.getAtsBranch()); - teamDef.addRelation(AtsRelationTypes.PrivilegedMember_Member, DemoDbUtil.getDemoUser(DemoUsers.Joe_Smith)); - teamDef.persist(transaction); - - transaction.execute(); - OseeInfo.putValue(OseeInfo.DB_TYPE_KEY, "demo"); } - public static void mapTeamVersionToBranch(TeamDefinitionArtifact teamDef, String versionName, String branchName, SkynetTransaction transaction) throws OseeCoreException { - Branch branch = BranchManager.getBranch(branchName); - VersionArtifact verArt = teamDef.getVersionArtifact(versionName, false); - verArt.setSoleAttributeValue(AtsAttributeTypes.BaselineBranchGuid, branch.getGuid()); - verArt.persist(transaction); - } - private void populateProgramBranch(IOseeBranch branch) throws OseeCoreException { Branch programBranch = BranchManager.getBranch(branch); Artifact sawProduct = @@ -132,36 +84,4 @@ public class DemoDatabaseConfig extends AtsDbConfig implements IDbInitialization } - private void createVersionArtifacts() throws OseeCoreException { - IOseeBranch atsBranch = AtsUtil.getAtsBranch(); - // Setup some sample builds for Widget A - createVersionArtifacts(atsBranch, Team.SAW_SW, DemoSawBuilds.SAW_Bld_1, DemoSawBuilds.SAW_Bld_2, - DemoSawBuilds.SAW_Bld_3); - - // Setup some sample builds for Widget B - createVersionArtifacts(atsBranch, Team.CIS_SW, DemoCISBuilds.CIS_Bld_1, DemoCISBuilds.CIS_Bld_2, - DemoCISBuilds.CIS_Bld_3); - } - - private void createVersionArtifacts(IOseeBranch atsBranch, Team team, IOseeBranch... demoBranches) throws OseeCoreException { - TeamDefinitionArtifact teamDef = DemoTeams.getInstance().getTeamDef(team); - for (IOseeBranch demoBranch : demoBranches) { - String versionName = demoBranch.getName(); - VersionArtifact versionArtifact = - (VersionArtifact) ArtifactTypeManager.addArtifact(AtsArtifactTypes.Version, atsBranch, versionName); - - if (DemoCISBuilds.CIS_Bld_1.equals(demoBranch) || DemoSawBuilds.SAW_Bld_1.equals(demoBranch)) { - versionArtifact.setReleased(true); - } - if (DemoCISBuilds.CIS_Bld_2.equals(demoBranch) || DemoSawBuilds.SAW_Bld_2.equals(demoBranch)) { - versionArtifact.setSoleAttributeValue(AtsAttributeTypes.NextVersion, true); - } - if (DemoSawBuilds.SAW_Bld_2.equals(demoBranch)) { - versionArtifact.setSoleAttributeValue(AtsAttributeTypes.AllowCommitBranch, true); - versionArtifact.setSoleAttributeValue(AtsAttributeTypes.AllowCreateBranch, true); - } - teamDef.addRelation(AtsRelationTypes.TeamDefinitionToVersion_Version, versionArtifact); - versionArtifact.persist(); - } - } } diff --git a/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoWorkDefinitionSheetProvider.java b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoWorkDefinitionSheetProvider.java new file mode 100644 index 00000000000..71ff06df5ca --- /dev/null +++ b/plugins/org.eclipse.osee.ats.config.demo/src/org/eclipse/osee/ats/config/demo/config/DemoWorkDefinitionSheetProvider.java @@ -0,0 +1,38 @@ +/* + * Created on Jan 20, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.ats.config.demo.config; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import org.eclipse.osee.ats.config.demo.internal.OseeAtsConfigDemoActivator; +import org.eclipse.osee.ats.workdef.AtsWorkDefinitionSheetProviders; +import org.eclipse.osee.ats.workdef.IAtsWorkDefinitionSheetProvider; +import org.eclipse.osee.ats.workdef.WorkDefinitionSheet; + +public class DemoWorkDefinitionSheetProvider implements IAtsWorkDefinitionSheetProvider { + + @Override + public Collection<WorkDefinitionSheet> getWorkDefinitionSheets() { + List<WorkDefinitionSheet> sheets = new ArrayList<WorkDefinitionSheet>(); + sheets.add(new WorkDefinitionSheet("WorkDef_Demo_AIs_And_Team_Definitions", "", + AtsWorkDefinitionSheetProviders.getSupportFile(OseeAtsConfigDemoActivator.PLUGIN_ID, + "support/WorkDef_Demo_AIs_And_Team_Definitions.ats"))); + sheets.add(new WorkDefinitionSheet("WorkDef_Team_Demo_Code", "demo.code", + AtsWorkDefinitionSheetProviders.getSupportFile(OseeAtsConfigDemoActivator.PLUGIN_ID, + "support/WorkDef_Team_Demo_Code.ats"))); + sheets.add(new WorkDefinitionSheet("WorkDef_Team_Demo_Req", "demo.req", + AtsWorkDefinitionSheetProviders.getSupportFile(OseeAtsConfigDemoActivator.PLUGIN_ID, + "support/WorkDef_Team_Demo_Req.ats"))); + sheets.add(new WorkDefinitionSheet("WorkDef_Team_Demo_Test", "demo.test", + AtsWorkDefinitionSheetProviders.getSupportFile(OseeAtsConfigDemoActivator.PLUGIN_ID, + "support/WorkDef_Team_Demo_Test.ats"))); + sheets.add(new WorkDefinitionSheet("WorkDef_Team_Demo_SwDesign", "demo.swdesign", + AtsWorkDefinitionSheetProviders.getSupportFile(OseeAtsConfigDemoActivator.PLUGIN_ID, + "support/WorkDef_Team_Demo_SwDesign.ats"))); + return sheets; + } +} diff --git a/plugins/org.eclipse.osee.ats.config.demo/support/Osee ATS Config Demo.vue b/plugins/org.eclipse.osee.ats.config.demo/support/Osee ATS Config Demo.vue deleted file mode 100644 index dbffad58577..00000000000 --- a/plugins/org.eclipse.osee.ats.config.demo/support/Osee ATS Config Demo.vue +++ /dev/null @@ -1,1531 +0,0 @@ -<!-- Do Not Remove: VUE mapping @version(1.1) jar:file:/C:/Program%20Files/VUE/VUE.jar!/tufts/vue/resources/lw_mapping_1_1.xml --> -<!-- Do Not Remove: Saved date Wed Jun 11 10:13:51 MST 2008 by b0727536 on platform Windows XP 5.1 in JVM 1.5.0_07-b03 --> -<!-- Do Not Remove: Saving version @(#)VUE: built October 17 2006 at 0400 by vue on Linux 2.4.21-37.EL i386 JVM 1.5.0_06-b05 --> -<?xml version="1.0" encoding="US-ASCII"?> -<LW-MAP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:noNamespaceSchemaLocation="none" ID="0" - label="Osee ATS Config Demo.vue" x="-1334.7498" y="-359.0" - width="1967.59" height="689.9575" strokeWidth="0.0" autoSized="false"> - <fillColor>#ffffff</fillColor> - <strokeColor>#404040</strokeColor> - <font>SansSerif-plain-14</font> - <nodeFilter/> - <child ID="411" label="SAW CSCI" x="-188.51242" y="-299.1973" - width="107.35" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <notes>NotActionable</notes> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="67" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="412" label="SAW Requirements" x="-195.81241" - y="-147.1973" width="138.15" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="123" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="413" label="SAW Code" x="-307.61246" y="-249.1973" - width="81.45" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="69" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="414" label="SAW Test" x="-2.6124573" y="-261.1973" - width="75.149994" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="63" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="415" x="-236.51596" y="-276.1973" width="71.30705" - height="27.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-165.20891" y="-276.1973"/> - <point2 x="-236.51596" y="-249.1973"/> - <ID1>411</ID1> - <ID2>413</ID2> - </child> - <child ID="416" x="-83.450554" y="-276.19727" width="80.8381" - height="18.090973" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-83.450554" y="-276.1973"/> - <point2 x="-2.6124573" y="-258.10632"/> - <ID1>411</ID1> - <ID2>414</ID2> - </child> - <child ID="417" x="-135.78741" y="-276.19727" width="10.0" - height="129.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-134.22458" y="-276.19727"/> - <point2 x="-127.350235" y="-147.19727"/> - <ID1>411</ID1> - <ID2>412</ID2> - </child> - <child ID="418" label="COMM" x="-287.26245" y="-155.1973" - width="54.149998" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="43" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="419" label="NAV" x="-256.26245" y="-197.1973" - width="37.35" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="27" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="420" label="MSM" x="-348.26245" y="-150.1973" - width="41.55" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="31" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="421" label="COMM" x="-208.18744" y="-80.197296" - width="54.149998" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="43" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="422" label="NAV" x="-159.18744" y="-36.197296" - width="37.35" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="27" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="423" label="MSM" x="-128.18744" y="-77.197296" - width="41.55" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="31" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="424" label="COMM" x="-70.962494" y="-193.1973" - width="54.149998" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="43" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="425" label="RunLists" x="9.037506" y="-148.1973" - width="66.75" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="55" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="426" label="NAV" x="4.037506" y="-195.1973" width="37.35" - height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="27" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="427" x="23.837523" y="-238.1973" width="10.0" - height="43.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="32.828064" y="-238.1973"/> - <point2 x="24.846981" y="-195.1973"/> - <ID1>414</ID1> - <ID2>426</ID2> - </child> - <child ID="428" x="33.687523" y="-238.19727" width="10.0" - height="90.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="35.720726" y="-238.19727"/> - <point2 x="41.654324" y="-148.19727"/> - <ID1>414</ID1> - <ID2>425</ID2> - </child> - <child ID="429" x="-30.55256" y="-238.1973" width="52.180176" - height="45.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="21.627615" y="-238.1973"/> - <point2 x="-30.55256" y="-193.1973"/> - <ID1>414</ID1> - <ID2>424</ID2> - </child> - <child ID="430" x="-123.56259" y="-124.197296" width="12.975334" - height="47.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-123.56259" y="-124.197296"/> - <point2 x="-110.58726" y="-77.197296"/> - <ID1>412</ID1> - <ID2>423</ID2> - </child> - <child ID="431" x="-139.0853" y="-124.197266" width="10.920731" - height="88.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-128.16457" y="-124.197266"/> - <point2 x="-139.0853" y="-36.197266"/> - <ID1>412</ID1> - <ID2>422</ID2> - </child> - <child ID="432" x="-171.77942" y="-124.197296" width="35.70897" - height="44.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-136.07045" y="-124.197296"/> - <point2 x="-171.77942" y="-80.197296"/> - <ID1>412</ID1> - <ID2>421</ID2> - </child> - <child ID="433" x="-320.44806" y="-226.1973" width="46.52118" - height="75.99997" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-273.92688" y="-226.1973"/> - <point2 x="-320.44806" y="-150.19733"/> - <ID1>413</ID1> - <ID2>420</ID2> - </child> - <child ID="434" x="-260.40765" y="-226.1973" width="16.340393" - height="29.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-260.40765" y="-226.1973"/> - <point2 x="-244.06726" y="-197.1973"/> - <ID1>413</ID1> - <ID2>419</ID2> - </child> - <child ID="435" x="-268.53745" y="-226.19751" width="10.0" - height="71.000244" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-266.06778" y="-226.19751"/> - <point2 x="-261.0071" y="-155.19727"/> - <ID1>413</ID1> - <ID2>418</ID2> - </child> - <child ID="436" label="SAW Code" x="-330.94748" y="0.9427185" - width="122.34" height="29.89" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <notes>Lead:Joe Smith%nl;AtsTeamUsesVersions%nl;StaticId:saw.code%nl;WorkflowId:demo.code</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="69" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="437" label="SAW Requirements" x="-184.53745" - y="43.577698" width="182.38" height="33.229996" - strokeWidth="1.0" autoSized="true" xsi:type="node"> - <notes>Lead:Joe Smith%nl;AtsTeamUsesVersions%nl;StaticId:saw.requirements%nl;WorkflowId:demo.req</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="123" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="438" label="SAW Test" x="-53.537445" y="-46.42227" - width="115.78" height="29.629997" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>Lead:Kay Jones%nl;AtsTeamUsesVersions%nl;StaticId:saw.test%nl;WorkflowId:demo.test</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="63" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="439" x="-130.96346" y="-17.358871" width="124.34966" - height="161.56557" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-130.96346" y="144.2067"/> - <point2 x="-6.6137934" y="-17.358875"/> - <ID1>447</ID1> - <ID2>438</ID2> - </child> - <child ID="440" x="6.4169397" y="-238.19727" width="26.931517" - height="191.88167" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="6.4169407" y="-46.315613"/> - <point2 x="33.348457" y="-238.19728"/> - <ID1>438</ID1> - <ID2>414</ID2> - </child> - <child ID="441" x="-273.31287" y="-226.19531" width="10.0" - height="227.14844" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-269.60724" y="0.953125"/> - <point2 x="-267.01852" y="-226.19531"/> - <ID1>436</ID1> - <ID2>413</ID2> - </child> - <child ID="445" x="-134.7478" y="76.511154" width="33.33925" - height="67.49013" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-134.7478" y="144.00128"/> - <point2 x="-101.408554" y="76.511154"/> - <ID1>447</ID1> - <ID2>437</ID2> - </child> - <child ID="446" x="-256.91876" y="30.198456" width="102.52498" - height="114.10228" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-154.39378" y="144.30074"/> - <point2 x="-256.91876" y="30.198456"/> - <ID1>447</ID1> - <ID2>436</ID2> - </child> - <child ID="447" label="SAW SW" x="-196.42252" y="143.6177" - width="109.21999" height="29.370003" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>Full Name:SAW Software%nl;Lead:Kay Jason%nl;Member:Maichael Johnson%nl;%nl;Member:Steven Kohn%nl;WorkflowId:osee.ats.teamWorkflow%nl;AtsTeamUsesVersions%nl;StaticId:saw.teamDefHoldingVersions%nl;NotActionable</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="57" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="448" label="ADT" x="89.93753" y="-166.1973" - width="38.399998" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="28" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="449" x="43.941605" y="-238.1973" width="56.216854" - height="72.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="43.94161" y="-238.1973"/> - <point2 x="100.15846" y="-166.1973"/> - <ID1>414</ID1> - <ID2>448</ID2> - </child> - <child ID="450" label="Test Page" x="-384.0625" y="-200.1973" - width="77.25" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="65" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="451" x="-327.00226" y="-226.1973" width="41.679596" - height="26.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-285.32266" y="-226.1973"/> - <point2 x="-327.00226" y="-200.1973"/> - <ID1>413</ID1> - <ID2>450</ID2> - </child> - <child ID="452" x="-131.35172" y="-335.5" width="11.0035095" - height="36.302704" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-120.348206" y="-335.5"/> - <point2 x="-131.35172" y="-299.1973"/> - <ID1>455</ID1> - <ID2>411</ID2> - </child> - <child ID="453" x="-124.77719" y="-124.197266" width="28.615334" - height="167.87848" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-96.161865" y="43.681213"/> - <point2 x="-124.7772" y="-124.197266"/> - <ID1>437</ID1> - <ID2>412</ID2> - </child> - <child ID="454" x="-139.67986" y="172.87189" width="19.069695" - height="130.27472" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-120.61016" y="303.1466"/> - <point2 x="-139.67986" y="172.87189"/> - <ID1>456</ID1> - <ID2>447</ID2> - </child> - <child ID="455" label="Actionable Items" x="-189.4375" y="-358.5" - width="145.15" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <notes>NotActionable</notes> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="103" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="456" label="Teams" x="-164.90997" y="303.02753" - width="92.57999" height="27.43" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>NotActionable</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="43" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="457" label="MSM" x="93.36252" y="-208.5" width="41.55" - height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="31" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="458" x="52.240723" y="-238.1973" width="44.618626" - height="29.697296" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="52.24072" y="-238.1973"/> - <point2 x="96.859344" y="-208.5"/> - <ID1>414</ID1> - <ID2>457</ID2> - </child> - <child ID="459" label="CIS CSCI" x="367.20007" y="-312.63025" - width="97.899994" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>NotActionable</notes> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="58" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="460" label="CIS Requirements" x="249.90009" - y="-192.63025" width="128.7" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="114" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="461" label="CIS Code" x="180.10004" y="-233.63025" - width="72.0" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="60" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="462" label="CIS Test" x="406.10004" y="-228.63025" - width="65.7" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="54" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="463" x="245.22125" y="-289.63025" width="141.80762" - height="56.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="387.02887" y="-289.63025"/> - <point2 x="245.22125" y="-233.63025"/> - <ID1>459</ID1> - <ID2>461</ID2> - </child> - <child ID="464" x="419.2715" y="-289.63025" width="16.557129" - height="61.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="419.2715" y="-289.63025"/> - <point2 x="435.82864" y="-228.63025"/> - <ID1>459</ID1> - <ID2>462</ID2> - </child> - <child ID="465" x="324.0155" y="-289.63025" width="82.36917" - height="97.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="406.38467" y="-289.63025"/> - <point2 x="324.0155" y="-192.63025"/> - <ID1>459</ID1> - <ID2>460</ID2> - </child> - <child ID="484" x="429.67383" y="-205.62988" width="10.0" - height="208.18262" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="430.82306" y="2.5527344"/> - <point2 x="438.5246" y="-205.62988"/> - <ID1>499</ID1> - <ID2>462</ID2> - </child> - <child ID="485" x="209.66116" y="-210.62988" width="10.0" - height="120.53613" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="213.45288" y="-90.09375"/> - <point2 x="215.86946" y="-210.62988"/> - <ID1>497</ID1> - <ID2>461</ID2> - </child> - <child ID="493" x="-44.287506" y="-340.7544" width="411.48758" - height="35.41162" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-44.287506" y="-340.7544"/> - <point2 x="367.20007" y="-305.34277"/> - <ID1>455</ID1> - <ID2>459</ID2> - </child> - <child ID="494" x="310.1399" y="-169.63086" width="10.0" - height="123.16211" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="315.88965" y="-46.46875"/> - <point2 x="314.3901" y="-169.63086"/> - <ID1>498</ID1> - <ID2>460</ID2> - </child> - <child ID="497" label="CIS Code" x="157.1625" y="-90.110245" - width="112.0" height="29.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <notes>Lead:Jason Michael%nl;Member:Jason Michael%nl;AtsTeamUsesVersions%nl;StaticId:cis.code%nl;WorkflowId:demo.code</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="60" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="498" label="CIS Requirements" x="229.57254" - y="-46.475266" width="173.04" height="33.339996" - strokeWidth="1.0" autoSized="true" xsi:type="node"> - <notes>Lead:Joe Smith%nl;Lead:Joe Smith%nl;WorkflowId:demo.req%nl;AtsTeamUsesVersions%nl;StaticId:cis.requirements</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="114" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="499" label="CIS Test" x="377.5725" y="2.524765" - width="105.44" height="28.739998" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>Lead:Kay Jones%nl;AtsTeamUsesVersions%nl;StaticId:cis.test%nl;WorkflowId:demo.test</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="54" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="500" x="321.96094" y="-13.363525" width="54.64737" - height="153.10773" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="376.6083" y="139.7442"/> - <point2 x="321.96094" y="-13.363525"/> - <ID1>503</ID1> - <ID2>498</ID2> - </child> - <child ID="501" x="223.41898" y="-61.646423" width="148.13765" - height="201.68442" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="371.5566" y="140.038"/> - <point2 x="223.41896" y="-61.646423"/> - <ID1>503</ID1> - <ID2>497</ID2> - </child> - <child ID="502" x="386.55457" y="30.988647" width="38.720093" - height="108.75488" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="386.55457" y="139.74353"/> - <point2 x="425.27466" y="30.988647"/> - <ID1>503</ID1> - <ID2>499</ID2> - </child> - <child ID="503" label="CIS SW" x="332.14752" y="139.45474" - width="98.87999" height="28.48" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>Full Name:CIS Software%nl;Lead:Kay Jason%nl;Member:Maichael Johnson%nl;%nl;Member:Steven Kohn%nl;WorkflowId:osee.ats.teamWorkflow%nl;AtsTeamUsesVersions%nl;StaticId:cis.teamDefHoldingVersions%nl;NotActionable</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="48" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="504" x="-87.7357" y="164.25906" width="436.91336" - height="142.41641" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-87.735695" y="306.67548"/> - <point2 x="349.17767" y="164.25906"/> - <ID1>456</ID1> - <ID2>503</ID2> - </child> - <child ID="505" label="Tools Team" x="-651.8525" y="81.45474" - width="128.9" height="30.150002" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>Full Name:Tools Team%nl;Lead:Jeffery Kay%nl;Member:Jeffery Kay%nl;Member:Roland Stevens%nl;WorkflowId:osee.ats.teamWorkflow</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="75" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="506" x="-558.9597" y="109.89084" width="416.08856" - height="195.45956" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-142.87114" y="305.3504"/> - <point2 x="-558.9597" y="109.89084"/> - <ID1>456</ID1> - <ID2>505</ID2> - </child> - <child ID="507" label="Tools" x="-648.1875" y="-272.63025" - width="73.75" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <notes>NotActionable</notes> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="35" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="508" x="-574.4375" y="-335.5" width="391.35632" - height="67.96576" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-183.08118" y="-335.5"/> - <point2 x="-574.4375" y="-267.53424"/> - <ID1>455</ID1> - <ID2>507</ID2> - </child> - <child ID="509" label="Timesheet" x="-620.5494" y="-131.86516" - width="78.299995" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="66" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="510" label="Reader" x="-604.5494" y="-197.86517" - width="58.35" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="47" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="511" label="Website" x="-707.5494" y="-138.86516" - width="62.55" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="51" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="512" x="-670.6895" y="-249.63025" width="53.792114" - height="110.76514" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-616.8974" y="-249.63025"/> - <point2 x="-670.6895" y="-138.86511"/> - <ID1>507</ID1> - <ID2>511</ID2> - </child> - <child ID="513" x="-605.78467" y="-249.63025" width="24.882507" - height="51.765137" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-605.78467" y="-249.63025"/> - <point2 x="-580.90216" y="-197.86511"/> - <ID1>507</ID1> - <ID2>510</ID2> - </child> - <child ID="514" x="-608.8687" y="-249.63037" width="25.025513" - height="117.76514" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-608.8687" y="-249.63037"/> - <point2 x="-583.8432" y="-131.86523"/> - <ID1>507</ID1> - <ID2>509</ID2> - </child> - <child ID="515" x="-610.5437" y="-249.62988" width="22.136658" - height="331.13184" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-588.40704" y="81.50195"/> - <point2 x="-610.5437" y="-249.62988"/> - <ID1>505</ID1> - <ID2>507</ID2> - </child> - <child ID="517" label="Results Reporter" x="-747.3494" - y="-199.86517" width="121.35" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="107" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="518" x="-674.76404" y="-249.63025" width="51.541138" - height="49.765076" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-623.2229" y="-249.63025"/> - <point2 x="-674.76404" y="-199.86517"/> - <ID1>507</ID1> - <ID2>517</ID2> - </child> - <child ID="519" label="Web Team" x="-766.3125" y="-2.205246" - width="122.34" height="29.89" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <notes>Full Name:Company Website Team%nl;Lead:Karmen John%nl;Member:Jeffery Kay%nl;Member:Roland Stevens%nl;WorkflowId:osee.ats.simpleTeamWorkflow</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="69" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="521" x="-702.0941" y="-115.865234" width="23.450256" - height="113.8103" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-702.0941" y="-2.0549316"/> - <point2 x="-678.64386" y="-115.865234"/> - <ID1>519</ID1> - <ID2>511</ID2> - </child> - <child ID="522" x="-685.5033" y="26.716034" width="78.2359" - height="55.67679" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-607.2674" y="82.39282"/> - <point2 x="-685.5033" y="26.716034"/> - <ID1>505</ID1> - <ID2>519</ID2> - </child> - <child ID="523" label="SAW HW" x="-429.85248" y="91.45474" - width="109.21999" height="29.370003" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>Full Name:SAW Hardware%nl;Lead:Jason Michael%nl;Member:Jason Michael%nl;AtsTeamUsesVersions%nl;WorkflowId:osee.ats.teamWorkflow</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="57" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="524" label="SAW HW" x="-485.1875" y="-250.63025" - width="68.85" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="57" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="525" label="Screen" x="-427.63745" y="-135.74515" - width="56.249996" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="45" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="526" label="Manual" x="-438.63745" y="-173.74515" - width="57.3" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="46" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="527" label="Adapter" x="-506.63745" y="-125.74515" - width="61.499996" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="50" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="528" x="-473.57382" y="-227.63037" width="20.497742" - height="101.885254" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-453.07608" y="-227.63037"/> - <point2 x="-473.57382" y="-125.74512"/> - <ID1>524</ID1> - <ID2>527</ID2> - </child> - <child ID="529" x="-444.66364" y="-227.63025" width="28.57727" - height="53.88507" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-444.66364" y="-227.63025"/> - <point2 x="-416.08636" y="-173.74518"/> - <ID1>524</ID1> - <ID2>526</ID2> - </child> - <child ID="530" x="-445.6324" y="-227.63025" width="40.989807" - height="91.88513" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-445.6324" y="-227.63025"/> - <point2 x="-404.64258" y="-135.74512"/> - <ID1>524</ID1> - <ID2>525</ID2> - </child> - <child ID="531" x="-448.24713" y="-227.63025" width="69.83032" - height="319.25732" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-378.4168" y="91.627075"/> - <point2 x="-448.24713" y="-227.63025"/> - <ID1>523</ID1> - <ID2>524</ID2> - </child> - <child ID="532" label="Case" x="-524.4375" y="-180.74515" - width="43.649998" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="33" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="533" x="-494.08026" y="-227.63025" width="34.785553" - height="46.88513" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-459.29474" y="-227.63025"/> - <point2 x="-494.0803" y="-180.74512"/> - <ID1>524</ID1> - <ID2>532</ID2> - </child> - <child ID="534" x="-333.4332" y="115.482574" width="149.8114" - height="33.477303" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-183.6218" y="148.95987"/> - <point2 x="-333.4332" y="115.48257"/> - <ID1>447</ID1> - <ID2>523</ID2> - </child> - <child ID="535" x="-416.3375" y="-279.44586" width="227.82507" - height="35.023468" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-188.51242" y="-279.44586"/> - <point2 x="-416.3375" y="-244.4224"/> - <ID1>411</ID1> - <ID2>524</ID2> - </child> - <child ID="536" label="Process Team" x="-927.83997" y="71.21979" - width="147.06" height="31.509998" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>Full Name:Processes Team%nl;Lead:Alex Kay%nl;Member:Michael Alex%nl;Member:Janice Michael%nl;Member:Keith Johnson%nl;WorkflowId:osee.ats.teamWorkflow</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="91" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="537" label="Processes" x="-904.175" y="-282.8652" - width="78.299995" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="66" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="538" x="-825.875" y="-339.66315" width="636.4375" - height="64.34006" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-189.4375" y="-339.66312"/> - <point2 x="-825.875" y="-275.32306"/> - <ID1>455</ID1> - <ID2>537</ID2> - </child> - <child ID="539" label="Reviews" x="-836.53687" y="-131.1001" - width="63.6" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="52" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="540" label="Config Mgmt" x="-841.53687" y="-210.10013" - width="91.95" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="79" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="541" label="Coding Standards" x="-994.53687" - y="-146.1001" width="128.7" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="114" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="542" x="-924.70776" y="-259.86523" width="54.203552" - height="113.76514" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-870.50415" y="-259.86523"/> - <point2 x="-924.7077" y="-146.1001"/> - <ID1>537</ID1> - <ID2>541</ID2> - </child> - <child ID="543" x="-854.0468" y="-259.86523" width="47.506836" - height="49.765137" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-854.0468" y="-259.86523"/> - <point2 x="-806.54" y="-210.1001"/> - <ID1>537</ID1> - <ID2>540</ID2> - </child> - <child ID="544" x="-860.45667" y="-259.86523" width="51.15143" - height="128.76514" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-860.45667" y="-259.86523"/> - <point2 x="-809.30524" y="-131.1001"/> - <ID1>537</ID1> - <ID2>539</ID2> - </child> - <child ID="545" x="-864.7308" y="-259.86523" width="10.0" - height="331.10547" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-854.78046" y="71.240234"/> - <point2 x="-864.6811" y="-259.86523"/> - <ID1>536</ID1> - <ID2>537</ID2> - </child> - <child ID="546" label="New Employee Manual" x="-1024.3369" - y="-210.10013" width="158.09999" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="142" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="547" x="-932.60205" y="-259.86523" width="54.892395" - height="49.765137" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-877.7097" y="-259.86523"/> - <point2 x="-932.6021" y="-210.1001"/> - <ID1>537</ID1> - <ID2>546</ID2> - </child> - <child ID="551" x="-813.47705" y="99.72755" width="663.1499" - height="207.11229" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-150.32718" y="306.83984"/> - <point2 x="-813.4771" y="99.727554"/> - <ID1>456</ID1> - <ID2>536</ID2> - </child> - <child ID="552" label="Facilities Team" x="-1205.7528" y="93.64368" - width="151.1" height="31.349998" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>Full Name:Facilities Team%nl;Lead:John Stevens%nl;Member:Jason Stevens%nl;Member:Michael John%nl;Member:Steven Michael%nl;WorkflowId:osee.ats.simpleTeamWorkflow%nl;Member:John Stevens%nl;</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="95" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="553" label="Facilities" x="-1214.0879" y="-281.44128" - width="66.75" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="55" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="554" x="-1147.3379" y="-341.7431" width="957.9004" - height="69.38434" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-189.4375" y="-341.7431"/> - <point2 x="-1147.3379" y="-272.35876"/> - <ID1>455</ID1> - <ID2>553</ID2> - </child> - <child ID="555" label="Computers" x="-1146.4497" y="-129.67621" - width="81.45" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="69" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="556" label="Vending Machines" x="-1188.4497" - y="-199.67624" width="130.79999" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="116" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="557" label="Network" x="-1270.4497" y="-137.67621" - width="61.499996" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="50" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="558" x="-1234.9812" y="-258.44165" width="49.549927" - height="120.76538" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-1185.4313" y="-258.44165"/> - <point2 x="-1234.9812" y="-137.67627"/> - <ID1>553</ID1> - <ID2>557</ID2> - </child> - <child ID="559" x="-1172.6027" y="-258.44116" width="41.44287" - height="58.765015" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-1172.6027" y="-258.44116"/> - <point2 x="-1131.1598" y="-199.67615"/> - <ID1>553</ID1> - <ID2>556</ID2> - </child> - <child ID="560" x="-1175.0308" y="-258.4414" width="63.62378" - height="128.76514" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-1175.0308" y="-258.4414"/> - <point2 x="-1111.407" y="-129.67627"/> - <ID1>553</ID1> - <ID2>555</ID2> - </child> - <child ID="561" x="-1179.1814" y="-258.4414" width="46.902588" - height="352.17188" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-1132.2788" y="93.73047"/> - <point2 x="-1179.1814" y="-258.4414"/> - <ID1>552</ID1> - <ID2>553</ID2> - </child> - <child ID="562" label="Break Room" x="-1334.2498" y="-208.67624" - width="90.899994" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="78" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="563" x="-1271.7175" y="-258.44128" width="73.92224" - height="49.765015" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-1197.7952" y="-258.44128"/> - <point2 x="-1271.7174" y="-208.67627"/> - <ID1>553</ID1> - <ID2>562</ID2> - </child> - <child ID="564" x="-1076.4965" y="120.331085" width="919.8511" - height="188.61435" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-156.6454" y="308.94543"/> - <point2 x="-1076.4965" y="120.331085"/> - <ID1>456</ID1> - <ID2>552</ID2> - </child> - <child ID="565" label="IT Team" x="-1111.2998" y="-10.868973" - width="102.92" height="28.32" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <notes>Full Name:IT Team%nl;Lead:Kay Wheeler%nl;Member:Jason Stevens%nl;Member:Michael John%nl;Member:Steven Michael</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="52" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="566" label="Backups" x="-1191.4998" y="-90.69397" - width="65.7" height="23.0" strokeWidth="1.0" autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="54" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="567" x="-1179.3828" y="-258.4414" width="19.40271" - height="167.74707" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-1179.3827" y="-258.4414"/> - <point2 x="-1159.98" y="-90.694336"/> - <ID1>553</ID1> - <ID2>566</ID2> - </child> - <child ID="568" x="-1101.3806" y="-106.67627" width="36.301758" - height="96.09839" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-1065.0789" y="-10.577881"/> - <point2 x="-1101.3806" y="-106.67627"/> - <ID1>565</ID1> - <ID2>555</ID2> - </child> - <child ID="569" x="-1144.8738" y="-67.69403" width="69.12988" - height="57.708557" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-1075.7439" y="-9.985474"/> - <point2 x="-1144.8738" y="-67.69403"/> - <ID1>565</ID1> - <ID2>566</ID2> - </child> - <child ID="570" x="-1223.7236" y="-114.67621" width="145.62158" - height="104.821655" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-1078.102" y="-9.854553"/> - <point2 x="-1223.7236" y="-114.67621"/> - <ID1>565</ID1> - <ID2>557</ID2> - </child> - <child ID="571" x="-1120.0817" y="16.947632" width="51.178955" - height="77.119995" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-1120.0817" y="94.06763"/> - <point2 x="-1068.9027" y="16.947632"/> - <ID1>552</ID1> - <ID2>565</ID2> - </child> - <child ID="572" label="CIS SW Design" x="496.02527" y="-266.69397" - width="109.799995" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="96" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="573" label="SAW SW Design" x="37.97522" y="-302.69397" - width="119.24999" height="23.0" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <fillColor>#f2ae45</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="105" height="17"/> - <nodeFilter/> - <shape xsi:type="rectangle"/> - </child> - <child ID="576" x="449.89062" y="-289.63025" width="67.29419" - height="22.93628" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="449.89062" y="-289.63025"/> - <point2 x="517.1848" y="-266.69397"/> - <ID1>459</ID1> - <ID2>572</ID2> - </child> - <child ID="577" label="CIS SW Design" x="479.98022" y="-42.738968" - width="152.35999" height="31.559998" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>Lead:Kay Jones%nl;AtsTeamUsesVersions%nl;StaticId:cis.sw_design%nl;WorkflowId:demo.swdesign</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="96" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="578" label="SAW SW Design" x="3.5202637" y="95.85103" - width="162.70001" height="32.45" strokeWidth="1.0" - autoSized="true" xsi:type="node"> - <notes>Lead:Kay Jones%nl;AtsTeamUsesVersions%nl;StaticId:saw.sw_design%nl;WorkflowId:demo.swdesign</notes> - <fillColor>#a7c2e9</fillColor> - <strokeColor>#776d6d</strokeColor> - <font>Arial-plain-14</font> - <textBox width="105" height="17"/> - <nodeFilter/> - <shape xsi:type="ellipse"/> - </child> - <child ID="579" x="85.38179" y="-279.6941" width="11.855415" - height="375.56567" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="85.38179" y="95.87158"/> - <point2 x="97.237206" y="-279.6941"/> - <ID1>578</ID1> - <ID2>573</ID2> - </child> - <child ID="580" x="-81.16242" y="-294.40088" width="119.13764" - height="10.0" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-81.16242" y="-288.50473"/> - <point2 x="37.97522" y="-290.297"/> - <ID1>411</ID1> - <ID2>573</ID2> - </child> - <child ID="581" x="394.61615" y="-11.791931" width="146.8876" - height="152.00424" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="394.61612" y="140.21231"/> - <point2 x="541.5037" y="-11.791931"/> - <ID1>503</ID1> - <ID2>577</ID2> - </child> - <child ID="582" x="548.49384" y="-243.6914" width="10.0" - height="200.9668" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="555.7986" y="-42.72461"/> - <point2 x="551.1891" y="-243.6914"/> - <ID1>577</ID1> - <ID2>572</ID2> - </child> - <child ID="583" x="-98.46167" y="123.651245" width="126.57034" - height="25.811073" strokeWidth="1.0" autoSized="false" - controlCount="0" arrowState="2" xsi:type="link"> - <strokeColor>#404040</strokeColor> - <textColor>#404040</textColor> - <font>Arial-plain-12</font> - <nodeFilter/> - <point1 x="-98.46167" y="149.46231"/> - <point2 x="28.10867" y="123.65124"/> - <ID1>447</ID1> - <ID2>578</ID2> - </child> - <userZoom>1.0</userZoom> - <userOrigin x="-1441.7498" y="-629.194"/> - <PathwayList currentPathway="0" revealerIndex="-1"> - <pathway label="Untitled Pathway" x="0.0" y="0.0" - width="1.4E-45" height="1.4E-45" hidden="true" - strokeWidth="0.0" autoSized="false" currentIndex="-1" - locked="false" open="true"> - <strokeColor>#993333</strokeColor> - <font>SansSerif-plain-14</font> - <nodeFilter/> - </pathway> - </PathwayList> - <date>2006-12-19</date> - <mapFilterModel/> -</LW-MAP> diff --git a/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Demo_AIs_And_Team_Definitions.ats b/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Demo_AIs_And_Team_Definitions.ats new file mode 100644 index 00000000000..4cd8576933d --- /dev/null +++ b/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Demo_AIs_And_Team_Definitions.ats @@ -0,0 +1,297 @@ + +userDefinition "Joe Smith" GetOrCreate +userDefinition "Kay Jones" GetOrCreate +userDefinition "Jason Michael" GetOrCreate +userDefinition "Alex Kay" GetOrCreate +userDefinition "Kay Jason" GetOrCreate +userDefinition "Steven Kohn" GetOrCreate +userDefinition "John Stevens" GetOrCreate +userDefinition "Keith Johnson" GetOrCreate +userDefinition "Michael Alex" GetOrCreate +userDefinition "Janice Michael" GetOrCreate +userDefinition "Maichael Johnson" GetOrCreate +userDefinition "Roland Stevens" GetOrCreate +userDefinition "Jeffery Kay" GetOrCreate +userDefinition "Karmen John" GetOrCreate +userDefinition "Steven Michael" GetOrCreate +userDefinition "Jason Stevens" GetOrCreate +userDefinition "Michael John" GetOrCreate +userDefinition "Kay Wheeler" GetOrCreate +userDefinition "Inactive Steve" GetOrCreate { + active False userId "Inactive Steve" + email "Inactive Steve" + isAdmin False +} + +teamDefinition "Teams" GetOrCreate { + staticId "osee.ats.TopTeamDefinition" + children { + + teamDefinition "CIS SW" { + staticId "cis.teamDefHoldingVersions" + lead named "Kay Jason" + member named "Steven Kohn" + member named "Maichael Johnson" + member named "Kay Jason" + workDefinition "osee.ats.teamWorkflow" + version "CIS_Bld_1" { + staticId "cis.teamDefHoldingVersions" + released True + baslineBranchGuid "AyH_f2sSKy3l07fIvDDD" + } + version "CIS_Bld_2" { + staticId "cis.teamDefHoldingVersions" + next True + } + version "CIS_Bld_3" { + staticId "cis.teamDefHoldingVersions" + } + children { + + teamDefinition "CIS Code" { + usesVersions True + staticId "cis.code" + lead named "Jason Michael" + member named "Jason Michael" + workDefinition "demo.code" + } + + teamDefinition "CIS Requirements" { + usesVersions True + staticId "cis.requirements" + lead named "Joe Smith" + member named "Joe Smith" + workDefinition "demo.req" + } + + teamDefinition "CIS SW Design" { + usesVersions True + staticId "cis.sw_design" + lead named "Kay Jones" + member named "Kay Jones" + workDefinition "demo.swdesign" + } + + teamDefinition "CIS Test" { + usesVersions True + staticId "cis.test" + lead named "Kay Jones" + member named "Kay Jones" + workDefinition "demo.test" + } + } + } + + teamDefinition "Facilities Team" { + lead named "John Stevens" + member named "John Stevens" + member named "Steven Michael" + member named "Michael John" + member named "Jason Stevens" + workDefinition "osee.ats.simpleTeamWorkflow" + children { + + teamDefinition "IT Team" { + lead named "Kay Wheeler" + member named "Steven Michael" + member named "Michael John" + member named "Jason Stevens" + member named "Kay Wheeler" + workDefinition "osee.ats.simpleTeamWorkflow" + } + } + } + + teamDefinition "Process Team" { + lead named "Alex Kay" + member named "Keith Johnson" + member named "Michael Alex" + member named "Janice Michael" + member named "Alex Kay" + workDefinition "osee.ats.teamWorkflow" + } + + teamDefinition "SAW SW" { + staticId "saw.teamDefHoldingVersions" + lead named "Kay Jason" + member named "Maichael Johnson" + member named "Steven Kohn" + member named "Kay Jason" + workDefinition "osee.ats.teamWorkflow" + version "SAW_Bld_1" { + staticId "saw.teamDefHoldingVersions" + released True + baslineBranchGuid "AyH_f2sSKy3l07fIvAAA" + } + version "SAW_Bld_2" { + staticId "saw.teamDefHoldingVersions" + next True allowCreateBranch True allowCommitBranch True + baslineBranchGuid "AyH_f2sSKy3l07fIvBBB" + } + version "SAW_Bld_3" { + staticId "saw.teamDefHoldingVersions" + } + children { + + teamDefinition "SAW Code" { + usesVersions True + staticId "saw.code" + lead named "Joe Smith" + member named "Joe Smith" + workDefinition "demo.code" + } + + teamDefinition "SAW HW" { + usesVersions True + lead named "Jason Michael" + member named "Jason Michael" + workDefinition "osee.ats.teamWorkflow" + } + + teamDefinition "SAW Requirements" { + usesVersions True + staticId "saw.requirements" + lead named "Joe Smith" + member named "Joe Smith" + workDefinition "demo.req" + } + + teamDefinition "SAW SW Design" { + usesVersions True + staticId "saw.sw_design" + lead named "Kay Jones" + member named "Kay Jones" + workDefinition "demo.swdesign" + } + + teamDefinition "SAW Test" { + usesVersions True + staticId "saw.test" + lead named "Kay Jones" + member named "Kay Jones" priviledged named "Joe Smith" + workDefinition "demo.test" + } + } + } + + teamDefinition "Tools Team" { + lead named "Jeffery Kay" + member named "Jeffery Kay" + member named "Roland Stevens" + workDefinition "osee.ats.teamWorkflow" + children { + + teamDefinition "Web Team" { + lead named "Karmen John" + member named "Jeffery Kay" + member named "Karmen John" + member named "Roland Stevens" + workDefinition "osee.ats.simpleTeamWorkflow" + } + } + } + } +} +actionableItem "Actionable Items" GetOrCreate { + staticId "osee.ats.TopActionableItem" + children { + actionableItem "CIS CSCI" { + actionable False + children { + actionableItem "CIS Code" { + team "CIS Code" + } + actionableItem "CIS Requirements" { + team "CIS Requirements" + } + actionableItem "CIS SW Design" { + team "CIS SW Design" + } + actionableItem "CIS Test" { + team "CIS Test" + } + } + } + actionableItem "Facilities" { + team "Facilities Team" + children { + actionableItem "Backups" { + team "IT Team" + } + actionableItem "Break Room" + actionableItem "Computers" { + team "IT Team" + } + actionableItem "Network" { + team "IT Team" + } + actionableItem "Vending Machines" + } + } + actionableItem "Processes" { + team "Process Team" + children { + actionableItem "Coding Standards" + actionableItem "Config Mgmt" + actionableItem "New Employee Manual" + actionableItem "Reviews" + } + } + actionableItem "SAW CSCI" { + actionable False + children { + actionableItem "SAW Code" { + team "SAW Code" + children { + actionableItem "COMM" + actionableItem "MSM" + actionableItem "NAV" + actionableItem "Test Page" + } + } + actionableItem "SAW HW" { + team "SAW HW" + children { + actionableItem "Adapter" + actionableItem "Case" + actionableItem "Manual" + actionableItem "Screen" + } + } + actionableItem "SAW Requirements" { + team "SAW Requirements" + children { + actionableItem "COMM" + actionableItem "MSM" + actionableItem "NAV" + } + } + actionableItem "SAW SW Design" { + team "SAW SW Design" + } + actionableItem "SAW Test" { + team "SAW Test" + children { + actionableItem "ADT" + actionableItem "COMM" + actionableItem "MSM" + actionableItem "NAV" + actionableItem "RunLists" + } + } + } + } + actionableItem "Tools" { + team "Tools Team" + children { + actionableItem "Reader" + actionableItem "Results Reporter" + actionableItem "Timesheet" + actionableItem "Website" { + team "Web Team" + } + } + } + } +} + diff --git a/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_Code.ats b/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_Code.ats new file mode 100644 index 00000000000..20a7b49ff51 --- /dev/null +++ b/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_Code.ats @@ -0,0 +1,127 @@ +workDefinition "WorkDef_Team_Demo_Code" { + id "WorkDef_Team_Demo_Code" + startState "Endorse" + + widgetDefinition "Resolution" { + attributeName "ats.Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Problem" { + attributeName "ats.Problem" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Proposed Resolution" { + attributeName "ats.Proposed Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Title" { + attributeName "Name" + xWidgetName "XTextDam" + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "Description" { + attributeName "ats.Description" + xWidgetName "XTextDam" + option FILL_VERTICALLY + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "User Community" { + attributeName "ats.User Community" + xWidgetName "XListDam(OPTIONS_FROM_ATTRIBUTE_VALIDITY)" + option HORIZONTAL_LABEL + } + + state "Completed" { + type Completed + ordinal 5 + to "Implement" OverrideAttributeValidation + rule AddDecisionValidateBlockingReview + } + + state "Implement" { + type Working + ordinal 4 + to "Cancelled" + to "Completed" AsDefault + to "Authorize" OverrideAttributeValidation + to "Analyze" OverrideAttributeValidation + rule RequireStateHourSpentPrompt + layout { + attributeWidget "ats.Work Package" + attributeWidget "ats.Estimated Completion Date" + widget "Resolution" + } + } + + state "Authorize" { + type Working + ordinal 3 + to "Cancelled" + to "Implement" AsDefault + to "Analyze" OverrideAttributeValidation + layout { + attributeWidget "ats.Work Package" + attributeWidget "ats.Estimated Completion Date" + } + } + + state "Analyze" { + type Working + ordinal 2 + to "Cancelled" + to "Authorize" AsDefault + to "Endorse" OverrideAttributeValidation + rule RequireStateHourSpentPrompt + layout { + attributeWidget "ats.Work Package" + widget "Problem" + widget "Proposed Resolution" + composite { + numColumns 6 + attributeWidget "ats.Change Type" + attributeWidget "ats.Priority" + attributeWidget "ats.Need By" + } + attributeWidget "ats.Estimated Hours" + } + } + + state "Cancelled" { + type Cancelled + ordinal 6 + to "Authorize" OverrideAttributeValidation + to "Analyze" OverrideAttributeValidation + to "Implement" OverrideAttributeValidation + to "Endorse" OverrideAttributeValidation + } + + state "Endorse" { + type Working + ordinal 1 + to "Cancelled" + to "Analyze" AsDefault + rule RequireStateHourSpentPrompt + layout { + widget "Title" + widget "Description" + widget "Proposed Resolution" + composite { + numColumns 6 + attributeWidget "ats.Change Type" + attributeWidget "ats.Priority" + attributeWidget "ats.Need By" + } + attributeWidget "ats.Validation Required" + attributeWidget "ats.Work Package" + widget "User Community" + } + } +} diff --git a/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_Req.ats b/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_Req.ats new file mode 100644 index 00000000000..3daacb22bd0 --- /dev/null +++ b/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_Req.ats @@ -0,0 +1,137 @@ +workDefinition "WorkDef_Team_Demo_Req" { + id "WorkDef_Team_Demo_Req" + startState "Endorse" + + widgetDefinition "Problem" { + attributeName "ats.Problem" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Proposed Resolution" { + attributeName "ats.Proposed Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Title" { + attributeName "Name" + xWidgetName "XTextDam" + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "Description" { + attributeName "ats.Description" + xWidgetName "XTextDam" + option FILL_VERTICALLY + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "User Community" { + attributeName "ats.User Community" + xWidgetName "XListDam(OPTIONS_FROM_ATTRIBUTE_VALIDITY)" + option HORIZONTAL_LABEL + } + + widgetDefinition "Working Branch" { + xWidgetName "XWorkingBranch" + } + + widgetDefinition "Commit Manager" { + xWidgetName "XCommitManager" + } + + widgetDefinition "Resolution" { + attributeName "ats.Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + state "Analyze" { + type Working + ordinal 2 + to "Cancelled" + to "Authorize" AsDefault + to "Endorse" OverrideAttributeValidation + rule RequireStateHourSpentPrompt + layout { + attributeWidget "ats.Work Package" + widget "Problem" + widget "Proposed Resolution" + composite { + numColumns 6 + attributeWidget "ats.Change Type" + attributeWidget "ats.Priority" + attributeWidget "ats.Need By" + } + attributeWidget "ats.Estimated Hours" + } + } + + state "Endorse" { + type Working + ordinal 1 + to "Cancelled" + to "Analyze" AsDefault + rule RequireStateHourSpentPrompt + layout { + widget "Title" + widget "Description" + widget "Proposed Resolution" + composite { + numColumns 6 + attributeWidget "ats.Change Type" + attributeWidget "ats.Priority" + attributeWidget "ats.Need By" + } + attributeWidget "ats.Validation Required" + attributeWidget "ats.Work Package" + widget "User Community" + } + } + + state "Cancelled" { + type Cancelled + ordinal 6 + to "Analyze" OverrideAttributeValidation + to "Implement" OverrideAttributeValidation + to "Endorse" OverrideAttributeValidation + to "Authorize" OverrideAttributeValidation + } + + state "Authorize" { + type Working + ordinal 3 + to "Cancelled" + to "Implement" AsDefault + to "Analyze" OverrideAttributeValidation + layout { + attributeWidget "ats.Work Package" + attributeWidget "ats.Estimated Completion Date" + } + } + + state "Implement" { + type Working + ordinal 4 + to "Cancelled" + to "Completed" AsDefault + to "Analyze" OverrideAttributeValidation + to "Authorize" OverrideAttributeValidation + rule RequireStateHourSpentPrompt + layout { + widget "Working Branch" + widget "Commit Manager" + attributeWidget "ats.Work Package" + attributeWidget "ats.Estimated Completion Date" + widget "Resolution" + } + } + + state "Completed" { + type Completed + ordinal 5 + to "Implement" OverrideAttributeValidation + rule AddDecisionValidateBlockingReview + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_SwDesign.ats b/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_SwDesign.ats new file mode 100644 index 00000000000..4cb0f2cad2c --- /dev/null +++ b/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_SwDesign.ats @@ -0,0 +1,180 @@ +workDefinition "WorkDef_Team_Demo_SwDesign" { + id "WorkDef_Team_Demo_SwDesign" + startState "Endorse" + + widgetDefinition "Problem" { + attributeName "ats.Problem" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Proposed Resolution" { + attributeName "ats.Proposed Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Title" { + attributeName "Name" + xWidgetName "XTextDam" + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "Description" { + attributeName "ats.Description" + xWidgetName "XTextDam" + option REQUIRED_FOR_TRANSITION + option FILL_VERTICALLY + } + + widgetDefinition "User Community" { + attributeName "ats.User Community" + xWidgetName "XListDam(OPTIONS_FROM_ATTRIBUTE_VALIDITY)" + option HORIZONTAL_LABEL + } + + widgetDefinition "Working Branch" { + xWidgetName "XWorkingBranch" + } + + widgetDefinition "Commit Manager" { + xWidgetName "XCommitManager" + } + + widgetDefinition "Resolution" { + attributeName "ats.Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + decisionReviewDefinition "Analyze.None.TransitionTo" { + title + "Auto-created Decision Review from ruleId: atsAddDecisionReview.test.addDecisionReview.Analyze.None.TransitionTo" + description "This is a rule created to test the Review rules." + relatedToState "Analyze" + blockingType Transition + onEvent TransitionTo + assignee named "UnAssigned" + autoTransitionToDecision True + option "Completed" + } + decisionReviewDefinition "Implement.None.CreateBranch" { + title + "Auto-created Decision Review from ruleId: atsAddDecisionReview.test.addDecisionReview.Implement.None.CreateBranch" + description "This is a rule created to test the Review rules." + relatedToState "Implement" + blockingType Transition + onEvent CreateBranch + assignee named "UnAssigned" + option "Completed" + } + peerReviewDefinition "Authorize.None.TransitionTo" { + title + "Auto-created Decision Review from ruleId atsAddPeerToPeerReview.test.addPeerToPeerReview.Authorize.None.TransitionTo" + description "This is a rule created to test the Review rules." + relatedToState "Authorize" + blockingType Transition + onEvent TransitionTo + assignee named "UnAssigned" + } + peerReviewDefinition "Implement.None.CommitBranch" { + title + "Auto-created Decision Review from ruleId atsAddPeerToPeerReview.test.addPeerToPeerReview.Implement.None.CommitBranch" + description "This is a rule created to test the Review rules." + relatedToState "Implement" + blockingType Transition + onEvent CommitBranch + assignee named "UnAssigned" + } + + state "Analyze" { + type Working + ordinal 2 + to "Cancelled" + to "Authorize" AsDefault + to "Endorse" OverrideAttributeValidation + rule RequireStateHourSpentPrompt + decisionReview "Analyze.None.TransitionTo" + layout { + attributeWidget "ats.Work Package" + widget "Problem" + widget "Proposed Resolution" + composite { + numColumns 6 + attributeWidget "ats.Change Type" + attributeWidget "ats.Priority" + attributeWidget "ats.Need By" + } + attributeWidget "ats.Estimated Hours" + } + } + + state "Endorse" { + type Working + ordinal 1 + to "Cancelled" + to "Analyze" AsDefault + rule RequireStateHourSpentPrompt + layout { + widget "Title" + widget "Description" + widget "Proposed Resolution" + composite { + numColumns 6 + attributeWidget "ats.Change Type" + attributeWidget "ats.Priority" + attributeWidget "ats.Need By" + } + attributeWidget "ats.Validation Required" + attributeWidget "ats.Work Package" + widget "User Community" + } + } + + state "Cancelled" { + type Cancelled + ordinal 6 + to "Analyze" OverrideAttributeValidation + to "Endorse" OverrideAttributeValidation + to "Authorize" OverrideAttributeValidation + to "Implement" OverrideAttributeValidation + } + + state "Authorize" { + type Working + ordinal 3 + to "Cancelled" + to "Implement" AsDefault + to "Analyze" OverrideAttributeValidation + peerReview "Authorize.None.TransitionTo" + layout { + attributeWidget "ats.Work Package" + attributeWidget "ats.Estimated Completion Date" + } + } + + state "Completed" { + type Completed + ordinal 5 + to "Implement" OverrideAttributeValidation + rule AddDecisionValidateBlockingReview + } + + state "Implement" { + type Working + ordinal 4 + to "Cancelled" + to "Completed" AsDefault + to "Analyze" OverrideAttributeValidation + to "Authorize" OverrideAttributeValidation + rule RequireStateHourSpentPrompt + decisionReview "Implement.None.CreateBranch" + peerReview "Implement.None.CommitBranch" + layout { + widget "Working Branch" + widget "Commit Manager" + attributeWidget "ats.Work Package" + attributeWidget "ats.Estimated Completion Date" + widget "Resolution" + } + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_Test.ats b/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_Test.ats new file mode 100644 index 00000000000..a8197c4eb06 --- /dev/null +++ b/plugins/org.eclipse.osee.ats.config.demo/support/WorkDef_Team_Demo_Test.ats @@ -0,0 +1,127 @@ +workDefinition "WorkDef_Team_Demo_Test" { + id "WorkDef_Team_Demo_Test" + startState "Endorse" + + widgetDefinition "Resolution" { + attributeName "ats.Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Problem" { + attributeName "ats.Problem" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Proposed Resolution" { + attributeName "ats.Proposed Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Title" { + attributeName "Name" + xWidgetName "XTextDam" + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "Description" { + attributeName "ats.Description" + xWidgetName "XTextDam" + option FILL_VERTICALLY + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "User Community" { + attributeName "ats.User Community" + xWidgetName "XListDam(OPTIONS_FROM_ATTRIBUTE_VALIDITY)" + option HORIZONTAL_LABEL + } + + state "Implement" { + type Working + ordinal 4 + to "Cancelled" + to "Completed" AsDefault + to "Analyze" OverrideAttributeValidation + to "Authorize" OverrideAttributeValidation + rule RequireStateHourSpentPrompt + layout { + attributeWidget "ats.Work Package" + attributeWidget "ats.Estimated Completion Date" + widget "Resolution" + } + } + + state "Analyze" { + type Working + ordinal 2 + to "Cancelled" + to "Authorize" AsDefault + to "Endorse" OverrideAttributeValidation + rule RequireStateHourSpentPrompt + layout { + attributeWidget "ats.Work Package" + widget "Problem" + widget "Proposed Resolution" + composite { + numColumns 6 + attributeWidget "ats.Change Type" + attributeWidget "ats.Priority" + attributeWidget "ats.Need By" + } + attributeWidget "ats.Estimated Hours" + } + } + + state "Authorize" { + type Working + ordinal 3 + to "Cancelled" + to "Implement" AsDefault + to "Analyze" OverrideAttributeValidation + layout { + attributeWidget "ats.Work Package" + attributeWidget "ats.Estimated Completion Date" + } + } + + state "Cancelled" { + type Cancelled + ordinal 6 + to "Implement" OverrideAttributeValidation + to "Analyze" OverrideAttributeValidation + to "Authorize" OverrideAttributeValidation + to "Endorse" OverrideAttributeValidation + } + + state "Completed" { + type Completed + ordinal 5 + to "Implement" OverrideAttributeValidation + rule AddDecisionValidateBlockingReview + } + + state "Endorse" { + type Working + ordinal 1 + to "Cancelled" + to "Analyze" AsDefault + rule RequireStateHourSpentPrompt + layout { + widget "Title" + widget "Description" + widget "Proposed Resolution" + composite { + numColumns 6 + attributeWidget "ats.Change Type" + attributeWidget "ats.Priority" + attributeWidget "ats.Need By" + } + attributeWidget "ats.Validation Required" + attributeWidget "ats.Work Package" + widget "User Community" + } + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/AtsTest_Demo_StateItem_Suite.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/AtsTest_Demo_StateItem_Suite.java new file mode 100644 index 00000000000..4bde92138ad --- /dev/null +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/AtsTest_Demo_StateItem_Suite.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * 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.test; + +import org.eclipse.osee.ats.test.editor.stateItem.AtsDecisionReviewDecisionStateItemTest; +import org.eclipse.osee.ats.test.editor.stateItem.AtsDecisionReviewPrepareStateItemTest; +import org.eclipse.osee.ats.test.editor.stateItem.AtsForceAssigneesToTeamLeadsStateItemTest; +import org.eclipse.osee.ats.test.editor.stateItem.AtsHandleAddReviewRuleStateItemTest; +import org.eclipse.osee.ats.test.editor.stateItem.AtsPeerToPeerReviewPrepareStateItemTest; +import org.eclipse.osee.ats.test.editor.stateItem.AtsPeerToPeerReviewReviewStateItemTest; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +@RunWith(Suite.class) +@Suite.SuiteClasses({ + AtsForceAssigneesToTeamLeadsStateItemTest.class, + AtsPeerToPeerReviewReviewStateItemTest.class, + AtsPeerToPeerReviewPrepareStateItemTest.class, + AtsDecisionReviewDecisionStateItemTest.class, + AtsDecisionReviewPrepareStateItemTest.class, + AtsHandleAddReviewRuleStateItemTest.class}) +/** + * This test suite contains tests that must be run against demo database + * + * @author Donald G. Dunne + */ +public class AtsTest_Demo_StateItem_Suite { + // test provided above +} diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ActionableItemsColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ActionableItemsColumnTest.java index 18104b8ceff..7fc44daff73 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ActionableItemsColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ActionableItemsColumnTest.java @@ -12,7 +12,9 @@ import org.eclipse.osee.ats.artifact.ActionableItemArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.ActionableItemsColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests ActionableItemsColumn @@ -22,6 +24,8 @@ public class ActionableItemsColumnTest { @org.junit.Test public void testGetActionableItems() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact codeArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Code); Collection<ActionableItemArtifact> aias = ActionableItemsColumn.getActionableItems(codeArt); @@ -32,10 +36,13 @@ public class ActionableItemsColumnTest { aias = ActionableItemsColumn.getActionableItems(actionArt); Assert.assertEquals(4, aias.size()); + TestUtil.severeLoggingEnd(loggingMonitor); } @org.junit.Test public void testGetActionableItemsStr() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact codeArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Code); Assert.assertEquals("SAW Code", ActionableItemsColumn.getActionableItemsStr(codeArt)); @@ -48,6 +55,8 @@ public class ActionableItemsColumnTest { Assert.assertTrue(results.contains("SAW Test")); Assert.assertTrue(results.contains("SAW Requirements")); Assert.assertEquals(4, results.split(", ").length); + + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/AssigneeColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/AssigneeColumnTest.java index 4bc2d4c29c1..379bd9bf673 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/AssigneeColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/AssigneeColumnTest.java @@ -13,7 +13,9 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.ActionableItemsColumn; import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests AssigneeColumn @@ -23,6 +25,8 @@ public class AssigneeColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact codeArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Code); Assert.assertEquals("Joe Smith", @@ -33,9 +37,12 @@ public class AssigneeColumnTest { Assert.assertTrue(results.contains(AssigneeColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0))); + TestUtil.severeLoggingEnd(loggingMonitor); } public void testGetColumnImage() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact codeArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Code); Assert.assertNotNull(ActionableItemsColumn.getInstance().getColumnImage(codeArt, AssigneeColumn.getInstance(), 0)); @@ -45,5 +52,7 @@ public class AssigneeColumnTest { 0)); Assert.assertNull(ActionableItemsColumn.getInstance().getColumnImage("String", AssigneeColumn.getInstance(), 0)); + + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/BranchStatusColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/BranchStatusColumnTest.java index 347fff01e10..7035979fda4 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/BranchStatusColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/BranchStatusColumnTest.java @@ -11,7 +11,9 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.BranchStatusColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests BranchStatusColumn @@ -21,6 +23,8 @@ public class BranchStatusColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact reqArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements); Assert.assertEquals("Working", @@ -39,6 +43,7 @@ public class BranchStatusColumnTest { Assert.assertEquals("Committed", BranchStatusColumn.getInstance().getColumnText(reqArt2, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CancelledDateColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CancelledDateColumnTest.java index 2fc8013577d..0f3c21bf864 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CancelledDateColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CancelledDateColumnTest.java @@ -16,8 +16,10 @@ 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.jdk.core.util.DateUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.framework.skynet.core.UserManager; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; +import org.eclipse.osee.support.test.util.TestUtil; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -35,6 +37,8 @@ public class CancelledDateColumnTest { @org.junit.Test public void testGetDateAndStrAndColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), CancelledDateColumnTest.class.getSimpleName()); TeamWorkFlowArtifact teamArt = @@ -67,5 +71,6 @@ public class CancelledDateColumnTest { date = CancelledDateColumn.getDate(teamArt); Assert.assertNull(date); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CategoryColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CategoryColumnTest.java index 58dd3df2f35..5acb8694647 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CategoryColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CategoryColumnTest.java @@ -13,8 +13,10 @@ import org.eclipse.osee.ats.column.CategoryColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -46,6 +48,8 @@ public class CategoryColumnTest { @org.junit.Test public void testGetDateAndStrAndColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact codeArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Code); TeamWorkFlowArtifact reqArt = @@ -105,5 +109,6 @@ public class CategoryColumnTest { Assert.assertEquals("", CategoryColumn.getCategory1Instance().getColumnText(actionArt, CategoryColumn.getCategory1Instance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ChangeTypeColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ChangeTypeColumnTest.java index 728afc12590..3a3a10fc1a9 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ChangeTypeColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ChangeTypeColumnTest.java @@ -13,9 +13,11 @@ import org.eclipse.osee.ats.column.ChangeTypeColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.framework.ui.skynet.util.ChangeType; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -39,6 +41,8 @@ public class ChangeTypeColumnTest { @org.junit.Test public void getChangeTypeStrAndImage() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact codeArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Code); Assert.assertEquals(ChangeType.Problem, ChangeTypeColumn.getChangeType(codeArt)); @@ -75,6 +79,8 @@ public class ChangeTypeColumnTest { Assert.assertEquals(ChangeType.Problem, ChangeTypeColumn.getChangeType(actionArt)); Assert.assertEquals("Problem; Improvement", ChangeTypeColumn.getInstance().getColumnText(actionArt, ChangeTypeColumn.getInstance(), 0)); + + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CompletedDateColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CompletedDateColumnTest.java index 29a8faabbd3..85341a5f31e 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CompletedDateColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CompletedDateColumnTest.java @@ -16,8 +16,10 @@ 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.jdk.core.util.DateUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.framework.skynet.core.UserManager; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; +import org.eclipse.osee.support.test.util.TestUtil; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -35,6 +37,8 @@ public class CompletedDateColumnTest { @org.junit.Test public void testGetDateAndStrAndColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), CompletedDateColumnTest.class.getSimpleName()); TeamWorkFlowArtifact teamArt = @@ -67,5 +71,6 @@ public class CompletedDateColumnTest { date = CompletedDateColumn.getDate(teamArt); Assert.assertNull(date); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CreatedDateColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CreatedDateColumnTest.java index 4ef3b6ee3dc..81469ee332b 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CreatedDateColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/CreatedDateColumnTest.java @@ -13,7 +13,9 @@ import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.CreatedDateColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; import org.eclipse.osee.framework.jdk.core.util.DateUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests CreatedDateColumn @@ -23,6 +25,8 @@ public class CreatedDateColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact codeArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Code); Assert.assertNotNull(CreatedDateColumn.getInstance().getColumnText(codeArt, AssigneeColumn.getInstance(), 0)); @@ -32,6 +36,8 @@ public class CreatedDateColumnTest { ActionArtifact actionArt = codeArt.getParentActionArtifact(); Assert.assertEquals(DateUtil.getMMDDYYHHMM(date), CreatedDateColumn.getDateStr(actionArt)); + + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/DeadlineColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/DeadlineColumnTest.java index 90d3d59edb0..e623c59f8bf 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/DeadlineColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/DeadlineColumnTest.java @@ -14,7 +14,9 @@ import org.eclipse.osee.ats.column.DeadlineColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.framework.jdk.core.util.DateUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; +import org.eclipse.osee.support.test.util.TestUtil; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -32,6 +34,8 @@ public class DeadlineColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), CancelledDateColumnTest.class.getSimpleName()); TeamWorkFlowArtifact teamArt = @@ -63,5 +67,6 @@ public class DeadlineColumnTest { Assert.assertTrue(DeadlineColumn.isDeadlineAlerting(teamArt).isFalse()); Assert.assertNull(DeadlineColumn.getInstance().getColumnImage(teamArt, DeadlineColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/DescriptionColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/DescriptionColumnTest.java index fca32192cdc..343132b950a 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/DescriptionColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/DescriptionColumnTest.java @@ -11,7 +11,9 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.DescriptionColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests DescriptionColumn @@ -21,6 +23,8 @@ public class DescriptionColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact reqArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements); Assert.assertEquals("Problem with the Diagram View", @@ -30,6 +34,7 @@ public class DescriptionColumnTest { Assert.assertEquals("Problem with the Diagram View", DescriptionColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/EstimatedHoursColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/EstimatedHoursColumnTest.java index 7fc789c674d..38184f3e845 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/EstimatedHoursColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/EstimatedHoursColumnTest.java @@ -16,8 +16,10 @@ import org.eclipse.osee.ats.column.EstimatedHoursColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.util.widgets.ReviewManager; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.framework.skynet.core.UserManager; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; +import org.eclipse.osee.support.test.util.TestUtil; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -35,6 +37,8 @@ public class EstimatedHoursColumnTest { @org.junit.Test public void testGetDateAndStrAndColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), EstimatedHoursColumnTest.class.getSimpleName()); TeamWorkFlowArtifact teamArt1 = @@ -107,5 +111,6 @@ public class EstimatedHoursColumnTest { Assert.assertEquals(0.1, EstimatedHoursColumn.getEstimatedHours(taskArt2)); Assert.assertEquals(4.0, EstimatedHoursColumn.getEstimatedHours(peerArt)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/GroupsColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/GroupsColumnTest.java index ddefcc7c410..c41b8dfec28 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/GroupsColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/GroupsColumnTest.java @@ -11,7 +11,9 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.GroupsColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests GroupsColumn @@ -21,6 +23,8 @@ public class GroupsColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact reqArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements); Assert.assertEquals("Test Group", @@ -30,6 +34,7 @@ public class GroupsColumnTest { Assert.assertEquals("Test Group", GroupsColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/NumberOfTasksAndInWorkTasksColumnsTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/NumberOfTasksAndInWorkTasksColumnsTest.java index f9e06950ec8..d259f902bc5 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/NumberOfTasksAndInWorkTasksColumnsTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/NumberOfTasksAndInWorkTasksColumnsTest.java @@ -15,9 +15,11 @@ import org.eclipse.osee.ats.column.NumberOfTasksRemainingColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.util.TransitionOption; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests NumberOfTasksColumn @@ -28,6 +30,8 @@ public class NumberOfTasksAndInWorkTasksColumnsTest { @org.junit.Test public void getColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact codeArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Code); Assert.assertEquals("6", NumberOfTasksColumn.getInstance().getColumnText(codeArt, null, 0)); @@ -60,5 +64,6 @@ public class NumberOfTasksAndInWorkTasksColumnsTest { ActionArtifact actionArt = codeArt.getParentActionArtifact(); Assert.assertEquals("6", NumberOfTasksColumn.getInstance().getColumnText(actionArt, null, 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/OriginatorColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/OriginatorColumnTest.java index e0be002bf91..585d9c4541e 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/OriginatorColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/OriginatorColumnTest.java @@ -11,9 +11,11 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.OriginatorColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.framework.skynet.core.UserManager; import org.eclipse.osee.support.test.util.DemoUsers; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests OriginatorColumn @@ -23,6 +25,8 @@ public class OriginatorColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact reqArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements); Assert.assertEquals(UserManager.getUser(DemoUsers.Joe_Smith).getName(), @@ -32,6 +36,7 @@ public class OriginatorColumnTest { Assert.assertEquals(UserManager.getUser(DemoUsers.Joe_Smith).getName(), OriginatorColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ParentStateAndIdColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ParentStateAndIdColumnTest.java index bec4601d4d9..0cdf813b924 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ParentStateAndIdColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/ParentStateAndIdColumnTest.java @@ -15,7 +15,9 @@ import org.eclipse.osee.ats.column.ParentStateColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; import org.eclipse.osee.ats.util.AtsRelationTypes; import org.eclipse.osee.ats.util.TeamState; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests ParentStateColumn @@ -26,6 +28,8 @@ public class ParentStateAndIdColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact codeArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Code); ActionArtifact actionArt = codeArt.getParentActionArtifact(); @@ -43,6 +47,7 @@ public class ParentStateAndIdColumnTest { Assert.assertEquals("", ParentStateColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/PeerToPeerReviewColumnsTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/PeerToPeerReviewColumnsTest.java index 81cc068cfbc..adb2967bb22 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/PeerToPeerReviewColumnsTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/PeerToPeerReviewColumnsTest.java @@ -26,9 +26,11 @@ import org.eclipse.osee.ats.util.widgets.defect.DefectItem.InjectionActivity; import org.eclipse.osee.ats.util.widgets.defect.DefectItem.Severity; import org.eclipse.osee.ats.util.widgets.role.UserRole; import org.eclipse.osee.ats.util.widgets.role.UserRole.Role; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.framework.skynet.core.UserManager; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.support.test.util.DemoUsers; +import org.eclipse.osee.support.test.util.TestUtil; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -46,6 +48,8 @@ public class PeerToPeerReviewColumnsTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), PeerToPeerReviewColumnsTest.class.getSimpleName()); TeamWorkFlowArtifact teamArt = @@ -122,5 +126,7 @@ public class PeerToPeerReviewColumnsTest { Arrays.asList(DemoUsers.Kay_Jones.getName() + "; " + DemoUsers.Joe_Smith.getName(), DemoUsers.Joe_Smith.getName() + "; " + DemoUsers.Kay_Jones.getName()); Assert.assertTrue(results.contains(ReviewReviewerColumn.getInstance().getColumnText(peerArt, null, 0))); + + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/PriorityColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/PriorityColumnTest.java index c770c85f5d0..9241cff8b76 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/PriorityColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/PriorityColumnTest.java @@ -14,7 +14,9 @@ import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.PriorityColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; import org.eclipse.osee.ats.util.AtsRelationTypes; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests PriorityColumn @@ -24,6 +26,8 @@ public class PriorityColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact reqArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements); Assert.assertEquals("1", PriorityColumn.getInstance().getColumnText(reqArt, AssigneeColumn.getInstance(), 0)); @@ -43,6 +47,7 @@ public class PriorityColumnTest { ActionArtifact actionArt = reqArt.getParentActionArtifact(); Assert.assertEquals("1", PriorityColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/RelatedToStateColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/RelatedToStateColumnTest.java index eb087c71451..ecb65e7267b 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/RelatedToStateColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/RelatedToStateColumnTest.java @@ -14,7 +14,9 @@ import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.RelatedToStateColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; import org.eclipse.osee.ats.util.AtsRelationTypes; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests RelatedToStateColumn @@ -24,6 +26,7 @@ public class RelatedToStateColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); TeamWorkFlowArtifact codeArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Code); @@ -47,6 +50,7 @@ public class RelatedToStateColumnTest { Assert.assertEquals("", RelatedToStateColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/StateColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/StateColumnTest.java index 5646c6c4d27..a980012e2f3 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/StateColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/StateColumnTest.java @@ -12,7 +12,9 @@ import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.StateColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; import org.eclipse.osee.ats.util.TeamState; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests StateColumn @@ -22,6 +24,8 @@ public class StateColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact reqArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements); Assert.assertEquals(TeamState.Implement.getPageName(), @@ -31,6 +35,7 @@ public class StateColumnTest { Assert.assertEquals(TeamState.Implement.getPageName(), StateColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TargetedVersionColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TargetedVersionColumnTest.java index 8aa98e1d7d7..84ca4be09f9 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TargetedVersionColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TargetedVersionColumnTest.java @@ -11,8 +11,10 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.TargetedVersionColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoSawBuilds; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests TargetedVersionColumn @@ -22,6 +24,8 @@ public class TargetedVersionColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact reqArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements); Assert.assertEquals(DemoSawBuilds.SAW_Bld_2.getName(), @@ -44,6 +48,7 @@ public class TargetedVersionColumnTest { Assert.assertEquals("", TargetedVersionColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TeamColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TeamColumnTest.java index 99356d5c6c6..6495769196b 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TeamColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TeamColumnTest.java @@ -11,7 +11,9 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.TeamColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests TeamColumn @@ -21,6 +23,8 @@ public class TeamColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact reqArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements); Assert.assertEquals("SAW Requirements", @@ -33,6 +37,7 @@ public class TeamColumnTest { ActionArtifact actionArt = reqArt.getParentActionArtifact(); Assert.assertEquals("", TeamColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TypeColumnTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TypeColumnTest.java index 01940d1d32d..c1ab62b3e59 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TypeColumnTest.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/column/TypeColumnTest.java @@ -11,7 +11,9 @@ import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; import org.eclipse.osee.ats.column.AssigneeColumn; import org.eclipse.osee.ats.column.TypeColumn; import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.framework.logging.SevereLoggingMonitor; import org.eclipse.osee.support.test.util.DemoWorkType; +import org.eclipse.osee.support.test.util.TestUtil; /** * @tests TypeColumn @@ -21,6 +23,8 @@ public class TypeColumnTest { @org.junit.Test public void testGetColumnText() throws Exception { + SevereLoggingMonitor loggingMonitor = TestUtil.severeLoggingStart(); + TeamWorkFlowArtifact reqArt = (TeamWorkFlowArtifact) DemoTestUtil.getUncommittedActionWorkflow(DemoWorkType.Requirements); Assert.assertEquals("SAW Requirements Workflow", @@ -34,6 +38,7 @@ public class TypeColumnTest { ActionArtifact actionArt = reqArt.getParentActionArtifact(); Assert.assertEquals("Action", TypeColumn.getInstance().getColumnText(actionArt, AssigneeColumn.getInstance(), 0)); + TestUtil.severeLoggingEnd(loggingMonitor); } } diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsDecisionReviewDecisionStateItemTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsDecisionReviewDecisionStateItemTest.java new file mode 100644 index 00000000000..c201e237664 --- /dev/null +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsDecisionReviewDecisionStateItemTest.java @@ -0,0 +1,131 @@ +/* + * Created on Jan 24, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.ats.test.editor.stateItem; + +import static org.junit.Assert.assertFalse; +import java.util.Collection; +import junit.framework.Assert; +import org.eclipse.osee.ats.artifact.AtsAttributeTypes; +import org.eclipse.osee.ats.artifact.DecisionReviewArtifact; +import org.eclipse.osee.ats.artifact.DecisionReviewState; +import org.eclipse.osee.ats.editor.stateItem.AtsDecisionReviewDecisionStateItem; +import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.ats.util.AtsArtifactTypes; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.util.widgets.ReviewManager; +import org.eclipse.osee.ats.workdef.StateDefinition; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.skynet.core.User; +import org.eclipse.osee.framework.skynet.core.UserManager; +import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; +import org.eclipse.osee.framework.ui.plugin.util.Result; +import org.eclipse.osee.framework.ui.skynet.widgets.XComboDam; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test Case for {@link AtsDecisionReviewDecisionStateItem} + * + * @author Donald G. Dunne + */ +public class AtsDecisionReviewDecisionStateItemTest { + + public static DecisionReviewArtifact decRevArt; + + @Before + public void setUp() throws Exception { + // This test should only be run on test db + assertFalse("Test should not be run in production db", AtsUtil.isProductionDb()); + + if (decRevArt == null) { + // setup fake review artifact with decision options set + decRevArt = + (DecisionReviewArtifact) ArtifactTypeManager.addArtifact(AtsArtifactTypes.DecisionReview, + AtsUtil.getAtsBranch()); + decRevArt.setName(getClass().getSimpleName()); + decRevArt.setSoleAttributeValue(AtsAttributeTypes.DecisionReviewOptions, + ReviewManager.getDecisionReviewOptionsString(ReviewManager.getDefaultDecisionReviewOptions())); + decRevArt.persist(); + } + } + + @BeforeClass + @AfterClass + public static void testCleanup() throws Exception { + DemoTestUtil.cleanupSimpleTest(AtsDecisionReviewDecisionStateItemTest.class.getSimpleName()); + } + + @Test + public void testXWidgetCreating() throws OseeCoreException { + Assert.assertNotNull(decRevArt); + + // setup fake combo that will hold values + XComboDam decisionComboDam = new XComboDam("Decision"); + // set combo values an verify they got set + decisionComboDam.setDataStrings(new String[] {"One", "Two", "Three"}); + StateDefinition stateDef = new StateDefinition("Decision"); + Assert.assertEquals("Two", decisionComboDam.getDisplayArray()[2]); + + // make call to state item that should set options based on artifact's attribute value + AtsDecisionReviewDecisionStateItem stateItem = new AtsDecisionReviewDecisionStateItem(); + Result result = stateItem.xWidgetCreating(decisionComboDam, null, stateDef, decRevArt, null, true); + + // verify no errors and options are as specified in artifact's attribute + Assert.assertTrue(result.getText(), result.isTrue()); + Assert.assertEquals("Yes", decisionComboDam.getDisplayArray()[1]); + Assert.assertEquals("No", decisionComboDam.getDisplayArray()[2]); + } + + @Test + public void testGetOverrideTransitionToAssignees() throws OseeCoreException { + Assert.assertNotNull(decRevArt); + + // setup fake combo that will hold values + XComboDam decisionComboDam = new XComboDam("Decision"); + // set combo values an verify they got set + decisionComboDam.setDataStrings(new String[] {"Yes", "No"}); + + // Set Yes + decisionComboDam.set(1); + + AtsDecisionReviewDecisionStateItem stateItem = new AtsDecisionReviewDecisionStateItem(); + Collection<User> users = stateItem.getOverrideTransitionToAssignees(decRevArt, decisionComboDam); + Assert.assertEquals(1, users.size()); + Assert.assertEquals(UserManager.getUser(), users.iterator().next()); + + // Set No + decisionComboDam.set(2); + + users = stateItem.getOverrideTransitionToAssignees(decRevArt, decisionComboDam); + Assert.assertTrue(users.isEmpty()); + } + + @Test + public void testGetOverrideTransitionToStateName() throws OseeCoreException { + Assert.assertNotNull(decRevArt); + + // setup fake combo that will hold values + XComboDam decisionComboDam = new XComboDam("Decision"); + // set combo values an verify they got set + decisionComboDam.setDataStrings(new String[] {"Yes", "No"}); + + // Set Yes + decisionComboDam.set(1); + + AtsDecisionReviewDecisionStateItem stateItem = new AtsDecisionReviewDecisionStateItem(); + String toStateName = stateItem.getOverrideTransitionToStateName(decRevArt, decisionComboDam); + Assert.assertEquals(DecisionReviewState.Followup.getPageName(), toStateName); + + // Set No + decisionComboDam.set(2); + + toStateName = stateItem.getOverrideTransitionToStateName(decRevArt, decisionComboDam); + Assert.assertEquals(DecisionReviewState.Completed.getPageName(), toStateName); + } + +} diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsDecisionReviewPrepareStateItemTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsDecisionReviewPrepareStateItemTest.java new file mode 100644 index 00000000000..754baec6fcc --- /dev/null +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsDecisionReviewPrepareStateItemTest.java @@ -0,0 +1,88 @@ +/* + * Created on Jan 24, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.ats.test.editor.stateItem; + +import static org.junit.Assert.assertFalse; +import java.util.Arrays; +import junit.framework.Assert; +import org.eclipse.osee.ats.artifact.AtsAttributeTypes; +import org.eclipse.osee.ats.artifact.DecisionReviewArtifact; +import org.eclipse.osee.ats.artifact.DecisionReviewState; +import org.eclipse.osee.ats.editor.stateItem.AtsDecisionReviewPrepareStateItem; +import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.ats.util.AtsArtifactTypes; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.util.widgets.ReviewManager; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.skynet.core.UserManager; +import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; +import org.eclipse.osee.framework.ui.plugin.util.Result; +import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IWorkPage; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test Case for {@link AtsDecisionReviewPrepareStateItem} + * + * @author Donald G. Dunne + */ +public class AtsDecisionReviewPrepareStateItemTest { + + public static DecisionReviewArtifact decRevArt; + + @Before + public void setUp() throws Exception { + // This test should only be run on test db + assertFalse("Test should not be run in production db", AtsUtil.isProductionDb()); + + if (decRevArt == null) { + // setup fake review artifact with decision options set + decRevArt = + (DecisionReviewArtifact) ArtifactTypeManager.addArtifact(AtsArtifactTypes.DecisionReview, + AtsUtil.getAtsBranch()); + decRevArt.setName(getClass().getSimpleName()); + decRevArt.persist(); + } + } + + @BeforeClass + @AfterClass + public static void testCleanup() throws Exception { + DemoTestUtil.cleanupSimpleTest(AtsDecisionReviewPrepareStateItemTest.class.getSimpleName()); + } + + @Test + public void testTransitioning() throws OseeCoreException { + Assert.assertNotNull(decRevArt); + + // set valid options + String decisionOptionStr = + ReviewManager.getDecisionReviewOptionsString(ReviewManager.getDefaultDecisionReviewOptions()); + decRevArt.setSoleAttributeValue(AtsAttributeTypes.DecisionReviewOptions, decisionOptionStr); + decRevArt.persist(); + + IWorkPage fromState = decRevArt.getWorkDefinition().getStateByName(DecisionReviewState.Prepare.getPageName()); + IWorkPage toState = decRevArt.getWorkDefinition().getStateByName(DecisionReviewState.Decision.getPageName()); + + // make call to state item that should set options based on artifact's attribute value + AtsDecisionReviewPrepareStateItem stateItem = new AtsDecisionReviewPrepareStateItem(); + Result result = stateItem.transitioning(decRevArt, fromState, toState, Arrays.asList(UserManager.getUser())); + + // verify no errors + Assert.assertTrue(result.getText(), result.isTrue()); + + // set invalid options; NoState is invalid, should only be Completed or FollowUp + decisionOptionStr = decisionOptionStr.replaceFirst("Completed", "NoState"); + decRevArt.setSoleAttributeValue(AtsAttributeTypes.DecisionReviewOptions, decisionOptionStr); + decRevArt.persist(); + result = stateItem.transitioning(decRevArt, fromState, toState, Arrays.asList(UserManager.getUser())); + Assert.assertFalse(result.getText(), result.isTrue()); + + } + +} diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItemTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItemTest.java new file mode 100644 index 00000000000..ce9fea744a6 --- /dev/null +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItemTest.java @@ -0,0 +1,100 @@ +/* + * Created on Jan 24, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.ats.test.editor.stateItem; + +import static org.junit.Assert.assertFalse; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import junit.framework.Assert; +import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.editor.stateItem.AtsForceAssigneesToTeamLeadsStateItem; +import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.util.TeamState; +import org.eclipse.osee.ats.workdef.RuleDefinition; +import org.eclipse.osee.ats.workdef.RuleDefinitionOption; +import org.eclipse.osee.ats.workdef.StateDefinition; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.skynet.core.UserManager; +import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; +import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IWorkPage; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test Case for {@link AtsForceAssigneesToTeamLeadsStateItem} + * + * @author Donald G. Dunne + */ +public class AtsForceAssigneesToTeamLeadsStateItemTest { + + public static TeamWorkFlowArtifact teamArt; + + @Before + public void setUp() throws Exception { + // This test should only be run on test db + assertFalse("Test should not be run in production db", AtsUtil.isProductionDb()); + + if (teamArt == null) { + SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), getClass().getSimpleName()); + teamArt = DemoTestUtil.createSimpleAction(getClass().getSimpleName(), transaction); + transaction.execute(); + } + } + + @BeforeClass + @AfterClass + public static void testCleanup() throws Exception { + // Test adds the atsForceAssigneesToTeamLeads; remove it before and after test + if (teamArt != null) { + StateDefinition authStateDef = teamArt.getWorkDefinition().getStateByName(TeamState.Authorize.getPageName()); + List<RuleDefinition> rules = authStateDef.getRules(); + List<RuleDefinition> toRemove = new ArrayList<RuleDefinition>(); + for (RuleDefinition ruleDef : rules) { + if (ruleDef.getName().equals(RuleDefinitionOption.ForceAssigneesToTeamLeads.name())) { + toRemove.add(ruleDef); + } + } + authStateDef.getRules().removeAll(toRemove); + } + + DemoTestUtil.cleanupSimpleTest(AtsForceAssigneesToTeamLeadsStateItemTest.class.getSimpleName()); + } + + @Test + public void testTransitioned() throws OseeCoreException { + Assert.assertNotNull(teamArt); + + // assignee should be Joe Smith + Assert.assertEquals(1, teamArt.getStateMgr().getAssignees().size()); + Assert.assertEquals(UserManager.getUserByName("Joe Smith"), + teamArt.getStateMgr().getAssignees().iterator().next()); + + // set assignee to Alex Kay + teamArt.getStateMgr().setAssignee(UserManager.getUserByName("Alex Kay")); + teamArt.persist(); + Assert.assertEquals(1, teamArt.getStateMgr().getAssignees().size()); + Assert.assertEquals(UserManager.getUserByName("Alex Kay"), teamArt.getStateMgr().getAssignees().iterator().next()); + + IWorkPage fromState = teamArt.getWorkDefinition().getStateByName(TeamState.Analyze.getPageName()); + IWorkPage toState = teamArt.getWorkDefinition().getStateByName(TeamState.Authorize.getPageName()); + + StateDefinition authStateDef = teamArt.getWorkDefinition().getStateByName(TeamState.Authorize.getPageName()); + authStateDef.getRules().add(new RuleDefinition(RuleDefinitionOption.ForceAssigneesToTeamLeads)); + + // make call to state item that should set options based on artifact's attribute value + AtsForceAssigneesToTeamLeadsStateItem stateItem = new AtsForceAssigneesToTeamLeadsStateItem(); + stateItem.transitioned(teamArt, fromState, toState, Arrays.asList(UserManager.getUser()), null); + + // assignee should be Joe Smith + Assert.assertEquals(1, teamArt.getStateMgr().getAssignees().size()); + Assert.assertEquals(UserManager.getUserByName("Joe Smith"), + teamArt.getStateMgr().getAssignees().iterator().next()); + } +} diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsHandleAddReviewRuleStateItemTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsHandleAddReviewRuleStateItemTest.java new file mode 100644 index 00000000000..bb1a4bbab2b --- /dev/null +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsHandleAddReviewRuleStateItemTest.java @@ -0,0 +1,27 @@ +/* + * Created on Jan 25, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.ats.test.editor.stateItem; + +import junit.framework.Assert; +import org.eclipse.osee.ats.editor.stateItem.AtsHandleAddReviewRuleStateItem; +import org.eclipse.osee.ats.test.AtsTest_Demo_Suite; +import org.junit.Test; + +/** + * Test Case for {@link AtsHandleAddReviewRuleStateItem}<br> + * <br> + * Test for LbaReqCompletedStateItem provided through {@link AtsTest_Demo_Suite} + * + * @author Donald G. Dunne + */ +public class AtsHandleAddReviewRuleStateItemTest { + + @Test + public void test() { + Assert.assertTrue(true); + } + +} diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsPeerToPeerReviewPrepareStateItemTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsPeerToPeerReviewPrepareStateItemTest.java new file mode 100644 index 00000000000..d49da93ec44 --- /dev/null +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsPeerToPeerReviewPrepareStateItemTest.java @@ -0,0 +1,92 @@ +/* + * Created on Jan 24, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.ats.test.editor.stateItem; + +import static org.junit.Assert.assertFalse; +import junit.framework.Assert; +import org.eclipse.osee.ats.artifact.AtsAttributeTypes; +import org.eclipse.osee.ats.artifact.PeerToPeerReviewArtifact; +import org.eclipse.osee.ats.artifact.PeerToPeerReviewState; +import org.eclipse.osee.ats.editor.stateItem.AtsPeerToPeerReviewPrepareStateItem; +import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.ats.util.AtsArtifactTypes; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.workdef.StateDefinition; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; +import org.eclipse.osee.framework.ui.skynet.widgets.XComboDam; +import org.eclipse.osee.framework.ui.swt.Displays; +import org.eclipse.osee.support.test.util.DemoActionableItems; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test Case for {@link AtsPeerToPeerReviewPrepareStateItem} + * + * @author Donald G. Dunne + */ +public class AtsPeerToPeerReviewPrepareStateItemTest { + + public static PeerToPeerReviewArtifact peerRevArt; + + @Before + public void setUp() throws Exception { + // This test should only be run on test db + assertFalse("Test should not be run in production db", AtsUtil.isProductionDb()); + + if (peerRevArt == null) { + // setup fake review artifact with decision options set + peerRevArt = + (PeerToPeerReviewArtifact) ArtifactTypeManager.addArtifact(AtsArtifactTypes.PeerToPeerReview, + AtsUtil.getAtsBranch()); + peerRevArt.setName(getClass().getSimpleName()); + // Setup actionable item so don't get error that there is no parent team workflow + peerRevArt.getActionableItemsDam().addActionableItem( + DemoTestUtil.getActionableItem(DemoActionableItems.CIS_Code)); + peerRevArt.persist(); + } + } + + @BeforeClass + @AfterClass + public static void testCleanup() throws Exception { + DemoTestUtil.cleanupSimpleTest(AtsPeerToPeerReviewPrepareStateItemTest.class.getSimpleName()); + } + + @Test + public void testTransitioning() throws OseeCoreException { + Assert.assertNotNull(peerRevArt); + + // setup fake combo that will hold values + XComboDam decisionComboDam = new XComboDam(AtsAttributeTypes.ReviewBlocks.getUnqualifiedName()); + decisionComboDam.setDataStrings(new String[] {"None", "Transition", "Commit"}); + Composite comp = new Composite(Displays.getActiveShell(), SWT.None); + decisionComboDam.createWidgets(comp, SWT.NONE); + decisionComboDam.setEnabled(true); + decisionComboDam.setRequiredEntry(true); + + // verify enabled and required (Default) + Assert.assertNull(peerRevArt.getParentSMA()); // condition that causes combo to disable + Assert.assertTrue(decisionComboDam.getComboBox().isEnabled()); + Assert.assertTrue(decisionComboDam.isRequiredEntry()); + + StateDefinition reviewStateDef = + peerRevArt.getWorkDefinition().getStateByName(PeerToPeerReviewState.Prepare.getPageName()); + + // make call to state item that should + AtsPeerToPeerReviewPrepareStateItem stateItem = new AtsPeerToPeerReviewPrepareStateItem(); + stateItem.xWidgetCreated(decisionComboDam, null, reviewStateDef, peerRevArt, null, true); + + // verify the decision combo has been disabled + Assert.assertFalse(decisionComboDam.getComboBox().isEnabled()); + Assert.assertFalse(decisionComboDam.isRequiredEntry()); + + } +} diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsPeerToPeerReviewReviewStateItemTest.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsPeerToPeerReviewReviewStateItemTest.java new file mode 100644 index 00000000000..8b1389eafc1 --- /dev/null +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/editor/stateItem/AtsPeerToPeerReviewReviewStateItemTest.java @@ -0,0 +1,102 @@ +/* + * Created on Jan 24, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.ats.test.editor.stateItem; + +import static org.junit.Assert.assertFalse; +import java.util.Arrays; +import junit.framework.Assert; +import org.eclipse.osee.ats.artifact.PeerToPeerReviewArtifact; +import org.eclipse.osee.ats.artifact.PeerToPeerReviewState; +import org.eclipse.osee.ats.editor.stateItem.AtsPeerToPeerReviewReviewStateItem; +import org.eclipse.osee.ats.test.util.DemoTestUtil; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.util.widgets.ReviewManager; +import org.eclipse.osee.ats.util.widgets.role.UserRole; +import org.eclipse.osee.ats.util.widgets.role.UserRole.Role; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.skynet.core.User; +import org.eclipse.osee.framework.skynet.core.UserManager; +import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IWorkPage; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test Case for {@link AtsPeerToPeerReviewReviewStateItem} + * + * @author Donald G. Dunne + */ +public class AtsPeerToPeerReviewReviewStateItemTest { + + public static PeerToPeerReviewArtifact peerRevArt; + + @Before + public void setUp() throws Exception { + // This test should only be run on test db + assertFalse("Test should not be run in production db", AtsUtil.isProductionDb()); + + if (peerRevArt == null) { + // setup fake review artifact with decision options set + peerRevArt = ReviewManager.createNewPeerToPeerReview(null, getClass().getName(), "", null); + peerRevArt.setName(getClass().getSimpleName()); + peerRevArt.persist(); + } + } + + @BeforeClass + @AfterClass + public static void testCleanup() throws Exception { + DemoTestUtil.cleanupSimpleTest(AtsPeerToPeerReviewReviewStateItemTest.class.getSimpleName()); + } + + @Test + public void testTransitioned() throws OseeCoreException { + Assert.assertNotNull(peerRevArt); + + // assignee should be user creating review + Assert.assertEquals(1, peerRevArt.getStateMgr().getAssignees().size()); + Assert.assertEquals(UserManager.getUser(), peerRevArt.getStateMgr().getAssignees().iterator().next()); + + // set roles + UserRole userRole = new UserRole(Role.Author, UserManager.getUserByName("Joe Smith")); + peerRevArt.getUserRoleManager().addOrUpdateUserRole(userRole, false, null); + userRole = new UserRole(Role.Reviewer, UserManager.getUserByName("Alex Kay")); + peerRevArt.getUserRoleManager().addOrUpdateUserRole(userRole, false, null); + peerRevArt.persist(); + + // assignee should be user roles + Assert.assertEquals(2, peerRevArt.getStateMgr().getAssignees().size()); + + // change assignees back to single user so can test transition + peerRevArt.getStateMgr().setAssignee(UserManager.getUser()); + peerRevArt.persist(); + Assert.assertEquals(1, peerRevArt.getStateMgr().getAssignees().size()); + Assert.assertEquals(UserManager.getUser(), peerRevArt.getStateMgr().getAssignees().iterator().next()); + + IWorkPage fromState = peerRevArt.getWorkDefinition().getStateByName(PeerToPeerReviewState.Prepare.getPageName()); + IWorkPage toState = peerRevArt.getWorkDefinition().getStateByName(PeerToPeerReviewState.Review.getPageName()); + + // make call to state item that should set options based on artifact's attribute value + AtsPeerToPeerReviewReviewStateItem stateItem = new AtsPeerToPeerReviewReviewStateItem(); + stateItem.transitioned(peerRevArt, fromState, toState, Arrays.asList(UserManager.getUser()), null); + + // Joe and Alex should have been added to assignees + Assert.assertEquals(2, peerRevArt.getStateMgr().getAssignees().size()); + boolean joeFound = false, alexFound = false; + for (User user : peerRevArt.getStateMgr().getAssignees()) { + if (user.getName().equals("Joe Smith")) { + joeFound = true; + } + if (user.getName().equals("Alex Kay")) { + alexFound = true; + } + } + Assert.assertTrue("Joe should have been added as assignee", joeFound); + Assert.assertTrue("Alex should have been added as assignee", alexFound); + } + +} diff --git a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/util/DemoTestUtil.java b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/util/DemoTestUtil.java index 6ca19276c3e..3857f2c6993 100644 --- a/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/util/DemoTestUtil.java +++ b/plugins/org.eclipse.osee.ats.test/src/org/eclipse/osee/ats/test/util/DemoTestUtil.java @@ -111,9 +111,17 @@ public class DemoTestUtil { return teamArt; } + public static Set<ActionableItemArtifact> getActionableItems(DemoActionableItems demoAI) throws OseeCoreException { + return ActionableItemArtifact.getActionableItems(Arrays.asList(demoAI.getName())); + } + + public static ActionableItemArtifact getActionableItem(DemoActionableItems demoAI) throws OseeCoreException { + return getActionableItems(demoAI).iterator().next(); + } + public static TeamWorkFlowArtifact addTeamWorkflow(ActionArtifact actionArt, String title, SkynetTransaction transaction) throws OseeCoreException { - Set<ActionableItemArtifact> actionableItems = - ActionableItemArtifact.getActionableItems(Arrays.asList(DemoActionableItems.SAW_Test.getName())); + Set<ActionableItemArtifact> actionableItems = getActionableItems(DemoActionableItems.SAW_Test); + ; Collection<TeamDefinitionArtifact> teamDefs = TeamDefinitionArtifact.getImpactedTeamDefs(actionableItems); ActionManager.createTeamWorkflow(actionArt, teamDefs.iterator().next(), actionableItems, diff --git a/plugins/org.eclipse.osee.ats/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.ats/META-INF/MANIFEST.MF index 5828010d478..ca9c271f4ec 100644 --- a/plugins/org.eclipse.osee.ats/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.osee.ats/META-INF/MANIFEST.MF @@ -92,5 +92,6 @@ Import-Package: javax.mail, org.eclipse.osee.framework.database.init, org.eclipse.osee.framework.logging, org.eclipse.osee.framework.ui.swt, - org.eclipse.osee.framework.ui.ws + org.eclipse.osee.framework.ui.ws, + org.eclipse.osee.support.test.util Bundle-RequiredExecutionEnvironment: JavaSE-1.6 diff --git a/plugins/org.eclipse.osee.ats/images/stateItem.gif b/plugins/org.eclipse.osee.ats/images/stateItem.gif Binary files differnew file mode 100644 index 00000000000..b83c170fa4e --- /dev/null +++ b/plugins/org.eclipse.osee.ats/images/stateItem.gif diff --git a/plugins/org.eclipse.osee.ats/plugin.xml b/plugins/org.eclipse.osee.ats/plugin.xml index e7859d75af1..28190d5ddd6 100644 --- a/plugins/org.eclipse.osee.ats/plugin.xml +++ b/plugins/org.eclipse.osee.ats/plugin.xml @@ -3,7 +3,6 @@ <plugin> <extension-point id="AtsNavigateItem" name="AtsNavigateItem" schema="schema/AtsNavigateItem.exsd"/> <extension-point id="AtsStateItem" name="AtsStateItem" schema="schema/AtsStateItem.exsd"/> - <extension-point id="AtsAIandTeamConfig" name="AtsAIandTeamConfig" schema="schema/AtsAIandTeamConfig.exsd"/> <extension-point id="AtsWizardItem" name="AtsWizardItem" schema="schema/AtsWizardItem.exsd"/> <extension-point id="AtsTeamWorkflow" name="AtsTeamWorkflow" schema="schema/AtsTeamWorkflow.exsd"/> <extension-point id="AtsNotification" name="AtsNotification" schema="schema/AtsNotification.exsd"/> diff --git a/plugins/org.eclipse.osee.ats/schema/AtsAIandTeamConfig.exsd b/plugins/org.eclipse.osee.ats/schema/AtsAIandTeamConfig.exsd deleted file mode 100644 index b24ec76b5cf..00000000000 --- a/plugins/org.eclipse.osee.ats/schema/AtsAIandTeamConfig.exsd +++ /dev/null @@ -1,105 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> -<!-- Schema file written by PDE --> -<schema targetNamespace="org.eclipse.osee.ats"> -<annotation> - <appInfo> - <meta.schema plugin="org.eclipse.osee.ats" id="AtsAIandTeamConfig" name="AtsAIandTeamConfig"/> - </appInfo> - <documentation> - Allows graphical configuration of teams and actionable items that will be imported into the DB upon database initialization. This is a one-time shot import and does NOT provide for the capability to update and re-import. All configuration after the first database wipe should be done through OSEE's artifact editors and explorers. - </documentation> - </annotation> - - <element name="extension"> - <complexType> - <sequence minOccurs="1" maxOccurs="unbounded"> - <element ref="AtsAIandTeamConfig"/> - </sequence> - <attribute name="point" type="string" use="required"> - <annotation> - <documentation> - - </documentation> - </annotation> - </attribute> - <attribute name="id" type="string"> - <annotation> - <documentation> - - </documentation> - </annotation> - </attribute> - <attribute name="name" type="string"> - <annotation> - <documentation> - - </documentation> - <appInfo> - <meta.attribute translatable="true"/> - </appInfo> - </annotation> - </attribute> - </complexType> - </element> - - <element name="AtsAIandTeamConfig"> - <complexType> - <attribute name="vueFilename" type="string" use="required"> - <annotation> - <documentation> - - </documentation> - <appInfo> - <meta.attribute kind="resource"/> - </appInfo> - </annotation> - </attribute> - </complexType> - </element> - - <annotation> - <appInfo> - <meta.section type="since"/> - </appInfo> - <documentation> - [Enter the first release in which this extension point appears.] - </documentation> - </annotation> - - <annotation> - <appInfo> - <meta.section type="examples"/> - </appInfo> - <documentation> - [Enter extension point usage example here.] - </documentation> - </annotation> - - <annotation> - <appInfo> - <meta.section type="apiInfo"/> - </appInfo> - <documentation> - [Enter API information here.] - </documentation> - </annotation> - - <annotation> - <appInfo> - <meta.section type="implementation"/> - </appInfo> - <documentation> - [Enter information about supplied implementation of this extension point.] - </documentation> - </annotation> - - <annotation> - <appInfo> - <meta.section type="copyright"/> - </appInfo> - <documentation> - - </documentation> - </annotation> - -</schema> diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/AtsImage.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/AtsImage.java index fa3e3e36322..075442782f2 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/AtsImage.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/AtsImage.java @@ -58,6 +58,7 @@ public enum AtsImage implements KeyedImage { ROLE("role.gif"), STATE("state.gif"), STATE_DEFINITION("stateDefinition.gif"), + STATE_ITEM("stateItem.gif"), SUBSCRIBED("subscribedEmail.gif"), SUBSCRIBED_OVERLAY("subscribed.gif"), TASK("task.gif"), 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 c40cbc5602e..887b461617a 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 @@ -14,7 +14,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Date; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -39,7 +38,7 @@ import org.eclipse.osee.ats.util.SimpleTeamState; import org.eclipse.osee.ats.util.StateManager; import org.eclipse.osee.ats.util.TeamState; import org.eclipse.osee.ats.util.widgets.ReviewManager; -import org.eclipse.osee.ats.workdef.RuleDefinition; +import org.eclipse.osee.ats.workdef.RuleDefinitionOption; import org.eclipse.osee.ats.workdef.StateDefinition; import org.eclipse.osee.ats.workdef.StateXWidgetPage; import org.eclipse.osee.ats.workdef.WorkDefinition; @@ -47,8 +46,6 @@ import org.eclipse.osee.ats.workdef.WorkDefinitionFactory; import org.eclipse.osee.ats.workdef.WorkDefinitionMatch; import org.eclipse.osee.ats.workflow.ATSXWidgetOptionResolver; import org.eclipse.osee.ats.workflow.TransitionManager; -import org.eclipse.osee.ats.workflow.item.AtsStatePercentCompleteWeightRule; -import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions; import org.eclipse.osee.ats.world.IWorldViewArtifact; import org.eclipse.osee.framework.access.AccessControlManager; import org.eclipse.osee.framework.core.data.IArtifactType; @@ -237,7 +234,6 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple public void clearCaches() { implementersStr = null; - stateToWeight = null; } public WorkDefinition getWorkDefinition() { @@ -555,61 +551,75 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple /** * Return Percent Complete on all things (including children SMAs) for this SMA<br> * <br> - * percent = all state's percents / number of states (minus completed/cancelled) + * percent = all state's percents / number of states (minus completed/canceled) */ public int getPercentCompleteSMATotal() throws OseeCoreException { if (isCompletedOrCancelled()) { return 100; } - Map<String, Double> stateToWeightMap = getStatePercentCompleteWeight(); - if (!stateToWeightMap.isEmpty()) { + if (getWorkDefinition().isStateWeightingEnabled()) { // Calculate total percent using configured weighting int percent = 0; - for (StateDefinition state : getWorkDefinition().getStates()) { - if (!state.isCompletedPage() && !state.isCancelledPage()) { - Double weight = stateToWeightMap.get(state.getPageName()); - if (weight == null) { - weight = 0.0; - } - percent += weight * getPercentCompleteSMAStateTotal(state); + for (StateDefinition stateDef : getWorkDefinition().getStates()) { + if (!stateDef.isCompletedPage() && !stateDef.isCancelledPage()) { + double stateWeightInt = stateDef.getStateWeight(); + double weight = stateWeightInt / 100; + int percentCompleteForState = getPercentCompleteSMAStateTotal(stateDef); + percent += weight * percentCompleteForState; } } return percent; } else { - int percent = 0; - int numStates = 0; - for (StateDefinition state : getWorkDefinition().getStates()) { - if (!state.isCompletedPage() && !state.isCancelledPage()) { - percent += getPercentCompleteSMAStateTotal(state); - numStates++; - } + int percent = getPercentCompleteSMASinglePercent(); + if (percent > 0) { + return percent; } - if (numStates == 0) { - return 0; + if (isCompletedOrCancelled()) { + return 100; + } + if (getStateMgr().isAnyStateHavePercentEntered()) { + int numStates = 0; + for (StateDefinition state : getWorkDefinition().getStates()) { + if (!state.isCompletedPage() && !state.isCancelledPage()) { + percent += getPercentCompleteSMAStateTotal(state); + numStates++; + } + } + if (numStates == 0) { + return 0; + } + return percent / numStates; } - return percent / numStates; + } + return 0; } - // Cache stateToWeight mapping - private Map<String, Double> stateToWeight = null; - - public Map<String, Double> getStatePercentCompleteWeight() throws OseeCoreException { - if (stateToWeight == null) { - stateToWeight = new HashMap<String, Double>(); - Collection<RuleDefinition> workRuleDefs = getRulesStartsWith(AtsStatePercentCompleteWeightRule.ID); - // Log error if multiple of same rule found, but keep going - if (workRuleDefs.size() > 1) { - OseeLog.log( - AtsPlugin.class, - Level.SEVERE, - "Team Definition has multiple rules of type " + AtsStatePercentCompleteWeightRule.ID + ". Only 1 allowed. Defaulting to first found."); + /** + * Add percent represented by percent attribute, percent for reviews and tasks divided by number of objects. + */ + private int getPercentCompleteSMASinglePercent() throws OseeCoreException { + int numObjects = 1; + int percent = getSoleAttributeValue(AtsAttributeTypes.PercentComplete, 0); + if (this instanceof TeamWorkFlowArtifact) { + for (AbstractReviewArtifact revArt : ReviewManager.getReviews((TeamWorkFlowArtifact) this)) { + percent += revArt.getPercentCompleteSMATotal(); + numObjects++; + } + } + if (this instanceof AbstractTaskableArtifact) { + for (TaskArtifact taskArt : ((AbstractTaskableArtifact) this).getTaskArtifacts()) { + percent += taskArt.getPercentCompleteSMATotal(); + numObjects++; } - if (workRuleDefs.size() == 1) { - stateToWeight = AtsStatePercentCompleteWeightRule.getStateWeightMap(workRuleDefs.iterator().next()); + } + if (percent > 0) { + if (numObjects == 0) { + return 0; } + return percent / numObjects; } - return stateToWeight; + return percent; } private StateMetricsData getStateMetricsData(IWorkPage teamState) throws OseeCoreException { @@ -773,7 +783,7 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple * Return true if sma is TeamWorkflowArtifact or review of a team workflow and it's TeamDefinitionArtifact has rule * set */ - public boolean teamDefHasWorkRule(String ruleId) throws OseeCoreException { + public boolean teamDefHasRule(RuleDefinitionOption option) throws OseeCoreException { TeamWorkFlowArtifact teamArt = null; if (isTeamWorkflow()) { teamArt = (TeamWorkFlowArtifact) this; @@ -785,36 +795,13 @@ public abstract class AbstractWorkflowArtifact extends AbstractAtsArtifact imple return false; } try { - return teamArt.getTeamDefinition().hasWorkRule(ruleId); + return teamArt.getTeamDefinition().hasRule(option); } catch (Exception ex) { OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex); return false; } } - public boolean workPageHasWorkRule(String ruleId) { - return getStateDefinition().hasRule(AtsWorkDefinitions.RuleWorkItemId.atsRequireTargetedVersion.name()); - } - - public Collection<RuleDefinition> getRulesStartsWith(String ruleName) throws OseeCoreException { - Set<RuleDefinition> workRules = new HashSet<RuleDefinition>(); - if (!Strings.isValid(ruleName)) { - return workRules; - } - if (isTeamWorkflow()) { - // Get rules from team definition - workRules.addAll(((TeamWorkFlowArtifact) this).getTeamDefinition().getRulesStartsWith(ruleName)); - } - // Get work rules from workflow - if (getWorkDefinition() != null) { - // Get rules from workflow definitions - workRules.addAll(getWorkDefinition().getRulesStartsWith(ruleName)); - } - // Add work rules from page - workRules.addAll(getStateDefinition().getRulesStartsWith(ruleName)); - return workRules; - } - /** * @return true if this is a TeamWorkflow and the version it's been targeted for has been released */ diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionableItemArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionableItemArtifact.java index eee06f3765a..1bcab6346e8 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionableItemArtifact.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/ActionableItemArtifact.java @@ -18,8 +18,6 @@ import java.util.List; import java.util.Set; import org.eclipse.osee.ats.config.AtsCacheManager; import org.eclipse.osee.ats.util.AtsArtifactTypes; -import org.eclipse.osee.ats.util.AtsFolderUtil; -import org.eclipse.osee.ats.util.AtsFolderUtil.AtsFolder; import org.eclipse.osee.ats.util.AtsRelationTypes; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.framework.core.data.IArtifactType; @@ -64,7 +62,7 @@ public class ActionableItemArtifact extends Artifact { } public static ActionableItemArtifact getTopActionableItem() throws OseeCoreException { - return (ActionableItemArtifact) AtsFolderUtil.getFolder(AtsFolder.ActionableItem); + return (ActionableItemArtifact) AtsArtifactToken.get(AtsArtifactToken.TopActionableItem); } public static List<ActionableItemArtifact> getActionableItems() throws OseeCoreException { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsArtifactToken.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsArtifactToken.java new file mode 100644 index 00000000000..69980f56ec1 --- /dev/null +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsArtifactToken.java @@ -0,0 +1,56 @@ +/* + * Created on Feb 8, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.ats.artifact; + +import org.eclipse.osee.ats.util.AtsArtifactTypes; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.framework.core.data.ArtifactToken; +import org.eclipse.osee.framework.core.data.IArtifactType; +import org.eclipse.osee.framework.core.data.IOseeBranch; +import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; +import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; + +public class AtsArtifactToken extends ArtifactToken { + + public static AtsArtifactToken HeadingFolder = new AtsArtifactToken("Action Tracking System", + CoreArtifactTypes.Folder, "AAABER+3yR4A8O7WYQ+Xbw"); + public static AtsArtifactToken TopTeamDefinition = new AtsArtifactToken("Teams", AtsArtifactTypes.TeamDefinition, + "AAABER+35b4A8O7WHrXTiA"); + public static AtsArtifactToken TopActionableItem = new AtsArtifactToken("Actionable Items", + AtsArtifactTypes.ActionableItem, "AAABER+37QEA8O7WSQaqJQ"); + public static AtsArtifactToken ConfigFolder = new AtsArtifactToken("Config", CoreArtifactTypes.Folder, + "AAABF4n18eYAc1ruQSSWdg"); + public static AtsArtifactToken WorkDefinitionsFolder = new AtsArtifactToken("Work Definitions", + CoreArtifactTypes.Folder, "ADTfjCLEj2DH2WYyeOgA"); + public static AtsArtifactToken WorkPagesFolder = new AtsArtifactToken("Work Pages", CoreArtifactTypes.Folder, + "AAABGnncY_gAAo+3N69ASA"); + public static AtsArtifactToken WorkRulesFolder = new AtsArtifactToken("Work Rules", CoreArtifactTypes.Folder, + "AAABGnmhCyYAoJoIciyaag"); + public static AtsArtifactToken WorkWidgetsFolder = new AtsArtifactToken("Work Widgets", CoreArtifactTypes.Folder, + "AAABGnmjk4IAoJoIa945Kg"); + public static AtsArtifactToken WorkFlowsFolder = new AtsArtifactToken("Work Flows", CoreArtifactTypes.Folder, + "AAABGnncZ_4AAo+3D0sGfw"); + + public AtsArtifactToken(String name, IArtifactType artifactType, String guid) { + this(name, artifactType, guid, AtsUtil.getAtsBranchToken()); + } + + public AtsArtifactToken(String name, IArtifactType artifactType, String guid, IOseeBranch oseeBranch) { + super(guid, name, artifactType, oseeBranch); + } + + public static Artifact get(AtsArtifactToken atsArtifactToken) throws OseeCoreException { + try { + return ArtifactQuery.getArtifactFromToken(atsArtifactToken); + } catch (ArtifactDoesNotExist ex) { + // do nothing + } + return null; + } +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsAttributeTypes.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsAttributeTypes.java index 6fa2a64a920..cb06402a55e 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsAttributeTypes.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/AtsAttributeTypes.java @@ -77,6 +77,8 @@ public class AtsAttributeTypes extends NamedIdentity implements IAttributeType { public static final IAttributeType PagesChanged= new AtsAttributeTypes("AQR8yMuv4W84UwvSJAQA", "Pages Changed", "Total Pages of Changed"); public static final IAttributeType PagesReviewed = new AtsAttributeTypes("AQR9qM8TTyCMb7sf4cQA", "Pages Reviewed", "Total Pages Reviewed"); public static final IAttributeType PercentRework = new AtsAttributeTypes("AAMFEdKfjl2TII9+tuwA", "Percent Rework"); + public static final IAttributeType PercentComplete = new AtsAttributeTypes("AALLbOZiBBDN39YsRSAA", "Percent Complete"); + public static final IAttributeType Points = new AtsAttributeTypes("AY2EeqhzcDEGtXtREkAA", "Points", "Abstract value that describes risk, complexity, and size of Actions."); public static final IAttributeType PriorityType = new AtsAttributeTypes("AAMFEc8JzH1U6XGD59QA", "Priority", "1 = High; 5 = Low"); public static final IAttributeType Problem = new AtsAttributeTypes("AAMFEdQUxRyevvTu+bwA", "Problem", "Problem found during analysis."); @@ -88,6 +90,7 @@ public class AtsAttributeTypes extends NamedIdentity implements IAttributeType { public static final IAttributeType ReviewBlocks = new AtsAttributeTypes("AAMFEc6G2A8jmRWJgagA", "Review Blocks", "Review Completion will block it's parent workflow in this manner."); public static final IAttributeType ReviewDefect = new AtsAttributeTypes("AAMFEd+MSVAb8JQ6f5gA", "Review Defect"); public static final IAttributeType Role = new AtsAttributeTypes("AAMFEeCqMz0XCSBJ+IQA", "Role"); + public static final IAttributeType RuleDefinition = new AtsAttributeTypes("AEqAJNnkyW4_d5_WhpgA", "Rule Definition"); public static final IAttributeType SmaNote = new AtsAttributeTypes("AAMFEdm7ywte8qayfbAA", "SMA Note", "Notes applicable to ATS object"); public static final IAttributeType State = new AtsAttributeTypes("AAMFEdMa3wzVvp60xLQA", "State", "States of workflow state machine."); public static final IAttributeType StateNotes = new AtsAttributeTypes("AAMFEdiWPm7M_xV1EswA", "State Notes"); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TaskArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TaskArtifact.java index 719467a5225..1129f938730 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TaskArtifact.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TaskArtifact.java @@ -115,6 +115,7 @@ public class TaskArtifact extends AbstractWorkflowArtifact implements IATSStateM getStateMgr().setAssignee(UserManager.getUser()); } getStateMgr().updateMetrics(additionalHours, 100, true); + setSoleAttributeValue(AtsAttributeTypes.PercentComplete, 100); } catch (Exception ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); } @@ -133,6 +134,7 @@ public class TaskArtifact extends AbstractWorkflowArtifact implements IATSStateM Result result = transitionMgr.transition(TaskStates.InWork, toUser, transaction, transitionOption); if (getStateMgr().getPercentComplete() != percentComplete || additionalHours > 0) { getStateMgr().updateMetrics(additionalHours, percentComplete, true); + setSoleAttributeValue(AtsAttributeTypes.PercentComplete, percentComplete); } if (Collections.getAggregate(transitionOption).contains(TransitionOption.Persist)) { saveSMA(transaction); @@ -157,9 +159,11 @@ public class TaskArtifact extends AbstractWorkflowArtifact implements IATSStateM else if (percentComplete == 100 && isCompleted()) { if (additionalHours > 0) { getStateMgr().updateMetrics(TaskStates.InWork, additionalHours, percentComplete, true); + setSoleAttributeValue(AtsAttributeTypes.PercentComplete, percentComplete); } } else { getStateMgr().updateMetrics(additionalHours, percentComplete, true); + setSoleAttributeValue(AtsAttributeTypes.PercentComplete, percentComplete); } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamDefinitionArtifact.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamDefinitionArtifact.java index 6104a6ea678..43130175a8c 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamDefinitionArtifact.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/artifact/TeamDefinitionArtifact.java @@ -22,22 +22,19 @@ import org.eclipse.osee.ats.artifact.VersionArtifact.VersionReleaseType; import org.eclipse.osee.ats.config.AtsCacheManager; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.AtsArtifactTypes; -import org.eclipse.osee.ats.util.AtsFolderUtil; -import org.eclipse.osee.ats.util.AtsFolderUtil.AtsFolder; import org.eclipse.osee.ats.util.AtsRelationTypes; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.util.widgets.commit.ICommitConfigArtifact; import org.eclipse.osee.ats.workdef.RuleDefinition; +import org.eclipse.osee.ats.workdef.RuleDefinitionOption; import org.eclipse.osee.ats.workdef.WorkDefinitionFactory; import org.eclipse.osee.ats.workdef.WorkDefinitionMatch; -import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions.RuleWorkItemId; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.enums.Active; import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; import org.eclipse.osee.framework.core.enums.CoreAttributeTypes; import org.eclipse.osee.framework.core.enums.CoreRelationTypes; import org.eclipse.osee.framework.core.exception.BranchDoesNotExist; -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.jdk.core.util.Collections; @@ -109,7 +106,7 @@ public class TeamDefinitionArtifact extends Artifact implements ICommitConfigArt setSoleAttributeValue(AtsAttributeTypes.TeamUsesVersions, true); } if (teamDefOptions.contains(TeamDefinitionOptions.RequireTargetedVersion)) { - addWorkRule(RuleWorkItemId.atsRequireTargetedVersion.name()); + addRule(RuleDefinitionOption.RequireTargetedVersion); } // Relate to actionable items @@ -218,7 +215,7 @@ public class TeamDefinitionArtifact extends Artifact implements ICommitConfigArt } public static TeamDefinitionArtifact getTopTeamDefinition() throws OseeCoreException { - return (TeamDefinitionArtifact) AtsFolderUtil.getFolder(AtsFolder.Teams); + return (TeamDefinitionArtifact) AtsArtifactToken.get(AtsArtifactToken.TopTeamDefinition); } public static Set<TeamDefinitionArtifact> getTeamReleaseableDefinitions(Active active) throws OseeCoreException { @@ -358,7 +355,12 @@ public class TeamDefinitionArtifact extends Artifact implements ICommitConfigArt String id = art.getSoleAttributeValue(CoreAttributeTypes.WorkId, ""); if (Strings.isValid(id)) { // Note: This may skip any complex rules (more than name), but don't think teamdefs have them - workRules.add(WorkDefinitionFactory.getRuleById(id)); + RuleDefinition ruleDef = WorkDefinitionFactory.getRuleById(id); + if (ruleDef == null) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, String.format("Null work rule for " + id)); + } else { + workRules.add(ruleDef); + } } } } @@ -496,24 +498,22 @@ public class TeamDefinitionArtifact extends Artifact implements ICommitConfigArt return getSoleAttributeValue(AtsAttributeTypes.Actionable, false); } - public void addWorkRule(String ruleId) throws OseeCoreException { - if (!hasWorkRule(ruleId)) { - Artifact artifact = WorkItemDefinitionFactory.getWorkItemDefinitionArtifact(ruleId); - if (artifact == null) { - throw new OseeArgumentException("Rule [%s] does not exist.", ruleId); - } else { - addRelation(CoreRelationTypes.WorkItem__Child, artifact); - } - } + public void addRule(RuleDefinitionOption option) throws OseeCoreException { + addRule(option.name()); } - public boolean hasWorkRule(String ruleId) throws OseeCoreException { - for (Artifact art : getRelatedArtifacts(CoreRelationTypes.WorkItem__Child)) { - if (art.getName().equals(ruleId)) { - return true; - } + public void addRule(String ruleId) throws OseeCoreException { + if (!hasRule(ruleId)) { + addAttribute(AtsAttributeTypes.RuleDefinition, ruleId); } - return false; + } + + public boolean hasRule(RuleDefinitionOption option) throws OseeCoreException { + return hasRule(option.name()); + } + + public boolean hasRule(String ruleId) throws OseeCoreException { + return getAttributesToStringList(AtsAttributeTypes.RuleDefinition).contains(ruleId); } /** diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsConfigManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsConfigManager.java index 38e2a3ae065..be88c9c3bc9 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsConfigManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsConfigManager.java @@ -20,13 +20,12 @@ import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.osee.ats.AtsOpenOption; import org.eclipse.osee.ats.artifact.ActionableItemArtifact; +import org.eclipse.osee.ats.artifact.AtsArtifactToken; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; import org.eclipse.osee.ats.artifact.VersionArtifact; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.AtsArtifactTypes; -import org.eclipse.osee.ats.util.AtsFolderUtil; -import org.eclipse.osee.ats.util.AtsFolderUtil.AtsFolder; import org.eclipse.osee.ats.util.AtsRelationTypes; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.util.TeamState; @@ -129,7 +128,7 @@ public class AtsConfigManager extends AbstractOperation { } teamDefinition.addRelation(AtsRelationTypes.TeamLead_Lead, UserManager.getUser()); teamDefinition.addRelation(AtsRelationTypes.TeamMember_Member, UserManager.getUser()); - AtsFolderUtil.getFolder(AtsFolder.Teams).addChild(teamDefinition); + AtsArtifactToken.get(AtsArtifactToken.TopTeamDefinition).addChild(teamDefinition); teamDefinition.persist(transaction); return teamDefinition; } @@ -144,7 +143,7 @@ public class AtsConfigManager extends AbstractOperation { topAia.setSoleAttributeValue(AtsAttributeTypes.Actionable, false); topAia.persist(transaction); - AtsFolderUtil.getFolder(AtsFolder.ActionableItem).addChild(topAia); + AtsArtifactToken.get(AtsArtifactToken.TopActionableItem).addChild(topAia); teamDefinition.addRelation(AtsRelationTypes.TeamActionableItem_ActionableItem, topAia); teamDefinition.persist(transaction); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsDatabaseConfig.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsDatabaseConfig.java index 9260be8b8f2..eb2028f4e5e 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsDatabaseConfig.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsDatabaseConfig.java @@ -10,7 +10,10 @@ *******************************************************************************/ package org.eclipse.osee.ats.config; -import org.eclipse.osee.ats.util.AtsFolderUtil; +import java.util.Arrays; +import org.eclipse.osee.ats.artifact.ActionableItemArtifact; +import org.eclipse.osee.ats.artifact.AtsArtifactToken; +import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.workdef.AtsWorkDefinitionSheetProviders; import org.eclipse.osee.ats.workflow.flow.DecisionWorkflowDefinition; @@ -22,6 +25,9 @@ import org.eclipse.osee.ats.workflow.flow.TeamWorkflowDefinition; import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions; import org.eclipse.osee.framework.core.exception.OseeCoreException; 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; +import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.framework.ui.skynet.results.XResultData; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkItemDefinition.WriteType; @@ -29,9 +35,14 @@ public class AtsDatabaseConfig implements IDbInitializationTask { @Override public void run() throws OseeCoreException { - AtsFolderUtil.createAtsFolders(); + createAtsFolders(); AtsWorkDefinitionSheetProviders.initializeDatabase(); + + Artifact topAi = ActionableItemArtifact.getTopActionableItem(); + topAi.setSoleAttributeValue(AtsAttributeTypes.Actionable, false); + topAi.persist("Set Top AI to Non Actionable"); + configWorkItemDefinitions(WriteType.New, null); AtsUtil.getAtsAdminGroup().getGroupArtifact().persist(); @@ -52,4 +63,24 @@ public class AtsDatabaseConfig implements IDbInitializationTask { } + public static void createAtsFolders() throws OseeCoreException { + SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Create ATS Folders"); + + Artifact headingArt = OseeSystemArtifacts.getOrCreateArtifact(AtsArtifactToken.HeadingFolder); + if (!headingArt.hasParent()) { + Artifact rootArt = OseeSystemArtifacts.getDefaultHierarchyRootArtifact(AtsUtil.getAtsBranch()); + rootArt.addChild(headingArt); + headingArt.persist(transaction); + } + for (AtsArtifactToken token : Arrays.asList(AtsArtifactToken.TopActionableItem, + AtsArtifactToken.TopTeamDefinition, AtsArtifactToken.ConfigFolder, // + AtsArtifactToken.WorkDefinitionsFolder, AtsArtifactToken.WorkFlowsFolder, // + AtsArtifactToken.WorkPagesFolder, AtsArtifactToken.WorkWidgetsFolder, // + AtsArtifactToken.WorkRulesFolder)) { + Artifact art = OseeSystemArtifacts.getOrCreateArtifact(token); + headingArt.addChild(art); + art.persist(transaction); + } + transaction.execute(); + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsLoadConfigArtifactsOperation.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsLoadConfigArtifactsOperation.java index 2f69c9c710b..d171b3a3c96 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsLoadConfigArtifactsOperation.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/config/AtsLoadConfigArtifactsOperation.java @@ -13,9 +13,8 @@ package org.eclipse.osee.ats.config; import java.util.Collections; import java.util.logging.Level; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.ats.artifact.AtsArtifactToken; import org.eclipse.osee.ats.internal.AtsPlugin; -import org.eclipse.osee.ats.util.AtsFolderUtil; -import org.eclipse.osee.ats.util.AtsFolderUtil.AtsFolder; import org.eclipse.osee.ats.util.AtsRelationTypes; import org.eclipse.osee.framework.core.enums.CoreRelationTypes; import org.eclipse.osee.framework.core.exception.OseeCoreException; @@ -44,7 +43,7 @@ public class AtsLoadConfigArtifactsOperation extends AbstractOperation { if (!loaded) { loaded = true; OseeLog.log(AtsPlugin.class, Level.INFO, "Loading ATS Configuration"); - Artifact headingArt = AtsFolderUtil.getFolder(AtsFolder.Ats_Heading); + Artifact headingArt = AtsArtifactToken.get(AtsArtifactToken.HeadingFolder); // Loading artifacts will cache them in ArtifactCache RelationManager.getRelatedArtifacts(Collections.singleton(headingArt), 8, CoreRelationTypes.Default_Hierarchical__Child, AtsRelationTypes.TeamDefinitionToVersion_Version); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEditorOutlinePage.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEditorOutlinePage.java index f52a5857ff8..cae83bc8cb8 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEditorOutlinePage.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEditorOutlinePage.java @@ -25,6 +25,8 @@ import org.eclipse.osee.ats.AtsImage; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.editor.stateItem.AtsStateItemManager; +import org.eclipse.osee.ats.editor.stateItem.IAtsStateItem; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.workdef.CompositeStateItem; @@ -123,6 +125,8 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { return ArtifactImageManager.getImage((AbstractWorkflowArtifact) element); } else if (element instanceof StateDefinition) { return ImageManager.getImage(AtsImage.STATE_DEFINITION); + } else if (element instanceof IAtsStateItem || element instanceof WrappedStateItems) { + return ImageManager.getImage(AtsImage.STATE_ITEM); } else if (element instanceof WrappedTrace) { return ImageManager.getImage(AtsImage.TRACE); } else if (element instanceof WorkDefinitionMatch) { @@ -131,23 +135,15 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { return ImageManager.getImage(FrameworkImage.GEAR); } else if (element instanceof CompositeStateItem || element instanceof WrappedLayout) { return ImageManager.getImage(AtsImage.COMPOSITE_STATE_ITEM); - } else if (element instanceof String || element instanceof WidgetOption) { + } else if (element instanceof String || element instanceof WidgetOption || element instanceof WrappedPercentWeight) { return ImageManager.getImage(AtsImage.RIGHT_ARROW_SM); } else if (element instanceof WrappedStates || element instanceof WrappedTransitions) { return ImageManager.getImage(AtsImage.TRANSITION); - } else if (element instanceof WrappedRules) { - return ImageManager.getImage(FrameworkImage.RULE); - } else if (element instanceof RuleAndLocation) { + } else if (element instanceof WrappedRules || element instanceof RuleAndLocation) { return ImageManager.getImage(FrameworkImage.RULE); } else if (element instanceof User) { return ImageManager.getImage(FrameworkImage.USER); - } else if (element instanceof DecisionReviewDefinition) { - return ImageManager.getImage(AtsImage.REVIEW); - } else if (element instanceof PeerReviewDefinition) { - return ImageManager.getImage(AtsImage.REVIEW); - } else if (element instanceof WrappedDecisionReviews) { - return ImageManager.getImage(AtsImage.REVIEW); - } else if (element instanceof WrappedPeerReviews) { + } else if (element instanceof WrappedPeerReviews || element instanceof WrappedDecisionReviews || element instanceof DecisionReviewDefinition || element instanceof PeerReviewDefinition) { return ImageManager.getImage(AtsImage.REVIEW); } else if (element instanceof DecisionReviewOption) { return ImageManager.getImage(FrameworkImage.QUESTION); @@ -182,10 +178,13 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { if (element instanceof SMAEditor) { items.add(((SMAEditor) element).getSma()); + items.add(new WrappedStateItems(AtsStateItemManager.getStateItems())); } else if (element instanceof AbstractWorkflowArtifact) { items.add(((AbstractWorkflowArtifact) element).getWorkDefinitionMatch()); } else if (element instanceof WrappedLayout) { items.addAll(((WrappedLayout) element).getStateItems()); + } else if (element instanceof WrappedPercentWeight) { + getChildrenFromWrappedPercentDefinition((WrappedPercentWeight) element, items); } else if (element instanceof WrappedTrace) { items.addAll(((WrappedTrace) element).getTrace()); } else if (element instanceof WorkDefinitionMatch) { @@ -196,6 +195,11 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { items.addAll(((CompositeStateItem) element).getStateItems()); } else if (element instanceof User) { items.add("Assignee: " + ((User) element).getName()); + } else if (element instanceof WrappedStateItems) { + items.addAll(((WrappedStateItems) element).getStateItems()); + } else if (element instanceof IAtsStateItem) { + items.add("Description: " + ((IAtsStateItem) element).getDescription()); + items.add("Full Name: " + ((IAtsStateItem) element).getFullName()); } else if (element instanceof WrappedTransitions) { items.addAll(((WrappedTransitions) element).getTransitions()); } else if (element instanceof DecisionReviewDefinition) { @@ -221,6 +225,76 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { return items.toArray(new Object[items.size()]); } + @Override + public Object getParent(Object element) { + if (element instanceof AbstractWorkflowArtifact) { + return editor; + } else if (element instanceof WorkDefinition) { + return editor; + } else if (element instanceof StateDefinition) { + return ((StateDefinition) element).getWorkDefinition(); + } else if (element instanceof RuleDefinition) { + return editor; + } else if (element instanceof String) { + return editor; + } + return null; + } + + @Override + public boolean hasChildren(Object element) { + if (element instanceof String) { + return false; + } else if (element instanceof AbstractWorkflowArtifact) { + return true; + } else if (element instanceof WorkDefinitionMatch) { + return true; + } else if (element instanceof StateDefinition) { + return true; + } else if (element instanceof RuleDefinition) { + return false; + } else if (element instanceof CompositeStateItem) { + return true; + } else if (element instanceof IAtsStateItem) { + return true; + } else if (element instanceof WidgetDefinition) { + return true; + } else if (element instanceof PeerReviewDefinition) { + return true; + } else if (element instanceof DecisionReviewDefinition) { + return true; + } else if (element instanceof DecisionReviewOption) { + return !((DecisionReviewOption) element).getUserIds().isEmpty(); + } else if (element instanceof WrappedTransitions) { + return true; + } else if (element instanceof WrappedPercentWeight) { + return ((WrappedPercentWeight) element).getWorkDef().isStateWeightingEnabled(); + } else if (element instanceof WrappedLayout) { + return !((WrappedLayout) element).stateItems.isEmpty(); + } else if (element instanceof WrappedDecisionReviews) { + return !((WrappedDecisionReviews) element).decReviews.isEmpty(); + } else if (element instanceof WrappedPeerReviews) { + return !((WrappedPeerReviews) element).decReviews.isEmpty(); + } else if (element instanceof WrappedTrace) { + return !((WrappedTrace) element).trace.isEmpty(); + } else if (element instanceof WrappedStateItems) { + return !((WrappedStateItems) element).stateItems.isEmpty(); + } else if (element instanceof WrappedStates) { + return !((WrappedStates) element).states.isEmpty(); + } else if (element instanceof RuleAndLocation) { + return false; + } else if (element instanceof WrappedRules) { + return !((WrappedRules) element).getRuleAndLocations().isEmpty(); + } + return false; + } + + private void getChildrenFromWrappedPercentDefinition(WrappedPercentWeight weightDef, List<Object> items) { + for (StateDefinition stateDef : weightDef.getWorkDef().getStatesOrdered()) { + items.add(String.format("State [%s]: %d", stateDef.getName(), stateDef.getStateWeight())); + } + } + private void getChildrenFromWidgetDefinition(Object element, List<Object> items) { items.add("XWidget: " + ((WidgetDefinition) element).getXWidgetName()); items.add("Attribute Name: " + ((WidgetDefinition) element).getAtrributeName()); @@ -239,6 +313,9 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { } private void getChildrenFromPeerReviewDefinition(Object element, List<Object> items) { + if (Strings.isValid(((PeerReviewDefinition) element).getTitle())) { + items.add("Title: " + ((PeerReviewDefinition) element).getTitle()); + } if (Strings.isValid(((PeerReviewDefinition) element).getDescription())) { items.add("Description: " + ((PeerReviewDefinition) element).getDescription()); } @@ -248,14 +325,20 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { items.add("On Event: " + ((PeerReviewDefinition) element).getStateEventType().name()); items.add("Related To State: " + ((PeerReviewDefinition) element).getRelatedToState()); items.add("Review Blocks: " + ((PeerReviewDefinition) element).getBlockingType().name()); - try { - items.addAll(UserManager.getUsersByUserId(((PeerReviewDefinition) element).getAssignees())); - } catch (OseeCoreException ex) { - OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + for (String userId : ((PeerReviewDefinition) element).getAssignees()) { + try { + items.add(UserManager.getUserByUserId(userId)); + } catch (OseeCoreException ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + items.add(String.format("Exception loading user from id [%s] [%s]", userId, ex.getLocalizedMessage())); + } } } private void getChildrenFromDecisionReviewDefinition(Object element, List<Object> items) { + if (Strings.isValid(((DecisionReviewDefinition) element).getTitle())) { + items.add("Title: " + ((DecisionReviewDefinition) element).getTitle()); + } if (Strings.isValid(((DecisionReviewDefinition) element).getDescription())) { items.add("Description: " + ((DecisionReviewDefinition) element).getDescription()); } @@ -263,10 +346,13 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { items.add("Related To State: " + ((DecisionReviewDefinition) element).getRelatedToState()); items.add("Review Blocks: " + ((DecisionReviewDefinition) element).getBlockingType().name()); items.add("Auto Transition to Decision: " + ((DecisionReviewDefinition) element).isAutoTransitionToDecision()); - try { - items.addAll(UserManager.getUsersByUserId(((DecisionReviewDefinition) element).getAssignees())); - } catch (OseeCoreException ex) { - OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + for (String userId : ((DecisionReviewDefinition) element).getAssignees()) { + try { + items.add(UserManager.getUserByUserId(userId)); + } catch (OseeCoreException ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + items.add(String.format("Exception loading user from id [%s] [%s]", userId, ex.getLocalizedMessage())); + } } items.addAll(((DecisionReviewDefinition) element).getOptions()); } @@ -288,6 +374,7 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { } items.addAll(((WorkDefinitionMatch) element).getWorkDefinition().getStatesOrdered()); items.addAll(((WorkDefinitionMatch) element).getWorkDefinition().getRules()); + items.add(new WrappedPercentWeight(((WorkDefinitionMatch) element).getWorkDefinition())); items.add(new WrappedTrace(((WorkDefinitionMatch) element).getTrace())); } @@ -313,64 +400,6 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { } @Override - public Object getParent(Object element) { - if (element instanceof AbstractWorkflowArtifact) { - return editor; - } else if (element instanceof WorkDefinition) { - return editor; - } else if (element instanceof StateDefinition) { - return ((StateDefinition) element).getWorkDefinition(); - } else if (element instanceof RuleDefinition) { - return editor; - } else if (element instanceof String) { - return editor; - } - return null; - } - - @Override - public boolean hasChildren(Object element) { - if (element instanceof String) { - return false; - } else if (element instanceof AbstractWorkflowArtifact) { - return true; - } else if (element instanceof WorkDefinitionMatch) { - return true; - } else if (element instanceof StateDefinition) { - return true; - } else if (element instanceof RuleDefinition) { - return false; - } else if (element instanceof CompositeStateItem) { - return true; - } else if (element instanceof WidgetDefinition) { - return true; - } else if (element instanceof PeerReviewDefinition) { - return true; - } else if (element instanceof DecisionReviewDefinition) { - return true; - } else if (element instanceof DecisionReviewOption) { - return !((DecisionReviewOption) element).getUserIds().isEmpty(); - } else if (element instanceof WrappedTransitions) { - return true; - } else if (element instanceof WrappedLayout) { - return !((WrappedLayout) element).stateItems.isEmpty(); - } else if (element instanceof WrappedDecisionReviews) { - return !((WrappedDecisionReviews) element).decReviews.isEmpty(); - } else if (element instanceof WrappedPeerReviews) { - return !((WrappedPeerReviews) element).decReviews.isEmpty(); - } else if (element instanceof WrappedTrace) { - return !((WrappedTrace) element).trace.isEmpty(); - } else if (element instanceof WrappedStates) { - return !((WrappedStates) element).states.isEmpty(); - } else if (element instanceof RuleAndLocation) { - return false; - } else if (element instanceof WrappedRules) { - return !((WrappedRules) element).getRuleAndLocations().isEmpty(); - } - return false; - } - - @Override public Object[] getElements(Object inputElement) { return getChildren(inputElement); } @@ -452,6 +481,28 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { } } + public class WrappedPercentWeight { + + private final WorkDefinition workDef; + + public WrappedPercentWeight(WorkDefinition workDef) { + this.workDef = workDef; + } + + @Override + public String toString() { + if (workDef.isStateWeightingEnabled()) { + return "Total Percent Weighting"; + } else { + return "Total Percent Weighting: Single Percent"; + } + } + + public WorkDefinition getWorkDef() { + return workDef; + } + + } public class WrappedDecisionReviews { private final Collection<DecisionReviewDefinition> decReviews; @@ -469,6 +520,23 @@ public class SMAEditorOutlinePage extends ContentOutlinePage { } } + public class WrappedStateItems { + private final List<IAtsStateItem> stateItems; + + public WrappedStateItems(List<IAtsStateItem> stateItems) { + this.stateItems = stateItems; + } + + @Override + public String toString() { + return "State Items" + (stateItems.isEmpty() ? " (Empty)" : ""); + } + + public Collection<IAtsStateItem> getStateItems() { + return stateItems; + } + + } public class WrappedPeerReviews { private final Collection<PeerReviewDefinition> decReviews; diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEstimatedHoursHeader.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEstimatedHoursHeader.java new file mode 100644 index 00000000000..45ca9e66045 --- /dev/null +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAEstimatedHoursHeader.java @@ -0,0 +1,112 @@ +/******************************************************************************* + * Copyright (c) 2010 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.editor; + +import java.util.logging.Level; +import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; +import org.eclipse.osee.ats.artifact.AtsAttributeTypes; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.util.PromptChangeUtil; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.logging.OseeLevel; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.ui.swt.ALayout; +import org.eclipse.osee.framework.ui.swt.Displays; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.eclipse.ui.forms.events.HyperlinkEvent; +import org.eclipse.ui.forms.events.IHyperlinkListener; +import org.eclipse.ui.forms.widgets.Hyperlink; + +/** + * @author Donald G. Dunne + */ +public class SMAEstimatedHoursHeader extends Composite { + + private final static String LABEL = "Estimated Hours:"; + Label valueLabel; + private final AbstractWorkflowArtifact awa; + + public SMAEstimatedHoursHeader(Composite parent, int style, final AbstractWorkflowArtifact sma, final SMAEditor editor) { + super(parent, style); + this.awa = sma; + setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false)); + setLayout(ALayout.getZeroMarginLayout(2, false)); + editor.getToolkit().adapt(this); + + try { + if (!sma.isCancelled() && !sma.isCompleted()) { + Hyperlink link = editor.getToolkit().createHyperlink(this, LABEL, SWT.NONE); + link.addHyperlinkListener(new IHyperlinkListener() { + + @Override + public void linkEntered(HyperlinkEvent e) { + // do nothing + } + + @Override + public void linkExited(HyperlinkEvent e) { + // do nothing + } + + @Override + public void linkActivated(HyperlinkEvent e) { + try { + PromptChangeUtil.promptChangeAttribute(sma, AtsAttributeTypes.EstimatedHours, true, false); + } catch (Exception ex) { + OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex); + } + } + }); + } else { + Label origLabel = editor.getToolkit().createLabel(this, LABEL); + origLabel.setLayoutData(new GridData()); + } + + valueLabel = editor.getToolkit().createLabel(this, "0.0"); + valueLabel.setToolTipText(getToolTip()); + valueLabel.setLayoutData(new GridData()); + updateLabel(sma); + + } catch (OseeCoreException ex) { + Label errorLabel = editor.getToolkit().createLabel(this, "Error: " + ex.getLocalizedMessage()); + errorLabel.setForeground(Displays.getSystemColor(SWT.COLOR_RED)); + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + } + + } + + private String getEstHoursStr() throws OseeCoreException { + double awaEst = awa.getSoleAttributeValue(AtsAttributeTypes.EstimatedHours, 0.0); + double totalEst = awa.getEstimatedHoursTotal(); + if (awaEst != totalEst) { + return String.format("%s | %s", AtsUtil.doubleToI18nString(awaEst), AtsUtil.doubleToI18nString(totalEst)); + } else { + return AtsUtil.doubleToI18nString(awaEst); + } + } + + public void refresh() throws OseeCoreException { + updateLabel(awa); + } + + private void updateLabel(AbstractWorkflowArtifact sma) throws OseeCoreException { + valueLabel.setText(getEstHoursStr()); + valueLabel.getParent().layout(); + } + + private String getToolTip() { + return "[Workflow Estimate] | [Calculation: Sum estimated hours for workflow and all tasks and reviews]"; + } +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPercentCompleteHeader.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPercentCompleteHeader.java new file mode 100644 index 00000000000..8bf775c084c --- /dev/null +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPercentCompleteHeader.java @@ -0,0 +1,111 @@ +/******************************************************************************* + * Copyright (c) 2010 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.editor; + +import java.util.logging.Level; +import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; +import org.eclipse.osee.ats.artifact.AtsAttributeTypes; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.PromptChangeUtil; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.logging.OseeLevel; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.ui.swt.ALayout; +import org.eclipse.osee.framework.ui.swt.Displays; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.eclipse.ui.forms.events.HyperlinkEvent; +import org.eclipse.ui.forms.events.IHyperlinkListener; +import org.eclipse.ui.forms.widgets.Hyperlink; + +/** + * @author Donald G. Dunne + */ +public class SMAPercentCompleteHeader extends Composite { + + private final static String PERCENT_COMPLETE = "Percent Complete:"; + Label valueLabel; + private final AbstractWorkflowArtifact awa; + + public SMAPercentCompleteHeader(Composite parent, int style, final AbstractWorkflowArtifact sma, final SMAEditor editor) { + super(parent, style); + this.awa = sma; + setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false)); + setLayout(ALayout.getZeroMarginLayout(2, false)); + editor.getToolkit().adapt(this); + + try { + if (!sma.isCancelled() && !sma.isCompleted()) { + Hyperlink link = editor.getToolkit().createHyperlink(this, PERCENT_COMPLETE, SWT.NONE); + link.addHyperlinkListener(new IHyperlinkListener() { + + @Override + public void linkEntered(HyperlinkEvent e) { + // do nothing + } + + @Override + public void linkExited(HyperlinkEvent e) { + // do nothing + } + + @Override + public void linkActivated(HyperlinkEvent e) { + try { + PromptChangeUtil.promptChangeAttribute(sma, AtsAttributeTypes.PercentComplete, true, false); + } catch (Exception ex) { + OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex); + } + } + }); + } else { + Label origLabel = editor.getToolkit().createLabel(this, PERCENT_COMPLETE); + origLabel.setLayoutData(new GridData()); + } + + valueLabel = editor.getToolkit().createLabel(this, "0"); + valueLabel.setToolTipText(getToolTip()); + valueLabel.setLayoutData(new GridData()); + updateLabel(sma); + + } catch (OseeCoreException ex) { + Label errorLabel = editor.getToolkit().createLabel(this, "Error: " + ex.getLocalizedMessage()); + errorLabel.setForeground(Displays.getSystemColor(SWT.COLOR_RED)); + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + } + + } + + public String getPercentCompleteStr() throws OseeCoreException { + int awaPercent = awa.getSoleAttributeValue(AtsAttributeTypes.PercentComplete, 0); + int totalPecent = awa.getPercentCompleteSMATotal(); + if (awaPercent != totalPecent) { + return String.format("%d | %d", awaPercent, totalPecent); + } else { + return String.valueOf(awaPercent); + } + } + + public void refresh() throws OseeCoreException { + updateLabel(awa); + } + + private void updateLabel(AbstractWorkflowArtifact sma) throws OseeCoreException { + valueLabel.setText(getPercentCompleteStr()); + valueLabel.getParent().layout(); + } + + private String getToolTip() { + return " [Workflow Percent] | [Calculation: Sum of percent for workflow, reviews and tasks / # workflows, reviews and tasks] "; + } +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeStatus.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeStatus.java index 35119af53b4..9ca01f56840 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeStatus.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAPromptChangeStatus.java @@ -119,7 +119,12 @@ public class SMAPromptChangeStatus { if (sma instanceof TaskArtifact) { ((TaskArtifact) sma).statusPercentChanged(hours, percent, transaction); } else { - sma.getStateMgr().updateMetrics(hours, percent, true); + if (sma.getWorkDefinition().isStateWeightingEnabled()) { + sma.getStateMgr().updateMetrics(hours, percent, true); + } else { + sma.getStateMgr().updateMetrics(hours, percent, true); + sma.setSoleAttributeValue(AtsAttributeTypes.PercentComplete, percent); + } } if (persist) { sma.persist(transaction); @@ -130,5 +135,4 @@ public class SMAPromptChangeStatus { } } - } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMATargetVersionInfoComposite.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMATargetVersionInfoComposite.java index 1b29cfbdda9..4bbfead5d01 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMATargetVersionInfoComposite.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMATargetVersionInfoComposite.java @@ -18,7 +18,7 @@ import org.eclipse.osee.ats.column.TargetedVersionColumn; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.util.ReadOnlyHyperlinkListener; -import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions; +import org.eclipse.osee.ats.workdef.RuleDefinitionOption; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; @@ -103,8 +103,8 @@ public class SMATargetVersionInfoComposite extends Composite { String str = ""; // Don't transition without targeted version if so configured boolean required = - sma.teamDefHasWorkRule(AtsWorkDefinitions.RuleWorkItemId.atsRequireTargetedVersion.name()) || sma.getStateDefinition().hasRule( - AtsWorkDefinitions.RuleWorkItemId.atsRequireTargetedVersion.name()); + sma.teamDefHasRule(RuleDefinitionOption.RequireTargetedVersion) || sma.getStateDefinition().hasRule( + RuleDefinitionOption.RequireTargetedVersion); if (sma.getTargetedVersion() != null) { str = sma.getTargetedVersion() + ""; diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java index 62257b9d9e3..d703313ac8d 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkFlowSection.java @@ -41,12 +41,12 @@ import org.eclipse.osee.ats.util.XCancellationReasonTextWidget; import org.eclipse.osee.ats.util.widgets.ReviewManager; import org.eclipse.osee.ats.util.widgets.dialog.SMAStatusDialog; import org.eclipse.osee.ats.workdef.ReviewBlockType; +import org.eclipse.osee.ats.workdef.RuleDefinitionOption; import org.eclipse.osee.ats.workdef.StateDefinition; import org.eclipse.osee.ats.workdef.StateDefinitionLabelProvider; import org.eclipse.osee.ats.workdef.StateDefinitionViewSorter; import org.eclipse.osee.ats.workdef.StateXWidgetPage; import org.eclipse.osee.ats.workflow.TransitionManager; -import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions; import org.eclipse.osee.framework.core.data.SystemUser; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.jdk.core.util.DateUtil; @@ -202,8 +202,8 @@ public class SMAWorkFlowSection extends SectionPart { createMetricsHeader(workComp); // Add any dynamic XWidgets declared for page by IAtsStateItem extensions - for (IAtsStateItem item : AtsStateItemManager.getStateItems(statePage.getStateDefinition())) { - for (XWidget xWidget : item.getDynamicXWidgetsPreBody(sma)) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems()) { + for (XWidget xWidget : item.getDynamicXWidgetsPreBody(sma, statePage.getPageName())) { xWidget.createWidgets(workComp, 2); allXWidgets.add(xWidget); allXWidgets.addAll(xWidget.getChildrenXWidgets()); @@ -231,8 +231,8 @@ public class SMAWorkFlowSection extends SectionPart { } // Add any dynamic XWidgets declared for page by IAtsStateItem extensions - for (IAtsStateItem item : AtsStateItemManager.getStateItems(statePage.getStateDefinition())) { - for (XWidget xWidget : item.getDynamicXWidgetsPostBody(sma)) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems()) { + for (XWidget xWidget : item.getDynamicXWidgetsPostBody(sma, statePage.getPageName())) { xWidget.createWidgets(workComp, 2); allXWidgets.add(xWidget); allXWidgets.addAll(xWidget.getChildrenXWidgets()); @@ -249,15 +249,6 @@ public class SMAWorkFlowSection extends SectionPart { } } - // Check extension points for page creation - for (IAtsStateItem item : AtsStateItemManager.getStateItems(statePage.getStateDefinition())) { - Result result = item.pageCreated(toolkit, statePage, sma, xModListener, isEditable || isGlobalEditable); - if (result.isFalse()) { - result.popup(); - OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Error in page creation => " + result.getText()); - } - } - return workComp; } @@ -291,8 +282,10 @@ public class SMAWorkFlowSection extends SectionPart { layout.marginLeft = 2; comp.setLayout(layout); comp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - allXWidgets.add(new StatePercentCompleteXWidget(getManagedForm(), statePage, sma, comp, 2, xModListener, - isCurrentState, editor)); + if (sma.getWorkDefinition().isStateWeightingEnabled()) { + allXWidgets.add(new StatePercentCompleteXWidget(getManagedForm(), statePage, sma, comp, 2, xModListener, + isCurrentState, editor)); + } allXWidgets.add(new StateHoursSpentXWidget(getManagedForm(), statePage, sma, comp, 2, xModListener, isCurrentState, editor)); } @@ -428,7 +421,7 @@ public class SMAWorkFlowSection extends SectionPart { return; } // Notify extensions of widget modified - for (IAtsStateItem item : AtsStateItemManager.getStateItems(statePage.getStateDefinition())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems()) { try { item.widgetModified(fSection, xWidget); } catch (Exception ex) { @@ -608,7 +601,7 @@ public class SMAWorkFlowSection extends SectionPart { public void updateTransitionToAssignees() throws OseeCoreException { Collection<User> assignees = null; // Determine if the is an override set of assigness - for (IAtsStateItem item : AtsStateItemManager.getStateItems(statePage.getStateDefinition())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems()) { assignees = item.getOverrideTransitionToAssignees(this); if (assignees != null) { break; @@ -625,7 +618,7 @@ public class SMAWorkFlowSection extends SectionPart { public void updateTransitionToState() throws OseeCoreException { // Determine if there is a transitionToStateOverride for this page String transitionStateOverride = null; - for (IAtsStateItem item : AtsStateItemManager.getStateItems(statePage.getStateDefinition())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems()) { transitionStateOverride = item.getOverrideTransitionToStateName(this); if (transitionStateOverride != null) { break; @@ -758,10 +751,9 @@ public class SMAWorkFlowSection extends SectionPart { } // Don't transition without targeted version if so configured - boolean teamDefRequiresTargetedVersion = - sma.teamDefHasWorkRule(AtsWorkDefinitions.RuleWorkItemId.atsRequireTargetedVersion.name()); + boolean teamDefRequiresTargetedVersion = sma.teamDefHasRule(RuleDefinitionOption.RequireTargetedVersion); boolean pageRequiresTargetedVersion = - sma.getStateDefinition().hasRule(AtsWorkDefinitions.RuleWorkItemId.atsRequireTargetedVersion.name()); + sma.getStateDefinition().hasRule(RuleDefinitionOption.RequireTargetedVersion); // Only check this if TeamWorkflow, not for reviews if (sma instanceof TeamWorkFlowArtifact && (teamDefRequiresTargetedVersion || pageRequiresTargetedVersion) && // @@ -783,7 +775,7 @@ public class SMAWorkFlowSection extends SectionPart { } // Check extension points for valid transition - for (IAtsStateItem item : AtsStateItemManager.getStateItems(statePage.getStateDefinition())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems()) { try { result = item.transitioning(sma, sma.getStateMgr().getCurrentState(), toStateDefinition, toAssignees); if (result.isFalse()) { @@ -936,9 +928,9 @@ public class SMAWorkFlowSection extends SectionPart { // and one of these // // page is define to allow anyone to edit - (sma.getStateDefinition().hasRule(AtsWorkDefinitions.RuleWorkItemId.atsAllowEditToAll.name()) || + (sma.getStateDefinition().hasRule(RuleDefinitionOption.AllowEditToAll) || // team definition has allowed anyone to edit - sma.teamDefHasWorkRule(AtsWorkDefinitions.RuleWorkItemId.atsAllowEditToAll.name()) || + sma.teamDefHasRule(RuleDefinitionOption.AllowEditToAll) || // priviledged edit mode is on editor.isPriviledgedEditModeEnabled() || // current user is assigned 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 21809d34e82..dff1266717b 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 @@ -45,9 +45,9 @@ import org.eclipse.osee.ats.artifact.note.NoteItem; import org.eclipse.osee.ats.config.AtsBulkLoad; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.workdef.RuleDefinitionOption; import org.eclipse.osee.ats.workdef.StateXWidgetPage; import org.eclipse.osee.ats.workdef.WorkDefinitionMatch; -import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.operation.Operations; import org.eclipse.osee.framework.jdk.core.util.DateUtil; @@ -354,7 +354,8 @@ public class SMAWorkFlowTab extends FormPage implements IActionable { if (sma.isTeamWorkflow()) { actionableItemHeader = new SMAActionableItemHeader(headerComp, editor.getToolkit(), sma); } - workflowMetricsHeader = new SMAWorkflowMetricsHeader(headerComp, editor.getToolkit(), sma); + workflowMetricsHeader = + new SMAWorkflowMetricsHeader(headerComp, editor.getToolkit(), sma, editor, managedForm); int headerCompColumns = 4; createWorkDefHeader(headerComp, editor.getToolkit(), sma, headerCompColumns); createSMANotesHeader(headerComp, editor.getToolkit(), sma, headerCompColumns); @@ -409,9 +410,9 @@ public class SMAWorkFlowTab extends FormPage implements IActionable { (SMAWorkFlowSection.isEditable(sma, page, editor) || // // page is define to allow anyone to edit - sma.getStateDefinition().hasRule(AtsWorkDefinitions.RuleWorkItemId.atsAllowAssigneeToAll.name()) || + sma.getStateDefinition().hasRule(RuleDefinitionOption.AllowAssigneeToAll) || // team definition has allowed anyone to edit - sma.teamDefHasWorkRule(AtsWorkDefinitions.RuleWorkItemId.atsAllowAssigneeToAll.name())); + sma.teamDefHasRule(RuleDefinitionOption.AllowAssigneeToAll)); new SMAAssigneesHeader(comp, SWT.NONE, sma, editable, editor); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkflowMetricsHeader.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkflowMetricsHeader.java index 253466e2fb1..919e53c126c 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkflowMetricsHeader.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/SMAWorkflowMetricsHeader.java @@ -24,33 +24,42 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; +import org.eclipse.ui.forms.IManagedForm; /** * @author Donald G. Dunne */ public class SMAWorkflowMetricsHeader extends Composite { - private final AbstractWorkflowArtifact sma; - private Label percentLabel, estHoursLabel, hoursSpentLabel, remainHoursLabel; + private final AbstractWorkflowArtifact awa; + private Label percentLabel, hoursSpentLabel, remainHoursLabel; + private SMAPercentCompleteHeader totalPercentHeader; + private SMAEstimatedHoursHeader estimatedHoursHeader; - public SMAWorkflowMetricsHeader(Composite parent, XFormToolkit toolkit, AbstractWorkflowArtifact sma) { + public SMAWorkflowMetricsHeader(Composite parent, XFormToolkit toolkit, AbstractWorkflowArtifact awa, SMAEditor editor, IManagedForm managedForm) { super(parent, SWT.NONE); - this.sma = sma; + this.awa = awa; try { + int numColumns = 8; + if (!awa.getWorkDefinition().isStateWeightingEnabled()) { + numColumns = 10; + } toolkit.adapt(this); - setLayout(ALayout.getZeroMarginLayout(8, false)); + setLayout(ALayout.getZeroMarginLayout(numColumns, false)); setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - percentLabel = - FormsUtil.createLabelValue(toolkit, this, "Total Percent: ", "", - "Calculation: sum of percent for all states (including all tasks and reviews) / # statusable states"); - estHoursLabel = - FormsUtil.createLabelValue(toolkit, this, "Total Estimated Hours: ", "", - "Calculation: sum estimated hours for workflow and all tasks and reviews"); + if (awa.getWorkDefinition().isStateWeightingEnabled()) { + percentLabel = + FormsUtil.createLabelValue(toolkit, this, "Total Percent: ", "", + "Calculation: Sum of percent for all states (including all tasks and reviews) / # statusable states (if configured)"); + } else { + totalPercentHeader = new SMAPercentCompleteHeader(this, 2, awa, editor); + } + estimatedHoursHeader = new SMAEstimatedHoursHeader(this, 2, awa, editor); hoursSpentLabel = FormsUtil.createLabelValue(toolkit, this, "Total Hours Spent: ", "", - "Calculation: sum of all hours spent for all tasks, reviews and in each state"); + "Calculation: Sum of all hours spent for all tasks, reviews and in each state"); remainHoursLabel = FormsUtil.createLabelValue(toolkit, this, "Remaining Hours: ", "", RemainingHoursColumn.getInstance().getDescription()); @@ -62,32 +71,37 @@ public class SMAWorkflowMetricsHeader extends Composite { } private void refresh() { - if (percentLabel.isDisposed()) { + if (hoursSpentLabel.isDisposed()) { return; } try { - if (!percentLabel.isDisposed()) { - percentLabel.setText(String.valueOf(sma.getPercentCompleteSMATotal())); + if (totalPercentHeader != null) { + totalPercentHeader.refresh(); } - if (estHoursLabel != null && !estHoursLabel.isDisposed()) { - estHoursLabel.setText(String.valueOf(AtsUtil.doubleToI18nString(sma.getEstimatedHoursTotal()))); + if (percentLabel != null && !percentLabel.isDisposed()) { + percentLabel.setText(String.valueOf(awa.getPercentCompleteSMATotal())); + } + if (estimatedHoursHeader != null) { + estimatedHoursHeader.refresh(); } if (hoursSpentLabel != null && !hoursSpentLabel.isDisposed()) { - hoursSpentLabel.setText(String.valueOf(AtsUtil.doubleToI18nString(sma.getHoursSpentSMATotal()))); + hoursSpentLabel.setText(String.valueOf(AtsUtil.doubleToI18nString(awa.getHoursSpentSMATotal()))); } if (hoursSpentLabel != null && !hoursSpentLabel.isDisposed()) { - Result result = RemainingHoursColumn.isRemainingHoursValid(sma); + Result result = RemainingHoursColumn.isRemainingHoursValid(awa); if (result.isFalse()) { remainHoursLabel.setText("Error" + result.getText()); } else { - remainHoursLabel.setText(String.valueOf(AtsUtil.doubleToI18nString(RemainingHoursColumn.getRemainingHours(sma)))); + remainHoursLabel.setText(String.valueOf(AtsUtil.doubleToI18nString(RemainingHoursColumn.getRemainingHours(awa)))); } } } catch (Exception ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); } - percentLabel.update(); + if (percentLabel != null) { + percentLabel.update(); + } layout(); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewDecisionStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewDecisionStateItem.java index b95d60c2376..c83eef3a1f8 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewDecisionStateItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewDecisionStateItem.java @@ -18,9 +18,10 @@ import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.DecisionReviewArtifact; import org.eclipse.osee.ats.artifact.DecisionReviewState; import org.eclipse.osee.ats.editor.SMAWorkFlowSection; +import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.util.widgets.DecisionOption; import org.eclipse.osee.ats.util.widgets.XDecisionOptions; -import org.eclipse.osee.ats.workdef.StateXWidgetPage; +import org.eclipse.osee.ats.workdef.StateDefinition; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeStateException; import org.eclipse.osee.framework.skynet.core.User; @@ -36,42 +37,55 @@ import org.eclipse.ui.forms.widgets.FormToolkit; */ public class AtsDecisionReviewDecisionStateItem extends AtsStateItem { + public AtsDecisionReviewDecisionStateItem() { + super(AtsDecisionReviewDecisionStateItem.class.getSimpleName()); + } + @Override - public String getId() { - return "osee.ats.decisionReview.Decision"; + public String getDescription() { + return "Add decision options to Decision state based on prepare state's entries."; } @Override - public Result xWidgetCreating(XWidget xWidget, FormToolkit toolkit, StateXWidgetPage page, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { - if (xWidget == null) { - throw new OseeStateException("Can't retrieve decision review combo widget to set."); - } - if (!(art instanceof AbstractWorkflowArtifact)) { - throw new OseeCoreException( - "AtsDecisionReviewDecisionStateItem.xWidgetCreating expected a StateMachineArtifact"); - } - if (xWidget.getLabel().equals(AtsAttributeTypes.Decision.getUnqualifiedName())) { - XComboDam decisionComboDam = (XComboDam) xWidget; - List<String> options = new ArrayList<String>(); - XDecisionOptions xDecOptions = new XDecisionOptions((AbstractWorkflowArtifact) art); - for (DecisionOption opt : xDecOptions.getDecisionOptions()) { - options.add(opt.getName()); + public Result xWidgetCreating(XWidget xWidget, FormToolkit toolkit, StateDefinition stateDefinition, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { + if (art.isOfType(AtsArtifactTypes.DecisionReview) && stateDefinition.getPageName().equals( + DecisionReviewState.Decision.getPageName())) { + if (xWidget == null) { + throw new OseeStateException("Can't retrieve decision review combo widget to set."); + } + if (xWidget.getLabel().equals(AtsAttributeTypes.Decision.getUnqualifiedName())) { + XComboDam decisionComboDam = (XComboDam) xWidget; + List<String> options = new ArrayList<String>(); + XDecisionOptions xDecOptions = new XDecisionOptions((AbstractWorkflowArtifact) art); + for (DecisionOption opt : xDecOptions.getDecisionOptions()) { + options.add(opt.getName()); + } + decisionComboDam.setDataStrings(options.toArray(new String[options.size()])); } - decisionComboDam.setDataStrings(options.toArray(new String[options.size()])); } return Result.TrueResult; } @Override public String getOverrideTransitionToStateName(SMAWorkFlowSection section) throws OseeCoreException { - DecisionOption decisionOption = getDecisionOption(section); + if (isApplicable(section)) { + if (section.getTransitionToStateCombo() == null || section.getTransitionToStateCombo().getSelected() == null) { + return null; + } + XWidget xWidget = section.getPage().getLayoutData(AtsAttributeTypes.Decision.getName()).getXWidget(); + XComboDam decisionComboDam = (XComboDam) xWidget; + DecisionReviewArtifact decArt = (DecisionReviewArtifact) section.getSma(); + return getOverrideTransitionToStateName(decArt, decisionComboDam); + } + return null; + } + + public String getOverrideTransitionToStateName(DecisionReviewArtifact decArt, XComboDam decisionComboDam) throws OseeCoreException { + DecisionOption decisionOption = getDecisionOption(decArt, decisionComboDam); if (decisionOption == null) { return null; } boolean followUpRequired = decisionOption.isFollowupRequired(); - if (section.getTransitionToStateCombo() == null || section.getTransitionToStateCombo().getSelected() == null) { - return null; - } if (followUpRequired) { return DecisionReviewState.Followup.getPageName(); } else { @@ -81,27 +95,34 @@ public class AtsDecisionReviewDecisionStateItem extends AtsStateItem { @Override public Collection<User> getOverrideTransitionToAssignees(SMAWorkFlowSection section) throws OseeCoreException { - DecisionOption decisionOption = getDecisionOption(section); + if (isApplicable(section)) { + XWidget xWidget = section.getPage().getLayoutData(AtsAttributeTypes.Decision.getName()).getXWidget(); + XComboDam decisionComboDam = (XComboDam) xWidget; + DecisionReviewArtifact decArt = (DecisionReviewArtifact) section.getSma(); + return getOverrideTransitionToAssignees(decArt, decisionComboDam); + } + return null; + } + + public Collection<User> getOverrideTransitionToAssignees(DecisionReviewArtifact decArt, XComboDam decisionComboDam) throws OseeCoreException { + DecisionOption decisionOption = getDecisionOption(decArt, decisionComboDam); if (decisionOption == null) { return null; } return decisionOption.getAssignees(); } - private DecisionOption getDecisionOption(SMAWorkFlowSection section) throws OseeCoreException { - XWidget xWidget = section.getPage().getLayoutData(AtsAttributeTypes.Decision.getName()).getXWidget(); - XComboDam decisionComboDam = (XComboDam) xWidget; + private boolean isApplicable(SMAWorkFlowSection section) { + return section.getSma().isOfType(AtsArtifactTypes.DecisionReview) && section.getSma().getCurrentStateName().equals( + DecisionReviewState.Decision.getPageName()); + } + + private DecisionOption getDecisionOption(DecisionReviewArtifact decRevArt, XComboDam decisionComboDam) throws OseeCoreException { String decision = decisionComboDam.get(); if (decision.equals("")) { return null; } - DecisionReviewArtifact decArt = (DecisionReviewArtifact) section.getSma(); - return decArt.decisionOptions.getDecisionOption(decision); - } - - @Override - public String getDescription() { - return "AtsDecisionReviewDecisionStateItem - Add decision options to review state based on prepare state's entries."; + return decRevArt.decisionOptions.getDecisionOption(decision); } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewPrepareStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewPrepareStateItem.java index 51a9aa48d59..f4cd7a97ce5 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewPrepareStateItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsDecisionReviewPrepareStateItem.java @@ -13,6 +13,7 @@ package org.eclipse.osee.ats.editor.stateItem; import java.util.Collection; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.DecisionReviewState; +import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.util.widgets.XDecisionOptions; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.skynet.core.User; @@ -24,14 +25,19 @@ import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IWorkPage; */ public class AtsDecisionReviewPrepareStateItem extends AtsStateItem { + public AtsDecisionReviewPrepareStateItem() { + super(AtsDecisionReviewPrepareStateItem.class.getSimpleName()); + } + @Override - public String getId() { - return "osee.ats.decisionReview.Prepare"; + public String getDescription() { + return "Add validation of Decision Review options prior to transitioning from Prepare to Decision."; } @Override public Result transitioning(AbstractWorkflowArtifact sma, IWorkPage fromState, IWorkPage toState, Collection<User> toAssignees) throws OseeCoreException { - if (fromState.getPageName().equals(DecisionReviewState.Prepare.getPageName()) && toState.getPageName().equals( + if (sma.isOfType(AtsArtifactTypes.DecisionReview) && fromState.getPageName().equals( + DecisionReviewState.Prepare.getPageName()) && toState.getPageName().equals( DecisionReviewState.Decision.getPageName())) { XDecisionOptions decOptions = new XDecisionOptions(sma); return decOptions.validateDecisionOptions(); @@ -39,9 +45,4 @@ public class AtsDecisionReviewPrepareStateItem extends AtsStateItem { return Result.TrueResult; } - @Override - public String getDescription() { - return "AtsDecisionReviewPrepareStateItem - Add validation of decision options prior to transitioning."; - } - } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItem.java index 17db26e7128..59b5919c045 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsForceAssigneesToTeamLeadsStateItem.java @@ -11,13 +11,10 @@ package org.eclipse.osee.ats.editor.stateItem; import java.util.Collection; -import java.util.logging.Level; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; -import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions; import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IWorkPage; @@ -27,29 +24,24 @@ import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IWorkPage; */ public class AtsForceAssigneesToTeamLeadsStateItem extends AtsStateItem { + public AtsForceAssigneesToTeamLeadsStateItem() { + super(AtsForceAssigneesToTeamLeadsStateItem.class.getSimpleName()); + } + @Override - public String getId() { - return AtsStateItem.ALL_STATE_IDS; + public String getDescription() { + return "Check if toState is configured to force assignees to leads and set leads accordingly."; } @Override public void transitioned(AbstractWorkflowArtifact sma, IWorkPage fromState, IWorkPage toState, Collection<User> toAssignees, SkynetTransaction transaction) throws OseeCoreException { - super.transitioned(sma, fromState, toState, toAssignees, transaction); if (sma.isTeamWorkflow() && AtsWorkDefinitions.isForceAssigneesToTeamLeads(sma.getStateDefinitionByName(toState.getPageName()))) { - // Set Assignees to all user roles users - try { - Collection<User> teamLeads = ((TeamWorkFlowArtifact) sma).getTeamDefinition().getLeads(); + Collection<User> teamLeads = ((TeamWorkFlowArtifact) sma).getTeamDefinition().getLeads(); + if (!teamLeads.isEmpty()) { sma.getStateMgr().setAssignees(teamLeads); sma.persist(transaction); - } catch (Exception ex) { - OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); } } } - @Override - public String getDescription() { - return "AtsForceAssigneesToTeamLeadsStateItem"; - } - } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsHandleAddReviewRuleStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsHandleAddReviewRuleStateItem.java index 5f20b270ff7..add1bde5082 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsHandleAddReviewRuleStateItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsHandleAddReviewRuleStateItem.java @@ -16,7 +16,6 @@ import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.DecisionReviewArtifact; import org.eclipse.osee.ats.artifact.PeerToPeerReviewArtifact; import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; -import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.workdef.DecisionReviewDefinition; import org.eclipse.osee.ats.workdef.PeerReviewDefinition; import org.eclipse.osee.ats.workdef.StateEventType; @@ -34,25 +33,23 @@ import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IWorkPage; */ public class AtsHandleAddReviewRuleStateItem extends AtsStateItem { + public AtsHandleAddReviewRuleStateItem() { + super(AtsHandleAddReviewRuleStateItem.class.getSimpleName()); + } + @Override - public String getId() { - return AtsStateItem.ALL_STATE_IDS; + public String getDescription() { + return "Create review if AddDecisionReviewRule or AddPeerToPeerReviewRule exists for this state."; } @Override public void transitioned(AbstractWorkflowArtifact sma, IWorkPage fromState, IWorkPage toState, Collection<User> toAssignees, SkynetTransaction transaction) throws OseeCoreException { - super.transitioned(sma, fromState, toState, toAssignees, transaction); - // Create any decision or peerToPeer reviews for transitionTo and transitionFrom - runRule(sma, toState, transaction); - } - - public static void runRule(AbstractWorkflowArtifact sma, IWorkPage toState, SkynetTransaction transaction) throws OseeCoreException { - Date createdDate = new Date(); - User createdBy = UserManager.getUser(SystemUser.OseeSystem); - if (!sma.isOfType(AtsArtifactTypes.TeamWorkflow)) { + if (!sma.isTeamWorkflow()) { return; } + Date createdDate = new Date(); + User createdBy = UserManager.getUser(SystemUser.OseeSystem); TeamWorkFlowArtifact teamArt = (TeamWorkFlowArtifact) sma; for (DecisionReviewDefinition decRevDef : teamArt.getStateDefinition().getDecisionReviews()) { @@ -76,12 +73,6 @@ public class AtsHandleAddReviewRuleStateItem extends AtsStateItem { } } } - - } - - @Override - public String getDescription() { - return "AtsHandleAddReviewRuleStateItem - If AddDecisionReviewRule or AddPeerToPeerReviewRule exists for this state, create review."; } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewPrepareStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewPrepareStateItem.java index 776622bfd77..00dc2d17178 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewPrepareStateItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewPrepareStateItem.java @@ -13,8 +13,10 @@ package org.eclipse.osee.ats.editor.stateItem; import java.util.logging.Level; import org.eclipse.osee.ats.artifact.AbstractReviewArtifact; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; +import org.eclipse.osee.ats.artifact.PeerToPeerReviewState; import org.eclipse.osee.ats.internal.AtsPlugin; -import org.eclipse.osee.ats.workdef.StateXWidgetPage; +import org.eclipse.osee.ats.util.AtsArtifactTypes; +import org.eclipse.osee.ats.workdef.StateDefinition; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; @@ -28,17 +30,22 @@ import org.eclipse.ui.forms.widgets.FormToolkit; */ public class AtsPeerToPeerReviewPrepareStateItem extends AtsStateItem { + public AtsPeerToPeerReviewPrepareStateItem() { + super(AtsPeerToPeerReviewPrepareStateItem.class.getSimpleName()); + } + @Override - public String getId() { - return "osee.ats.peerToPeerReview.Prepare"; + public String getDescription() { + return "If stand-alone review, remove blocking review enablement and required entry."; } @Override - public void xWidgetCreated(XWidget widget, FormToolkit toolkit, StateXWidgetPage page, Artifact art, XModifiedListener modListener, boolean isEditable) throws OseeCoreException { - super.xWidgetCreated(widget, toolkit, page, art, modListener, isEditable); + public void xWidgetCreated(XWidget widget, FormToolkit toolkit, StateDefinition stateDefinition, Artifact art, XModifiedListener modListener, boolean isEditable) { try { - if (art instanceof AbstractReviewArtifact && ((AbstractReviewArtifact) art).getParentSMA() == null && widget.getLabel().equals( - AtsAttributeTypes.ReviewBlocks.getUnqualifiedName())) { + if (art.isOfType(AtsArtifactTypes.PeerToPeerReview) && // + stateDefinition.getPageName().equals(PeerToPeerReviewState.Prepare.getPageName()) && // + ((AbstractReviewArtifact) art).getParentSMA() == null && // + widget.getLabel().equals(AtsAttributeTypes.ReviewBlocks.getUnqualifiedName())) { XComboDam decisionComboDam = (XComboDam) widget; decisionComboDam.setEnabled(false); decisionComboDam.setRequiredEntry(false); @@ -48,9 +55,4 @@ public class AtsPeerToPeerReviewPrepareStateItem extends AtsStateItem { } } - @Override - public String getDescription() { - return "AtsPeerToPeerReviewPrepareStateItem - If stand-alone review, remove blocking review enablement and required entry."; - } - } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewReviewStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewReviewStateItem.java index 9c5ab034ecc..bc206558673 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewReviewStateItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsPeerToPeerReviewReviewStateItem.java @@ -16,6 +16,7 @@ import java.util.Set; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.artifact.PeerToPeerReviewArtifact; import org.eclipse.osee.ats.artifact.PeerToPeerReviewState; +import org.eclipse.osee.ats.util.AtsArtifactTypes; import org.eclipse.osee.ats.util.widgets.role.UserRole; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.skynet.core.User; @@ -27,34 +28,32 @@ import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IWorkPage; */ public class AtsPeerToPeerReviewReviewStateItem extends AtsStateItem { + public AtsPeerToPeerReviewReviewStateItem() { + super(AtsPeerToPeerReviewReviewStateItem.class.getSimpleName()); + } + @Override - public String getId() { - return "osee.ats.peerToPeerReview.Review"; + public String getDescription() { + return "Assign review state to all members of review as per role in prepare state."; } @Override public void transitioned(AbstractWorkflowArtifact sma, IWorkPage fromState, IWorkPage toState, Collection<User> toAssignees, SkynetTransaction transaction) throws OseeCoreException { - super.transitioned(sma, fromState, toState, toAssignees, transaction); - if (!toState.getPageName().equals(PeerToPeerReviewState.Review.getPageName())) { - return; - } - // Set Assignees to all user roles users - Set<User> assignees = new HashSet<User>(); - PeerToPeerReviewArtifact peerArt = (PeerToPeerReviewArtifact) sma; - for (UserRole uRole : peerArt.getUserRoleManager().getUserRoles()) { - if (!uRole.isCompleted()) { - assignees.add(uRole.getUser()); + if (sma.isOfType(AtsArtifactTypes.PeerToPeerReview) && toState.getPageName().equals( + PeerToPeerReviewState.Review.getPageName())) { + // Set Assignees to all user roles users + Set<User> assignees = new HashSet<User>(); + PeerToPeerReviewArtifact peerArt = (PeerToPeerReviewArtifact) sma; + for (UserRole uRole : peerArt.getUserRoleManager().getUserRoles()) { + if (!uRole.isCompleted()) { + assignees.add(uRole.getUser()); + } } - } - assignees.addAll(sma.getStateMgr().getAssignees()); + assignees.addAll(sma.getStateMgr().getAssignees()); - sma.getStateMgr().setAssignees(assignees); - sma.persist(transaction); - } - - @Override - public String getDescription() { - return "AtsPeerToPeerReviewReviewStateItem - assign review state to all members of review as per role in prepare state."; + sma.getStateMgr().setAssignees(assignees); + sma.persist(transaction); + } } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItem.java index 144e9be6b1c..38a63811b15 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItem.java @@ -10,13 +10,12 @@ *******************************************************************************/ package org.eclipse.osee.ats.editor.stateItem; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.editor.SMAWorkFlowSection; -import org.eclipse.osee.ats.workdef.StateXWidgetPage; +import org.eclipse.osee.ats.workdef.StateDefinition; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; @@ -33,6 +32,11 @@ import org.eclipse.ui.forms.widgets.FormToolkit; public abstract class AtsStateItem implements IAtsStateItem { public final static String ALL_STATE_IDS = "ALL"; + private final String name; + + public AtsStateItem(String name) { + this.name = name; + } @SuppressWarnings("unused") @Override @@ -46,17 +50,9 @@ public abstract class AtsStateItem implements IAtsStateItem { return null; } - protected String getId() { - return null; - } - - @SuppressWarnings("unused") @Override - public Collection<String> getIds() throws OseeCoreException { - if (getId() == null) { - return Collections.emptyList(); - } - return Arrays.asList(getId()); + public String getName() { + return name; } @SuppressWarnings("unused") @@ -73,24 +69,18 @@ public abstract class AtsStateItem implements IAtsStateItem { @SuppressWarnings("unused") @Override - public List<XWidget> getDynamicXWidgetsPostBody(AbstractWorkflowArtifact sma) throws OseeCoreException { + public List<XWidget> getDynamicXWidgetsPostBody(AbstractWorkflowArtifact sma, String stateName) throws OseeCoreException { return Collections.emptyList(); } @SuppressWarnings("unused") @Override - public List<XWidget> getDynamicXWidgetsPreBody(AbstractWorkflowArtifact sma) throws OseeCoreException { + public List<XWidget> getDynamicXWidgetsPreBody(AbstractWorkflowArtifact sma, String stateName) throws OseeCoreException { return Collections.emptyList(); } @SuppressWarnings("unused") @Override - public Result pageCreated(FormToolkit toolkit, StateXWidgetPage page, AbstractWorkflowArtifact sma, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { - return Result.TrueResult; - } - - @SuppressWarnings("unused") - @Override public void transitioned(AbstractWorkflowArtifact sma, IWorkPage fromState, IWorkPage toState, Collection<User> toAssignees, SkynetTransaction transaction) throws OseeCoreException { // provided for subclass implementation } @@ -109,13 +99,13 @@ public abstract class AtsStateItem implements IAtsStateItem { @SuppressWarnings("unused") @Override - public void xWidgetCreated(XWidget xWidget, FormToolkit toolkit, StateXWidgetPage page, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { + public void xWidgetCreated(XWidget xWidget, FormToolkit toolkit, StateDefinition stateDefinition, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { // provided for subclass implementation } @SuppressWarnings("unused") @Override - public Result xWidgetCreating(XWidget xWidget, FormToolkit toolkit, StateXWidgetPage page, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { + public Result xWidgetCreating(XWidget xWidget, FormToolkit toolkit, StateDefinition stateDefinition, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { return Result.TrueResult; } @@ -124,4 +114,14 @@ public abstract class AtsStateItem implements IAtsStateItem { public boolean isAccessControlViaAssigneesEnabledForBranching() throws OseeCoreException { return false; } + + @Override + public String getFullName() { + return getClass().getName(); + } + + @Override + public String toString() { + return getName(); + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItemManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItemManager.java index 17cab9713f1..2f055656c94 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItemManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/AtsStateItemManager.java @@ -17,10 +17,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.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.internal.AtsPlugin; -import org.eclipse.osee.ats.workdef.StateDefinition; -import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.osgi.framework.Bundle; @@ -32,23 +29,9 @@ public class AtsStateItemManager { private final static List<IAtsStateItem> stateItems = new ArrayList<IAtsStateItem>(); - public static List<IAtsStateItem> getStateItems(StateDefinition stateDef) throws OseeCoreException { - return getStateItems(stateDef.getFullName()); - } - - private static List<IAtsStateItem> getStateItems(String stateId) throws OseeCoreException { + public static List<IAtsStateItem> getStateItems() { loadAllStateItems(); - List<IAtsStateItem> items = new ArrayList<IAtsStateItem>(); - for (IAtsStateItem item : stateItems) { - if (item.getIds().contains(AtsStateItem.ALL_STATE_IDS) || item.getIds().contains(stateId)) { - items.add(item); - } - } - return items; - } - - public static List<IAtsStateItem> getCurrentPageStateItems(AbstractWorkflowArtifact sma) throws OseeCoreException { - return getStateItems(sma.getStateDefinition().getFullName()); + return stateItems; } @SuppressWarnings({"rawtypes"}) diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/IAtsStateItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/IAtsStateItem.java index bbb4ee9a6da..55deb744cf6 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/IAtsStateItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/IAtsStateItem.java @@ -14,7 +14,7 @@ import java.util.Collection; import java.util.List; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; import org.eclipse.osee.ats.editor.SMAWorkFlowSection; -import org.eclipse.osee.ats.workdef.StateXWidgetPage; +import org.eclipse.osee.ats.workdef.StateDefinition; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; @@ -30,11 +30,13 @@ import org.eclipse.ui.forms.widgets.FormToolkit; */ public interface IAtsStateItem { - public Result pageCreated(FormToolkit toolkit, StateXWidgetPage page, AbstractWorkflowArtifact sma, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException; + public String getName(); - public Result xWidgetCreating(XWidget xWidget, FormToolkit toolkit, StateXWidgetPage page, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException; + public String getFullName(); - public void xWidgetCreated(XWidget xWidget, FormToolkit toolkit, StateXWidgetPage page, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException; + public Result xWidgetCreating(XWidget xWidget, FormToolkit toolkit, StateDefinition stateDefinition, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException; + + public void xWidgetCreated(XWidget xWidget, FormToolkit toolkit, StateDefinition stateDefinition, Artifact art, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException; public void widgetModified(SMAWorkFlowSection section, XWidget xWidget) throws OseeCoreException; @@ -42,14 +44,12 @@ public interface IAtsStateItem { public Collection<User> getOverrideTransitionToAssignees(SMAWorkFlowSection section) throws OseeCoreException; - public String getDescription() throws OseeCoreException; + public String getDescription(); public String getBranchShortName(AbstractWorkflowArtifact sma) throws OseeCoreException; public boolean isAccessControlViaAssigneesEnabledForBranching() throws OseeCoreException; - public Collection<String> getIds() throws OseeCoreException; - /** * @return Result of operation. If Result.isFalse(), transition will not continue and Result.popup will occur. */ @@ -62,8 +62,8 @@ public interface IAtsStateItem { */ public Result committing(AbstractWorkflowArtifact sma) throws OseeCoreException; - public List<XWidget> getDynamicXWidgetsPostBody(AbstractWorkflowArtifact sma) throws OseeCoreException; + public List<XWidget> getDynamicXWidgetsPostBody(AbstractWorkflowArtifact sma, String stateName) throws OseeCoreException; - public List<XWidget> getDynamicXWidgetsPreBody(AbstractWorkflowArtifact sma) throws OseeCoreException; + public List<XWidget> getDynamicXWidgetsPreBody(AbstractWorkflowArtifact sma, String stateName) throws OseeCoreException; } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java index 095b4205302..6a0756008ae 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java @@ -184,6 +184,8 @@ public final class AtsNavigateViewItems implements XNavigateViewItems { new ConvertAtsFor097Database(dbConvertItems); new ConvertAtsSingleFor097Database(dbConvertItems); new ConvertWorkFlowDefinitions(dbConvertItems); + new ConvertAIsAndTeamDefinitions(dbConvertItems); + new ImportAIsAndTeamDefinitions(dbConvertItems); new AtsNotificationNavigateItem(adminItems); new AtsNotificationNavigateItem(adminItems, true); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConfigureDBForAts.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConfigureDBForAts.java index e5808071e5c..f3b078a573d 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConfigureDBForAts.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConfigureDBForAts.java @@ -18,7 +18,6 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.osee.ats.internal.AtsPlugin; import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions; -import org.eclipse.osee.ats.workflow.vue.LoadAIsAndTeamsAction; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.plugin.core.util.Jobs; import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; @@ -66,7 +65,6 @@ public class ConfigureDBForAts extends XNavigateItemAction { AtsWorkDefinitions.importWorkItemDefinitionsIntoDb(WriteType.New, null, AtsWorkDefinitions.getAtsWorkDefinitions()); monitor.subTask("Loading Actionable Items and Teams for " + pluginId); - LoadAIsAndTeamsAction.executeForAtsRuntimeConfig(false, pluginId); } catch (Exception ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.getMessage(), ex); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConvertAIsAndTeamDefinitions.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConvertAIsAndTeamDefinitions.java new file mode 100644 index 00000000000..c40cdd17509 --- /dev/null +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConvertAIsAndTeamDefinitions.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.ats.navigate; + +import org.eclipse.osee.ats.AtsImage; +import org.eclipse.osee.ats.workdef.AtsWorkDefinitionProviders; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; +import org.eclipse.osee.framework.ui.skynet.results.XResultData; + +public class ConvertAIsAndTeamDefinitions extends XNavigateItemAction { + + public ConvertAIsAndTeamDefinitions(XNavigateItem parent) { + super(parent, "Convert AIs and Team Definition to AtsDsl", AtsImage.WORK_DEFINITION); + } + + @Override + public void run(TableLoadOption... tableLoadOptions) throws Exception { + XResultData resultData = new XResultData(); + AtsWorkDefinitionProviders.convertAndOpenAIandTeamAtsDsl(resultData); + resultData.report(getName()); + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConvertWorkFlowDefinitions.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConvertWorkFlowDefinitions.java index b3451fd5fbd..244a4420a46 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConvertWorkFlowDefinitions.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ConvertWorkFlowDefinitions.java @@ -54,6 +54,7 @@ public class ConvertWorkFlowDefinitions extends XNavigateItemAction { idToName.put("lba.common.code", "WorkDef_Team_LbaCode.ats"); idToName.put("lba.common.pids.req", "WorkDef_Team_LbaPids.ats"); idToName.put("lba.common.req", "WorkDef_Team_Lba_Req.ats"); + idToName.put("lba.common.sw_ta", "WorkDef_Team_Lba_SwTechAppr.ats"); idToName.put("lba.common.sw_techappr", "WorkDef_Team_Lba_SwTechAppr.ats"); idToName.put("lba.common.swdesign", "WorkDef_Team_Lba_SwDesign.ats"); idToName.put("lba.common.test", "WorkDef_Team_Lba_Test_Default.ats"); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ImportAIsAndTeamDefinitions.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ImportAIsAndTeamDefinitions.java new file mode 100644 index 00000000000..83f7f16bd5d --- /dev/null +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ImportAIsAndTeamDefinitions.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.ats.navigate; + +import org.eclipse.osee.ats.AtsImage; +import org.eclipse.osee.ats.workdef.AtsWorkDefinitionSheetProviders; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; + +public class ImportAIsAndTeamDefinitions extends XNavigateItemAction { + + public ImportAIsAndTeamDefinitions(XNavigateItem parent) { + super(parent, "Import AIs and Team Definition to DB", AtsImage.WORK_DEFINITION); + } + + @Override + public void run(TableLoadOption... tableLoadOptions) throws Exception { + AtsWorkDefinitionSheetProviders.importAIsAndTeamsToDatabase(); + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchCommitJob.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchCommitJob.java index c513386c787..55e982aca26 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchCommitJob.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchCommitJob.java @@ -80,7 +80,7 @@ public class AtsBranchCommitJob extends Job { if (!overrideStateValidation) { adminOverride = false; // Check extension points for valid commit - for (IAtsStateItem item : AtsStateItemManager.getStateItems(teamArt.getStateDefinition())) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems()) { final Result tempResult = item.committing(teamArt); if (tempResult.isFalse()) { // Allow Admin to override state validation diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsFolderUtil.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsFolderUtil.java deleted file mode 100644 index 47a7cd18dc1..00000000000 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsFolderUtil.java +++ /dev/null @@ -1,107 +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.util; - -import java.util.HashMap; -import java.util.Map; -import org.eclipse.osee.framework.core.data.IArtifactType; -import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.exception.OseeStateException; -import org.eclipse.osee.framework.skynet.core.OseeSystemArtifacts; -import org.eclipse.osee.framework.skynet.core.artifact.Artifact; -import org.eclipse.osee.framework.skynet.core.artifact.StaticIdManager; -import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; - -/** - * @author Donald G. Dunne - */ -public class AtsFolderUtil { - - public enum AtsFolder { - Ats_Config("Config", "ats.ConfigFolder", CoreArtifactTypes.Folder), - Ats_Heading("Action Tracking System", "ats.HeadingFolder", CoreArtifactTypes.Folder), - Teams("Teams", "osee.ats.TopTeamDefinition", AtsArtifactTypes.TeamDefinition), - ActionableItem("Actionable Items", "osee.ats.TopActionableItem", AtsArtifactTypes.ActionableItem), - WorkFlow("Work Flows", "Work Flows", CoreArtifactTypes.Folder), - WorkRules("Work Rules", "Work Rules", CoreArtifactTypes.Folder), - WorkWidgets("Work Widgets", "Work Widgets", CoreArtifactTypes.Folder), - WorkPages("Work Pages", "Work Pages", CoreArtifactTypes.Folder), - WorkDefinitions("Work Definitions", "Work Definitions", CoreArtifactTypes.Folder); - final String displayName; - final String staticId; - final IArtifactType artifactType; - - private AtsFolder(String displayName, String staticId, IArtifactType artifactType) { - this.displayName = displayName; - this.staticId = staticId; - this.artifactType = artifactType; - } - - /** - * @return the displayName - */ - public String getDisplayName() { - return displayName; - } - - /** - * @return the staticId - */ - public String getStaticId() { - return staticId; - } - } - - public static Map<AtsFolder, Artifact> folderMap = new HashMap<AtsFolder, Artifact>(); - - public static Artifact getFolder(AtsFolder atsFolder) throws OseeCoreException { - if (!folderMap.containsKey(atsFolder)) { - Artifact artifact = - StaticIdManager.getSingletonArtifact(atsFolder.artifactType, atsFolder.staticId, AtsUtil.getAtsBranch(), - true); - if (artifact == null) { - throw new OseeStateException("Can't retrieve Ats folder [%s]", atsFolder.displayName); - } - folderMap.put(atsFolder, artifact); - } - return folderMap.get(atsFolder); - } - - public static void createAtsFolders() throws OseeCoreException { - SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Create ATS Folders"); - - Artifact headingArt = - OseeSystemArtifacts.getOrCreateArtifact(CoreArtifactTypes.Folder, AtsFolder.Ats_Heading.displayName, - AtsUtil.getAtsBranch()); - if (!headingArt.hasParent()) { - Artifact rootArt = OseeSystemArtifacts.getDefaultHierarchyRootArtifact(AtsUtil.getAtsBranch()); - rootArt.addChild(headingArt); - StaticIdManager.setSingletonAttributeValue(headingArt, AtsFolder.Ats_Heading.staticId); - headingArt.persist(transaction); - } - - for (AtsFolder atsFolder : AtsFolder.values()) { - if (atsFolder == AtsFolder.Ats_Heading) { - continue; - } - Artifact art = - OseeSystemArtifacts.getOrCreateArtifact(atsFolder.artifactType, atsFolder.displayName, - AtsUtil.getAtsBranch()); - StaticIdManager.setSingletonAttributeValue(art, atsFolder.staticId); - headingArt.addChild(art); - art.persist(transaction); - } - - transaction.execute(); - } - -} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsUtil.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsUtil.java index 56981b4e70e..54d6065bc67 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsUtil.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsUtil.java @@ -39,8 +39,10 @@ import org.eclipse.osee.ats.world.WorldEditorSimpleProvider; import org.eclipse.osee.ats.world.WorldEditorUISearchItemProvider; import org.eclipse.osee.ats.world.search.GroupWorldSearchItem; import org.eclipse.osee.framework.core.client.ClientSessionManager; +import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.core.enums.Active; import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; +import org.eclipse.osee.framework.core.enums.CoreBranches; import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.model.Branch; @@ -69,6 +71,7 @@ import org.eclipse.osee.framework.ui.swt.ALayout; import org.eclipse.osee.framework.ui.swt.Displays; import org.eclipse.osee.framework.ui.swt.ImageManager; import org.eclipse.osee.framework.ui.swt.KeyedImage; +import org.eclipse.osee.support.test.util.TestUtil; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; @@ -103,7 +106,7 @@ public final class AtsUtil { } public static boolean isInTest() { - return Boolean.valueOf(System.getProperty("osee.isInTest")); + return TestUtil.isInTest(); } public static long daysTillToday(Date date) { @@ -134,6 +137,10 @@ public final class AtsUtil { return BranchManager.getCommonBranch(); } + public static IOseeBranch getAtsBranchToken() { + return CoreBranches.COMMON; + } + public static boolean isEmailEnabled() { return emailEnabled; } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/PriviledgedUserManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/PriviledgedUserManager.java index ee0ca7b1374..8cdff38aec4 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/PriviledgedUserManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/PriviledgedUserManager.java @@ -17,8 +17,8 @@ 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.internal.AtsPlugin; +import org.eclipse.osee.ats.workdef.RuleDefinitionOption; import org.eclipse.osee.ats.workdef.StateDefinition; -import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions.RuleWorkItemId; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; @@ -56,16 +56,15 @@ public class PriviledgedUserManager { StateDefinition stateDefinition = teamArt.getStateDefinition(); // Add user if allowing privileged edit to all users - if (!users.contains(UserManager.getUser()) && (stateDefinition.hasRule(RuleWorkItemId.atsAllowPriviledgedEditToAll.name()) || teamArt.getTeamDefinition().hasWorkRule( - RuleWorkItemId.atsAllowPriviledgedEditToAll.name()))) { + if (!users.contains(UserManager.getUser()) && (stateDefinition.hasRule(RuleDefinitionOption.AllowPriviledgedEditToAll) || teamArt.getTeamDefinition().hasRule( + RuleDefinitionOption.AllowPriviledgedEditToAll))) { users.add(UserManager.getUser()); } // Add user if user is team member and rule exists - boolean workPageToTeamMember = - stateDefinition.hasRule(RuleWorkItemId.atsAllowPriviledgedEditToTeamMember.name()); + boolean workPageToTeamMember = stateDefinition.hasRule(RuleDefinitionOption.AllowPriviledgedEditToTeamMember); boolean teamDefToTeamMember = - teamArt.getTeamDefinition().hasWorkRule(RuleWorkItemId.atsAllowPriviledgedEditToTeamMember.name()); + teamArt.getTeamDefinition().hasRule(RuleDefinitionOption.AllowPriviledgedEditToTeamMember); if (!users.contains(UserManager.getUser()) && (workPageToTeamMember || teamDefToTeamMember) && // teamArt.getTeamDefinition().getMembers().contains(UserManager.getUser())) { users.add(UserManager.getUser()); @@ -73,10 +72,9 @@ public class PriviledgedUserManager { // Add user if team member is originator and rule exists boolean workPageToMemberAndOriginator = - stateDefinition.hasRule(RuleWorkItemId.atsAllowPriviledgedEditToTeamMemberAndOriginator.name()); + stateDefinition.hasRule(RuleDefinitionOption.AllowPriviledgedEditToTeamMemberAndOriginator); boolean teamDefToMemberAndOriginator = - teamArt.getTeamDefinition().hasWorkRule( - RuleWorkItemId.atsAllowPriviledgedEditToTeamMemberAndOriginator.name()); + teamArt.getTeamDefinition().hasRule(RuleDefinitionOption.AllowPriviledgedEditToTeamMemberAndOriginator); if (!users.contains(UserManager.getUser()) && (workPageToMemberAndOriginator || teamDefToMemberAndOriginator) && // teamArt.getCreatedBy().equals(UserManager.getUser()) && teamArt.getTeamDefinition().getMembers().contains( UserManager.getUser())) { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/StateManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/StateManager.java index a0c55313edd..96a1224843b 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/StateManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/StateManager.java @@ -66,6 +66,18 @@ public class StateManager { } } + public boolean isAnyStateHavePercentEntered() throws OseeCoreException { + if (currentStateDam.getState().getPercentComplete() > 0) { + return true; + } + for (SMAState state : stateDam.getStates()) { + if (state.getPercentComplete() > 0) { + return true; + } + } + return false; + } + public boolean isInState(IWorkPage state) { return (getCurrentStateName().equals(state.getPageName())); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/ReviewManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/ReviewManager.java index 2c77e63aeab..24baed2f974 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/ReviewManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/widgets/ReviewManager.java @@ -35,6 +35,7 @@ import org.eclipse.osee.ats.workdef.ReviewBlockType; import org.eclipse.osee.ats.workflow.TransitionManager; import org.eclipse.osee.ats.workflow.item.AtsWorkDefinitions; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeStateException; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; @@ -113,8 +114,12 @@ public class ReviewManager { decRev.persist(transaction); TransitionManager transitionMgr = new TransitionManager(decRev); - transitionMgr.transition(DecisionReviewState.Decision, assignees, transaction, TransitionOption.Persist, - TransitionOption.OverrideAssigneeCheck); + Result result = + transitionMgr.transition(DecisionReviewState.Decision, assignees, transaction, TransitionOption.Persist, + TransitionOption.OverrideAssigneeCheck); + if (result.isFalse()) { + throw new OseeStateException("Error auto-transitioning review %s to Decision state", decRev.toStringWithId()); + } return decRev; } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionProviders.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionProviders.java index 42aadc5cb92..01d82a88592 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionProviders.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionProviders.java @@ -20,6 +20,7 @@ import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.framework.ui.skynet.results.XResultData; import org.osgi.framework.Bundle; @@ -38,11 +39,18 @@ public final class AtsWorkDefinitionProviders { return getProvider() != null; } - public static Artifact importWorkDefinitionSheetToDb(WorkDefinitionSheet sheet) throws OseeCoreException { + public static Artifact importWorkDefinitionSheetToDb(WorkDefinitionSheet sheet, SkynetTransaction transaction) throws OseeCoreException { if (!providerExists()) { return null; } - return getProvider().importWorkDefinitionSheetToDb(sheet); + return getProvider().importWorkDefinitionSheetToDb(sheet, transaction); + } + + public static void importAIsAndTeamsToDb(WorkDefinitionSheet sheet, SkynetTransaction transaction) throws OseeCoreException { + if (!providerExists()) { + return; + } + getProvider().importAIsAndTeamsToDb(sheet, transaction); } public static WorkDefinition loadWorkFlowDefinitionFromFile(WorkDefinitionSheet sheet) throws OseeCoreException { @@ -80,6 +88,13 @@ public final class AtsWorkDefinitionProviders { getProvider().convertAndOpenAtsDsl(workDef, resultData, filename); } + public static void convertAndOpenAIandTeamAtsDsl(XResultData resultData) throws OseeCoreException { + if (!providerExists()) { + return; + } + getProvider().convertAndOpenAIandTeamAtsDsl(resultData); + } + /* * due to lazy initialization, this function is non-reentrant therefore, the synchronized keyword is necessary */ diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionSheetProviders.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionSheetProviders.java index 1cbc77b64b1..2ca1af4e41e 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionSheetProviders.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/AtsWorkDefinitionSheetProviders.java @@ -21,15 +21,19 @@ 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.artifact.AtsArtifactToken; import org.eclipse.osee.ats.internal.AtsPlugin; -import org.eclipse.osee.ats.util.AtsFolderUtil; -import org.eclipse.osee.ats.util.AtsFolderUtil.AtsFolder; import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; +import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeStateException; +import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLevel; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.plugin.core.PluginUtil; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.osgi.framework.Bundle; @@ -64,33 +68,75 @@ public final class AtsWorkDefinitionSheetProviders { public static void initializeDatabase() throws OseeCoreException { SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Import ATS Work Definitions"); - Artifact folder = AtsFolderUtil.getFolder(AtsFolder.WorkDefinitions); - folder.persist(transaction); + Artifact folder = AtsArtifactToken.get(AtsArtifactToken.WorkDefinitionsFolder); for (WorkDefinitionSheet sheet : getWorkDefinitionSheets()) { - Artifact artifact = AtsWorkDefinitionProviders.importWorkDefinitionSheetToDb(sheet); - if (artifact != null) { - folder.addChild(artifact); - artifact.persist(transaction); + if (isValidSheet(sheet)) { + String logStr = String.format("Importing ATS sheet [%s]", sheet.getName()); + System.out.println(logStr); + Artifact artifact = AtsWorkDefinitionProviders.importWorkDefinitionSheetToDb(sheet, transaction); + if (artifact != null) { + folder.addChild(artifact); + artifact.persist(transaction); + } + } + } + transaction.execute(); + } + + public static void importAIsAndTeamsToDatabase() throws OseeCoreException { + SkynetTransaction transaction = + new SkynetTransaction(AtsUtil.getAtsBranch(), "Import ATS AIs and Team Definitions"); + for (WorkDefinitionSheet sheet : getWorkDefinitionSheets()) { + if (sheet.getName().contains("AIsAndTeams") && isValidSheet(sheet)) { + String logStr = String.format("Importing ATS AIs and Teams sheet [%s]", sheet.getName()); + OseeLog.log(AtsPlugin.class, Level.INFO, logStr); + AtsWorkDefinitionProviders.importAIsAndTeamsToDb(sheet, transaction); } } transaction.execute(); } + private static boolean isValidSheet(WorkDefinitionSheet sheet) throws OseeCoreException { + if (!Strings.isValid(sheet.getLegacyOverrideId())) { + return true; + } + try { + Artifact artifact = + ArtifactQuery.getArtifactFromTypeAndName(CoreArtifactTypes.WorkFlowDefinition, sheet.getLegacyOverrideId(), + AtsUtil.getAtsBranch()); + if (artifact != null) { + throw new OseeStateException( + "WorkDefinitionSheet [%s] has legacy id that does not match an existing WorkFlowDefinition name", sheet); + } + } catch (ArtifactDoesNotExist ex) { + // do nothing; this is what we want + } + return true; + } + private static List<WorkDefinitionSheet> getWorkDefinitionSheets() { List<WorkDefinitionSheet> sheets = new ArrayList<WorkDefinitionSheet>(); - sheets.add(new WorkDefinitionSheet("WorkDef_Team_Default", "osee.ats.teamWorkflow", - getSupportFile("support/WorkDef_Team_Default.ats"))); - sheets.add(new WorkDefinitionSheet("WorkDef_Task_Default", "osee.ats.taskWorkflow", - getSupportFile("support/WorkDef_Task_Default.ats"))); + sheets.add(new WorkDefinitionSheet("WorkDef_Team_Default", "osee.ats.teamWorkflow", getSupportFile( + AtsPlugin.PLUGIN_ID, "support/WorkDef_Team_Default.ats"))); + sheets.add(new WorkDefinitionSheet("WorkDef_Task_Default", "osee.ats.taskWorkflow", getSupportFile( + AtsPlugin.PLUGIN_ID, "support/WorkDef_Task_Default.ats"))); + sheets.add(new WorkDefinitionSheet("WorkDef_Review_Decision", "osee.ats.decisionReview", getSupportFile( + AtsPlugin.PLUGIN_ID, "support/WorkDef_Review_Decision.ats"))); + sheets.add(new WorkDefinitionSheet("WorkDef_Review_PeerToPeer", "osee.ats.peerToPeerReview", getSupportFile( + AtsPlugin.PLUGIN_ID, "support/WorkDef_Review_PeerToPeer.ats"))); + sheets.add(new WorkDefinitionSheet("WorkDef_Team_Simple", "osee.ats.simpleTeamWorkflow", getSupportFile( + AtsPlugin.PLUGIN_ID, "support/WorkDef_Team_Simple.ats"))); + sheets.add(new WorkDefinitionSheet("WorkDef_Goal", "osee.ats.goalWorkflow", getSupportFile(AtsPlugin.PLUGIN_ID, + "support/WorkDef_Goal.ats"))); for (IAtsWorkDefinitionSheetProvider provider : getProviders()) { sheets.addAll(provider.getWorkDefinitionSheets()); } return sheets; } - public static File getSupportFile(String filename) { + public static File getSupportFile(String pluginId, String filename) { try { - PluginUtil util = new PluginUtil(AtsPlugin.PLUGIN_ID); + PluginUtil util = new PluginUtil(pluginId); return util.getPluginFile(filename); } catch (IOException ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/IAtsWorkDefinitionProvider.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/IAtsWorkDefinitionProvider.java index 84ef6e598b4..55fe963fc0b 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/IAtsWorkDefinitionProvider.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/IAtsWorkDefinitionProvider.java @@ -7,6 +7,7 @@ package org.eclipse.osee.ats.workdef; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; import org.eclipse.osee.framework.ui.skynet.results.XResultData; public interface IAtsWorkDefinitionProvider { @@ -15,10 +16,14 @@ public interface IAtsWorkDefinitionProvider { WorkDefinition getWorkFlowDefinition(String id) throws OseeCoreException; - Artifact importWorkDefinitionSheetToDb(WorkDefinitionSheet sheet) throws OseeCoreException; + Artifact importWorkDefinitionSheetToDb(WorkDefinitionSheet sheet, SkynetTransaction transaction) throws OseeCoreException; + + void importAIsAndTeamsToDb(WorkDefinitionSheet sheet, SkynetTransaction transaction) throws OseeCoreException; void convertAndOpenAtsDsl(WorkDefinition workDef, XResultData resultData, String filename) throws OseeCoreException; + void convertAndOpenAIandTeamAtsDsl(XResultData resultData) throws OseeCoreException; + public WorkDefinition loadTeamWorkDefFromFileOldWay(); public WorkDefinition loadTeamWorkDefFromFileNewWay(); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/RuleDefinition.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/RuleDefinition.java index f6a2bdbba2b..d5c29346b51 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/RuleDefinition.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/RuleDefinition.java @@ -11,6 +11,10 @@ public class RuleDefinition extends AbstractWorkDefItem { super(id); } + public RuleDefinition(RuleDefinitionOption ruleOption) { + super(ruleOption.name()); + } + @Override public String toString() { return String.format("[%s]", getName()); diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/RuleDefinitionOption.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/RuleDefinitionOption.java new file mode 100644 index 00000000000..15503e753b9 --- /dev/null +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/RuleDefinitionOption.java @@ -0,0 +1,31 @@ +/* + * Created on Jan 26, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.ats.workdef; + +public enum RuleDefinitionOption { + + RequireStateHourSpentPrompt("Work Page Option: Will popup a dialog to prompt user for time spent in this state."), + AddDecisionValidateBlockingReview("Work Page Option: Will auto-create a blocking decision review for this state requesting validation for this workflow."), + AddDecisionValidateNonBlockingReview("Work Page Option: Will auto-create a non blocking decision review requesting validation of workflow changes."), + AllowTransitionWithWorkingBranch("Work Page Option: Will allow transition to next state without committing current working branch."), + ForceAssigneesToTeamLeads("Work Page Option: Will force this state to be assigned back to the configured team leads. Useful for authorization state."), + RequireTargetedVersion("Work Page and Team Definition Option: Requires workflow to be targeted for version before transition is allowed."), + AllowPriviledgedEditToTeamMember("Work Page and Team Definition Option: Allow team member to priviledged edit workflow assigned to team."), + AllowPriviledgedEditToTeamMemberAndOriginator("Work Page and Team Definition Option: Allow team member to priviledged edit workflow assigned to team if user is originator."), + AllowPriviledgedEditToAll("Work Page and Team Definition Option: Allow anyone to priviledged edit workflow assigned to team."), + AllowEditToAll("Work Page and Team Definition Option: Allow anyone to edit workflow without being assignee."), + AllowAssigneeToAll("Work Page and Team Definition Option: Allow anyone to change workflow assignee without being assignee."); + + public final String description; + + public String getDescription() { + return description; + } + + private RuleDefinitionOption(String description) { + this.description = description; + } +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/StateDefinition.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/StateDefinition.java index d26be2dee75..98e81e898d4 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/StateDefinition.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/StateDefinition.java @@ -27,6 +27,7 @@ public class StateDefinition extends AbstractWorkDefItem implements IWorkPage { private final List<PeerReviewDefinition> peerReviews = new ArrayList<PeerReviewDefinition>(); private WorkDefinition workDefinition; protected TaskResolutionOptionRule taskResolutionOptions; + private int percentWeight = 0; public StateDefinition(String name) { super(name); @@ -108,6 +109,10 @@ public class StateDefinition extends AbstractWorkDefItem implements IWorkPage { this.workDefinition = workDefinition; } + public boolean hasRule(RuleDefinitionOption option) { + return hasRule(option.name()); + } + public boolean hasRule(String name) { for (RuleDefinition rule : rules) { if (rule.getName().equals(name)) { @@ -192,4 +197,18 @@ public class StateDefinition extends AbstractWorkDefItem implements IWorkPage { return peerReviews; } + public int getStateWeight() { + return percentWeight; + } + + /** + * Set how much (of 100%) this state's percent complete will contribute to the full percent complete of work + * definitions. + * + * @param percentWeight int value where all stateWeights in workdefinition == 100 + */ + public void setPercentWeight(int percentWeight) { + this.percentWeight = percentWeight; + } + } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/StateXWidgetPage.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/StateXWidgetPage.java index 388118bd029..2c4672c1900 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/StateXWidgetPage.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/StateXWidgetPage.java @@ -115,12 +115,12 @@ public class StateXWidgetPage implements IDynamicWidgetLayoutListener, IWorkPage @Override public void widgetCreated(XWidget xWidget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { - widgetCreated(xWidget, toolkit, art, this, xModListener, isEditable); + widgetCreated(xWidget, toolkit, art, stateDefinition, xModListener, isEditable); } @Override public void widgetCreating(XWidget xWidget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { - widgetCreating(xWidget, toolkit, art, this, xModListener, isEditable); + widgetCreating(xWidget, toolkit, art, stateDefinition, xModListener, isEditable); } public void dispose() { @@ -335,11 +335,11 @@ public class StateXWidgetPage implements IDynamicWidgetLayoutListener, IWorkPage return isCurrentState(sma) && !isCompletedOrCancelledPage(); } - public void widgetCreated(XWidget xWidget, FormToolkit toolkit, Artifact art, StateXWidgetPage page, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { + public void widgetCreated(XWidget xWidget, FormToolkit toolkit, Artifact art, StateDefinition stateDef, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { // Check extension points for page creation if (sma != null) { - for (IAtsStateItem item : AtsStateItemManager.getStateItems(page.getStateDefinition())) { - item.xWidgetCreated(xWidget, toolkit, page, art, xModListener, isEditable); + for (IAtsStateItem item : AtsStateItemManager.getStateItems()) { + item.xWidgetCreated(xWidget, toolkit, stateDef, art, xModListener, isEditable); } } } @@ -362,11 +362,11 @@ public class StateXWidgetPage implements IDynamicWidgetLayoutListener, IWorkPage } - public void widgetCreating(XWidget xWidget, FormToolkit toolkit, Artifact art, StateXWidgetPage page, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { + public void widgetCreating(XWidget xWidget, FormToolkit toolkit, Artifact art, StateDefinition stateDefinition, XModifiedListener xModListener, boolean isEditable) throws OseeCoreException { // Check extension points for page creation if (sma != null) { - for (IAtsStateItem item : AtsStateItemManager.getStateItems(page.getStateDefinition())) { - Result result = item.xWidgetCreating(xWidget, toolkit, page, art, xModListener, isEditable); + for (IAtsStateItem item : AtsStateItemManager.getStateItems()) { + Result result = item.xWidgetCreating(xWidget, toolkit, stateDefinition, art, xModListener, isEditable); if (result.isFalse()) { OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Error in page creation => " + result.getText()); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/WorkDefinition.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/WorkDefinition.java index 435a06632c7..f7e59e389d1 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/WorkDefinition.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workdef/WorkDefinition.java @@ -10,6 +10,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; +import org.eclipse.osee.framework.ui.plugin.util.Result; public class WorkDefinition extends AbstractWorkDefItem { @@ -175,4 +176,27 @@ public class WorkDefinition extends AbstractWorkDefItem { return ids; } + public boolean isStateWeightingEnabled() { + for (StateDefinition stateDef : getStates()) { + if (stateDef.getStateWeight() != 0) { + return true; + } + } + return false; + } + + public Result validateStateWeighting() { + if (!isStateWeightingEnabled()) { + return Result.TrueResult; + } + int total = 0; + for (StateDefinition stateDef : getStates()) { + total += stateDef.getStateWeight(); + } + if (total != 100) { + return new Result(String.format("Total weight only %d, needs to equal 100 for all states", total)); + } + return Result.TrueResult; + } + } 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 a19d54f4070..560763436cd 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 @@ -30,11 +30,15 @@ import org.eclipse.osee.ats.workflow.flow.PeerToPeerWorkflowDefinition; import org.eclipse.osee.ats.workflow.flow.TaskWorkflowDefinition; import org.eclipse.osee.ats.workflow.item.AtsAddDecisionReviewRule; import org.eclipse.osee.ats.workflow.item.AtsAddPeerToPeerReviewRule; +import org.eclipse.osee.ats.workflow.item.AtsStatePercentCompleteWeightRule; +import org.eclipse.osee.framework.core.enums.CoreRelationTypes; +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.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.ui.plugin.util.Result; import org.eclipse.osee.framework.ui.skynet.widgets.XOption; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayoutData; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkFlowDefinition; @@ -67,12 +71,21 @@ public class WorkDefinitionFactory { System.err.println("skipping rule " + workItem.getName()); } else if (workItem.getName().startsWith("atsAddPeerToPeerReview")) { System.err.println("skipping rule " + workItem.getName()); + } else if (workItem.getName().startsWith(AtsStatePercentCompleteWeightRule.ID)) { + System.err.println("skipping rule " + workItem.getName()); } else { - WorkRuleDefinition workRule = (WorkRuleDefinition) workItem; - RuleDefinition ruleDef = new RuleDefinition(workRule.getId()); - ruleDef.setDescription(workRule.getDescription()); - copyKeyValuePair(ruleDef, workRule); - idToRule.put(ruleDef.getName(), ruleDef); + try { + WorkRuleDefinition workRule = (WorkRuleDefinition) workItem; + // All rules in DB should map to RuleDefinitionOption + RuleDefinitionOption ruleOption = + RuleDefinitionOption.valueOf(workRule.getName().replaceFirst("^ats", "")); + RuleDefinition ruleDef = new RuleDefinition(ruleOption); + ruleDef.setDescription(workRule.getDescription()); + copyKeyValuePair(ruleDef, workRule); + idToRule.put(ruleDef.getName(), ruleDef); + } catch (Exception ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + } } } } @@ -161,12 +174,13 @@ public class WorkDefinitionFactory { for (WorkPageDefinition workPage : workFlowDef.getPages()) { // not using ids anymore for states, widgets or rules StateDefinition stateDef = workDef.getOrCreateState(workPage.getPageName()); + stateDef.setWorkDefinition(workDef); stateDef.setOrdinal(workPage.getWorkPageOrdinal()); if (workPage.getId().equals(startWorkPageName)) { workDef.setStartState(stateDef); } + // TODO get rid of this?? copyKeyValuePair(stateDef, workPage); - stateDef.setWorkDefinition(workDef); stateDef.setWorkPageType(workPage.getWorkPageType()); for (WorkPageDefinition returnPageDefinition : workFlowDef.getReturnPages(workPage)) { @@ -256,8 +270,13 @@ public class WorkDefinitionFactory { } stateDef.getPeerReviews().add(peerRevDef); } else { - RuleDefinition ruleDef = getRuleById(workRule.getId()); - stateDef.addRule(ruleDef, "from related WorkItemDefintion"); + RuleDefinition ruleDef = getRuleById(workRule.getId().replaceFirst("^ats", "")); + if (ruleDef == null) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, + String.format("Null work rule for " + workRule.getId())); + } else { + stateDef.addRule(ruleDef, "from related WorkItemDefintion"); + } } } else { OseeLog.log(AtsPlugin.class, Level.SEVERE, @@ -266,6 +285,40 @@ public class WorkDefinitionFactory { } } + // Process WeightDefinitions + Artifact workDefArt = workFlowDef.getArtifact(); + for (Artifact workChild : workDefArt.getRelatedArtifacts(CoreRelationTypes.WorkItem__Child)) { + if (workChild.getName().startsWith(AtsStatePercentCompleteWeightRule.ID)) { + WorkRuleDefinition ruleDefinition = new WorkRuleDefinition(workChild); + for (String stateName : ruleDefinition.getWorkDataKeyValueMap().keySet()) { + String value = ruleDefinition.getWorkDataValue(stateName); + try { + double percent = new Double(value).doubleValue(); + if (percent < 0.0 || percent > 1) { + OseeLog.log( + AtsPlugin.class, + Level.SEVERE, + "Invalid percent value \"" + value + "\" (must be 0..1) for rule " + ruleDefinition.getName(), + new OseeArgumentException("state map exception")); + } else { + percent = percent * 100; + workDef.getStateByName(stateName).setPercentWeight(new Double(percent).intValue()); + } + } catch (Exception ex) { + OseeLog.log( + AtsPlugin.class, + Level.SEVERE, + "Invalid percent value \"" + value + "\" (must be float 0..1) for rule " + ruleDefinition.getName(), + new OseeArgumentException("state map exception")); + } + } + Result result = workDef.validateStateWeighting(); + if (result.isFalse()) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, + "Error translating weight definitions - " + result.getText()); + } + } + } return workDef; } catch (OseeCoreException ex) { OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); @@ -362,6 +415,21 @@ public class WorkDefinitionFactory { return new WorkDefinitionMatch(); } + /** + * Look at team def's attribute for Work Definition setting, otherwise, walk up team tree for setting + */ + private static WorkDefinitionMatch getWorkDefinitionFromTeamDefinitionAttributeInherited(TeamDefinitionArtifact teamDef) throws OseeCoreException { + WorkDefinitionMatch match = getWorkDefinitionFromArtifactsAttributeValue(teamDef); + if (match.isMatched()) { + return match; + } + Artifact parentArt = teamDef.getParent(); + if (parentArt != null && parentArt instanceof TeamDefinitionArtifact) { + return getWorkDefinitionFromTeamDefinitionAttributeInherited((TeamDefinitionArtifact) parentArt); + } + return new WorkDefinitionMatch(); + } + private static WorkDefinitionMatch getWorkDefinitionForTask(TaskArtifact taskArt) throws OseeCoreException { WorkDefinitionMatch match = new WorkDefinitionMatch(); for (IAtsTeamWorkflow provider : TeamWorkflowExtensions.getAtsTeamWorkflowExtensions()) { @@ -427,7 +495,7 @@ public class WorkDefinitionFactory { // Note: This is new. Old TeamDefs got workflow off relation if (artifact instanceof TeamWorkFlowArtifact) { TeamDefinitionArtifact teamDef = ((TeamWorkFlowArtifact) artifact).getTeamDefinition(); - match = getWorkDefinitionFromArtifactsAttributeValue(teamDef); + match = getWorkDefinitionFromTeamDefinitionAttributeInherited(teamDef); if (!match.isMatched()) { match = ((TeamWorkFlowArtifact) artifact).getTeamDefinition().getWorkDefinition(); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/TransitionManager.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/TransitionManager.java index 4dd736f8943..1df19f01fdb 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/TransitionManager.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/TransitionManager.java @@ -63,13 +63,15 @@ public class TransitionManager { final StateDefinition fromStateDefinition = aba.getStateDefinition(); final StateDefinition toStateDefinition = aba.getStateDefinitionByName(toState.getPageName()); if (toStateDefinition == null) { - return new Result("Invalid toState \"" + toState.getPageName() + "\""); + return new Result(String.format("Transition-To State [%s] does not exist for Work Definition [%s]", + toState.getPageName(), aba.getWorkDefinition().getName())); } // Validate transition from fromPage to toPage if (!overrideTransitionCheck && !fromStateDefinition.getToStates().contains(toStateDefinition) && !fromStateDefinition.isCompletedOrCancelledPage()) { String errStr = - "Not configured to transition to \"" + toState.getPageName() + "\" from \"" + fromStateDefinition.getPageName() + "\""; + String.format("Work Definition [%s] is not configured to transition from \"[%s]\" to \"[%s]\"", + toStateDefinition.getName(), fromStateDefinition.getPageName(), toState.getPageName()); OseeLog.log(AtsPlugin.class, Level.SEVERE, errStr); return new Result(errStr); } @@ -84,7 +86,7 @@ public class TransitionManager { } // Check extension points for valid transition - List<IAtsStateItem> atsStateItems = AtsStateItemManager.getStateItems(fromStateDefinition); + List<IAtsStateItem> atsStateItems = AtsStateItemManager.getStateItems(); for (IAtsStateItem item : atsStateItems) { Result result = item.transitioning(aba, fromStateDefinition, toState, toAssignees); if (result.isFalse()) { @@ -177,10 +179,7 @@ public class TransitionManager { aba.transitioned(fromState, toState, toAssignees, true, transaction); // Notify extension points of transition - for (IAtsStateItem item : AtsStateItemManager.getStateItems(fromState)) { - item.transitioned(aba, fromState, toState, toAssignees, transaction); - } - for (IAtsStateItem item : AtsStateItemManager.getStateItems(toState)) { + for (IAtsStateItem item : AtsStateItemManager.getStateItems()) { item.transitioned(aba, fromState, toState, toAssignees, transaction); } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/item/AtsStatePercentCompleteWeightRule.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/item/AtsStatePercentCompleteWeightRule.java index dbf3db7dba5..9a3fddac923 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/item/AtsStatePercentCompleteWeightRule.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/item/AtsStatePercentCompleteWeightRule.java @@ -10,13 +10,6 @@ *******************************************************************************/ package org.eclipse.osee.ats.workflow.item; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import org.eclipse.osee.ats.internal.AtsPlugin; -import org.eclipse.osee.ats.workdef.RuleDefinition; -import org.eclipse.osee.framework.core.exception.OseeArgumentException; -import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.ui.skynet.widgets.workflow.WorkRuleDefinition; /** @@ -35,25 +28,4 @@ public class AtsStatePercentCompleteWeightRule extends WorkRuleDefinition { setDescription("Work Flow Option: <state>=<percent> Work Data attributes specify weighting given to each state in percent complete calculations. <state> is either state name (not id) and <percent> is number from 0..1"); } - public static Map<String, Double> getStateWeightMap(RuleDefinition ruleDefinition) { - Map<String, Double> stateToWeight = new HashMap<String, Double>(); - for (String stateName : ruleDefinition.getWorkDataKeyValueMap().keySet()) { - String value = ruleDefinition.getWorkDataValue(stateName); - try { - double percent = new Double(value).doubleValue(); - if (percent < 0.0 || percent > 1) { - OseeLog.log(AtsPlugin.class, Level.SEVERE, - "Invalid percent value \"" + value + "\" (must be 0..1) for rule " + ruleDefinition.getName(), - new OseeArgumentException("state map exception")); - } else { - stateToWeight.put(stateName, percent); - } - } catch (Exception ex) { - OseeLog.log(AtsPlugin.class, Level.SEVERE, - "Invalid percent value \"" + value + "\" (must be float 0..1) for rule " + ruleDefinition.getName(), - new OseeArgumentException("state map exception")); - } - } - return stateToWeight; - } } 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 7f68b3c496b..e3af3f1232e 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 @@ -21,6 +21,7 @@ import java.util.List; import org.eclipse.osee.ats.actions.wizard.IAtsTeamWorkflow; import org.eclipse.osee.ats.artifact.ATSAttributes; import org.eclipse.osee.ats.artifact.AbstractWorkflowArtifact; +import org.eclipse.osee.ats.artifact.AtsArtifactToken; import org.eclipse.osee.ats.artifact.AtsAttributeTypes; import org.eclipse.osee.ats.artifact.DecisionReviewArtifact; import org.eclipse.osee.ats.artifact.GoalArtifact; @@ -36,11 +37,10 @@ import org.eclipse.osee.ats.column.OperationalImpactWithWorkaroundXWidget.XOpera import org.eclipse.osee.ats.column.OperationalImpactXWidget.XOperationalImpactRequiredXWidgetWorkItem; import org.eclipse.osee.ats.column.OperationalImpactXWidget.XOperationalImpactXWidgetWorkItem; import org.eclipse.osee.ats.column.PriorityXWidget; -import org.eclipse.osee.ats.util.AtsFolderUtil; -import org.eclipse.osee.ats.util.AtsFolderUtil.AtsFolder; import org.eclipse.osee.ats.util.AtsUtil; import org.eclipse.osee.ats.util.widgets.XWorkingBranch; import org.eclipse.osee.ats.util.widgets.commit.XCommitManager; +import org.eclipse.osee.ats.workdef.RuleDefinitionOption; import org.eclipse.osee.ats.workdef.StateDefinition; import org.eclipse.osee.ats.workflow.flow.DecisionWorkflowDefinition; import org.eclipse.osee.ats.workflow.flow.GoalWorkflowDefinition; @@ -323,29 +323,29 @@ public final class AtsWorkDefinitions implements IWorkDefinitionProvider { } public static boolean isValidatePage(StateDefinition stateDefinition) { - if (stateDefinition.hasRule(AtsWorkDefinitions.RuleWorkItemId.atsAddDecisionValidateBlockingReview.name())) { + if (stateDefinition.hasRule(RuleDefinitionOption.AddDecisionValidateBlockingReview)) { return true; } - if (stateDefinition.hasRule(AtsWorkDefinitions.RuleWorkItemId.atsAddDecisionValidateNonBlockingReview.name())) { + if (stateDefinition.hasRule(RuleDefinitionOption.AddDecisionValidateNonBlockingReview)) { return true; } return false; } public static boolean isValidateReviewBlocking(StateDefinition stateDefinition) { - return stateDefinition.hasRule(AtsWorkDefinitions.RuleWorkItemId.atsAddDecisionValidateBlockingReview.name()); + return stateDefinition.hasRule(RuleDefinitionOption.AddDecisionValidateBlockingReview); } public static boolean isForceAssigneesToTeamLeads(StateDefinition stateDefinition) { - return stateDefinition.hasRule(AtsWorkDefinitions.RuleWorkItemId.atsForceAssigneesToTeamLeads.name()); + return stateDefinition.hasRule(RuleDefinitionOption.ForceAssigneesToTeamLeads); } public static boolean isAllowTransitionWithWorkingBranch(StateDefinition stateDefinition) { - return stateDefinition.hasRule(AtsWorkDefinitions.RuleWorkItemId.atsAllowTransitionWithWorkingBranch.name()); + return stateDefinition.hasRule(RuleDefinitionOption.AllowTransitionWithWorkingBranch); } public static boolean isRequireStateHoursSpentPrompt(StateDefinition stateDefinition) { - return stateDefinition.hasRule(AtsWorkDefinitions.RuleWorkItemId.atsRequireStateHourSpentPrompt.name()); + return stateDefinition.hasRule(RuleDefinitionOption.RequireStateHourSpentPrompt); } public static boolean isAllowCreateBranch(StateDefinition stateDefinition) { @@ -389,16 +389,16 @@ public final class AtsWorkDefinitions implements IWorkDefinitionProvider { // Relate if not already related if (art.getRelatedArtifacts(CoreRelationTypes.WorkItem__Parent, Artifact.class).isEmpty()) { if (art.isOfType(CoreArtifactTypes.WorkPageDefinition)) { - relateIfNotRelated(AtsFolderUtil.getFolder(AtsFolder.WorkPages), art, transaction); + relateIfNotRelated(AtsArtifactToken.get(AtsArtifactToken.WorkPagesFolder), art, transaction); } if (art.isOfType(CoreArtifactTypes.WorkRuleDefinition)) { - relateIfNotRelated(AtsFolderUtil.getFolder(AtsFolder.WorkRules), art, transaction); + relateIfNotRelated(AtsArtifactToken.get(AtsArtifactToken.WorkRulesFolder), art, transaction); } if (art.isOfType(CoreArtifactTypes.WorkWidgetDefinition)) { - relateIfNotRelated(AtsFolderUtil.getFolder(AtsFolder.WorkWidgets), art, transaction); + relateIfNotRelated(AtsArtifactToken.get(AtsArtifactToken.WorkWidgetsFolder), art, transaction); } if (art.isOfType(CoreArtifactTypes.WorkFlowDefinition)) { - relateIfNotRelated(AtsFolderUtil.getFolder(AtsFolder.WorkFlow), art, transaction); + relateIfNotRelated(AtsArtifactToken.get(AtsArtifactToken.WorkFlowsFolder), art, transaction); } } } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/vue/LoadAIsAndTeamsAction.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/vue/LoadAIsAndTeamsAction.java deleted file mode 100644 index 59279bc3f31..00000000000 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/vue/LoadAIsAndTeamsAction.java +++ /dev/null @@ -1,373 +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.workflow.vue; - -import java.net.URL; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -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.jface.dialogs.MessageDialog; -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.TeamDefinitionArtifact.TeamDefinitionOptions; -import org.eclipse.osee.ats.internal.AtsPlugin; -import org.eclipse.osee.ats.util.AtsArtifactTypes; -import org.eclipse.osee.ats.util.AtsFolderUtil; -import org.eclipse.osee.ats.util.AtsFolderUtil.AtsFolder; -import org.eclipse.osee.ats.util.AtsRelationTypes; -import org.eclipse.osee.ats.util.AtsUtil; -import org.eclipse.osee.ats.workflow.vue.DiagramNode.PageType; -import org.eclipse.osee.framework.core.data.OseeUser; -import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; -import org.eclipse.osee.framework.core.enums.CoreRelationTypes; -import org.eclipse.osee.framework.core.exception.OseeArgumentException; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.jdk.core.util.Lib; -import org.eclipse.osee.framework.logging.OseeLevel; -import org.eclipse.osee.framework.logging.OseeLog; -import org.eclipse.osee.framework.skynet.core.OseeSystemArtifacts; -import org.eclipse.osee.framework.skynet.core.User; -import org.eclipse.osee.framework.skynet.core.UserManager; -import org.eclipse.osee.framework.skynet.core.artifact.Artifact; -import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; -import org.eclipse.osee.framework.skynet.core.artifact.StaticIdManager; -import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; -import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; -import org.eclipse.osee.framework.ui.swt.Displays; -import org.osgi.framework.Bundle; - -/** - * Retrieve "AIs and Teams.vue" extension points and configure ATS for Actionable Items and Teams from within. - */ -public class LoadAIsAndTeamsAction { - - private static final String FULL_NAME = "Full Name:"; - private static final String DESCRIPTION = "Description:"; - private static final String WORKFLOW_ID = "WorkflowId:"; - private static final String STATIC_ID = "StaticId:"; - private static final String GET_OR_CREATE = "GetOrCreate"; - private static final String NOT_ACTIONABLE = "NotActionable"; - private static final String LEAD = "Lead:"; - private static final String MEMBER = "Member:"; - - private final Map<String, ActionableItemArtifact> idToActionItem; - private final String bundleId; - private final boolean prompt; - private final boolean allowUserCreation; - - private LoadAIsAndTeamsAction(boolean prompt, String bundleId, boolean allowUserCreation) { - this.idToActionItem = new HashMap<String, ActionableItemArtifact>(); - this.prompt = prompt; - this.bundleId = bundleId; - this.allowUserCreation = allowUserCreation; - } - - /** - * This method is package private to prevent others from using it - only AtsDbConfig children are allowed access; - */ - static void executeForDbConfig(String bundleId) throws OseeCoreException { - new LoadAIsAndTeamsAction(false, bundleId, true).run(); - } - - public static void executeForAtsRuntimeConfig(boolean prompt, String bundleId) throws OseeCoreException { - new LoadAIsAndTeamsAction(false, bundleId, !AtsUtil.isProductionDb()).run(); - } - - private void run() throws OseeCoreException { - if (prompt && !MessageDialog.openQuestion(Displays.getActiveShell(), "Import ATS Config?", - "Importing ATS Config from ActionableItems.vue.\n\nAre you sure?")) { - return; - } - - for (Entry<String, String> entry : loadResources().entrySet()) { - Diagram workFlow = DiagramFactory.getInstance().getWorkFlowFromFileContents(entry.getKey(), entry.getValue()); - processWorkflow(workFlow); - } - } - - private Map<String, String> loadResources() { - Map<String, String> resources = new HashMap<String, String>(); - IExtensionPoint point = - Platform.getExtensionRegistry().getExtensionPoint("org.eclipse.osee.ats.AtsAIandTeamConfig"); - if (point == null) { - OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Can't access AtsAIandTeamConfig extension point"); - return resources; - } - IExtension[] extensions = point.getExtensions(); - for (IExtension extension : extensions) { - IConfigurationElement[] elements = extension.getConfigurationElements(); - String vueFilename = null; - String bundleName = null; - for (IConfigurationElement el : elements) { - if (el.getName().equals("AtsAIandTeamConfig")) { - vueFilename = el.getAttribute("vueFilename"); - bundleName = el.getContributor().getName(); - if ((bundleId == null || bundleId.equals(bundleName)) && vueFilename != null && bundleName != null) { - Bundle bundle = Platform.getBundle(bundleName); - try { - URL url = bundle.getEntry(vueFilename); - resources.put(bundleName + "/" + vueFilename, Lib.inputStreamToString(url.openStream())); - } catch (Exception ex) { - OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Error loading AtsStateItem extension", ex); - } - } - } - } - } - return resources; - } - - private void processWorkflow(final Diagram workFlow) throws OseeCoreException { - if (workFlow == null) { - throw new OseeArgumentException("ATS config items can't be loaded."); - } - - SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "ATS Load AIs and Teams"); - // Get or create ATS root artifact - Artifact atsHeading = AtsFolderUtil.getFolder(AtsFolder.Ats_Heading); - - // Create Actionable Items - DiagramNode workPage = workFlow.getPage("Actionable Items"); - addActionableItem(atsHeading, workPage, transaction); - - // Create Teams - workPage = workFlow.getPage("Teams"); - addTeam(atsHeading, workPage, transaction); - - atsHeading.persist(transaction); - transaction.execute(); - } - - private User getUserByName(String name, boolean create, SkynetTransaction transaction) throws OseeCoreException { - if (create && !UserManager.userExistsWithName(name)) { - return UserManager.createUser(new OseeUser(name, name, "", true), transaction); - } - return UserManager.getUserByName(name); - } - - private TeamDefinitionArtifact addTeam(Artifact parent, DiagramNode page, SkynetTransaction transaction) throws OseeCoreException { - // System.out.println("Adding Team " + page.getName()); - TeamDefinitionArtifact teamDefArt = null; - if (page.getName().equals(AtsFolder.Teams.getDisplayName())) { - teamDefArt = (TeamDefinitionArtifact) AtsFolderUtil.getFolder(AtsFolder.Teams); - } else { - - ArrayList<User> leads = new ArrayList<User>(); - ArrayList<User> members = new ArrayList<User>(); - java.util.Set<String> staticIds = new HashSet<String>(); - String desc = ""; - boolean getOrCreate = false; - boolean actionable = true; - String fullName = ""; - String workflowId = ""; - List<TeamDefinitionOptions> teamDefinitionOptions = new ArrayList<TeamDefinitionOptions>(); - for (String line : page.getInstructionStr().replaceAll("\r", "\n").split("\n")) { - if (!line.equals("")) { - if (line.startsWith(DESCRIPTION)) { - desc = line.replaceFirst(DESCRIPTION, ""); - } else if (line.startsWith(WORKFLOW_ID)) { - workflowId = line.replaceFirst(WORKFLOW_ID, ""); - } else if (line.startsWith(STATIC_ID)) { - staticIds.add(line.replaceFirst(STATIC_ID, "")); - } else if (line.startsWith(GET_OR_CREATE)) { - getOrCreate = true; - } else if (line.startsWith(NOT_ACTIONABLE)) { - actionable = false; - } else if (line.startsWith(FULL_NAME)) { - fullName = line.replaceFirst(FULL_NAME, ""); - } else if (line.contains(TeamDefinitionOptions.TeamUsesVersions.name())) { - teamDefinitionOptions.add(TeamDefinitionOptions.TeamUsesVersions); - } else if (line.contains(TeamDefinitionOptions.RequireTargetedVersion.name())) { - teamDefinitionOptions.add(TeamDefinitionOptions.RequireTargetedVersion); - } else if (line.startsWith(LEAD)) { - processLeads(transaction, leads, line); - } else if (line.startsWith(MEMBER)) { - processMembers(transaction, members, line); - } else { - throw new OseeArgumentException("Unhandled AtsConfig Line [%s] in diagram page [%s]", line, - page.getName()); - } - } - } - - ArrayList<ActionableItemArtifact> actionableItems = new ArrayList<ActionableItemArtifact>(); - createActionableItems(page, actionableItems); - - teamDefArt = - createTeamDefinition(parent, page, transaction, leads, members, staticIds, desc, getOrCreate, actionable, - fullName, workflowId, teamDefinitionOptions, actionableItems); - teamDefArt.persist(transaction); - } - - processChildren(page, transaction, teamDefArt); - return teamDefArt; - } - - private void processMembers(SkynetTransaction transaction, List<User> members, String line) throws OseeCoreException { - String name = line.replaceFirst(MEMBER, ""); - User u = getUserByName(name, allowUserCreation, transaction); - members.add(u); - } - - private void processLeads(SkynetTransaction transaction, List<User> leads, String line) throws OseeCoreException { - String name = line.replaceFirst(LEAD, ""); - User u = getUserByName(name, allowUserCreation, transaction); - leads.add(u); - } - - private void processChildren(DiagramNode page, SkynetTransaction transaction, TeamDefinitionArtifact teamDefArt) throws OseeCoreException { - // Handle all team children - for (DiagramNode childPage : page.getToPages()) { - if (childPage.getPageType() == PageType.Team) { - addTeam(teamDefArt, childPage, transaction); - } - } - } - - private TeamDefinitionArtifact createTeamDefinition(Artifact parent, DiagramNode page, SkynetTransaction transaction, List<User> leads, List<User> members, java.util.Set<String> staticIds, String desc, boolean getOrCreate, boolean actionable, String fullName, String workflowId, List<TeamDefinitionOptions> teamDefinitionOptions, List<ActionableItemArtifact> actionableItems) throws OseeCoreException, OseeArgumentException { - TeamDefinitionArtifact teamDefArt; - if (getOrCreate) { - teamDefArt = - (TeamDefinitionArtifact) OseeSystemArtifacts.getOrCreateArtifact(AtsArtifactTypes.TeamDefinition, - page.getName(), AtsUtil.getAtsBranch()); - } else { - teamDefArt = - (TeamDefinitionArtifact) ArtifactTypeManager.addArtifact(AtsArtifactTypes.TeamDefinition, - AtsUtil.getAtsBranch(), page.getName()); - } - if (!teamDefArt.isInDb()) { - teamDefArt.initialize(fullName, desc, leads, members, actionableItems, - teamDefinitionOptions.toArray(new TeamDefinitionOptions[teamDefinitionOptions.size()])); - if (parent == null) { - // Relate to team heading - parent = AtsFolderUtil.getFolder(AtsFolder.Teams); - } - parent.addChild(teamDefArt); - parent.persist(transaction); - - for (Artifact actionableItem : actionableItems) { - teamDefArt.addRelation(AtsRelationTypes.TeamActionableItem_ActionableItem, actionableItem); - } - for (String staticId : staticIds) { - StaticIdManager.setSingletonAttributeValue(teamDefArt, staticId); - } - teamDefArt.setSoleAttributeValue(AtsAttributeTypes.Actionable, actionable); - } - if (!workflowId.equals("")) { - Artifact workflowArt = - ArtifactQuery.getArtifactFromTypeAndName(CoreArtifactTypes.WorkFlowDefinition, workflowId, - AtsUtil.getAtsBranch()); - if (workflowArt != null) { - teamDefArt.addRelation(CoreRelationTypes.WorkItem__Child, workflowArt); - } else { - throw new OseeArgumentException("Can't find workflow with id \"" + workflowId + "\""); - } - } - return teamDefArt; - } - - private void createActionableItems(DiagramNode page, List<ActionableItemArtifact> actionableItems) throws OseeArgumentException { - for (DiagramNode childPage : page.getToPages()) { - if (childPage.getPageType() == PageType.ActionableItem) { - // Relate this Team Definition to the Actionable Item - ActionableItemArtifact actItem = idToActionItem.get(childPage.getId()); - if (actItem != null) { - actionableItems.add(actItem); - } else { - throw new OseeArgumentException("Can't retrieve Actionable Item [%s] with id [%s]", childPage.getName(), - childPage.getId()); - } - } - } - } - - private ActionableItemArtifact addActionableItem(Artifact parent, DiagramNode page, SkynetTransaction transaction) throws OseeCoreException { - // System.out.println("Processing page " + page.getName()); - ActionableItemArtifact aia = null; - boolean getOrCreate = false; - boolean actionable = true; - Set<String> staticIds = new HashSet<String>(); - for (String line : page.getInstructionStr().replaceAll("\r", "\n").split("\n")) { - if (!line.equals("")) { - if (line.startsWith(GET_OR_CREATE)) { - getOrCreate = true; - } else if (line.startsWith(NOT_ACTIONABLE)) { - actionable = false; - } else if (line.startsWith(STATIC_ID)) { - staticIds.add(line.replaceFirst(STATIC_ID, "")); - } - } - } - if (page.getName().equals(AtsFolder.ActionableItem.getDisplayName())) { - aia = (ActionableItemArtifact) AtsFolderUtil.getFolder(AtsFolder.ActionableItem); - } else { - if (getOrCreate) { - aia = - (ActionableItemArtifact) ArtifactQuery.checkArtifactFromTypeAndName(AtsArtifactTypes.ActionableItem, - page.getName(), AtsUtil.getAtsBranch()); - } - if (aia == null) { - aia = - (ActionableItemArtifact) ArtifactTypeManager.addArtifact(AtsArtifactTypes.ActionableItem, - AtsUtil.getAtsBranch()); - aia.setName(page.getName()); - for (String staticId : staticIds) { - StaticIdManager.setSingletonAttributeValue(aia, staticId); - } - - aia.persist(transaction); - idToActionItem.put(page.getId(), aia); - parent.addChild(aia); - parent.persist(transaction); - } - } - for (DiagramNode childPage : page.getToPages()) { - addActionableItem(aia, childPage, transaction); - } - aia.setSoleAttributeValue(AtsAttributeTypes.Actionable, actionable); - - aia.persist(transaction); - return aia; - } - - // /** - // * Selection in the workbench has been changed. We can change the state of the 'real' action here if we want, but - // * this can only happen after the delegate has been created. - // */ - // public void selectionChanged(IAction action, ISelection selection) { - // } - // - // /** - // * We can use this method to dispose of any system resources we previously allocated. - // * - // * @see IWorkbenchWindowActionDelegate#dispose - // */ - // public void dispose() { - // } - // - // /** - // * We will cache window object in order to be able to provide parent shell for the message dialog. - // * - // * @see IWorkbenchWindowActionDelegate#init - // */ - // public void init(IWorkbenchWindow window) { - // } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats/support/WorkDef_Goal.ats b/plugins/org.eclipse.osee.ats/support/WorkDef_Goal.ats new file mode 100644 index 00000000000..093491c672d --- /dev/null +++ b/plugins/org.eclipse.osee.ats/support/WorkDef_Goal.ats @@ -0,0 +1,42 @@ +workDefinition "WorkDef_Goal" { + id "WorkDef_Goal" + startState "InWork" + + widgetDefinition "Title" { + attributeName "Name" + xWidgetName "XTextDam" + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "Description" { + attributeName "ats.Description" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + state "Cancelled" { + type Cancelled + ordinal 3 + to "InWork" OverrideAttributeValidation + } + + state "InWork" { + type Working + ordinal 1 + to "Cancelled" + to "Completed" AsDefault + layout { + widget "Title" + widget "Description" + attributeWidget "ats.Estimated Hours" + attributeWidget "ats.Goal Order Vote" + } + } + + state "Completed" { + type Completed + ordinal 2 + to "InWork" OverrideAttributeValidation + rule AddDecisionValidateBlockingReview + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats/support/WorkDef_Review_Decision.ats b/plugins/org.eclipse.osee.ats/support/WorkDef_Review_Decision.ats new file mode 100644 index 00000000000..6b8dafbd67c --- /dev/null +++ b/plugins/org.eclipse.osee.ats/support/WorkDef_Review_Decision.ats @@ -0,0 +1,110 @@ +workDefinition "WorkDef_Review_Decision" { + id "WorkDef_Review_Decision" + startState "Prepare" + + widgetDefinition "Question" { + attributeName "Name" + xWidgetName "XLabelDam" + } + + widgetDefinition "Decision" { + attributeName "ats.Decision" + xWidgetName "XComboDam(1,2,3)" + option REQUIRED_FOR_TRANSITION + option HORIZONTAL_LABEL + } + + widgetDefinition "Description" { + attributeName "ats.Description" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Resolution" { + attributeName "ats.Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Title" { + attributeName "Name" + xWidgetName "XTextDam" + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "Decision Review Options" { + attributeName "ats.Decision Review Options" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Review Blocks" { + attributeName "ats.Review Blocks" + xWidgetName "XComboDam(OPTIONS_FROM_ATTRIBUTE_VALIDITY)" + option REQUIRED_FOR_TRANSITION + option HORIZONTAL_LABEL + } + + state "Decision" { + type Working + ordinal 2 + to "Followup" + to "Cancelled" + to "Completed" AsDefault + to "Prepare" OverrideAttributeValidation + layout { + widget "Question" + widget "Decision" + widget "Description" + widget "Resolution" + } + } + + state "Prepare" { + type Working + ordinal 1 + to "Cancelled" + to "Decision" AsDefault + layout { + widget "Title" + widget "Decision Review Options" + widget "Description" + attributeWidget "ats.Related To State" + widget "Review Blocks" + attributeWidget "ats.Need By" + attributeWidget "ats.Estimated Hours" + } + } + + state "Followup" { + type Working + ordinal 3 + to "Cancelled" + to "Completed" AsDefault + to "Decision" OverrideAttributeValidation + layout { + widget "Resolution" + } + } + + state "Cancelled" { + type Cancelled + ordinal 5 + to "Decision" OverrideAttributeValidation + to "Followup" OverrideAttributeValidation + to "Prepare" OverrideAttributeValidation + } + + state "Completed" { + type Completed + ordinal 4 + to "Decision" OverrideAttributeValidation + to "Followup" OverrideAttributeValidation + rule AddDecisionValidateBlockingReview + layout { + widget "Question" + widget "Decision" + widget "Resolution" + } + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats/support/WorkDef_Review_PeerToPeer.ats b/plugins/org.eclipse.osee.ats/support/WorkDef_Review_PeerToPeer.ats new file mode 100644 index 00000000000..5a7938d4239 --- /dev/null +++ b/plugins/org.eclipse.osee.ats/support/WorkDef_Review_PeerToPeer.ats @@ -0,0 +1,107 @@ +workDefinition "WorkDef_Review_PeerToPeer" { + id "WorkDef_Review_PeerToPeer" + startState "Prepare" + + widgetDefinition "Title" { + attributeName "Name" + xWidgetName "XTextDam" + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "Role" { + attributeName "ats.Role" + xWidgetName "XUserRoleViewer" + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "Location" { + attributeName "ats.Location" + xWidgetName "XTextDam" + option FILL_VERTICALLY + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "Description" { + attributeName "ats.Description" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Review Blocks" { + attributeName "ats.Review Blocks" + xWidgetName "XComboDam(OPTIONS_FROM_ATTRIBUTE_VALIDITY)" + option REQUIRED_FOR_TRANSITION + option HORIZONTAL_LABEL + } + + widgetDefinition "Review Defect" { + attributeName "ats.Review Defect" + xWidgetName "XDefectViewer" + } + + widgetDefinition "Resolution" { + attributeName "ats.Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + state "Cancelled" { + type Cancelled + ordinal 4 + to "Prepare" OverrideAttributeValidation + to "Review" OverrideAttributeValidation + } + + state "Prepare" { + type Working + ordinal 1 + to "Cancelled" + to "Review" AsDefault + layout { + widget "Title" + attributeWidget "ats.Legacy PCR Id" + widget "Role" + widget "Location" + widget "Description" + attributeWidget "ats.Related To State" + widget "Review Blocks" + composite { + numColumns 8 + attributeWidget "ats.LOC Changed" + attributeWidget "ats.LOC Reviewed" + attributeWidget "ats.Pages Changed" + attributeWidget "ats.Pages Reviewed" + } + attributeWidget "ats.Need By" + attributeWidget "ats.Estimated Hours" + } + } + + state "Review" { + type Working + ordinal 2 + to "Cancelled" + to "Completed" AsDefault + to "Prepare" OverrideAttributeValidation + layout { + widget "Role" + widget "Review Defect" + composite { + numColumns 8 + attributeWidget "ats.LOC Changed" + attributeWidget "ats.LOC Reviewed" + attributeWidget "ats.Pages Changed" + attributeWidget "ats.Pages Reviewed" + } + widget "Resolution" + widget "Description" + } + } + + state "Completed" { + type Completed + ordinal 3 + to "Review" OverrideAttributeValidation + rule AddDecisionValidateBlockingReview + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats/support/WorkDef_Task_Default.ats b/plugins/org.eclipse.osee.ats/support/WorkDef_Task_Default.ats index f921d81fe7a..28286c95589 100644 --- a/plugins/org.eclipse.osee.ats/support/WorkDef_Task_Default.ats +++ b/plugins/org.eclipse.osee.ats/support/WorkDef_Task_Default.ats @@ -18,7 +18,7 @@ workDefinition "WorkDef_Task_Default" { state "InWork" { type Working ordinal 1 - to "Complete" AsDefault + to "Completed" AsDefault to "Cancelled" OverrideAttributeValidation rule RequireStateHourSpentPrompt layout { @@ -38,14 +38,14 @@ workDefinition "WorkDef_Task_Default" { } } - state "Complete" { + state "Completed" { type Completed ordinal 2 - rule AddDecisionValidateBlockingReview + to "InWork" OverrideAttributeValidation } state "Cancelled" { type Cancelled ordinal 3 } -}
\ No newline at end of file +} diff --git a/plugins/org.eclipse.osee.ats/support/WorkDef_Team_Default.ats b/plugins/org.eclipse.osee.ats/support/WorkDef_Team_Default.ats index 8edd21ff65e..e17bcda8da0 100644 --- a/plugins/org.eclipse.osee.ats/support/WorkDef_Team_Default.ats +++ b/plugins/org.eclipse.osee.ats/support/WorkDef_Team_Default.ats @@ -86,8 +86,9 @@ workDefinition "WorkDef_Team_Default" { ordinal 2 to "Cancelled" to "Authorize" AsDefault - to "Endorse" OverrideAttributeValidation + to "Endorse" OverrideAttributeValidation rule RequireStateHourSpentPrompt + percentWeight 10 layout { widget "Work Package" widget "Problem" @@ -108,6 +109,7 @@ workDefinition "WorkDef_Team_Default" { to "Cancelled" to "Analyze" AsDefault rule RequireStateHourSpentPrompt + percentWeight 5 layout { widget "Title" widget "Description" @@ -139,6 +141,7 @@ workDefinition "WorkDef_Team_Default" { to "Cancelled" to "Implement" AsDefault to "Analyze" OverrideAttributeValidation + percentWeight 5 layout { widget "Work Package" widget "Estimated Completion Date" @@ -153,6 +156,7 @@ workDefinition "WorkDef_Team_Default" { to "Analyze" OverrideAttributeValidation to "Authorize" OverrideAttributeValidation rule RequireStateHourSpentPrompt + percentWeight 79 layout { widget "Work Package" widget "Estimated Completion Date" @@ -165,5 +169,6 @@ workDefinition "WorkDef_Team_Default" { ordinal 5 to "Implement" OverrideAttributeValidation rule AddDecisionValidateBlockingReview + percentWeight 1 } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats/support/WorkDef_Team_Simple.ats b/plugins/org.eclipse.osee.ats/support/WorkDef_Team_Simple.ats new file mode 100644 index 00000000000..70c3a12bafd --- /dev/null +++ b/plugins/org.eclipse.osee.ats/support/WorkDef_Team_Simple.ats @@ -0,0 +1,83 @@ +workDefinition "WorkDef_Team_Simple" { + id "WorkDef_Team_Simple" + startState "Endorse" + + widgetDefinition "Resolution" { + attributeName "ats.Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "Title" { + attributeName "Name" + xWidgetName "XTextDam" + option REQUIRED_FOR_TRANSITION + } + + widgetDefinition "Description" { + attributeName "ats.Description" + xWidgetName "XTextDam" + option REQUIRED_FOR_TRANSITION + option FILL_VERTICALLY + } + + widgetDefinition "Proposed Resolution" { + attributeName "ats.Proposed Resolution" + xWidgetName "XTextDam" + option FILL_VERTICALLY + } + + widgetDefinition "User Community" { + attributeName "ats.User Community" + xWidgetName "XListDam(OPTIONS_FROM_ATTRIBUTE_VALIDITY)" + option HORIZONTAL_LABEL + } + + state "Cancelled" { + type Cancelled + ordinal 4 + to "InWork" OverrideAttributeValidation + to "Endorse" OverrideAttributeValidation + } + + state "InWork" { + type Working + ordinal 2 + to "Cancelled" + to "Completed" AsDefault + to "Endorse" OverrideAttributeValidation + rule RequireStateHourSpentPrompt + layout { + widget "Resolution" + } + } + + state "Endorse" { + type Working + ordinal 1 + to "Cancelled" + to "InWork" AsDefault + rule RequireStateHourSpentPrompt + layout { + widget "Title" + widget "Description" + widget "Proposed Resolution" + composite { + numColumns 6 + attributeWidget "ats.Change Type" + attributeWidget "ats.Priority" + attributeWidget "ats.Need By" + } + attributeWidget "ats.Validation Required" + attributeWidget "ats.Work Package" + widget "User Community" + } + } + + state "Completed" { + type Completed + ordinal 3 + to "InWork" OverrideAttributeValidation + rule AddDecisionValidateBlockingReview + } +}
\ No newline at end of file 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 284e2047c56..d220cf8a4fb 100644 --- a/plugins/org.eclipse.osee.client.integration.tests/MasterTestSuite_DemoDbInit.launch +++ b/plugins/org.eclipse.osee.client.integration.tests/MasterTestSuite_DemoDbInit.launch @@ -31,14 +31,13 @@ <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -nosplash"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.osee.client.integration.tests"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> -<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024M -XX:MaxPermSize=256m -Dosee.log.default=INFO -Dequinox.ds.debug=true -Dosee.application.server=http://localhost:8089 -Dosee.authentication.protocol=demo -DeventDebug=log -DeventSystem=new -Dosee.is.in.db.init=true"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024M -XX:MaxPermSize=256m -Dosee.log.default=INFO -Dequinox.ds.debug=true -Dosee.application.server=http://localhost:8089 -Dosee.authentication.protocol=demo -DeventDebug=log -DeventSystem=new -Dosee.is.in.db.init=true -Dats.useNewWorkDefinitions=true"/> <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="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.google.collect@default:default,com.google.inject@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.lowagie.text@default:default,de.itemis.xtext.antlr@default:default,javax.mail.glassfish@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.wsdl@default:default,javax.xml@default:default,org.antlr.generator@default:default,org.antlr.runtime@default:default,org.aopalliance@default:default,org.apache.ant@default:default,org.apache.batik.bridge@default:default,org.apache.batik.css@default:default,org.apache.batik.dom.svg@default:default,org.apache.batik.dom@default:default,org.apache.batik.ext.awt@default:default,org.apache.batik.parser@default:default,org.apache.batik.pdf@default:default,org.apache.batik.svggen@default:default,org.apache.batik.transcoder@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.batik.xml@default:default,org.apache.commons.cli@default:default,org.apache.commons.codec@default:default,org.apache.commons.el@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.net@default:default,org.apache.jasper@default:default,org.apache.log4j@default:default,org.apache.lucene*1.9.1.v201101211617@default:default,org.apache.lucene*2.9.1.v201101211721@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene.highlighter@default:default,org.apache.lucene.memory@default:default,org.apache.lucene.misc@default:default,org.apache.lucene.queries@default:default,org.apache.lucene.snowball@default:default,org.apache.lucene.spellchecker@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.optional.junit@default:false,org.eclipse.ant.ui@default:default,org.eclipse.birt.chart.device.extension@default:default,org.eclipse.birt.chart.device.svg@default:default,org.eclipse.birt.chart.device.swt@default:default,org.eclipse.birt.chart.engine.extension@default:default,org.eclipse.birt.chart.engine@default:default,org.eclipse.birt.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare.win32@default:default,org.eclipse.compare@default:default,org.eclipse.core.boot@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.cvs@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.emf.compare@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.emf.mwe2.lib@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.ds@default:true,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.gef@default:default,org.eclipse.help.appserver@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jsch.core@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.nebula.widgets.calendarcombo@default:default,org.eclipse.nebula.widgets.xviewer@default:default,org.eclipse.net4j.jms.api@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.sdk@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.team.svn.help@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.team.svn@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core.win32@default:false,org.eclipse.update.core@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.update.ui@default:default,org.eclipse.xpand@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.xtend@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.xtext.common.types.ui@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.xtext.generator@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.xtext.ui@default:default,org.eclipse.xtext.util@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.xtext.xtend2.lib@default:default,org.eclipse.xtext@default:default,org.eclipse.zest.core@default:default,org.eclipse.zest.layouts@default:default,org.h2@default:default,org.hamcrest.core@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default,org.mortbay.jetty.server@default:default,org.mortbay.jetty.util@default:default,org.mozilla.javascript@default:default,org.objectweb.asm@default:default,org.polarion.eclipse.team.svn.connector.svnkit16@default:default,org.polarion.eclipse.team.svn.connector@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default,org.w3c.css.sac@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/> -<stringAttribute key="selected_workspace_plugins" value="jms.libraries@default:default,net.jini@default:default,org.eclipse.osee.ats.config.demo@default:default,org.eclipse.osee.ats.help.ui@default:default,org.eclipse.osee.ats.test@default:false,org.eclipse.osee.ats@default:default,org.eclipse.osee.client.integration.tests@default:default,org.eclipse.osee.coverage.help.ui@default:default,org.eclipse.osee.coverage.test@default:false,org.eclipse.osee.coverage@default:default,org.eclipse.osee.define.test@default:false,org.eclipse.osee.define@default:default,org.eclipse.osee.demo.db.connection@default:default,org.eclipse.osee.framework.access.test@default:false,org.eclipse.osee.framework.access@default:default,org.eclipse.osee.framework.core.client@default:default,org.eclipse.osee.framework.core.dsl.integration.test@default:false,org.eclipse.osee.framework.core.dsl.integration@default:default,org.eclipse.osee.framework.core.dsl.ui.integration@default:default,org.eclipse.osee.framework.core.dsl@default:default,org.eclipse.osee.framework.core.message.test@default:false,org.eclipse.osee.framework.core.message@default:default,org.eclipse.osee.framework.core.model.test@default:false,org.eclipse.osee.framework.core.model@default:default,org.eclipse.osee.framework.core.test@default:false,org.eclipse.osee.framework.core@default:default,org.eclipse.osee.framework.database.init@default:default,org.eclipse.osee.framework.database.test@default:false,org.eclipse.osee.framework.database@default:default,org.eclipse.osee.framework.h2@default:default,org.eclipse.osee.framework.help.ui@default:default,org.eclipse.osee.framework.jdk.core.test@default:false,org.eclipse.osee.framework.jdk.core@default:default,org.eclipse.osee.framework.jini@default:default,org.eclipse.osee.framework.lifecycle.test@default:false,org.eclipse.osee.framework.lifecycle@default:default,org.eclipse.osee.framework.logging@default:default,org.eclipse.osee.framework.messaging.event.res.test@default:false,org.eclipse.osee.framework.messaging.event.res@default:default,org.eclipse.osee.framework.messaging.event.skynet@default:default,org.eclipse.osee.framework.messaging.test@default:false,org.eclipse.osee.framework.messaging@default:default,org.eclipse.osee.framework.plugin.core@default:default,org.eclipse.osee.framework.skynet.core.test@default:false,org.eclipse.osee.framework.skynet.core@default:default,org.eclipse.osee.framework.svn@default:default,org.eclipse.osee.framework.templates@default:default,org.eclipse.osee.framework.ui.jdk@default:default,org.eclipse.osee.framework.ui.plugin@default:default,org.eclipse.osee.framework.ui.skynet.test@default:false,org.eclipse.osee.framework.ui.skynet@default:default,org.eclipse.osee.framework.ui.swt@default:default,org.eclipse.osee.framework.ui.ws@default:default,org.eclipse.osee.ote.define@default:default,org.eclipse.osee.support.test.util@default:default,org.postgresql.driver@default:default"/> +<stringAttribute key="selected_target_plugins" value="org.eclipse.team.cvs.ssh2@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.ui.cheatsheets@default:default,org.apache.lucene@default:default,org.eclipse.platform@default:default,org.eclipse.debug.ui@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,com.lowagie.text@default:default,com.ibm.icu@default:default,javax.servlet@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ui.forms@default:default,org.eclipse.core.boot@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.xtext@default:default,org.eclipse.emf.edit@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.emf.codegen.ecore@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.team.core@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.ide@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.jdt.junit.core@default:default,javax.wsdl@default:default,org.polarion.eclipse.team.svn.connector.svnkit16@default:default,org.eclipse.debug.core@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.core.externaltools@default:default,org.apache.commons.lang@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.core.variables@default:default,org.eclipse.compare.core@default:default,org.eclipse.pde.ui@default:default,org.apache.batik.ext.awt@default:default,org.eclipse.ecf.ssl@default:false,org.apache.xerces@default:default,org.eclipse.core.resources@default:default,org.eclipse.pde@default:default,javax.activation@default:default,org.apache.batik.xml@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.core.expressions@default:default,javax.servlet.jsp@default:default,org.eclipse.help.appserver@default:default,org.apache.batik.dom@default:default,org.eclipse.equinox.concurrent@default:default,org.apache.batik.util@default:default,org.eclipse.xtext.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.ui.win32@default:false,org.eclipse.equinox.ds@default:true,org.eclipse.xtext.generator@default:default,org.eclipse.core.net@default:default,org.apache.commons.codec@default:default,org.eclipse.compare@default:default,org.apache.batik.bridge@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.eclipse.jsch.core@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.jface.text@default:default,org.eclipse.jdt.debug@default:default,javax.mail.glassfish@default:default,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.core.jobs@default:default,org.eclipse.update.core.win32@default:false,org.eclipse.ui.views@default:default,org.apache.batik.pdf@default:default,org.eclipse.ant.ui@default:default,org.eclipse.nebula.widgets.xviewer@default:default,org.eclipse.pde.build@default:default,org.eclipse.equinox.common@2:true,org.apache.lucene.analysis@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,com.google.collect@default:default,org.apache.commons.logging*1.1.1.v201005080502@default:default,org.eclipse.gef@default:default,org.eclipse.jdt.core@default:default,org.eclipse.core.filebuffers@default:default,org.apache.commons.httpclient@default:default,de.itemis.xtext.antlr@default:default,org.eclipse.equinox.security@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.core.contenttype@default:default,org.apache.oro@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.preferences@default:default,org.junit4@default:default,org.eclipse.birt.chart.device.svg@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.jface@default:default,org.eclipse.xtext.xtend@default:default,org.apache.commons.el@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.apache.log4j@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.birt.chart.engine.extension@default:default,org.eclipse.update.core@default:default,org.eclipse.help.base@default:default,org.eclipse.jdt@default:default,org.apache.jasper@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.emf.edit.ui@default:default,org.eclipse.jdt.debug.ui@default:default,org.w3c.css.sac@default:default,org.eclipse.equinox.app@default:default,org.eclipse.ui.intro@default:default,org.eclipse.birt.chart.engine@default:default,org.eclipse.jdt.doc.user@default:default,org.apache.xml.serializer@default:default,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.equinox.security.win32.x86@default:false,org.apache.batik.transcoder@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.osgi.util@default:default,org.eclipse.core.filesystem@default:default,org.antlr.gen@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.ant.launching@default:default,org.eclipse.osgi@-1:true,org.sat4j.pb@default:default,org.eclipse.team.svn.ui@default:default,org.apache.batik.css@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.h2@default:default,org.apache.batik.util.gui@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.console@default:default,org.eclipse.text@default:default,org.apache.ant@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.jdt.doc.isv@default:default,org.aopalliance@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.help.ui@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.update.ui@default:default,org.objectweb.asm@default:default,org.eclipse.update.configurator@3:true,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.equinox.p2.ui@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.rcp@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.team.svn@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.sdk@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.emf.common@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,com.jcraft.jsch@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.mozilla.javascript@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.apache.xml.resolver@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.xpand@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.ant.core@default:default,org.eclipse.ui.ide.application@default:default,org.mortbay.jetty.util@default:default,org.eclipse.zest.layouts@default:default,org.eclipse.swt@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.search@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.pde.core@default:default,org.eclipse.birt.chart.device.extension@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.ui@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.draw2d@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.ui.intro.universal@default:default,org.sat4j.core@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.emf.compare.diff@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.emf.common.ui@default:default,javax.xml@default:default,org.eclipse.zest.core@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.xtext.builder@default:default,org.antlr.runtime@default:default,org.eclipse.team.svn.help@default:default,org.eclipse.emf.compare@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.core.runtime@default:true,org.polarion.eclipse.team.svn.connector@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.ecf@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.birt.chart.device.swt@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.cvs@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.osgi.services@default:default,org.eclipse.ui.browser@default:default,org.eclipse.help.webapp@default:default,org.apache.commons.net@default:default,org.apache.batik.dom.svg@default:default,org.eclipse.xtext.common.types@default:default,org.hamcrest.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.birt.core@default:default,org.eclipse.equinox.util@default:default,org.apache.batik.parser@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.xtend@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.nebula.widgets.calendarcombo@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.mortbay.jetty.server@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.compare.win32@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.team.ui@default:default,com.google.inject@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.pde.launching@default:default,org.apache.commons.cli@default:default,org.apache.batik.svggen@default:default"/> +<stringAttribute key="selected_workspace_plugins" value="org.eclipse.osee.framework.core.dsl.integration.test@default:false,org.eclipse.osee.framework.lifecycle.test@default:false,org.eclipse.osee.framework.core.message.test@default:false,org.eclipse.osee.framework.postgresql@default:default,org.eclipse.osee.support.test.util@default:default,org.eclipse.osee.framework.access@default:default,org.eclipse.osee.ats.config.demo@default:default,org.eclipse.osee.coverage@default:default,org.eclipse.osee.framework.messaging.test@default:false,org.eclipse.osee.framework.skynet.core.test@default:false,org.eclipse.osee.ats.dsl.ui@default:default,org.eclipse.osee.framework.core.model.test@default:false,org.eclipse.osee.demo.db.connection@default:default,org.eclipse.osee.ats.dsl@default:default,org.eclipse.osee.framework.jdbcodbc@default:default,org.eclipse.osee.define@default:default,org.eclipse.osee.framework.jini@default:default,org.eclipse.osee.framework.ui.skynet.test@default:false,org.eclipse.osee.framework.core.dsl@default:default,org.eclipse.osee.framework.ui.plugin@default:default,org.eclipse.osee.framework.messaging.event.skynet@default:default,org.eclipse.osee.ats.dsl.generator@default:default,org.eclipse.osee.framework.core.client@default:default,org.eclipse.osee.framework.core.message@default:default,org.eclipse.osee.client.integration.tests@default:default,org.eclipse.osee.ote.define@default:default,org.eclipse.osee.coverage.help.ui@default:default,org.eclipse.osee.framework.ui.swt@default:default,org.eclipse.osee.ats.help.ui@default:default,org.eclipse.osee.framework.ui.ws@default:default,org.eclipse.osee.framework.help.ui@default:default,org.eclipse.osee.framework.logging@default:default,org.eclipse.osee.framework.plugin.core@default:default,org.eclipse.osee.framework.database.test@default:false,net.jini@default:default,org.eclipse.osee.framework.core.dsl.integration@default:default,org.eclipse.osee.framework.core@default:default,org.postgresql.driver@default:default,org.eclipse.osee.ats.dsl.integration@default:default,org.eclipse.osee.framework.lifecycle@default:default,org.eclipse.osee.framework.core.dsl.ui.integration@default:default,org.eclipse.osee.framework.database@default:default,org.eclipse.osee.define.test@default:false,org.eclipse.osee.framework.core.test@default:false,org.eclipse.osee.framework.messaging.event.res.test@default:false,org.eclipse.osee.framework.ui.skynet@default:default,jms.libraries@default:default,org.eclipse.osee.framework.messaging.event.res@default:default,org.eclipse.osee.framework.jdk.core.test@default:false,org.eclipse.osee.coverage.test@default:false,org.eclipse.osee.framework.messaging@default:default,org.eclipse.osee.framework.jdk.core@default:default,org.eclipse.osee.framework.access.test@default:false,org.eclipse.osee.framework.database.init@default:default,org.eclipse.osee.ats@default:default,org.eclipse.osee.framework.ui.jdk@default:default,org.eclipse.nebula.widgets.xviewer.tests@default:false,org.eclipse.osee.framework.svn@default:default,org.eclipse.osee.ats.test@default:false,org.eclipse.osee.framework.core.model@default:default,org.eclipse.osee.framework.skynet.core@default:default,org.eclipse.osee.framework.templates@default:default"/> <booleanAttribute key="show_selected_only" value="false"/> -<stringAttribute key="timestamp" value="1313115478338"/> <booleanAttribute key="tracing" value="false"/> <booleanAttribute key="useCustomFeatures" value="false"/> <booleanAttribute key="useDefaultConfig" value="true"/> diff --git a/plugins/org.eclipse.osee.client.integration.tests/MasterTestSuite_DemoDbTests.launch b/plugins/org.eclipse.osee.client.integration.tests/MasterTestSuite_DemoDbTests.launch index 1bfd646a231..ec7df4bbe40 100644 --- a/plugins/org.eclipse.osee.client.integration.tests/MasterTestSuite_DemoDbTests.launch +++ b/plugins/org.eclipse.osee.client.integration.tests/MasterTestSuite_DemoDbTests.launch @@ -31,12 +31,12 @@ <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -nosplash"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.osee.client.integration.tests"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> -<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024M -XX:MaxPermSize=256m -Dosee.log.default=INFO -Dequinox.ds.debug=true -Dosee.application.server=http://localhost:8089 -Dosee.authentication.protocol=demo -DeventDebug=log -DeventSystem=new"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024M -XX:MaxPermSize=256m -Dosee.log.default=INFO -Dequinox.ds.debug=true -Dosee.application.server=http://localhost:8089 -Dosee.authentication.protocol=demo -DeventDebug=log -DeventSystem=new -Dats.useNewWorkDefinitions=true"/> <stringAttribute key="pde.version" value="3.3"/> <stringAttribute key="product" value="org.eclipse.osee.framework.ui.product.osee"/> <booleanAttribute key="run_in_ui_thread" value="true"/> -<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.google.collect@default:default,com.google.inject@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.lowagie.text@default:default,de.itemis.xtext.antlr@default:default,javax.mail.glassfish@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.xml@default:default,org.antlr.generator@default:default,org.antlr.runtime@default:default,org.aopalliance@default:default,org.apache.ant@default:default,org.apache.commons.cli@default:default,org.apache.commons.codec@default:default,org.apache.commons.el@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.net@default:default,org.apache.jasper@default:default,org.apache.log4j@default:default,org.apache.lucene*1.9.1.v201101211617@default:default,org.apache.lucene*2.9.1.v201101211721@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene.highlighter@default:default,org.apache.lucene.memory@default:default,org.apache.lucene.misc@default:default,org.apache.lucene.queries@default:default,org.apache.lucene.snowball@default:default,org.apache.lucene.spellchecker@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.optional.junit@default:false,org.eclipse.ant.ui@default:default,org.eclipse.birt.chart.engine@default:default,org.eclipse.birt.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.boot@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.cvs@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.emf.compare@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.emf.mwe2.lib@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.win32.win32.x86@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.gef@default:default,org.eclipse.help.appserver@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.nebula.widgets.calendarcombo@default:default,org.eclipse.nebula.widgets.xviewer@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.sdk@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.team.svn.help@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.team.svn@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core.win32@default:false,org.eclipse.update.core@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.update.ui@default:default,org.eclipse.xpand@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.xtend@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.xtext.common.types.ui@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.xtext.generator@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.xtext.ui.shared@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.xtext.util@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.xtext.xtend2.lib@default:default,org.eclipse.xtext@default:default,org.eclipse.zest.core@default:default,org.eclipse.zest.layouts@default:default,org.h2@default:default,org.hamcrest.core@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default,org.mortbay.jetty.server@default:default,org.mortbay.jetty.util@default:default,org.mozilla.javascript@default:default,org.polarion.eclipse.team.svn.connector@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default"/> -<stringAttribute key="selected_workspace_plugins" value="jms.activemq.launch@default:default,jms.libraries@default:default,net.jini@default:default,org.eclipse.osee.ats.config.demo@default:default,org.eclipse.osee.ats.help.ui@default:default,org.eclipse.osee.ats.test@default:false,org.eclipse.osee.ats@default:default,org.eclipse.osee.client.integration.tests@default:default,org.eclipse.osee.coverage.help.ui@default:default,org.eclipse.osee.coverage.test@default:false,org.eclipse.osee.coverage@default:default,org.eclipse.osee.define.test@default:false,org.eclipse.osee.define@default:default,org.eclipse.osee.demo.db.connection@default:default,org.eclipse.osee.framework.access.test@default:false,org.eclipse.osee.framework.access@default:default,org.eclipse.osee.framework.core.client@default:default,org.eclipse.osee.framework.core.dsl.edit@default:default,org.eclipse.osee.framework.core.dsl.integration.test@default:false,org.eclipse.osee.framework.core.dsl.integration@default:default,org.eclipse.osee.framework.core.dsl.ui.integration@default:default,org.eclipse.osee.framework.core.dsl.ui@default:default,org.eclipse.osee.framework.core.dsl@default:default,org.eclipse.osee.framework.core.message.test@default:false,org.eclipse.osee.framework.core.message@default:default,org.eclipse.osee.framework.core.model.test@default:false,org.eclipse.osee.framework.core.model@default:default,org.eclipse.osee.framework.core.test@default:false,org.eclipse.osee.framework.core@default:default,org.eclipse.osee.framework.database.init@default:default,org.eclipse.osee.framework.database.test@default:false,org.eclipse.osee.framework.database@default:default,org.eclipse.osee.framework.h2@default:default,org.eclipse.osee.framework.help.ui@default:default,org.eclipse.osee.framework.jdk.core.test@default:false,org.eclipse.osee.framework.jdk.core@default:default,org.eclipse.osee.framework.jini@default:default,org.eclipse.osee.framework.lifecycle.test@default:false,org.eclipse.osee.framework.lifecycle@default:default,org.eclipse.osee.framework.logging@default:default,org.eclipse.osee.framework.messaging.event.res.test@default:false,org.eclipse.osee.framework.messaging.event.res@default:default,org.eclipse.osee.framework.messaging.event.skynet@default:default,org.eclipse.osee.framework.messaging.test@default:false,org.eclipse.osee.framework.messaging@default:default,org.eclipse.osee.framework.plugin.core@default:default,org.eclipse.osee.framework.skynet.core.test@default:false,org.eclipse.osee.framework.skynet.core@default:default,org.eclipse.osee.framework.svn@default:default,org.eclipse.osee.framework.templates@default:default,org.eclipse.osee.framework.ui.admin@default:default,org.eclipse.osee.framework.ui.branch.graph@default:default,org.eclipse.osee.framework.ui.data.model.editor@default:default,org.eclipse.osee.framework.ui.jdk@default:default,org.eclipse.osee.framework.ui.plugin@default:default,org.eclipse.osee.framework.ui.product@default:default,org.eclipse.osee.framework.ui.service.control@default:default,org.eclipse.osee.framework.ui.skynet.test@default:false,org.eclipse.osee.framework.ui.skynet@default:default,org.eclipse.osee.framework.ui.swt@default:default,org.eclipse.osee.framework.ui.workspacebundleloader@default:default,org.eclipse.osee.framework.ui.ws@default:default,org.eclipse.osee.ote.client.msg@default:default,org.eclipse.osee.ote.client@default:default,org.eclipse.osee.ote.connection.service@default:default,org.eclipse.osee.ote.core.test@default:false,org.eclipse.osee.ote.core@default:default,org.eclipse.osee.ote.define@default:default,org.eclipse.osee.ote.message.test@default:false,org.eclipse.osee.ote.message@default:default,org.eclipse.osee.ote.messaging.dds@default:default,org.eclipse.osee.ote.runtimeManager@default:default,org.eclipse.osee.ote.ui.define@default:default,org.eclipse.osee.ote.ui.markers@default:default,org.eclipse.osee.ote.ui.test.manager@default:default,org.eclipse.osee.ote.ui@default:default,org.eclipse.osee.support.test.util@default:default,org.postgresql.driver@default:default"/> +<stringAttribute key="selected_target_plugins" value="org.apache.commons.httpclient@default:default,org.apache.lucene@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.sdk@default:default,org.eclipse.ecf@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.ui.forms@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.team.core@default:default,org.eclipse.ui.ide@default:default,org.eclipse.pde.launching@default:default,org.eclipse.jface@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.osee.framework.svn@default:default,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.emf.ecore@default:default,org.aopalliance@default:default,org.eclipse.core.expressions@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.help.ui@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.team.ui@default:default,org.eclipse.core.commands@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.team.svn.ui@default:default,org.mortbay.jetty.util@default:default,org.eclipse.pde.build@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.help.appserver@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.osgi@-1:true,org.apache.commons.lang@default:default,org.eclipse.equinox.concurrent@default:default,org.eclipse.core.resources.win32.x86@default:false,com.lowagie.text@default:default,org.eclipse.ecf.filetransfer@default:default,com.jcraft.jsch@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.equinox.p2.operations@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.equinox.launcher.win32.win32.x86@default:false,org.eclipse.core.contenttype@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.nebula.widgets.calendarcombo@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.osgi.util@default:default,org.apache.xml.resolver@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.update.configurator@3:true,org.eclipse.birt.chart.engine@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.ant.core@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.eclipse.xtext.generator@default:default,org.sat4j.core@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,com.google.collect@default:default,org.eclipse.ui.browser@default:default,org.eclipse.equinox.http.jetty@default:default,javax.servlet@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.pde.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.apache.commons.logging*1.1.1.v201005080502@default:default,org.eclipse.core.jobs@default:default,com.google.inject@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.emf.edit@default:default,org.eclipse.jdt.apt.core@default:default,org.mortbay.jetty.server@default:default,org.eclipse.core.boot@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.zest.core@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.team.svn.help@default:default,org.eclipse.ui@default:default,org.mozilla.javascript@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.ant.launching@default:default,org.apache.lucene.analysis@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.swt@default:default,org.eclipse.jdt.doc.user@default:default,org.apache.oro@default:default,org.eclipse.equinox.p2.repository@default:default,org.apache.commons.net@default:default,org.eclipse.platform@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.core.filesystem@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.http.registry@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.ui.net@default:default,org.eclipse.core.variables@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,javax.servlet.jsp@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.jface.text@default:default,org.eclipse.jdt@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.osgi.services@default:default,org.eclipse.platform.doc.user@default:default,org.antlr.runtime@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.ui.views@default:default,org.eclipse.help.base@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.jdt.debug@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.xtext.logging@default:false,org.apache.commons.codec@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.ui.intro@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.equinox.p2.console@default:default,org.eclipse.xpand@default:default,org.polarion.eclipse.team.svn.connector@default:default,org.eclipse.debug.core@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.search@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.sat4j.pb@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.birt.core@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.core.net@default:default,org.eclipse.core.databinding.observable@default:default,org.hamcrest.core@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.core.filebuffers@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,org.apache.commons.cli@default:default,org.eclipse.compare@default:default,org.eclipse.ant.ui@default:default,org.junit4@default:default,org.eclipse.team.svn@default:default,org.eclipse.help@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.gef@default:default,com.ibm.icu@default:default,org.eclipse.pde.ui@default:default,org.eclipse.ui.console@default:default,org.eclipse.emf.edit.ui@default:default,de.itemis.xtext.antlr@default:default,org.eclipse.xtext.util@default:default,org.eclipse.compare.core@default:default,org.eclipse.equinox.app@default:default,org.eclipse.xtext.xtend@default:default,org.eclipse.core.databinding.property@default:default,javax.mail.glassfish@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.core.databinding@default:default,org.eclipse.jdt.core@default:default,org.apache.log4j@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.help.webapp@default:default,org.eclipse.ltk.core.refactoring@default:default,org.h2@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.pde@default:default,org.eclipse.update.core.win32@default:false,org.eclipse.ui.views.log@default:default,org.apache.xml.serializer@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.rcp@default:default,org.eclipse.nebula.widgets.xviewer@default:default,org.antlr.gen@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jsch.core@default:default,org.apache.xerces@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.update.core@default:default,org.apache.ant@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.ui.win32@default:false,javax.activation@default:default,org.eclipse.xtext@default:default,org.apache.commons.el@default:default,org.eclipse.ui.editors@default:default,org.eclipse.text@default:default,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.team.cvs.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,javax.xml@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.zest.layouts@default:default,org.eclipse.draw2d@default:default,org.eclipse.debug.ui@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.emf.compare@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.xtend@default:default,org.eclipse.update.ui@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.cvs@default:default,org.apache.jasper@default:default"/> +<stringAttribute key="selected_workspace_plugins" value="jms.activemq.launch@default:default,org.eclipse.osee.coverage.help.ui@default:default,org.eclipse.osee.framework.core.dsl.integration@default:default,org.eclipse.osee.define.test@default:false,org.eclipse.osee.framework.core.dsl.ui.integration@default:default,org.eclipse.osee.framework.access@default:default,org.eclipse.osee.framework.core.dsl.integration.test@default:false,org.eclipse.osee.framework.ui.ws@default:default,org.eclipse.osee.framework.skynet.core.test@default:false,org.eclipse.osee.ats.dsl@default:default,org.eclipse.osee.framework.ui.service.control@default:default,org.eclipse.osee.ote.ui.define@default:default,org.eclipse.osee.ats.dsl.generator@default:default,org.eclipse.osee.ote.message.test@default:false,org.eclipse.osee.ote.ui.markers@default:default,org.eclipse.osee.framework.core.dsl.ui@default:default,org.eclipse.osee.framework.ui.swt@default:default,org.eclipse.osee.ote.define@default:default,org.eclipse.osee.framework.ui.skynet@default:default,org.eclipse.osee.ats@default:default,org.eclipse.osee.framework.core.dsl.edit@default:default,net.jini@default:default,org.eclipse.osee.framework.ui.skynet.test@default:false,org.eclipse.osee.framework.ui.branch.graph@default:default,org.eclipse.osee.framework.ui.product@default:default,org.eclipse.osee.framework.skynet.core@default:default,org.eclipse.osee.framework.templates@default:default,org.eclipse.osee.framework.ui.workspacebundleloader@default:default,org.eclipse.osee.framework.database.test@default:false,org.eclipse.osee.ote.client.msg@default:default,org.eclipse.osee.ats.help.ui@default:default,org.eclipse.osee.framework.access.test@default:false,org.eclipse.osee.ats.config.demo@default:default,org.eclipse.osee.framework.core.test@default:false,org.eclipse.osee.framework.messaging.test@default:false,org.eclipse.osee.framework.ui.data.model.editor@default:default,org.eclipse.osee.framework.messaging.event.res@default:default,org.eclipse.osee.ats.dsl.integration@default:default,org.eclipse.osee.framework.messaging.event.skynet@default:default,org.eclipse.osee.framework.database.init@default:default,org.eclipse.osee.framework.lifecycle@default:default,org.eclipse.osee.ote.runtimeManager@default:default,org.eclipse.osee.framework.logging@default:default,org.eclipse.osee.framework.core.dsl@default:default,org.eclipse.osee.client.integration.tests@default:default,org.eclipse.osee.framework.ui.admin@default:default,org.eclipse.osee.framework.core.model.test@default:false,org.eclipse.osee.framework.lifecycle.test@default:false,org.eclipse.osee.coverage.test@default:false,org.eclipse.osee.framework.jdk.core.test@default:false,org.eclipse.osee.ote.ui@default:default,org.eclipse.osee.framework.ui.jdk@default:default,org.eclipse.osee.framework.core.client@default:default,org.eclipse.osee.framework.jdbcodbc@default:default,org.eclipse.osee.ote.ui.test.manager@default:default,org.eclipse.osee.framework.postgresql@default:default,org.eclipse.osee.ote.core@default:default,org.eclipse.osee.framework.database@default:default,org.eclipse.osee.framework.core.model@default:default,org.eclipse.osee.coverage@default:default,org.eclipse.osee.framework.help.ui@default:default,org.eclipse.osee.framework.jdk.core@default:default,org.eclipse.osee.framework.core.message.test@default:false,org.eclipse.osee.framework.core.message@default:default,org.eclipse.osee.ote.connection.service@default:default,org.eclipse.osee.framework.ui.plugin@default:default,org.eclipse.osee.support.test.util@default:default,org.eclipse.osee.ats.test@default:false,org.eclipse.osee.ote.messaging.dds@default:default,org.eclipse.osee.framework.messaging@default:default,org.eclipse.osee.framework.jini@default:default,org.eclipse.osee.define@default:default,org.eclipse.osee.framework.plugin.core@default:default,jms.libraries@default:default,org.eclipse.osee.framework.core@default:default,org.postgresql.driver@default:default,org.eclipse.osee.ote.message@default:default,org.eclipse.osee.ote.client@default:default,org.eclipse.osee.demo.db.connection@default:default,org.eclipse.osee.ats.dsl.ui@default:default,org.eclipse.osee.framework.messaging.event.res.test@default:false"/> <booleanAttribute key="show_selected_only" value="false"/> <booleanAttribute key="tracing" value="false"/> <booleanAttribute key="useCustomFeatures" value="false"/> diff --git a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/suite/MasterTestSuite_DemoDbTests.java b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/suite/MasterTestSuite_DemoDbTests.java index ec1053ee6c0..af14c0fec04 100644 --- a/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/suite/MasterTestSuite_DemoDbTests.java +++ b/plugins/org.eclipse.osee.client.integration.tests/src/org/eclipse/osee/client/integration/tests/suite/MasterTestSuite_DemoDbTests.java @@ -13,6 +13,7 @@ package org.eclipse.osee.client.integration.tests.suite; import static org.junit.Assert.assertTrue; import org.eclipse.osee.ats.test.AtsTest_Config_Suite; import org.eclipse.osee.ats.test.AtsTest_Demo_Suite; +import org.eclipse.osee.ats.test.AtsTest_Demo_StateItem_Suite; import org.eclipse.osee.coverage.test.Coverage_Db_Suite; import org.eclipse.osee.define.AllDefineTestSuite; import org.eclipse.osee.framework.core.client.ClientSessionManager; @@ -27,6 +28,7 @@ import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ + AtsTest_Demo_StateItem_Suite.class, CoreRuntimeFeatureTestsSuite.class, Coverage_Db_Suite.class, FrameworkCore_Demo_Suite.class, diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/ArtifactToken.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/ArtifactToken.java new file mode 100644 index 00000000000..8fe2e820e78 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/ArtifactToken.java @@ -0,0 +1,29 @@ +/* + * Created on Feb 8, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.framework.core.data; + +public class ArtifactToken extends NamedIdentity implements IArtifactToken { + + private final IArtifactType artifactType; + private final IOseeBranch oseeBranch; + + public ArtifactToken(String guid, String name, IArtifactType artifactType, IOseeBranch oseeBranch) { + super(guid, name); + this.artifactType = artifactType; + this.oseeBranch = oseeBranch; + } + + @Override + public IArtifactType getArtifactType() { + return artifactType; + } + + @Override + public IOseeBranch getBranch() { + return oseeBranch; + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/vue/AtsDbConfig.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/IArtifactToken.java index 31299a32194..a183a8fca5d 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/workflow/vue/AtsDbConfig.java +++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/IArtifactToken.java @@ -8,16 +8,14 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.ats.workflow.vue; - -import org.eclipse.osee.framework.core.exception.OseeCoreException; +package org.eclipse.osee.framework.core.data; /** - * @author Roberto E. Escobar + * @author Donald G. Dunne */ -public class AtsDbConfig { +public interface IArtifactToken extends Identity, FullyNamed { + + public IArtifactType getArtifactType(); - protected void executeLoadAIsAndTeamsAction(String bundleId) throws OseeCoreException { - LoadAIsAndTeamsAction.executeForDbConfig(bundleId); - } + public IOseeBranch getBranch(); } diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/OseeSystemArtifacts.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/OseeSystemArtifacts.java index 0a6195da9f6..a9670b91c80 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/OseeSystemArtifacts.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/OseeSystemArtifacts.java @@ -10,12 +10,14 @@ *******************************************************************************/ package org.eclipse.osee.framework.skynet.core; +import org.eclipse.osee.framework.core.data.IArtifactToken; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.model.Branch; +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.artifact.ArtifactCache; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; @@ -50,19 +52,30 @@ public final class OseeSystemArtifacts { * accessed, and finally a new artifact is created if it can not be found */ public static Artifact getOrCreateArtifact(IArtifactType artifactType, String artifactName, Branch branch) throws OseeCoreException { - return getOrCreateCachedArtifact(artifactType, artifactName, branch, true); + return getOrCreateCachedArtifact(artifactType, artifactName, branch, null, true); + } + + public static Artifact getOrCreateArtifact(IArtifactToken artifactToken) throws OseeCoreException { + return getOrCreateCachedArtifact(artifactToken.getArtifactType(), artifactToken.getName(), + artifactToken.getBranch(), artifactToken.getGuid(), true); } public static Artifact getCachedArtifact(IArtifactType artifactType, String artifactName, IOseeBranch branch) throws OseeCoreException { - return getOrCreateCachedArtifact(artifactType, artifactName, branch, false); + return getOrCreateCachedArtifact(artifactType, artifactName, branch, null, false); } - private static Artifact getOrCreateCachedArtifact(IArtifactType artifactType, String artifactName, IOseeBranch branch, boolean create) throws OseeCoreException { + private static Artifact getOrCreateCachedArtifact(IArtifactType artifactType, String artifactName, IOseeBranch branch, String guid, boolean create) throws OseeCoreException { Artifact artifact = ArtifactCache.getByTextId(artifactType.getName() + "." + artifactName, branch); if (artifact == null) { artifact = ArtifactQuery.checkArtifactFromTypeAndName(artifactType, artifactName, branch); if (artifact == null && create) { - artifact = ArtifactTypeManager.addArtifact(artifactType, branch, artifactName); + if (Strings.isValid(guid)) { + artifact = + ArtifactTypeManager.addArtifact(artifactType, BranchManager.getBranch(branch), guid, (String) null); + artifact.setName(artifactName); + } else { + artifact = ArtifactTypeManager.addArtifact(artifactType, branch, artifactName); + } } if (artifact == null) { throw new ArtifactDoesNotExist("Artifact of type [%s] with name [%s] does not exist on branch [%s]", diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactTypeManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactTypeManager.java index 604f7a309f3..d366a84f868 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactTypeManager.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/ArtifactTypeManager.java @@ -17,6 +17,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import org.eclipse.osee.framework.core.data.IArtifactToken; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.data.IAttributeType; import org.eclipse.osee.framework.core.data.IOseeBranch; @@ -174,6 +175,11 @@ public class ArtifactTypeManager { return makeNewArtifact(artifactType, branch, guid, humandReadableId); } + public static Artifact addArtifact(IArtifactToken artifactToken) throws OseeCoreException { + return getFactory(artifactToken.getArtifactType()).makeNewArtifact(artifactToken.getBranch(), + artifactToken.getArtifactType(), artifactToken.getName(), artifactToken.getGuid(), null); + } + private static final String DELETE_VALID_ATTRIBUTE = "delete from osee_artifact_type_attributes where art_type_id = ?"; private static final String COUNT_ARTIFACT_OCCURRENCE = diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/search/ArtifactQuery.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/search/ArtifactQuery.java index 620ed6ac50e..889b083daa1 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/search/ArtifactQuery.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/search/ArtifactQuery.java @@ -20,6 +20,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; +import org.eclipse.osee.framework.core.data.IArtifactToken; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.data.IAttributeType; import org.eclipse.osee.framework.core.data.IOseeBranch; @@ -51,6 +52,10 @@ import org.eclipse.osee.framework.skynet.core.event.model.EventBasicGuidArtifact */ public class ArtifactQuery { + public static Artifact getArtifactFromToken(IArtifactToken artifactToken) throws OseeCoreException { + return getArtifactFromId(artifactToken.getGuid(), BranchManager.getBranch(artifactToken.getBranch())); + } + public static Artifact getArtifactFromToken(EventBasicGuidArtifact guidArt) throws OseeCoreException { return getArtifactFromId(guidArt.getGuid(), BranchManager.getBranchByGuid(guidArt.getBranchGuid())); } diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboBooleanDam.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboBooleanDam.java index 23417810aca..7864e24c52d 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboBooleanDam.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboBooleanDam.java @@ -73,8 +73,9 @@ public class XComboBooleanDam extends XCombo implements IAttributeWidget { if (isEditable()) { try { String enteredValue = get(); - boolean storedValue = artifact.getSoleAttributeValue(attributeType); - if (enteredValue.equals("yes") != storedValue) { + boolean storedValueBoolean = artifact.getSoleAttributeValue(attributeType); + String storedValue = storedValueBoolean ? "yes" : "no"; + if (!enteredValue.equals(storedValue)) { return new Result(true, attributeType + " is dirty"); } } catch (AttributeDoesNotExist ex) { diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XHyperlinkLabelValueSelection.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XHyperlinkLabelValueSelection.java index cc85ea77791..bac444df98d 100644 --- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XHyperlinkLabelValueSelection.java +++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XHyperlinkLabelValueSelection.java @@ -30,7 +30,7 @@ import org.eclipse.ui.forms.widgets.Hyperlink; public abstract class XHyperlinkLabelValueSelection extends GenericXWidget { Hyperlink valueHyperlinkLabel; - Label valueLabel; + protected Label valueLabel; public XHyperlinkLabelValueSelection(String label) { super(label); diff --git a/plugins/org.eclipse.osee.support.config/launchConfig/OSEE Demo product [localhost].launch b/plugins/org.eclipse.osee.support.config/launchConfig/OSEE Demo product [localhost].launch index a40acbe846d..ca08bbaaf19 100644 --- a/plugins/org.eclipse.osee.support.config/launchConfig/OSEE Demo product [localhost].launch +++ b/plugins/org.eclipse.osee.support.config/launchConfig/OSEE Demo product [localhost].launch @@ -16,12 +16,12 @@ <booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/> <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-debug"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/> -<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024M -XX:MaxPermSize=256m -Dosee.log.default=INFO -Dosee.arbitration.server=http://localhost:8089 -Dosee.authentication.protocol=demo"/> +<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024M -XX:MaxPermSize=256m -Dosee.log.default=INFO -Dosee.arbitration.server=http://localhost:8089 -Dosee.authentication.protocol=demo -Dats.useNewWorkDefinitions=true"/> <stringAttribute key="pde.version" value="3.3"/> <stringAttribute key="product" value="org.eclipse.osee.framework.ui.product.osee"/> <booleanAttribute key="restart" value="false"/> -<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:default,com.google.collect@default:default,com.google.inject@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.lowagie.text@default:default,de.itemis.xtext.antlr@default:default,javax.mail.glassfish@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.xml@default:default,org.antlr.generator@default:default,org.antlr.runtime@default:default,org.aopalliance@default:default,org.apache.ant@default:default,org.apache.commons.cli@default:default,org.apache.commons.codec@default:default,org.apache.commons.el@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.jasper@default:default,org.apache.log4j@default:default,org.apache.lucene*1.9.1.v201101211617@default:default,org.apache.lucene*2.9.1.v201101211721@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene.highlighter@default:default,org.apache.lucene.memory@default:default,org.apache.lucene.misc@default:default,org.apache.lucene.queries@default:default,org.apache.lucene.snowball@default:default,org.apache.lucene.spellchecker@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.optional.junit@default:default,org.eclipse.ant.ui@default:default,org.eclipse.birt.chart.engine@default:default,org.eclipse.birt.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.boot@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.cvs@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.emf.compare@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.emf.mwe2.lib@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.win32.win32.x86@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.gef@default:default,org.eclipse.help.appserver@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.nebula.widgets.calendarcombo@default:default,org.eclipse.nebula.widgets.xviewer@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.sdk@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.team.svn@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core.win32@default:false,org.eclipse.update.core@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.update.ui@default:default,org.eclipse.xpand@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.xtend@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.xtext.common.types.ui@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.xtext.generator@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.xtext.ui.shared@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.xtext.util@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.xtext.xtend2.lib@default:default,org.eclipse.xtext@default:default,org.eclipse.zest.core@default:default,org.eclipse.zest.layouts@default:default,org.h2@default:default,org.hamcrest.core@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default,org.mortbay.jetty.server@default:default,org.mortbay.jetty.util@default:default,org.mozilla.javascript@default:default,org.polarion.eclipse.team.svn.connector@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default"/> -<stringAttribute key="selected_workspace_plugins" value="jms.libraries@default:default,net.jini@default:default,org.eclipse.osee.ats.config.demo@default:default,org.eclipse.osee.ats.help.ui@default:default,org.eclipse.osee.ats.test@default:false,org.eclipse.osee.ats@default:default,org.eclipse.osee.define.test@default:false,org.eclipse.osee.define@default:default,org.eclipse.osee.framework.access.test@default:false,org.eclipse.osee.framework.access@default:default,org.eclipse.osee.framework.core.client@default:default,org.eclipse.osee.framework.core.dsl.edit@default:default,org.eclipse.osee.framework.core.dsl.integration.test@default:false,org.eclipse.osee.framework.core.dsl.integration@default:default,org.eclipse.osee.framework.core.dsl.ui.integration@default:default,org.eclipse.osee.framework.core.dsl.ui@default:default,org.eclipse.osee.framework.core.dsl@default:default,org.eclipse.osee.framework.core.message.test@default:false,org.eclipse.osee.framework.core.message@default:default,org.eclipse.osee.framework.core.model.test@default:false,org.eclipse.osee.framework.core.model@default:default,org.eclipse.osee.framework.core.test@default:false,org.eclipse.osee.framework.core@default:default,org.eclipse.osee.framework.database.init@default:default,org.eclipse.osee.framework.database.test@default:false,org.eclipse.osee.framework.database@default:default,org.eclipse.osee.framework.h2@default:default,org.eclipse.osee.framework.help.ui@default:default,org.eclipse.osee.framework.jdk.core.test@default:false,org.eclipse.osee.framework.jdk.core@default:default,org.eclipse.osee.framework.jini@default:default,org.eclipse.osee.framework.lifecycle.test@default:false,org.eclipse.osee.framework.lifecycle@default:default,org.eclipse.osee.framework.logging@default:default,org.eclipse.osee.framework.messaging.event.res.test@default:false,org.eclipse.osee.framework.messaging.event.res@default:default,org.eclipse.osee.framework.messaging.event.skynet@default:default,org.eclipse.osee.framework.messaging.test@default:false,org.eclipse.osee.framework.messaging@default:default,org.eclipse.osee.framework.plugin.core@default:default,org.eclipse.osee.framework.skynet.core.test@default:false,org.eclipse.osee.framework.skynet.core@default:default,org.eclipse.osee.framework.svn@default:default,org.eclipse.osee.framework.templates@default:default,org.eclipse.osee.framework.ui.admin@default:default,org.eclipse.osee.framework.ui.data.model.editor@default:default,org.eclipse.osee.framework.ui.jdk@default:default,org.eclipse.osee.framework.ui.plugin@default:default,org.eclipse.osee.framework.ui.product@default:default,org.eclipse.osee.framework.ui.service.control@default:default,org.eclipse.osee.framework.ui.skynet.test@default:false,org.eclipse.osee.framework.ui.skynet@default:default,org.eclipse.osee.framework.ui.swt@default:default,org.eclipse.osee.framework.ui.ws@default:default,org.eclipse.osee.ote.define@default:default,org.eclipse.osee.ote.ui.define@default:default,org.eclipse.osee.support.test.util@default:default"/> +<stringAttribute key="selected_target_plugins" value="org.eclipse.team.cvs.ssh2@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.ui.cheatsheets@default:default,org.apache.lucene@default:default,org.eclipse.platform@default:default,org.eclipse.debug.ui@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,com.lowagie.text@default:default,com.ibm.icu@default:default,javax.servlet@default:default,org.eclipse.ui.forms@default:default,org.eclipse.core.boot@default:default,org.eclipse.xtext@default:default,org.eclipse.emf.edit@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.emf.codegen.ecore@default:default,org.junit*4.8.1.v4_8_1_v20100427-1100@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.team.core@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.ide@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.jdt.junit.core@default:default,org.eclipse.debug.core@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.core.externaltools@default:default,org.apache.commons.lang@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.core.variables@default:default,org.eclipse.compare.core@default:default,org.eclipse.pde.ui@default:default,org.eclipse.ecf.ssl@default:false,org.apache.xerces@default:default,org.eclipse.core.resources@default:default,org.eclipse.pde@default:default,javax.activation@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.core.expressions@default:default,org.eclipse.ui.presentations.r21@default:default,javax.servlet.jsp@default:default,org.eclipse.help.appserver@default:default,org.eclipse.equinox.concurrent@default:default,org.eclipse.xtext.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.ui.win32@default:false,org.eclipse.equinox.ds@1:true,org.eclipse.xtext.generator@default:default,org.eclipse.core.net@default:default,org.apache.commons.codec@default:default,org.eclipse.compare@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.eclipse.jsch.core@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.jface.text@default:default,org.eclipse.jdt.debug@default:default,javax.mail.glassfish@default:default,org.eclipse.core.jobs@default:default,org.eclipse.update.core.win32@default:false,org.eclipse.ui.views@default:default,org.eclipse.ui.net@default:default,org.eclipse.ant.ui@default:default,org.eclipse.nebula.widgets.xviewer@default:default,org.eclipse.pde.build@default:default,org.eclipse.equinox.common@2:true,org.apache.lucene.analysis@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,com.google.collect@default:default,org.apache.commons.logging*1.1.1.v201005080502@default:default,org.eclipse.gef@default:default,org.eclipse.jdt.core@default:default,org.eclipse.core.filebuffers@default:default,org.apache.commons.httpclient@default:default,de.itemis.xtext.antlr@default:default,org.eclipse.equinox.security@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.preferences@default:default,org.junit4@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.jface@default:default,org.eclipse.xtext.xtend@default:default,org.apache.commons.el@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.apache.log4j@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.update.core@default:default,org.eclipse.help.base@default:default,org.eclipse.jdt@default:default,org.apache.jasper@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.emf.edit.ui@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.ui.intro@default:default,org.eclipse.birt.chart.engine@default:default,org.eclipse.jdt.doc.user@default:default,org.apache.xml.serializer@default:default,org.eclipse.swt.win32.win32.x86@default:false,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.osgi.util@default:default,org.eclipse.core.filesystem@default:default,org.antlr.gen@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.ant.launching@default:default,org.eclipse.osgi@-1:true,org.sat4j.pb@default:default,org.eclipse.team.svn.ui@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.h2@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.console@default:default,org.eclipse.text@default:default,org.apache.ant@default:default,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.jdt.doc.isv@default:default,org.aopalliance@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.equinox.launcher@default:default,org.eclipse.help.ui@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.update.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.equinox.p2.ui@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.rcp@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.team.svn@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.sdk@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.emf.common@default:default,org.eclipse.equinox.p2.metadata.generator@default:default,com.jcraft.jsch@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.mozilla.javascript@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.apache.xml.resolver@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.xpand@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.ant.core@default:default,org.eclipse.equinox.launcher.win32.win32.x86@default:false,org.eclipse.ui.ide.application@default:default,org.mortbay.jetty.util@default:default,org.eclipse.zest.layouts@default:default,org.eclipse.swt@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.search@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.pde.core@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.osee.framework.svn@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ui@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.draw2d@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.ui.intro.universal@default:default,org.sat4j.core@default:default,org.eclipse.team.svn.core@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.emf.compare.diff@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.emf.common.ui@default:default,javax.xml@default:default,org.eclipse.zest.core@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.xtext.builder@default:default,org.antlr.runtime@default:default,org.eclipse.emf.compare@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.core.runtime@default:true,org.polarion.eclipse.team.svn.connector@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.ecf@default:default,org.postgresql.driver@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.cvs@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.osgi.services@default:default,org.eclipse.ui.browser@default:default,org.eclipse.help.webapp@default:default,org.eclipse.xtext.common.types@default:default,org.hamcrest.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.birt.core@default:default,org.eclipse.equinox.util@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.xtend@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.nebula.widgets.calendarcombo@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.mortbay.jetty.server@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.team.ui@default:default,com.google.inject@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.pde.launching@default:default,org.apache.commons.cli@default:default"/> +<stringAttribute key="selected_workspace_plugins" value="org.eclipse.osee.framework.core.dsl.integration.test@default:false,org.eclipse.osee.framework.ui.data.model.editor@default:default,org.eclipse.osee.framework.lifecycle.test@default:false,org.eclipse.osee.framework.core.message.test@default:false,org.eclipse.osee.framework.postgresql@default:default,org.eclipse.osee.support.test.util@default:default,org.eclipse.osee.framework.access@default:default,org.eclipse.osee.ats.config.demo@default:default,org.eclipse.osee.framework.messaging.test@default:false,org.eclipse.osee.framework.skynet.core.test@default:false,org.eclipse.osee.ats.dsl.ui@default:default,org.eclipse.osee.framework.core.model.test@default:false,org.eclipse.osee.ats.dsl@default:default,org.eclipse.osee.define@default:default,org.eclipse.osee.framework.jini@default:default,org.eclipse.osee.framework.ui.skynet.test@default:false,org.eclipse.osee.framework.core.dsl@default:default,org.eclipse.osee.framework.ui.plugin@default:default,org.eclipse.osee.framework.messaging.event.skynet@default:default,org.eclipse.osee.ats.dsl.generator@default:default,org.eclipse.osee.framework.core.client@default:default,org.eclipse.osee.framework.core.message@default:default,org.eclipse.osee.ote.define@default:default,org.eclipse.osee.framework.ui.swt@default:default,org.eclipse.osee.ats.help.ui@default:default,org.eclipse.osee.framework.ui.product@default:default,org.eclipse.osee.framework.ui.ws@default:default,org.eclipse.osee.framework.help.ui@default:default,org.eclipse.osee.framework.logging@default:default,org.eclipse.osee.framework.plugin.core@default:default,org.eclipse.osee.framework.database.test@default:false,net.jini@default:default,org.eclipse.osee.framework.core.dsl.integration@default:default,org.eclipse.osee.framework.core@default:default,org.eclipse.osee.ats.dsl.integration@default:default,org.eclipse.osee.framework.lifecycle@default:default,org.eclipse.osee.framework.core.dsl.ui.integration@default:default,org.eclipse.osee.ote.ui.define@default:default,org.eclipse.osee.framework.database@default:default,org.eclipse.osee.define.test@default:false,org.eclipse.osee.framework.ui.admin@default:default,org.eclipse.osee.framework.core.test@default:false,org.eclipse.osee.framework.messaging.event.res.test@default:false,org.eclipse.osee.framework.ui.skynet@default:default,org.eclipse.osee.framework.core.dsl.edit@default:default,jms.libraries@default:default,org.eclipse.osee.framework.messaging.event.res@default:default,org.eclipse.osee.framework.jdk.core.test@default:false,org.eclipse.osee.framework.core.dsl.ui@default:default,org.eclipse.osee.framework.messaging@default:default,org.eclipse.osee.framework.jdk.core@default:default,org.eclipse.osee.framework.access.test@default:false,org.eclipse.osee.framework.database.init@default:default,org.eclipse.osee.ats@default:default,org.eclipse.osee.framework.ui.jdk@default:default,org.eclipse.osee.framework.ui.service.control@default:default,org.eclipse.osee.ats.test@default:false,org.eclipse.osee.framework.core.model@default:default,org.eclipse.osee.framework.skynet.core@default:default,org.eclipse.osee.framework.templates@default:default"/> <booleanAttribute key="show_selected_only" value="false"/> <stringAttribute key="templateConfig" value=""/> <booleanAttribute key="tracing" value="false"/> diff --git a/plugins/org.eclipse.osee.support.test.util/src/org/eclipse/osee/support/test/util/DemoUsers.java b/plugins/org.eclipse.osee.support.test.util/src/org/eclipse/osee/support/test/util/DemoUsers.java index 56ae700aa99..89cc430ceaa 100644 --- a/plugins/org.eclipse.osee.support.test.util/src/org/eclipse/osee/support/test/util/DemoUsers.java +++ b/plugins/org.eclipse.osee.support.test.util/src/org/eclipse/osee/support/test/util/DemoUsers.java @@ -27,57 +27,40 @@ import org.eclipse.osee.framework.core.data.IOseeUserInfo; * @author Donald G. Dunne */ public enum DemoUsers implements IOseeUserInfo { - Joe_Smith("Joe Smith", "Joe Smith", "Joe Smith", true), - Kay_Jones("Kay Jones", "Kay Jones", "Kay Jones", true), - Jason_Michael("Jason Michael", "Jason Michael", "Jason Michael", true), - Alex_Kay("Alex Kay", "Alex Kay", "Alex Kay", true), - Inactive_Steve("Inactive Steve", "Inactive Steve", "Inactive Steve", false); + Joe_Smith("Joe Smith"), + Kay_Jones("Kay Jones"), + Jason_Michael("Jason Michael"), + Alex_Kay("Alex Kay"), + Inactive_Steve("Inactive Steve"); private final String name; - private final String email; - private final String userID; - private final boolean active; - DemoUsers(String name, String email, String userId, boolean active) { + DemoUsers(String name) { this.name = name; - this.email = email; - this.userID = userId; - this.active = active; } - /** - * @return Returns the email. - */ @Override - public String getEmail() { - return email; + public String getName() { + return name; } - /** - * @return Returns the name. - */ @Override - public String getName() { + public String getUserID() { return name; } - /** - * @return Returns the userID. - */ @Override - public String getUserID() { - return userID; + public String getEmail() { + return name; } - /** - * @return Returns the active. - */ @Override public boolean isActive() { - return active; + return name.contains("Inactive"); } @Override public boolean isCreationRequired() { return false; } + } 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 5043776d206..5afdc0ce960 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 @@ -30,7 +30,21 @@ public class TestUtil { private static final String DEMO_DB_TYPE = "demo"; public static final Collection<String> ignoreLogging = Arrays.asList("No image was defined for art type", "Unable to load the image for [SAVED]"); - public static boolean isInTest = false; + private static boolean inTest = false; + + /** + * Need to match methods in OseeProperties + */ + public static boolean isInTest() { + return inTest; + } + + /** + * Need to match methods in OseeProperties + */ + public static void setIsInTest(boolean isInTest) { + inTest = isInTest; + } public static boolean isProductionDb() throws OseeCoreException { return ClientSessionManager.isProductionDataStore(); |