cornercorner
FeaturesPluginsDocs & SupportCommunityPartners

Options Guideline

Author: Chris LeDantec

Document History

[September 17, 2002] Version 0.1 -- Inception

[September 26, 2002] Version 0.2 -- Public Draft

Table of Contents

Introduction

This document is meant to be a quick start guide explaining the basic concepts of the Options System Redesign. More details about the contents of the redesign can be found in the accompanying documents.

References

The Base Options Spec describes the main contents of the Options System. The Advanced Options Spec describes how the Advanced Options Dialog should behave and the Options User View describes more user action details and system semantics details.

Concepts and Interaction

There are two major changes in the redesign that affect how options are handled and what needs to be done to integrate successfully into the new system:

    1. The Division of options into Base and Advanced categories
    2. The use of customers to manipulate and present Base Options

The first change, dividing options into two categories, affects what options will be presented to the user straight away. By default the user will see Base Options and only after a gesture (clicking on a button) will Advanced Options be revealed.

Base Options are defined as those options necessary and useful for the user to successfully work within the IDE.

Advanced Options are those options that are obscure or seldom used in the IDE.

Each module writer needs to analyze module options and develop an understanding of how the different options are used. In general, the Base Option set should be kept small; however, a small number of Base Options should not come at the expense of making the user look in Advanced Options regularly.

Advanced Options should provide a way to affect every aspect of the environment -for users who wish a high level of customization. Base Options should provide all the functionality to get work done in a reasonable way.

In either Base or Advanced Options all options are categorized by a tree structure on the left of the dialog. The Options Category Tree provides categories that are user task centric. Where are particular options comes from is not as important as the role it plays in solving a user's problem. To that end the Options Category Tree should reflect names and structure that deal with the objects a user is looking to act on.

The second point, that Base Options will be presented in customizers affects the amount of effort needed to integrate a module into the new options system. Using a customizer facilitates:

  • clear communication of what options are through improved naming schemes or in-panel text
  • better interaction for options with interdependencies
  • a more familiar interface for selecting, and editing configuration data

As the number of Base options grows the amount of work to design and implement the options panels and any supporting business logic grows as well.

Two varieties of Options customizers, or panels, exist.Dedicated Panels contain options from only one module. Shared Panels are campsites that contain panels from different modules. Shared Panels may represent options from a variety of different sources -the general Environment Options panel is one example -or it may consist of options for one functional group that happens to be implemented in several modules as XML support is.

Shared Panels may have additional common UI elements that enable navigation through the various panels included. Navigation between shared panels is done with a combo-box as in the Fonts and Colors panels.

Module Semantics

The Options System is designed to be flexible with the module architecture of NetBeans. That said, it is also intended to be tailored for the particular use of the IDE. Each release of NetBeans will include a review of the options included and their presentation. The addition or subtraction of modules will result in interface changes of varying magnitude. This is markedly different from the current approach where options can be removed or subtracted for the property sheet model with little attention to the UI.

When a new module is added to the system it can either:

  • add a category to the Options Category Tree, or
  • add a panel to a Shared Panel (thereby add itself to an existing category).

Adding a new category can be done anywhere in the Options Category Tree; either a root node, a leaf node or anything in-between. This is up to the module developer to work out what location fits well into the system and best suits the user's expectation and task.

An options panel that gets added to an existing Shared Panel will need to be designed to fit within the available space of the Shared Panel. When this fails a combo-box will be added to the Shared Panel to navigate through each of the options panels. If a navigation combo-box is already present then the new options panel is added to the choices and no other visual change is made.

In reverse, removing options from the system first removes the panel from the category. If the category is then empty the category is removed from the Options Category Tree.

Options Guidelines

For UI guidelines refer to the Java Look and Feel Guideline and the NetBeans UI Guideline.

There are few considerations that need to be covered when designing options panels.

  • bring all task related options into one panel
  • consider option interactions -options that interact should be on the same panel and never divided between Base and Advanced Options

Additionally, all options panels need to provide:

  • category information
  • a name for use in a combo-box (it may not be used but it must be available)

 

Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems