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.