Getting ready for the Substance 4.1 feature freeze

Over the past releases of Substance look and feel I found that it helps to have a well-defined release lifecycle and schedule. The usual cycle for a minor release is 12 weeks long, with last two weeks being the release candidate stage and the two weeks before that (a month before the final release) being feature freeze. For the upcoming version 4.1 (code-named Lima) which is scheduled to be released on November 12th, the feature freeze is this Sunday. There are a few new features, most of them coming from the users. In this post, i’m going to talk about two of these.

The first is the reworked visual appearance of tabbed pane content border and a client property to control it in the application code. Here is how this border looked like in the previous release under Business Black Steel skin:

Here is how it looks like in the new release (the gaps between the checkboxes and radio buttons have been artificially tweaked to have the content fit on the frame):

The main difference is in the top portion of the content pane border. By default, it now follows the modern appearance of such applications as Firefox and Internet Explorer 7, and look-and-feels such as Nimbus and Quaqua (which follows Mac Aqua).

Here is another “old” screenshot of Creme skin:

And here is how it looks now:

The last couple of “before” and “after” come from the Autumn skin. The “before”:

and the “after”:

While this brings more modern look to the tabbed panes, some application may require additional control over the content pane border. This is what the new TABBED_PANE_CONTENT_BORDER_KIND client property is for. The default value is TabContentPaneBorderKind.DOUBLE_FULL which is what the next screenshot (and the screenshots above) show:

In order to use the old painting, use the TabContentPaneBorderKind.SINGLE_FULL value:

If you have nested tabbed panes, you can use either TabContentPaneBorderKind.DOUBLE_PLACEMENT value:

or the TabContentPaneBorderKind.SINGLE_PLACEMENT value:

Thanks to Luke Sleeman for opening an enhancement request that prompted this functionality.

The second feature is the reworked support for lock icons on non-editable text fields and editable comboboxes with model-only auto-completion. Up until now, Substance added a lock icon in the bottom left corner of such components unless you used the NO_EXTRA_ELEMENTS property, which is kind of an overkill for this. The latest 4.1dev drop of Substance (which bundles the latest 3.2dev drop of Laf-Widget) adds a new LafWidget.NO_LOCK_ICON client property that allows controlling the presence of lock icon for a specific component.

In addition, Kamil Paral has requested a very useful enhancement: when you wrap a non-editable text area in a scroll pane, the icon only appears when you scroll all the way down. And so, in this case, the latest drop paints the lock icon just above the horizontal scroll bar. You can read about the implementation limitations in the enhancement report, but i’ll sum up two shortcomings:

  • If you scroll horizontally, the icon will disappear – it is bound to the left border of the wrapped component.
  • The scroll mode is switched from BLIT to SIMPLE which might affect the scrolling performance.

If these shortcomings make this feature undesirable, use the NO_LOCK_ICON on that specific component and set it to Boolean.FALSE.


Related posts:

  1. Flamingo 4.0 – core feature freeze and release schedule Yesterday’s entry has marked the completion of all planned core features for the version 4.0...
  2. Native text rendering in Swing applications – ready, steady, go! The subject of native text rendering in Swing applications has been introduced on this blog...
  3. Substance 4.1 official release It gives me great pleasure to announce the official release for version 4.1 of Substance...


7 Responses to “Getting ready for the Substance 4.1 feature freeze”

  • Thierry Says:

    Hi,
    Looks good.
    I am using JRE 6_03 on Windows.. and it is very slow. There are some refresh issues (I am using 2 screens), and the CPU is on avg. around 30%….

  • Kirill Grouchnikov Says:

    Thierry,

    Please post a message on the project forums or users mailing list to further discuss the problems that you’re seeing.

    Thanks
    Kirill

  • Dhilshuk Reddy Says:

    Kirill,
    I am admirer of substance look and feel.
    I do follow up all the latest versions of Substance Look and feel.
    Kirill I feel the Look of Tabs of the tabbed pane bit boring.
    I feel if the shape and look of the Tabs be changed they look more beautiful.
    Kirill it just my suggesstion because I found some tabs which are really cool .

  • Kirill Grouchnikov Says:

    Dhilshuk – the shape of the tabs is consistent with the current button shaper. The look of the tabs is consistent with the current gradient painter and the current border painter. This is done so that the entire UI is painted in a consistent way. In addition, there are custom client properties that can be set to configure these settings for a specific component (which i do not recommend to do for business-oriented applications).

    Thanks
    Kirill

  • Luke Sleeman Says:

    Thanks for the work on the tabbed panes! It looks really great. We really appreciate your hard work on the substance look and feel.

  • Ithinu Says:

    A few problems:

    1. On Linux, if several frames are opened in a quick succession, some are empty, even no watermark image.

    2. Slider is hardly readable in some styles, for example business deep blue steel.

    3. Perhaps this one is fixed, but in some of the previous releases dialog buttons did not follow properly open/save dialog mode.

  • Prashant Bhat Says:

    The new tabbedpane looks really nice. Is it also possible to show Firefox like scroll tabLayoutPolicy(not for wrap layout). Two navigation buttons on each side and a drop down button displaying menu with all tab titles and current tab title in bold. May be it’s not in look and feel’s scope, but it will be a cool feature to have:-)

    Thanks for the great look and feel,
    Prashant