Table manipulation parts to implement

Table manipulation is divided into several parts

- Table creation
- Table content changes and caret movement
- Table and cell attribute changes
- Changes to the table structure

Implementation of these parts is distributed over different parts of application SimplyHTML. The following table is a summary of changes to SimplyHTML to implement table support:

Class | changes
FrmMain | actions needed to interface table manipulation functionality with the GUI
SHTMLEditorPane | table structure manipulation appliance of attribute changes from TableDialog caret movement inside tables keymap and actions for caret movement
SHTMLBoxPainter | new class for table cell rendering
SHTMLWriter | new class with own implementation of an HTML writer (replaces SHTMLWriter of former stages completely)
SHTMLDocument | support for manipulation of element attributes additional support for removing elements
LengthValue | class to represent a CSS length value divided into value and unit
SHTMLBlockView | extension of BlockView to support SHTMLTableView
SHTMLTableView | extension of TableView to support individual rendering of cell borders
TableDialog | Dialog for table attribute changes
DialogShell | new common base class for dialogs of application SimplyHTML
AttributeComponent | Interface to replace interface FontComponent of former stages of SimplyHTML
SHTMLEditorKit | extended ViewFactory for support of SHTMLTableView
BoundariesPanel | Panel to show and manipulate boundaries of a rectangular object such as a table cell
SizeSelectorPanel | Panel to show and manipulate a CSS size value
CombinedAttribute | Class to model CSS shorthand properties
BorderPanel | Panel to show and manipulate properties of table cell borders

As seen from above list, many classes are affected by table support in SimplyHTML. The major functionality however is in SHTMLEditorPane and TableDialog. Details of the implementation are described in the following chapters.