The changes
- Addressing performance. The first drop of 5.0
is 20% faster than release 4.3.
- Requires JDK 6.0. 6u10 is the only VM that is being
used for tests.
- SubstanceLookAndFeel class is now abstract and does not
have any public constructors. Use a core skin-based LAF, extend to
set a custom skin or use static setSkin method.
- Removed support for pluggable text rasterizers
(substance-bramble plugin based on SWT). 6u10 addresses poor
Segoe UI rendering on Vista.
- Reworked notion of themes. Split the functionality of SubstanceTheme,
SubstanceComplexTheme and SubstanceSkin into SubstanceColorScheme,
SubstanceColorSchemeBundle and SubstanceSkin. Tweaked most of the
core skins to take advantage of the new more flexible and straighforward
APIs.
- Removed most of the VM flags. The only two flags are for tracing memory
allocation and heap status. Use skin / image watermark / configuration
APIs.
- Reconciled APIs that were added to address specific
user requests and did not result in a consistent API. This
should make making a custom skin / tweaking default
Substance behavior easier and more straightforward.
- New client property to provide per-window skinning.
Use different skins for different top-level windows.
- Removed the client properties and APIs for setting themes and
painters on per-component level. Use colorization client property and
per-window skins for custom tweaking.
- The new default mode does not add any extra UI elements
(menu search, lock icons etc).
- Removed performance-adverse functionality of custom overlay
and composites. Was unintentionally broken since release 4.2 and
intentionally unfixed in both 4.2 and 4.3. A single complaint shows
that this functionality is of miniscule use.
- Removed combobox auto-completion. Use SwingX, GlazedLists or JIDE.
- Moved UI debug mode (additional context menu on title panes and
scroll bars) to a substance-tools plugin
- Consolidated existing theme pack, button shaper pack
and watermark pack into substance-extras plugin
- New SubstanceApi annotation marks public APIs (classes, constructors,
methods)
- Internal restructuring of the packages to make the codebase
more organized.
Java SE 6 specific functionality
- Multi-stop linear gradients
- Support for sort arrow icons on table headers
- Linux-specific bug fix on dragging window by title pane