DescriptionManifold is an attempt to create a generic UI which would be application-independent, where the UI can be easily “detached” from one application and “attached” to another one. The Model-View-Controller (MVC) design pattern is a popular design pattern used in User Interfaces which has been employed in manifold. In this pattern, a user generates input device events which are interpreted as actions on the domain model via a Controller. After execution of the requested actions, the model sends notifications about the effect of the actions, and the notifications are visualized as feedback to the user.
Different applications have different sets of inputs and so the UI should be able to translate a users input on manifold’s workspace to that of the domain model. To solve these issues, the MVC design and the Event Frame concept has been incorporated. The EventFrame conveys user’s intentions (event) in a standardized format to the Controller to be acted up on the domain model.
The EventFrame being the only “medium” to communicate to the Controller makes it pivotal in communication between the UI and the domain model. We envision manifold to grow in to a complex application that would cater to various complex domain models on the internet where XML is gaining popularity as a way to share and transport data. In such a situation, the number of messages sent between the manipulator and Controller would be enormous. We felt that in such a situation, the Event Frame would be a bottle neck to performance.
Considerable amount of my work in this thesis concerns with re-engineering the Event Frame in order to make it “web friendly”. We eliminated the Hashtable to represent the EventFrame with a comma separated String that would make it easier for the XML parser to parse data. The modifications made to the application and performance enhancements have been described in detail.
Property editors are used to edit the properties/attributes of a selected glyph. It exposes the glyph’s properties for editing. Every time a new glyph is selected, the old editors are emptied from the viewer, and the new set of editors are loaded. My work in this thesis describes the implementation of newer property editors incorporated in to the property viewer panel that will provide a user with enhanced options to edit a selected glyph. The newer property editors incorporated are a fill color editor which fills the interior of a glyph with a user specified color and a stroke editor which edits the stroke of a glyphs boundary.
Lastly, while the basic feature of being able to draw a glyph and perform actions on them using tools worked, there were certain issues with the property viewer that prevented the properties editors from being displayed in the property viewer pane. My preliminary work was to eliminate these issues. I have described the issues with in the application and the solutions employed to eliminate them.