public SprintXViewerFactory(SprintArtifact soleSprintArtifact) {
    super("org.eclipse.osee.ats.SprintXViewer");
    this.soleSprintArtifact = soleSprintArtifact;

    List<XViewerAtsAttributeValueColumn> configCols = WorldXViewerUtil.getConfigurationColumns();
    List<XViewerColumn> sprintCols = new LinkedList<XViewerColumn>();

    // Add default Sprint columns
    WorldXViewerUtil.addColumn(this, SprintOrderColumn.getInstance(), 45, sprintCols);
    WorldXViewerUtil.addColumn(this, TitleColumn.getInstance(), 339, sprintCols);
    WorldXViewerUtil.addColumn(this, StateColumn.getInstance(), 74, sprintCols);
    WorldXViewerUtil.addColumn(this, PriorityColumn.getInstance(), 20, sprintCols);
    WorldXViewerUtil.addColumn(this, ChangeTypeColumn.getInstance(), 20, sprintCols);
    WorldXViewerUtil.addColumn(this, AssigneeColumnUI.getInstance(), 113, sprintCols);
    XViewerColumn unPlannedWorkColumn =
        WorldXViewerUtil.getConfigColumn("ats.Unplanned Work", configCols);
    if (unPlannedWorkColumn != null) {
      WorldXViewerUtil.addColumn(this, unPlannedWorkColumn, 43, sprintCols);
      configCols.remove(unPlannedWorkColumn);
    }
    WorldXViewerUtil.addColumn(this, TargetedVersionColumn.getInstance(), 50, sprintCols);
    WorldXViewerUtil.addColumn(this, NotesColumn.getInstance(), 116, sprintCols);
    WorldXViewerUtil.addColumn(this, AgileFeatureGroupColumn.getInstance(), 91, sprintCols);
    WorldXViewerUtil.addColumn(this, CreatedDateColumn.getInstance(), 82, sprintCols);
    WorldXViewerUtil.addColumn(this, new AtsIdColumn(true), 50, sprintCols);

    // Add remaining columns from world columns
    for (XViewerColumn worldCol : WorldXViewerFactory.WorldViewColumns) {
      if (!sprintCols.contains(worldCol)) {
        XViewerColumn newCol = worldCol.copy();
        newCol.setShow(false);
        registerColumns(newCol);
      }
    }
    WorldXViewerUtil.registerAtsAttributeColumns(this);
    WorldXViewerUtil.registerPluginColumns(this);
    WorldXViewerUtil.registerStateColumns(this);
    // Add remaining Configuration Columns
    for (XViewerAtsAttributeValueColumn col : configCols) {
      registerColumns(col);
    }
  }
/** @author Donald G. Dunne */
public class WorldXViewerFactory extends SkynetXViewerFactory {

  public GoalArtifact soleGoalArtifact;
  public static final String COLUMN_NAMESPACE = "ats.column";
  public static final String NAMESPACE = "org.eclipse.osee.ats.WorldXViewer";

