Modification History:
Currently in Netbeans, the scope of Web page designing is limited to JSP based JSF web pages created by Visual JSF framework. The main goal of proposed Web Page Designer (WPD) is to expand the scope of page designing to web pages created by other frameworks and plain HTML. VWPD will define the scope of page designing based on the mime type (.html, .xhtml, .jsp, .php, .rhtml, .xml (facelet) etc) of a particular web page, irrespective of the type of the project where it resides or framework which created it. Framework support need to take care of project wide framework related artifacts. VWPD will not dictate the scope of frameworks. However, the underlying framework that created the web page might provide hooks to add necessary artifacts transparently to the project from page designer, so that user need not have to manually add them. Similarly, VWPD would provide hooks to the framework for rich design experience while designing the page.
It will not be mandatory for user to add the visual JSF framework (which currently is a limited form of JSF) to design a page in a web application. After creating the web application, user simply clicks on a particular page (.html, .jsp, .xml (facelet) or .php) to invoke the corresponding page designer, if page design support is available for that page. User will get option to enable and disable page design of supported pages via global IDE option. If page design is supported and enabled, then in the editor user will get additional view to design the web page along with view to edit the page in text mode. If page design is disabled, then only text based editing view will be presented to the user.
WPD could support designing of a page outside of a project context, at least in a degraded fashion. For example, a HTML file could be designed after opening it using File -> open.
![]() |
Undo/Redo action will undo or redo of the last user action and the result may be visible in all the views (design, outline & property sheet).
Where as the above user interaction provides a minimalistic page design support, page designer could provide rich design support such as
Server Side Binding may not be possible to simple XHTML file. For binding we need PDL such as JSP/JSF, Facelet or PhP
Possible Binding Scenarios
In order to provide above Rich Design Support, the page items must implement Design Time API. All bundled page items must implement Design Time API for user interaction.
VWPD must support third party page items out of the box, with or with out design time API implementation. If the page items does not implement the Design Time API, then the page editor must support the page items with milimastic design environment.
Third party page items could be imported as a complib if bundled with designtime and runtime jars. Additionaly user can simply point to a jar containing the page items and if recognized, they should be imported and available via palette for consuming in the page designer.
The component manager should be unified with palette manager in the tools menu. Palette manager should provide hooks to import either a complib or plain jars containing the page items. For example to import the jMaki AJAX components, user would bring up the Palette manager and point to the JMaki jar. The page items would appear in the Palette while designing pages that could support AJAX developemnt such as XHTML.
If any jars are to be added to the project, as a side effect of adding a page items to the it should be done transparent to the user, but performance should not be compromised.
Many a time it is impossible to say why a particular CSS style behaves than expected. User may not note subtle mistakes in the CSS properties. Visual Aids comes handy. VWPD must support such visual aids in par with other web designers such as dream weaver.
![]() |
For example applying a background coloring to div and with proper "Box Layout" shading user can easily identify the mistake in the CSS style properties
![]() |
Ability to import existing pages (HTML, JSF or JSP/jsf). Users should be able to instantly design the pages without need for any conversion to some restricted model. If any of the section or components could not be understood, then try to depict it as placeholder and construct the layout as pleasing as possible.
Provide tool to reformat the legacy HTML to XHTML for ease of maintenance.
This is done by providing supporting for Layout template creation. Then create web pages from these templates. The web pages created from these templates should be dynamically modified when user edits and save the templates. The templated area in the created web pages should not be allowed to be edited.
Support to easily incorporate CSS in to the project with CSS layout abilities, such as layout guide lines and to customize CSS layout templates for the project. CSS support includes
* Easy CSS management for full fledged CSS manipulation * CSS layout visualization for complex page layouts with nested schemes. * Specialized task panes and toolbars for page layout and page formatting. * Visual guidelines for Sub Section (non editable template region and editable user defined region) and layout boundaries. * Support for Fixed and Liquid layouts.
Out of the box support for predefined page items for well known AJAX applications sucg as Google Map, Google Calendat, Yahoo UI, jMaki and client-script libraries that incorporate JavaScript and DHTML technologies such as DOJO Widget library.
Image Slicing allows to create mouse rollovers, make portions of the image clickable, and strike a nice balance between file size and image quality. Here is an example
![]() |
Allow copy a portion of Web page from the internet and paste on to the designer. This should allow the user to paste the content as just text or HTML itself.
Include templates for pre-defined pages types templates, which gives user a jump start to create special type of web application. Some Example are
Out of the box iPhone development support with predefined page templates and page items, javascript suitable to be displayed in the iPhone environment.
![]() |
| CSS_Design_Helper.jpg | ![]() |
179212 bytes |
| CSS_Visual_aids.jpg | ![]() |
48286 bytes |
| FormattingToolbar.jpg | ![]() |
41613 bytes |
| ImageSlice.gif | ![]() |
31840 bytes |
| WPDConceptOverview.png | ![]() |
219056 bytes |
| WpdDesignConcepts.pdf | ![]() |
703580 bytes |
| WpdOverview.pdf | ![]() |
288720 bytes |