FeaturesPluginsDocs & SupportCommunityPartners

New UI of Component Palette
Design Specification

Author: Dusan Pavlica
Version: 3.0
Last Update: 12/22/2003

 

Contents:

  1. Introduction
  2. Design specification
    • Current state
    • New design
    • Other enhancements
  3. Open issues

 

1. Introduction

The new Window System is implemented  now in the Netbeans and it's necessary to adjust all component to its appearance.
This document isn't full specification of Component Palette behavior because it isn't changed.
It defines mainly design of "category switchers" and some enhancements.

 

2. Design specification

Current state:

Components inside Component Palette are divided into 6 categories by default (Swing, Swing (Other), AWT, Beans, Layouts, Borders) and each of that category is presented visually like a TAB in TABPane .
User could switch among these categories by clicking on TABs. There is a usability problem with more then 1 TAB's row because of their exchange during user's switching. Another problem we see in visual representation of TABs inside new Windowing System and we would like to distinguish Window's TABs and components situated inside them. And that's why we suggested new design described below.

 palette1.png (8344 bytes)

figure 1 - Current design of Component Palette

 

New design with following changes: 

  • TABs are changed for toggle buttons situated into Palette's ToolBar and Components are displayed below this ToolBar.
  • When user changes width of Component Palette, then categories should adapt on that new size:

    A. When buttons have enough space on one row, they should be aligned to the left and each has exact width, which depends on length of category name.

    B. When buttons haven't enough space on one row, then more rows of toggle buttons should be displayed  with following logic:

    • Their width should be the same. Minimal width is taken from toggle button with longest label visible inside and maximal width is the same like the width of internal size of Palette.
    • Show the same number of categories on each row if it's possible (with standard number of categories (5) it isn't possible except situation with 5 simple rows). 
    • Let's keep similar number of toggle buttons in each row if isn't possible to have the same number.
    • When any empty space appears on some row, then width of this space has the same width like an other toggle buttons.
  • Components are toggle buttons too and they should adapt on width of Component Palette with the same logic mentioned above.

 

palette-classic1.png (8282 bytes)

figure 2 -
Component Palette in Windows Classic L&F. Two rows of Categories and two columns of Components are visible.

palette-XP1.png (11946 bytes)

figure 3 -
Component Palette in Windows XP L&F. Three rows of Categories and one column of Components are visible.

Other Enhancements:

Current implementation of the list of Components has some visible errors which could be fixed:

  • The List of Components could be displayed like icons or like icons with their names. User could switch between these two states by Show names contextual menu item. This menu item exists in contextual menu invoked over components, but user should be able to invoke it over all internal area below Palette's ToolBar. And I suggest to rename it for Show Names of Components  menu item too, because it isn't clear enough what does it mean Names in this context (Category Name  or Component Name).
  • Rollover and Pressed states of component toggle buttons should be displayed over all width of column, not only with minimal width of appropriate toggle button.
  • Columns with list of Components should have the same width, not different like it's currently implemented.
  • What's about to remove Borders category ? Then we will have four default categories in the Component Palette and they will look aligned.


 

3. Open issues

  • Design of Metal L&F is not nice...Some improvement is necessary maybe.
  •  

 

 

Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by