This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 97159 - Design-time only wrapper components
Summary: Design-time only wrapper components
Status: NEW
Alias: None
Product: obsolete
Classification: Unclassified
Component: visualweb (show other bugs)
Version: 5.x
Hardware: All All
: P3 blocker (vote)
Assignee: Gregory Murphy
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-03-03 14:53 UTC by Gregory Murphy
Modified: 2007-03-03 14:53 UTC (History)
0 users

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gregory Murphy 2007-03-03 14:53:20 UTC
There are many JSF component libraries in which more than one JSP tag and
renderer combination is used with the same component, or in which the tags have
attributes without corresponding component properties. Since Visual Web Pack
models components only, there is currently no way to model these "orphaned" tags
and attributes.

This is a common design pattern in JSF, since components are often designed to
be independent of rendering context. 

One solution is to use "wrapper components" at design-time, to model the
"orphaned" tags and attributes. The design-time component class must extend the
run-time component class, but would probably act as a delegate to an instance of
the run-time class. There is one wrapper component per tag, and a property
definition for all unmatched attributes in the tag. Insync models the
design-time component, but persists all changes using references to the run-time
component. Properties defined only by the design-time component can be
manipulated at design-time as are all other properties: they appear in the
properties sheet, and are available as customizers. But they will be persisted
only as tag attributes.

Design-time component wrapper classes could also help to solve another problem.
Component tag classes sometimes have special configuration logic that is used to
process attribute values before they are set as property values on the
component. Setter methods in the wrapper class could be used to duplicate this
logic.