Migration guide for version 3.0 (Grenada)

The version 3.0 (code-named Grenada) introduces binary incompatibilities with the previous versions. This document describes these incompatibilities and outlines the migration process for the client applications.

Background

During the first phase of version 3.0, the codebase of Substance has been refactored and split to two different projects. The "look" part of Substance remains under the same project, while most of the "feel" part (behavioural traits or widgets) has been moved under the laf-widget project. The main goals were: During this process, some of the internal implementation classes of Substance have been moved to the new project. In addition, some parts of the client-facing API have been moved as well. In the following sections we provide the complete migration guide for applications that use these moved APIs.

Classes that were moved

The following classes were moved:
Class From package To package
TabPreviewPainter org.jvnet.substance.tabbed org.jvnet.lafwidget.tabbed
DefaultTabPreviewPainter org.jvnet.substance.tabbed org.jvnet.lafwidget.tabbed
PasswordStrengthChecker org.jvnet.substance.utils org.jvnet.lafwidget.text
The API of these classes has not been changed. In order to migrate application using these classes you will need to reorganize the import sections of the relevant application classes and recompile your application.

Enums replaced by class instances

The following enums were replaced by class instances:
Enum From class To class
AnimationKind org.jvnet.substance.utils.SubstanceConstants org.jvnet.lafwidget.utils.LafConstants
PasswordStrength org.jvnet.substance.utils.PasswordStrengthChecker org.jvnet.lafwidget.utils.LafConstants
In order to migrate application using these enums you will need to reorganize the import sections of the relevant application classes and recompile your application.

Client property keys that were moved and changed

The following client property keys were moved (and value changed):
Client property From class To class
ANIMATION_KIND org.jvnet.substance.SubstanceLookAndFeel org.jvnet.lafwidget.LafWidget
COMBO_BOX_USE_MODEL_ONLY org.jvnet.substance.SubstanceLookAndFeel org.jvnet.lafwidget.LafWidget
PASSWORD_STRENGTH_CHECKER org.jvnet.substance.SubstanceLookAndFeel org.jvnet.lafwidget.LafWidget
TABBED_PANE_PREVIEW_PAINTER org.jvnet.substance.SubstanceLookAndFeel org.jvnet.lafwidget.LafWidget
In order to migrate application using these client properties you will need to reorganize the import sections of the relevant application classes and recompile your application.

Client property keys that were renamed

The following client property keys were renamed (and value changed):
In class Old name New name
org.jvnet.substance.SubstanceLookAndFeel BUTTON_PAINT_ACTIVE_PROPERTY PAINT_ACTIVE_PROPERTY
In order to migrate application using these client properties you will need to change the usage of old properties to new properties and recompile your application.