• About
  • Portfolio
  • Resume

Michael C. Albers

  • About
  • Portfolio
  • Resume

Layout Management in NetBeans

Company:
Sun Microsystems, Inc.

Role:
Experience Lead & Manager

Dates:
2002 - 2006

Description:

Creating GUIs in Java required the use of 'layout managers'. Layout managers were algorithmic engines that determined the size and location of widgets within a window. Various factors, such as the localized string length, contributed to the decisions about the size and location of widgets. While technically flexible, layout managers were notoriously difficult to use. (See "Totally Gridbag" for a humorous example.)

I created a vision document describing how layout managers thwart people's attempts to create GUIs in a natural way and detailed the changes needed to address this problem in the Java SE platform and the NetBeans GUI builder tool. This document formed the basis for Project Matisse, the GUI builder shipped in NetBeans 5.0 and Java SE 6 (1 | 2). This single feature was a major selling point for the NetBeans 5.0 release and garnered very favorable reviews and awards (1 | 2).

There were 4 important aspect of Matisse in the NetBeans IDE. Matisse helped designers group semantically-related widgets. Edges of related widgets could be aligned visually by using the provided "guide lines". The edges of the window could be used to place and align widgets. Two widgets containing text could be aligned according to the baseline of the text visualized with "guide lines".

View fullsize NetBeans/Matisse Overview
NetBeans/Matisse Overview
View fullsize Widget Grouping
Widget Grouping
View fullsize Widget Edge Alignment
Widget Edge Alignment
View fullsize Window Edge Alignment
Window Edge Alignment
View fullsize Text Baseline Alignment
Text Baseline Alignment