This class implements the interface described in Section 46, “class ColumnLayout: Column layout
controller” for the lumped-years case.
All effort keys sharing the same year number are
displayed in the same column.
# - - - - - c l a s s L u m p e d L a y o u t
class LumpedLayout(ColumnLayout):
'''Column dispatcher for lumped years.
State/Invariants:
._keyList:
[ a list of the unique year_no values in self, in ascending
order ]
._keyColxMap:
[ a dictionary whose keys are the year_no values in self,
and each related value is the logical column number
in which data for that year is displayed ]
._yearCounts:
[ a list such that element [k] is the number of efforts
combined in logical column k ]
'''