The classes in this package provide functionality implementing the {@link teamdash.wbs.DataColumn} interface. Three core classes form the basis for most of the other classes in this package:
{@link
teamdash.wbs.DataColumn} Interface for a column in a {@link teamdash.wbs.DataTableModel} |
↑ implements |
{@link
teamdash.wbs.columns.AbstractDataColumn} Abstract implementation of {@link teamdash.wbs.DataColumn} interface. |
↑ extends |
{@link
teamdash.wbs.columns.AbstractNumericColumn} Abstract implementation of {@link teamdash.wbs.DataColumn} interface for a numeric column. |
↑ extends |
{@link
teamdash.wbs.columns.TopDownBottomUpColumn} A numeric column containing data which should sum up hierarchically. |
{@link teamdash.wbs.columns.TopDownBottomUpColumn} in particular plays an important role, and forms the basis for nearly every numeric column in the model.
Although some columns (such as time columns) should sum hierarchically all the way down to each individual leaf, other columns only sum for particular types of hierarchy nodes. Children of those nodes then inherit a data value from their nearest participating ancestor. To draw the line, the {@link teamdash.wbs.columns.TopDownBottomUpColumn} calls upon an object implementing the {@link teamdash.wbs.columns.Pruner} interface. Two such implementations exist: {@link teamdash.wbs.columns.LOCPruner} and {@link teamdash.wbs.columns.DocSizePruner}.
Planned size metrics are calculated by columns created by the class {@link teamdash.wbs.columns.SizeAccountingColumnSet}. This class contains only static methods and static inner classes. Its main method, {@link teamdash.wbs.columns.SizeAccountingColumnSet#create(teamdash.wbs.DataTableModel,java.lang.String,teamdash.wbs.columns.Pruner,java.lang.String) create}, takes a size metric as input and creates columns to calculate Base, Deleted, Modified, Added, Reused, New & Changed, and Total values. Although most of these are plain {@link teamdash.wbs.columns.TopDownBottomUpColumn} objects, the Total and New & Changed columns are handled by inner classes which calculate their values based on the values in the other columns.
There are several different size metrics (LOC, Reqts Pages, HLD Pages, etc). The {@link teamdash.wbs.columns.SizeTypeColumn} examines nodes in the hierarchy and decides which size metric is most appropriate. It displays the name of the resulting size metric in a read-only column. With several different size metrics, each having a Base, Deleted, Modified, etc. column, there are 35 columns containing size accounting metrics. This is too many to display, so none of these columns are actually displayed directly to the user. Instead, the {@link teamdash.wbs.columns.SizeAliasColumn} creates a set of aliasing columns: one Base column, one Deleted column, one Modified column, etc. These columns use the {@link teamdash.wbs.columns.SizeTypeColumn} as a switch to determine which real column to display. When the user edits a value, it is "written through" to the appropriate underlying column.
Often a planner only cares about value in the the New & Changed column. {@link teamdash.wbs.columns.EditableSizeColumn} repeats this data, with one extra twist: columns which have no value (because the {@link teamdash.wbs.columns.SizeTypeColumn} returns null) are editable, and values entered will be stored away in a node attribute.
{@link teamdash.wbs.columns.PhaseColumn} displays the phase of a task in the hierarchy, derived from the type of the {@link teamdash.wbs.WBSNode}. {@link teamdash.wbs.columns.TaskSizeUnitsColumn} and {@link teamdash.wbs.columns.TaskSizeColumn} work together. {@link teamdash.wbs.columns.TaskSizeUnitsColumn} performs a function similar to the {@link teamdash.wbs.columns.SizeTypeColumn} - for each leaf task in the hierarchy, it determines the most appropriate size metric, and displays it. Unlike the {@link teamdash.wbs.columns.SizeTypeColumn}, if users disagree with the size metric chosen, they can edit it to select a different size metric (or even enter a nonstandard size metric). (For non-leaf tasks, the {@link teamdash.wbs.columns.SizeTypeColumn} is consulted and its value is displayed.) The {@link teamdash.wbs.columns.SizeTypeColumn} then performs a role similar to the {@link teamdash.wbs.columns.SizeAliasColumn} - based on the metric named in the {@link teamdash.wbs.columns.TaskSizeUnitsColumn}, it switches and displays the (read-only) inherited value for that size metric. (For non-leaf tasks, it behaves like a {@link teamdash.wbs.columns.SizeAliasColumn} for New & Changed size, and is therefore editable.)
{@link teamdash.wbs.columns.NullDataColumn} returns read-only null values. It is used as a placeholder in the {@link teamdash.wbs.DataTableModel} when a column is deleted. {@link teamdash.wbs.columns.WBSNodeColumn} simply returns the hierarchy node, allowing it to appear as a column in the table.
TeamMemberColumnManager.java TeamMemberTimeColumn.java TeamTimeColumn.java WorkflowNumPeopleColumn.java WorkflowPercentageColumn.java WorkflowRateColumn.java
Reused-Text Pages
Name:Reused-Text Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-Text Pages
Reused
Base-HLD Pages
Name:Base-HLD Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-HLD Pages
Base
hej-Time
Name:hej
Class: {@link teamdash.wbs.columns.TeamMemberTimeColumn}
Depends on:
Affects:
Time
Added-LOC
Name:Added-LOC
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
N&C-LOC
Total-LOC
Added
Task Size Units
Name:Units
Class: {@link teamdash.wbs.columns.TaskSizeUnitsColumn}
Depends on:
Size-Units
Affects:
Task Size
Time
Added-HLD Pages
Name:Added-HLD Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
N&C-HLD Pages
Total-HLD Pages
Added
Deleted-DLD Lines
Name:Deleted-DLD Lines
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-DLD Lines
Deleted
Reused-DLD Lines
Name:Reused-DLD Lines
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-DLD Lines
Reused
Assigned To
Name:Assigned To
Class: {@link teamdash.wbs.columns.TeamTimeColumn$ResourcesColumn}
Depends on:
Affects:
akj-Time
Name:akj
Class: {@link teamdash.wbs.columns.TeamMemberTimeColumn}
Depends on:
Affects:
Time
Modified
Name:Modified
Class: {@link teamdash.wbs.columns.SizeAliasColumn}
Depends on:
Modified-LOC
Modified-HLD Pages
Modified-Text Pages
Modified-DLD Lines
Modified-Reqts Pages
Affects:
wcj-Time
Name:wcj
Class: {@link teamdash.wbs.columns.TeamMemberTimeColumn}
Depends on:
Affects:
Time
Total-Reqts Pages
Name:Total-Reqts Pages
Class: {@link teamdash.wbs.columns.SizeAccountingColumnSet$TotalSizeColumn}
Depends on:
Base-Reqts Pages
Deleted-Reqts Pages
Added-Reqts Pages
Reused-Reqts Pages
Affects:
Total
dat-Time
Name:dat
Class: {@link teamdash.wbs.columns.TeamMemberTimeColumn}
Depends on:
Affects:
Time
Reused-LOC
Name:Reused-LOC
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-LOC
Reused
N&C-DLD Lines
Name:N&C-DLD Lines
Class: {@link teamdash.wbs.columns.SizeAccountingColumnSet$NewChangedSizeColumn}
Depends on:
Modified-DLD Lines
Added-DLD Lines
Affects:
N&C
Task Size
haj-Time
Name:haj
Class: {@link teamdash.wbs.columns.TeamMemberTimeColumn}
Depends on:
Affects:
Time
Reused-HLD Pages
Name:Reused-HLD Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-HLD Pages
Reused
Base-Reqts Pages
Name:Base-Reqts Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-Reqts Pages
Base
N&C-HLD Pages
Name:N&C-HLD Pages
Class: {@link teamdash.wbs.columns.SizeAccountingColumnSet$NewChangedSizeColumn}
Depends on:
Modified-HLD Pages
Added-HLD Pages
Affects:
N&C
Task Size
Added-Reqts Pages
Name:Added-Reqts Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
N&C-Reqts Pages
Total-Reqts Pages
Added
Modified-Text Pages
Name:Modified-Text Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
N&C-Text Pages
Modified
Modified-LOC
Name:Modified-LOC
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
N&C-LOC
Modified
Reused-Reqts Pages
Name:Reused-Reqts Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-Reqts Pages
Reused
Base-DLD Lines
Name:Base-DLD Lines
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-DLD Lines
Base
Reused
Name:Reused
Class: {@link teamdash.wbs.columns.SizeAliasColumn}
Depends on:
Reused-LOC
Reused-HLD Pages
Reused-Text Pages
Reused-DLD Lines
Reused-Reqts Pages
Affects:
Number of People
Name:# People
Class: {@link teamdash.wbs.columns.TeamTimeColumn$NumPeopleColumn}
Depends on:
Affects:
Added
Name:Added
Class: {@link teamdash.wbs.columns.SizeAliasColumn}
Depends on:
Added-LOC
Added-HLD Pages
Added-Text Pages
Added-DLD Lines
Added-Reqts Pages
Affects:
Deleted-Reqts Pages
Name:Deleted-Reqts Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-Reqts Pages
Deleted
Size
Name:Size
Class: {@link teamdash.wbs.columns.EditableSizeColumn}
Depends on:
N&C
Affects:
Modified-Reqts Pages
Name:Modified-Reqts Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
N&C-Reqts Pages
Modified
Phase
Name:Phase
Class: {@link teamdash.wbs.columns.PhaseColumn}
Depends on:
Affects:
Rate
Name:Rate
Class: {@link teamdash.wbs.columns.TeamTimeColumn$RateColumn}
Depends on:
Affects:
Time
Name:Time
Class: {@link teamdash.wbs.columns.TeamTimeColumn}
Depends on:
Task Size
Task Size Units
wcj-Time
dat-Time
hej-Time
haj-Time
akj-Time
Affects:
Deleted-LOC
Name:Deleted-LOC
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-LOC
Deleted
Base
Name:Base
Class: {@link teamdash.wbs.columns.SizeAliasColumn}
Depends on:
Base-LOC
Base-HLD Pages
Base-Text Pages
Base-DLD Lines
Base-Reqts Pages
Affects:
Total-Text Pages
Name:Total-Text Pages
Class: {@link teamdash.wbs.columns.SizeAccountingColumnSet$TotalSizeColumn}
Depends on:
Base-Text Pages
Deleted-Text Pages
Added-Text Pages
Reused-Text Pages
Affects:
Total
N&C-LOC
Name:N&C-LOC
Class: {@link teamdash.wbs.columns.SizeAccountingColumnSet$NewChangedSizeColumn}
Depends on:
Modified-LOC
Added-LOC
Affects:
N&C
Task Size
N&C-Reqts Pages
Name:N&C-Reqts Pages
Class: {@link teamdash.wbs.columns.SizeAccountingColumnSet$NewChangedSizeColumn}
Depends on:
Modified-Reqts Pages
Added-Reqts Pages
Affects:
N&C
Task Size
N&C
Name:N&C
Class: {@link teamdash.wbs.columns.SizeAliasColumn}
Depends on:
N&C-LOC
N&C-HLD Pages
N&C-Text Pages
N&C-DLD Lines
N&C-Reqts Pages
Affects:
Size
Total-HLD Pages
Name:Total-HLD Pages
Class: {@link teamdash.wbs.columns.SizeAccountingColumnSet$TotalSizeColumn}
Depends on:
Base-HLD Pages
Deleted-HLD Pages
Added-HLD Pages
Reused-HLD Pages
Affects:
Total
Total
Name:Total
Class: {@link teamdash.wbs.columns.SizeAliasColumn}
Depends on:
Total-LOC
Total-HLD Pages
Total-Text Pages
Total-DLD Lines
Total-Reqts Pages
Affects:
Added-Text Pages
Name:Added-Text Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
N&C-Text Pages
Total-Text Pages
Added
Total-LOC
Name:Total-LOC
Class: {@link teamdash.wbs.columns.SizeAccountingColumnSet$TotalSizeColumn}
Depends on:
Base-LOC
Deleted-LOC
Added-LOC
Reused-LOC
Affects:
Total
Modified-HLD Pages
Name:Modified-HLD Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
N&C-HLD Pages
Modified
Total-DLD Lines
Name:Total-DLD Lines
Class: {@link teamdash.wbs.columns.SizeAccountingColumnSet$TotalSizeColumn}
Depends on:
Base-DLD Lines
Deleted-DLD Lines
Added-DLD Lines
Reused-DLD Lines
Affects:
Total
Modified-DLD Lines
Name:Modified-DLD Lines
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
N&C-DLD Lines
Modified
Base-Text Pages
Name:Base-Text Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-Text Pages
Base
N&C-Text Pages
Name:N&C-Text Pages
Class: {@link teamdash.wbs.columns.SizeAccountingColumnSet$NewChangedSizeColumn}
Depends on:
Modified-Text Pages
Added-Text Pages
Affects:
N&C
Task Size
Deleted
Name:Deleted
Class: {@link teamdash.wbs.columns.SizeAliasColumn}
Depends on:
Deleted-LOC
Deleted-HLD Pages
Deleted-Text Pages
Deleted-DLD Lines
Deleted-Reqts Pages
Affects:
Added-DLD Lines
Name:Added-DLD Lines
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
N&C-DLD Lines
Total-DLD Lines
Added
Deleted-HLD Pages
Name:Deleted-HLD Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-HLD Pages
Deleted
Base-LOC
Name:Base-LOC
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-LOC
Base
Time Per Person
Name:Hrs/Indiv
Class: {@link teamdash.wbs.columns.TeamTimeColumn$TimePerPersonColumn}
Depends on:
Affects:
Task Size
Name:Task Size
Class: {@link teamdash.wbs.columns.TaskSizeColumn}
Depends on:
N&C-LOC
N&C-HLD Pages
N&C-Text Pages
N&C-DLD Lines
N&C-Reqts Pages
Task Size Units
Affects:
Time
Deleted-Text Pages
Name:Deleted-Text Pages
Class: {@link teamdash.wbs.columns.TopDownBottomUpColumn}
Depends on:
Affects:
Total-Text Pages
Deleted