  public static final XViewerColumn[] WorldViewColumns =
      new XViewerColumn[] {
        TypeColumn.getInstance(),
        StateColumn.getInstance(),
        PriorityColumn.getInstance(),
        ChangeTypeColumn.getInstance(),
        AssigneeColumnUI.getInstance(),
        TitleColumn.getInstance(),
        ActionableItemsColumnUI.getInstance(),
        AtsIdColumn.getInstance(),
        CreatedDateColumn.getInstance(),
        TargetedVersionColumn.getInstance(),
        TeamColumn.getInstance(),
        NotesColumn.getInstance(),
        DeadlineColumn.getInstance(),
        AnnualCostAvoidanceColumn.getInstance(),
        DescriptionColumn.getInstance(),
        LegacyPcrIdColumn.getInstance(),
        DecisionColumn.getInstance(),
        ResolutionColumn.getInstance(),
        GroupsColumn.getInstance(),
        GoalsColumn.getInstance(),
        BacklogColumnUI.getInstance(),
        SprintColumn.getInstance(),
        EstimatedReleaseDateColumn.getInstance(),
        EstimatedCompletionDateColumn.getInstance(),
        ReleaseDateColumn.getInstance(),
        WorkPackageColumn.getInstance(),
        WorkingBranchUuidColumn.getInstance(),
        WorkingBranchArchivedColumn.getInstance(),
        WorkingBranchStateColumn.getInstance(),
        WorkingBranchTypeColumn.getInstance(),
        ActivityIdColumnUI.getInstance(),
        WorkPackageIdColumnUI.getInstance(),
        WorkPackageNameColumnUI.getInstance(),
        WorkPackageTypeColumnUI.getInstance(),
        WorkPackageProgramColumnUI.getInstance(),
        WorkPackageGuidColumnUI.getInstance(),
        CategoryColumn.getCategory1Instance(),
        CategoryColumn.getCategory2Instance(),
        CategoryColumn.getCategory3Instance(),
        GoalOrderColumn.getInstance(),
        GoalOrderVoteColumn.getInstance(),
        RelatedToStateColumn.getInstance(),
        EstimatedHoursColumn.getInstance(),
        WeeklyBenefitHrsColumn.getInstance(),
        RemainingHoursColumn.getInstance(),
        PercentCompleteSMAStateColumn.getInstance(),
        PercentCompleteStateTasksColumn.getInstance(),
        PercentCompleteStateReviewColumn.getInstance(),
        PercentCompleteTotalColumn.getInstance(),
        PercentCompleteWorkflowColumn.getInstance(),
        HoursSpentSMAStateColumn.getInstance(),
        HoursSpentStateTasksColumn.getInstance(),
        HoursSpentStateReviewColumn.getInstance(),
        HoursSpentStateTotalColumn.getInstance(),
        HoursSpentTotalColumn.getInstance(),
        OriginatorColumn.getInstance(),
        OperationalImpactColumn.getInstance(),
        OperationalImpactDesciptionColumn.getInstance(),
        OperationalImpactWorkaroundColumn.getInstance(),
        OperationalImpactWorkaroundDesciptionColumn.getInstance(),
        ImplementorColumnUI.getInstance(),
        ReviewFormalTypeColumn.getInstance(),
        ReviewAuthorColumn.getInstance(),
        ReviewModeratorColumn.getInstance(),
        ReviewReviewerColumn.getInstance(),
        ReviewDeciderColumn.getInstance(),
        StartDateColumn.getInstance(),
        EndDateColumn.getInstance(),
        CompletedDateColumn.getInstance(),
        CompletedByColumn.getInstance(),
        CancelledDateColumn.getInstance(),
        CancelledByColumn.getInstance(),
        CompletedCancelledByColumn.getInstance(),
        CompletedCancelledDateColumn.getInstance(),
        WorkDaysNeededColumn.getInstance(),
        PercentReworkColumn.getInstance(),
        BranchStatusColumn.getInstance(),
        NumberOfTasksColumn.getInstance(),
        NumberOfTasksRemainingColumn.getInstance(),
        new LastModifiedByColumn(false),
        new LastModifiedDateColumn(false),
        LastModifiedCommentColumn.getInstance(),
        LastStatusedColumn.getInstance(),
        ValidationRequiredColumn.getInstance(),
        ReviewNumMajorDefectsColumn.getInstance(),
        ReviewNumMinorDefectsColumn.getInstance(),
        ReviewNumIssuesColumn.getInstance(),
        ArtifactTypeColumn.getInstance(),
        ArtifactTokenColumn.getInstance(),
        OriginatingWorkFlowColumn.getInstance(),
        ParentIdColumn.getInstance(),
        ParentAtsIdColumn.getInstance(),
        DaysInCurrentStateColumn.getInstance(),
        ParentStateColumn.getInstance(),
        ParentWorkDefColumn.getInstance(),
        PointsColumn.getInstance(),
        NumericColumn.getNumeric1Instance(),
        NumericColumn.getNumeric2Instance(),
        LocChangedColumn.getInstance(),
        LocReviewedColumn.getInstance(),
        PagesChangedColumn.getInstance(),
        PagesReviewedColumn.getInstance(),
        new GuidColumn(false),
        ParentTopTeamColumnUI.getInstance(),
        ActionableItemOwner.getInstance(),
        AtsIdColumn.getInstance(),
        AgileFeatureGroupColumn.getInstance(),
        SprintOrderColumn.getInstance(),
        RemainingPointsNumericWorkflowColumn.getInstance(),
        RemainingPointsNumericTotalColumn.getInstance(),
        RemainingPointsWorkflowColumn.getInstance(),
        RemainingPointsTotalColumn.getInstance(),
        PercentCompleteReviewsColumn.getInstance(),
        PercentCompleteTasksColumn.getInstance(),
        PercentCompleteTasksReviewsColumn.getInstance(),
        CountryColumnUI.getInstance(),
        ProgramColumnUI.getInstance(),
        InsertionColumnUI.getInstance(),
        InsertionActivityColumnUI.getInstance(),
        ColorTeamColumnUI.getInstance(),
        new UuidColumn(false)
      };

  public WorldXViewerFactory() {
    super(NAMESPACE);
    registerColumns(WorldViewColumns);
    WorldXViewerUtil.registerOtherColumns(this);
  }

  @Override
  public XViewerSorter createNewXSorter(XViewer xViewer) {
    return new WorldXViewerSorter(xViewer);
  }
}