Options Dialog User View

Authors: Jan Rojcek, Yarda Tulach, Chris LeDantec

$Revision: 1.11 $
Document History: available in CVS

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:
  1. Problem
  2. References
  3. ConceptualOverview
  4. Extensibility Support
  5. Common Tasks and Behavior

1 Problem

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.

2 Conceptual Overview

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
  1. 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.
  2. Present options in a UI that is more natural for the option being changed.
  3. 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.
  4. 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.
  5. Increase the barrier to entry for new options and thereby keep the number of Base Options to a reasonable level.
  6. 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:

  1. A module will add a new category or sub-category to the left hand tree.
  2. 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:

  1. In a Shared Panel, the options for the disabled module/functionality are removed.
  2. In a Unique Panel, or a Shared Panel with no remaining enabled options, the panel is removed.
  3. 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.

 

4 Common Tasks and Behavior

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.

Project Features

About this Project

ui was started in November 2009, is owned by Jiří Kovalský, and has 44 members.
By use of this website, you agree to the NetBeans Policies and Terms of Use (revision 20160708.bf2ac18). © 2014, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo
 
 
Close
loading
Please Confirm
Close