Parts needed to implement style manipulation
While many existing functions of SimplyHTML and the Java classes can be used to build the new style setting functionality, some additional parts are needed too. The following table gives an overview of all new or changed items
Class |
Purpose, Changes |
AttributePanel |
Panel to set a group of attributes, base class for other classes such as margin or style panel |
CSSWriter |
Enhanced method structure for writing individual styles |
DocumentPane |
additional methods for style sheet storage and merging style sheets |
FrmMain |
new actions for paragraph and named style formatting as well as new tool bar component for setting named styles, some methods and inner classes consolidated to avoid redundancies |
MarginPanel |
new class to set margins and paddings, made stand alone class from former inner class to share functionality between table and paragraph dialog |
ParaStyleDialog |
dialog for setting either paragraph styles or named styles |
StylePanel |
new class to set paragraph attributes, made stand alone class from former inner class to share functionality between table and paragraph dialog |
StyleSelector |
component to apply named styles through the tool bar |
Util |
utility methods for working with internationalized option panes, resolving nested attribute sets and style sheets |
Mostly GUI changes
Functionality to read, modify and apply attributes has already been created in previous stages and can be re-used in this stage unchanged. Working with named styles and style sheets is covered by class StyleSheet of the Java Swing package in addition.
Therefore above parts almost all are GUI elements. Some 'non-GUI' methods and changes had to be added in this stage mainly to classes CSSWriter and Util and the only other 'non-GUI' method saveStyleAs in class ParaStyleDialog was too small to create an extension to class StyleSheet for it.
In essence this stage mainly adds GUI extensions and relies on exisiting functionality of previous stages and the Java classes to implement style manipulation.
Much interaction
Nevertheless a lot of interaction between the mentioned parts is necessary so that an emphasis in this stage of the tutorial lies on explaining these interactions and their implementation as well.