Runtime designer and screen builder, help me find suitable tool
Joined: Jul 08, 2008
we had the following requirement for an SAP WebDynpro for java application:
system administrator must be able to design screen/forms at runtime based on the users requirements and assign the screen/form to the said user.
so i wrote a limited but very capable screen builder in webdynpro for java WYSIWYG style. you had the supported UI controles in one panel (Label, InputField, Groupbox, Transparent Container) , a tree-view of the layout of the screen being built in another panel, another panel shows the different properties for a selected UI components which the user can tweak (like font size for a label for example or information source tag for Inputfield) and finally you had a panel which shows you what your screen looks like after each UI teak or after addition of new UI component.
while the administrator build the screen, an XML representation of the screen's layout and UI components and their various properties is generated at the back and kept in sync. the XML then will be saved in the database. when the screen is called by the system user(s), we load the XML extract the information source tags and fill the values of those tags and then regenerate the screen for the user the way it was built.
all is good,
but because of the lack of dragAndDrop in WebDynpro, the administrator has to work with the tree-view of the layout that represent the screen. he has to find the node that represent a certain UI component and place the next UI component below or above. this process is tiresome and slow when you are building complex screen
with nested elements.
we are doing phase two of this project and I though maybe we can use an Java Applet for the screen builder. I'm looking for a tool I can customize for this purpose. it has to support drag and drop and can easily generate XML afterwards. is should be something like Netbeans Matisse but simpler (like UML diagramming tools).
so, could anyone please recommend a library or a tool I can use to achieve this? or do you have another thought? ..... I'm open for new Ideas.