Spreadsheet

A Spreadsheet is a model that knows about its own spread sheet, mySpreadSheet, and its value. It can create certain types of spreadsheets and access the cells of its spreadsheets in several ways.

SumSpreadsheet

SumSpreadsheet is a Spreadsheet that knows how to update its value by summing its cells.

AverageSpreadsheet

AverageSpreadsheet is a Spreadsheet that knows how to update its value by averaging its cells.

LinkedSpreadsheet

LinkedSpreadsheet is a Spreadsheet that links to other spreadsheets rather than having its own data cells. Its cells contain other spreadsheets or cells in other spreadsheets, instead. LinkedSpreadsheet knows to prevent certain cell access methods, because of its different implementation. A LinkedSpreadsheet can also update itself as a dependent of the spreadsheets that it links to.

LinkedAverageSpreadsheet

LinkedAverageSpreadsheet is a LinkedSpreadsheet that knows how to update its value by averaging the values of the spreadsheets that it is linked to.

LinkedSumSpreadsheet

LinkedSumSpreadsheet is a LinkedSpreadsheet that knows how to update its value by summing the values of the spreadsheets that it is linked to.

LinkedCellAverageSpreadsheet

LinkedCellAverageSpreadsheet is a LinkedSpreadsheet that is linked to two specific cells in other spreadsheets (SpreadsheetCells). It knows how to update its value by averaging the values of those two linked cells.

LinkedSumAverageSpreadsheet

LinkedSumAverageSpreadsheet is a LinkedSpreadsheet that is linked to two specific cells in other spreadsheets (SpreadsheetCells). It knows how to update its value by summing the values of those two linked cells.

SpreadsheetCell

A SpreadsheetCell is an object that knows about a cell and a spreadsheet. It can change the spreadsheet and cell that it knows about, or tell others about them.

SpreadsheetViewContainer

SpreadsheetViewContainer is a ModelCollectionViewContainer (from Coad and Nicola's model package) that can add a value view and a view of its cells. To add a view of its cells, it knows how to make a list attached to a certain collection or array. It can build a view attached to a certain object, namely a Spreadsheet.