blob: 66f1083a2f0bd51dacf0e334c43afdebc450b416 [file] [log] [blame]
/*********************************************************************
* Copyright (c) 2019 Boeing
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Boeing - initial API and implementation
**********************************************************************/
package org.eclipse.osee.ats.core.workdef.internal.workdefs;
import static org.eclipse.osee.ats.api.workdef.WidgetOption.FILL_VERTICALLY;
import static org.eclipse.osee.ats.api.workdef.WidgetOption.REQUIRED_FOR_TRANSITION;
import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.demo.AtsDemoOseeTypes;
import org.eclipse.osee.ats.api.demo.DemoWorkDefinitions;
import org.eclipse.osee.ats.api.workdef.StateColor;
import org.eclipse.osee.ats.api.workdef.StateToken;
import org.eclipse.osee.ats.api.workdef.StateType;
import org.eclipse.osee.ats.api.workdef.WidgetOption;
import org.eclipse.osee.ats.api.workdef.model.CompositeLayoutItem;
import org.eclipse.osee.ats.api.workdef.model.CreateChangeReportTasksWidgetDefinition;
import org.eclipse.osee.ats.api.workdef.model.RuleDefinitionOption;
import org.eclipse.osee.ats.api.workdef.model.WidgetDefinition;
import org.eclipse.osee.ats.api.workdef.model.WorkDefinition;
import org.eclipse.osee.ats.core.task.TaskSetDefinitionTokensDemo;
import org.eclipse.osee.ats.core.workdef.builder.WorkDefBuilder;
import org.eclipse.osee.ats.core.workdef.defaults.AbstractWorkDef;
/**
* @author Donald G. Dunne
*/
public class WorkDefTeamDemoCode extends AbstractWorkDef {
public WorkDefTeamDemoCode() {
super(DemoWorkDefinitions.WorkDef_Team_Demo_Code);
}
@Override
public WorkDefinition build() {
/**
* Artifact types used can be declared through Team Definition or Workflow Definition. This is an example of the
* config through Work Definition.
*/
WorkDefBuilder bld = new WorkDefBuilder(workDefToken, AtsDemoOseeTypes.DemoCodeTeamWorkflow);
bld.andState(1, "Endorse", StateType.Working).isStartState() //
.andToStates(StateToken.Analyze, StateToken.Cancelled) //
.andRules(RuleDefinitionOption.AllowAssigneeToAll) //
.andColor(StateColor.BLACK) //
.andLayout( //
new WidgetDefinition("Referenced Applicability", "XHyperlabelWorkflowApplicabilitySelection",
REQUIRED_FOR_TRANSITION), //
new WidgetDefinition(AtsAttributeTypes.Description, "XTextDam", FILL_VERTICALLY, REQUIRED_FOR_TRANSITION), //
new WidgetDefinition(AtsAttributeTypes.ProposedResolution, "XTextDam", FILL_VERTICALLY), //
new CompositeLayoutItem(6, //
new WidgetDefinition(AtsAttributeTypes.ChangeType, "XComboDam(Improvement,Problem,Refinement,Support)"), //
new WidgetDefinition(AtsAttributeTypes.Priority, "XComboDam(1,2,3,4,5)"), //
new WidgetDefinition(AtsAttributeTypes.NeedBy, "XDateDam") //
), //
new WidgetDefinition(AtsAttributeTypes.ValidationRequired, "XComboBooleanDam"), //
new WidgetDefinition(AtsAttributeTypes.WorkPackage, "XTextDam"));
bld.andState(2, "Analyze", StateType.Working) //
.andToStates(StateToken.Authorize, StateToken.Cancelled) //
.andRules(RuleDefinitionOption.AllowAssigneeToAll) //
.andColor(StateColor.BLACK) //
.andLayout( //
new WidgetDefinition("Referenced Applicability", "XHyperlabelWorkflowApplicabilitySelection",
REQUIRED_FOR_TRANSITION), //
new WidgetDefinition(AtsAttributeTypes.WorkPackage, "XTextDam"), //
new WidgetDefinition(AtsAttributeTypes.Problem, "XTextDam", FILL_VERTICALLY), //
new WidgetDefinition(AtsAttributeTypes.ProposedResolution, "XTextDam", FILL_VERTICALLY), //
new CompositeLayoutItem(6, //
new WidgetDefinition(AtsAttributeTypes.ChangeType, "XComboDam(Improvement,Problem,Refinement,Support)"), //
new WidgetDefinition(AtsAttributeTypes.Priority, "XComboDam(1,2,3,4,5)"), //
new WidgetDefinition(AtsAttributeTypes.NeedBy, "XDateDam") //
), //
new WidgetDefinition(AtsAttributeTypes.EstimatedHours, "XFloatDam"));
bld.andState(3, "Authorize", StateType.Working) //
.andToStates(StateToken.Implement, StateToken.Cancelled) //
.andRules(RuleDefinitionOption.AllowAssigneeToAll) //
.andColor(StateColor.BLACK) //
.andLayout( //
new WidgetDefinition(AtsAttributeTypes.WorkPackage, "XTextDam"), //
new WidgetDefinition(AtsAttributeTypes.EstimatedCompletionDate, "XDateDam"), //
new WidgetDefinition("Manager Approval", "XRequestedHoursApprovalWidget") //
);
bld.andState(4, "Implement", StateType.Working) //
.andToStates(StateToken.Completed, StateToken.Cancelled) //
.andRules(RuleDefinitionOption.AllowAssigneeToAll) //
.andColor(StateColor.BLACK) //
.andLayout( //
new WidgetDefinition("Referenced Applicability", "XHyperlabelWorkflowApplicabilitySelection",
REQUIRED_FOR_TRANSITION), //
new WidgetDefinition(AtsAttributeTypes.WorkPackage, "XTextDam"), //
new WidgetDefinition(AtsAttributeTypes.EstimatedCompletionDate, "XDateDam"), //
new CreateChangeReportTasksWidgetDefinition("Create Tasks from Requirement Changes",
TaskSetDefinitionTokensDemo.SawCreateTasksFromReqChanges), //
new WidgetDefinition(AtsAttributeTypes.Resolution, "XTextDam", FILL_VERTICALLY), //
new CompositeLayoutItem(6, //
new WidgetDefinition(AtsDemoOseeTypes.LocAffected, "XIntegerDam", WidgetOption.EDITABLE), //
new WidgetDefinition(AtsDemoOseeTypes.LocReviewed, "XIntegerDam", WidgetOption.EDITABLE), //
new WidgetDefinition(AtsDemoOseeTypes.LocRemaining, "XComputedCharacteristicWidget",
WidgetOption.NOT_EDITABLE, WidgetOption.NO_SELECT) //
));
bld.andState(5, "Completed", StateType.Completed) //
.andRules(RuleDefinitionOption.AddDecisionValidateBlockingReview) //
.andColor(StateColor.BLACK);
bld.andState(6, "Cancelled", StateType.Cancelled) //
.andColor(StateColor.BLACK);
return bld.getWorkDefinition();
}
}