Table manipulation parts to implement
Table manipulation is divided into several parts
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.