Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Non-visual Tag Decorators"

(Solution Summary)
(Formal Statement of Requirements)
Line 27: Line 27:
 
The decorator design shall allow a user the ability to:
 
The decorator design shall allow a user the ability to:
  
* quickly determine what non-visual child tags a visual tag contains.
+
1.1 quickly determine what non-visual child tags a visual tag contains.
* obtain a visual representation of the tag that has similar interaction capabilities as a visual tag on the canvas.
+
1.2 obtain a visual representation of the tag that has similar interaction capabilities as a visual tag on the canvas.
  
  
Line 35: Line 35:
 
In addition to the basic requirements, the following usability issues shall be addressed:
 
In addition to the basic requirements, the following usability issues shall be addressed:
  
* the decorators will be as non-intrusive as possible.
+
2.1 the decorators will be as non-intrusive as possible.
* the end-user should be able control when decorators are available and hide them if they wish.
+
2.2 the end-user should be able control when decorators are available and hide them if they wish.
  
 
===Technical requirements===
 
===Technical requirements===
  
The visual page designer is a GEF-based editor.  The solution must be designed and implemented within that framework. Also, the solution must take into account the '''ITagConverter''' interface used to derive WYSIWYG rendering information from the source JSP/JSF markup.
+
3.1 The visual page designer is a GEF-based editor.  The solution must be designed and implemented within that framework.  
 +
 
 +
3.2 The solution must take into account the '''ITagConverter''' interface used to derive WYSIWYG rendering information from the source JSP/JSF markup.
  
 
==Solution Summary==
 
==Solution Summary==
  
 
The decorators are implemented as canvas feedback that can be pinned to the canvas through user interaction.  A tag may expose its non-visual children through a new method on the '''ITagConverter''' interface.  These children are absorbed as ''model children'' of the parent tag's '''EditPart'''.  This causes the system to treat the non-visual parts as child '''EditParts''' meeting the requirement that
 
The decorators are implemented as canvas feedback that can be pinned to the canvas through user interaction.  A tag may expose its non-visual children through a new method on the '''ITagConverter''' interface.  These children are absorbed as ''model children'' of the parent tag's '''EditPart'''.  This causes the system to treat the non-visual parts as child '''EditParts''' meeting the requirement that

Revision as of 15:12, 22 January 2007

Summary

JSP tags, and JavaServer Faces (JSF) tag in particular, have numerous non-visual nested tags that can change the appearance and behaviour of their parents. Consider the following JSF example:

<h:commandButton value="Submit">
    <f:actionListener type="com.company.MyActionListener" />
</h:commandButton>

In this situation, an instance of 'com.company.MyActionListener' will be created and receive action events when the commandButton is pressed.

However, the 'f:actionListener' tag has no visual representation in HTML and so does not appear in the WYSIWYG editor. This forces a user to leave the visual environment and switch to a text or XML editor to:

  • discover what nested non-visual tags are present
  • learn the attribute settings of each non-visual tag
  • select, modify and interact with these tags in the properties and outline views

We believe this is a usability problem that can be solved, at least partially, by using visual decorators.

Formal Statement of Requirements

The visual page designer shall support the ability for tags that support child tags that do not have a visual HTML representation to decorate their canvas image to aid the end-user in interacting with the child tags.

Basic requirements

The decorator design shall allow a user the ability to:

1.1 quickly determine what non-visual child tags a visual tag contains. 1.2 obtain a visual representation of the tag that has similar interaction capabilities as a visual tag on the canvas.


Usability requirements

In addition to the basic requirements, the following usability issues shall be addressed:

2.1 the decorators will be as non-intrusive as possible. 2.2 the end-user should be able control when decorators are available and hide them if they wish.

Technical requirements

3.1 The visual page designer is a GEF-based editor. The solution must be designed and implemented within that framework.

3.2 The solution must take into account the ITagConverter interface used to derive WYSIWYG rendering information from the source JSP/JSF markup.

Solution Summary

The decorators are implemented as canvas feedback that can be pinned to the canvas through user interaction. A tag may expose its non-visual children through a new method on the ITagConverter interface. These children are absorbed as model children of the parent tag's EditPart. This causes the system to treat the non-visual parts as child EditParts meeting the requirement that

Back to the top