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 60782

Summary: Use pseudo-customizers instead of/along with property sheet
Product: guibuilder Reporter: _ tboudreau <tboudreau>
Component: CodeAssignee: issues@guibuilder <issues>
Status: NEW ---    
Severity: blocker CC: dkaspar, mkrauskopf, raccah, ttran
Priority: P1    
Version: 5.x   
Hardware: All   
OS: All   
Issue Type: ENHANCEMENT Exception Reporter:
Attachments: patch
screen shot
screen shot
screen shot
Advanced properties
Basic properties

Description _ tboudreau 2005-07-07 14:13:12 UTC
I've been thinking that a much nicer interface for the GUI editor would be one like Apple's 
InterfaceBuilder - a nice customizer for the most important properties of the component, instead of the 
property sheet as the default GUI.  So I wrote one.

The attached patch does the following:
 - Makes it possible for a Node to provide a custom component to display on a "tab" of the property 
sheet (beside "Properties", "Events", etc.), and selects it by default if present
 - Implements such a panel, very simply, which shows:
     - The component name, which is editable
     - The component class, non-editable
     - One property of the class, the preferred one (hacked right now - seems no preferred properties in 
the property sets of RADComponentNode?  That would be the right way to do it) in a PropertyPanel
     - A checkbox to enable/disable

It's nice, simple and clear, and most of the time all the user will need.  And it looks pretty :-)

Something to consider in 4.2?  It would be a nice adjunct to Matisse, to really look like the GUI builder 
is getting a face-lift.
Comment 1 _ tboudreau 2005-07-07 14:14:04 UTC
Created attachment 23022 [details]
patch
Comment 2 _ tboudreau 2005-07-07 14:14:36 UTC
Created attachment 23023 [details]
screen shot
Comment 3 _ tboudreau 2005-07-07 14:15:05 UTC
Created attachment 23024 [details]
screen shot
Comment 4 _ tboudreau 2005-07-07 14:15:38 UTC
Created attachment 23025 [details]
screen shot
Comment 5 _ tboudreau 2005-07-09 21:35:48 UTC
A couple minor things I forgot to mention:

This patch allows a node to provide a component via Node.getValue("customizer").
 It *could* use Node.getCustomizer() instead, *however*:  The patch to
RADComponentNode shares a panel, so we're not actually constructing a new
component every time the activated node changes, we're just reconfiguring an
existing one (which is why it is fast).

So, we could enable this for all customizers every where, but it might cause
some performance problems or unexpected nodes in Options showing customizers & such.
Comment 6 _ tboudreau 2007-02-27 19:45:24 UTC
Any further thoughts on integrating this?  We're going on two years, and it
could improve the form editor's usability quite a bit.
Comment 7 Tomas Pavek 2007-02-28 09:52:08 UTC
I have no news - there's no plan right now to integrate this to 6.0, sorry. The 
idea is nice, but I'm not sure about the implementation - I'd like more than 
just showing one property per component. I think it needs a bit more 
discussion, experimenting with the UI design, etc. I'm also a bit afraid of 
hacking the property sheet and using PropertyPanel. Overall I'd say this needs 
more time explicitly planned, it's not just about integrating the patch.
Comment 8 David Kaspar 2007-02-28 14:04:29 UTC
In Visual Mobile Designer in Mobility Pack, we have implemented something
similar these pseudo-customizers.

They are not a single-property editors. A panel with pseudo-customizers contains
often used properties e.g. a big text area for the "text" property of JTextArea.
Also there is a plan to add context actions e.g. hyperlinks, buttons to open
wizard for data-binding, ...

E.g. a panel with pseudo-customizers can look similarly to the popup window in
the screenshot:
http://wiki.netbeans.org/wiki/attach/MobilityDesigner2Features/screen_designer_4.png

Right now we have implemented it using a new TopComponent with "Basic"
(pseudo-customizers) and "Advanced" (property-sheets) tabs. The TopComponent is
docked in the area of standard Properties window.

Of course having two property windows is annoying for users. Therefore we would
like to merge it with standard Properties window. Is it possible to start a
discussing about the API and UI?
Comment 9 Karol Harezlak 2007-02-28 16:06:26 UTC
Created attachment 38980 [details]
Advanced properties
Comment 10 Karol Harezlak 2007-02-28 16:06:50 UTC
Created attachment 38981 [details]
Basic properties
Comment 11 _ tboudreau 2007-03-02 22:04:12 UTC
TPavek:  Well, there's no requirement that it only show one property - it's
providing a GUI panel which can contain whatever you want.  There is a question
of how to do something useful for random JavaBeans, and probably some
combination of default/preferred property is the way to do that.  

For Swing components we know about, we can do something much nicer if we want -
and that's a finite number of components, so it's not like we have to solve the
world's problems.

If we integrated the support for Node.getValue ("customizer") returning a GUI
panel, anybody can do what they want with it from there.
Comment 12 Tomas Pavek 2007-03-05 13:44:10 UTC
I agree with starting discussion about the necessary API, UI etc - if mobility 
needs it (I'm not quite sure we'll do anything for 6.0 in this area).

But we need support in property sheet, so I think the request should be filed 
there. Davide, could you do it? Please add issues@form to cc. Thanks
Comment 13 _ tboudreau 2010-01-14 18:39:22 UTC
Four years and counting, and this would still make a definite usability improvement in the form editor and elsewhere...
Comment 14 gouessej 2013-12-19 11:00:36 UTC
Would it be useful for my purpose?
http://forums.netbeans.org/viewtopic.php?t=58021