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 35458 - Non-Modal dialogs as property editors
Summary: Non-Modal dialogs as property editors
Status: RESOLVED WONTFIX
Alias: None
Product: platform
Classification: Unclassified
Component: Window System (show other bugs)
Version: 3.x
Hardware: All All
: P3 blocker (vote)
Assignee: Stanislav Aubrecht
URL:
Keywords: UI
Depends on:
Blocks:
 
Reported: 2003-08-18 00:13 UTC by Steve Benigan
Modified: 2013-09-05 07:58 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 Steve Benigan 2003-08-18 00:13:38 UTC
The property editors should be available as
non-modal dialogs.  This way, changes can be
applied without closing the dialogs.    This would
greatly reduce the amount of time it currently
takes to frequently make changes in modal dialogs.

See this thread:
http://www.netbeans.org/servlets/ReadMsg?msgId=558244&listName=nbdev
Comment 1 Steve Benigan 2003-08-18 00:18:42 UTC
I suggest that a modifier key be used to determine if the dialog would
open as a modal or non-modal dialog.  If the dialog opened as a modal
dialog, the dialog would also have an apply button to apply changes
without closing the dialog.
Comment 2 _ tboudreau 2003-08-18 12:04:44 UTC
Changing category to UI temporarily - this should get reviewed by HIE.

Note this is not as simple as it sounds - one would have to
handle cases such as:
 - Underlying property/node is deleted or otherwise ceases
   to exist - how to gracefully handle the situation
 - How the window system manages modeless property editor
   windows (workspace change, or in new window system,
   window group change)
 - No viable API contract for how a custom property editor
   should behave (how should it supply its value to the 
   property editor, when should it be applied, how should
   errors be handled, etc.).  Apply/Cancel dialogs are also
   difficult due to this - the API allows a custom editor
   to directly update the underlying property, and there
   is no contract as to its behavior.  The end result is
   that it would be easy to produce custom property 
   editors that fail in strange ways (like trying to
   modify attributes of a deleted file - how should an
   open custom property editor indicate that it wants to
   go away?, etc.).  An API 
   should provide contracts that make it hard to fail.
   Support for custom property editors in 
   java.beans.PropertyEditor is, unfortunately, provided
   more as an afterthought bolted onto the property editor
   concept.

Opinion:
Does this request represent a real need?  Absolutely.
Should the issue be resolved via property editor infrastructure? 
Probably not.

In the interest of the long-term longevity of our codebase,
further overloading the property editor concept is probably
not the way to go - as has been noted, over-reliance on 
the property sheet reduces usability.  We could go in the
direction Steve suggests, but it would require a more
robust API for custom property editors, at the very least.

Could we approach the problem from a different direction - 
perhaps we need a well-defined means of providing something
akin to "floating palettes" (ala Photoshop or other apps)
which provide usable access to commonly reconfigured 
properties?  It's also worth asking the question of why
we have properties that a user must repeatedly reconfigure - 
that may be the underlying problem.

In other words, if the user will need to reconfigure 
something frequently, why put the property sheet in between
them and a UI to reconfigure it?

In effect, we already have the "floating palette" concept - 
the property sheet is one.  Perhaps an alternative solution
would allow some component other than the property sheet to
be provided in the property sheet area, which would allow
the user to easily configure things that they will need to
reconfigure repeatedly.

Steve, I'm sorry to not be agreeing wholeheartedly that
non-modal property editors are the solution to the problem.
Could you attach some more details of the specific use case
 - what the property is, why it needs to be reconfigured 
often?  And do you know of other similar cases that would
help make the case that the problem is
common enough that we ought to provide a better 
infrastructure than property editors for doing it?
Comment 3 Steve Benigan 2003-11-26 05:38:02 UTC
I filed this issue after working on the a generic vcs profile
(Subversion).  I spent so much time clicking on a property, resizing
the property editor, editing a property in the editor, closing it,
testing, and repeating the process over and over.  If the property
editor was non-modal, it would have saved so much time.

I recalled using the Form editor in a similar way - especially with
custom code (pre initialize, etc) as well as with custom javabeans. 
Actually, take a simple example like the color property editor.  You
have to close the editor to see the changes.  If it was non-modal,
these sort of rapid changes would be much easier to do.

I understand all of the issue you have raised.  Maybe there is a way
to address them?  Could the non-modal dialog listen for property state
changes?  If the property (or whatever the dialog is for) is deleted,
then the property editor is closed - maybe with a prompt to the user
that the dialog is no longer valid.  

I have seen this behavior in some application and it was elegant but I
can't place where!  I can't emphasize emough how much time this could
save.
Comment 4 Stanislav Aubrecht 2013-09-05 07:58:42 UTC
Most properties allow in-line editing with the need for modal customizer.