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.