Options Dialog User View
- Abstract: This document specifies the requirements for the Option
Dialog redesign and enumerates common user tasks and behavior of the Options
Dialog.
Please see the Options UI Specification
for more details.
- Contents:
- Problem
- References
- ConceptualOverview
- Extensibility Support
- Common Tasks and Behavior
The Options System is being redesigned to simplify the task of setting up and
customizing the IDE. The shift from property sheets to customizers characterizes
the change in paradigm to present options in a more user and task centric manner
as opposed to the modular or architectural presentation used to date.
2 References
See the Base Options Spec
See the Advanced Options Spec
See the Options Guideline
for developers.
The new Options Dialog will provide a simplified list of options categories.
The categories will be matched with panels that clearly present options to the
user in a way that demonstrates the relationship between options, establishes
a clear workflow, and provides better context for what an option means and where
to look to customize a given part of the IDE.
IDE Options will be broken into two groups: Base options displayed as customizers
and consisting of all options necessary for successful usage of the IDE and
Advanced options displayed as property sheets and consisting of any options
not in the Base set and considered obscure or arcane for the majority of targeted
users.
Options Dialog requirements
- Greatly reduce the number of options the user has to work with. Options
not presented in the Base Dialog will be available through the Advanced Dialog.
- Present options in a UI that is more natural for the option being changed.
- Add multiple entry points for customizing the IDE. This follows with the
context sensitive nature of the IDE and lets users get a options relevant
to the task at hand faster.
- Add explicit commit and cancel gestures. All options contained in the Options
Dialog will only be committed to the system when the user clicks Ok. Clicking
Cancel will ignore any changes made while the Dialog was open.
- Increase the barrier to entry for new options and thereby keep the number
of Base Options to a reasonable level.
- As a result of the first requirement some things will not be accessible
in the simplified version of the dialog. But those things that remain must
fulfill the existing contracts offered to module writers without those modules
being modified.
3 Extensibility Support
The new Options Dialog will be based on options and UI present in NetBeans
3.4. Options present in 3.4 where taken into explicit consideration during the
design of the dialog with the understanding that other modules, or third parties
may need to add into this structure at any future time.
The following steps occur in order when adding a module:
- A module will add a new category or sub-category to the left hand tree.
- A new options panel is added to to the system -either in a new category
or as a sub-panel in an existing options panel.
When a module is disabled the following three steps occur in order:
- In a Shared Panel, the options for the disabled module/functionality are
removed.
- In a Unique Panel, or a Shared Panel with no remaining enabled options,
the panel is removed.
- Once all panels in a category have been removed the category is also removed
from the left hand tree.
The following image also describes the process.

Buttons
| Dialog Wide Buttons |
| OK |
Commits changes and closes dialog. |
| Cancel |
Closes dialog without committing any changes. |
| Apply |
Commits changes and leaves dialog open (not currently part of the design
but functionality should be available). |
| Advanced |
Opens Advanced Options dialog. See Advanced
Options Spec for more details. |
| Base |
Opens Base Options dialog (when Advanced dialog is present). |
| Option Panel specific Buttons |
| Use Defaults |
Restores panel values to factory defaults |
Base Options Dialog Overview
- Clicking Ok confirms any changes, applies them to the system
and closes the Options Dialog.
- Clicking Cancel closes the Options Dialog without applying
any changes.
- Clicking Help opens the help browser to help matching the
current panel.
- Clicking Advanced opens the Advanced Options Dialog with the
tree expanded to the options related to what the user was doing in the Options
Dialog. All changes are committed when switching between Advanced and Base
Options.
Advanced Options Dialog Overview
- Clicking Ok confirms any changes, applies them to the system
and closes the Options Dialog.
- Clicking Cancel will revert all changes made while in the
Advanced Options Dialog.
- Clicking Help opens the help browser to help matching the
current panel.
- Clicking Base opens the Base Options Dialog with the tree
expanded to the options related to what the user was doing in the Options
Dialog. All changes are committed when switching between Advanced and Base
Options.
Opening the Options Dialog
Opening the Options Dialog will display which ever mode, Base or Advanced, that
was last used. It is a modal dialog and contains list of option categories on
the left and a customizer or property sheet, for Base or Advanced respectively,
on the right. When opened for the first time the first category is selected. All
subsequent uses of the Options Dialog will either return the user to the last
used location (when opened from the main menu) or take the user straight to the
appropriate option set (as per pop-up menu entry points).
Customizing options values
Customization is done by changing values in ui widgets in customizers. Adjusting
options which cause visible change in IDE
can't be applied immediately
after changing a value. The change must be delayed until
Ok is pressed.
Changes which do not cause a visible change may be applied immediately, though
the preferred mechanism to commit all changes only on clicking
Ok.
Selecting options category
When switching an options category, altered values from the current customizer
have to be validated. If any values are invalid then a warning message
will be displayed and the current option category/pane is maintained in focus.
Committing values
When committing values with
Ok button, the system will first check if the
values in the visible customizer are invalid. If no invalid values are present
then
values from all customizers are applied and dialog is closed. Invalid
entries will be caught and the user prompted to fix the problem.
Canceling values
When canceling values with cancel button, the IDE continues with the same settings
that were active before the Options Dialog was opened. Should there be any settings
which required making changes before
Ok was clicked those changes will
be rolled back or discarded.
Switching to advanced options
When switching to advanced options by pressing Advanced button, first check if
values in the current are valid. If no invalid values were inserted then dialog
changes its layout to current Options Dialog and remains modal. Same option category
should be selected. Advanced Options will only show those options which are not
displayed in the Base Options Dialog.
Switching back
When switching back to the Base dialog the selected node in the left hand tree
may not be available. In this case the first common parent node should be selected
as a substitute.
One restriction: Fallback to property sheet
Due to compatibility contract it may happen that an object visible in base dialog
does not have a customizer (some legacy compiler). In such case the property sheet
is used instead the customizer to ensure contracts remain backward compatible.