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.
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.
Created attachment 23022 [details] patch
Created attachment 23023 [details] screen shot
Created attachment 23024 [details] screen shot
Created attachment 23025 [details] screen shot
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.
Any further thoughts on integrating this? We're going on two years, and it could improve the form editor's usability quite a bit.
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.
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?
Created attachment 38980 [details] Advanced properties
Created attachment 38981 [details] Basic properties
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.
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
Four years and counting, and this would still make a definite usability improvement in the form editor and elsewhere...
Would it be useful for my purpose? http://forums.netbeans.org/viewtopic.php?t=58021