WebLookAndFeel v.1.2 released


So here we go! Second big update since the release of alpha-version.
It took me almost a month and lots of effort to finish this release.
It is still in alpha-state but since next (1.3) version it will become beta.

Also, hopefully, 1.4 version will already be stable and since that version there will be a lot of changes coming in library and on this site aswell.

So, let’s get back to new 1.2 version and see what is new in it…

New features

– SettingsManager added

It allows You to quickly save any simple (strings, integers e.t.c) and even complex (serializable objects) settings in Your application.
It uses famous XStream library to serialize settings into pure XML.
For now all the settings are stored in user home directory under “.weblaf” subdirectory in different file for each settings group.

This is how settings can be easily saved:

SettingsManager.set ( "MySettingsGroup", "myProperty", "myValue" );

And read:

SettingsManager.get ( "MySettingsGroup", "myProperty", "defaultValue" );

You can skip settings group if you don’t want to assign it, in that case default group will be used.
There is also many ways to read/save different settings.

– ProxyManager added

This manager allows You to quickly setup application/connection proxy (including authentication).
You can also retrieve and use Your system proxy settings.
In case authentication will be required but there is no login/password specified in settings – user will be requested to enter them.

All proxy settings are once saved and auto loaded later through SettingsManager.

– DnD is now supported in file chooser components

You can now drag files on WebFileTree, WebPathField, WebFileChooserField or WebFileList to quickly show that file/folder in the component.

– Components highlighting inside any Java-window

You can now quickly highlight any components inside Java windows:
Components highlighting

To do that just use HighlightManager methods to set one or more highlighted components.
Just don’t forget to clear highlight after You re done 🙂

– Window hotkeys quick preview in tooltips

You can now quickly pop all the hotkeys in the tooltips near corresponding components:
Hotkeys preview

To do that You have to use HotkeyManager to setup hotkeys for components and just call:

HotkeyManager.showComponentsHotkeys ( topComponent );

to show all component and its subcomponents hotkeys.

You can also quickly install a hotkey for this action:

HotkeyManager.installShowAllHotkeysAction ( getRootPane (), Hotkey.F1 );

You can specify any other top-level component under which action will be listened.

– Possibility to add leading or trailing icon to text or password fields

You can add any component inside the fields by simply calling:

textfield.setLeadingComponent ( lead );


textfield.setTrailingComponent ( trail );

on any instance of WebTextField or WebPasswordField.

This is how it could look:
Leading and trailing field components

– Quick default localization change possibility added

You can now quickly setup standard components localization by calling:

StyleConstants.language = StyleConstants.RUSSIAN;

Before WebLookAndFeel initialized. English language is set by default.

For now only Russian and English languages supported.
Some more might be added in later releases.

New components

– WebStatusBar component added

Simple styled status bar:
Status bar

– WebMemoryBar component added

Memory bar, representing current Java application memory state:
Memory bar

– WebVerticalLabel component added

Simple label which is positioned vertically counter/clockwise:
Vertical label

– WebFilesDrop component added

This component allows to drop any kind of files on any OS on it:

Dropped files are stored as changeable list:

– WebDirectoryChooserPanel and WebDirectoryChooser components added

Additional to WebFileChooserPanel and WebFileChooser components.
They are a bit more simple and allow to choose only one directory at a time:

– WebImageTransition and TransitionPanel components added

This feature took a lot of time, but it costs the time spent!
These two components allows You to quickly add nice animated transition effect for any two components/images:
Transition effect
There is not a big choice of effects so far but there are some.
It is optimized and doesn’t eat a lot of memory but could cause some GCs to run if you are running at very low maximum memory.
You can see the transition effect in library demo (switch panels through menu bar or check the effects tab).

– WebImage component added

This a simple image component with a bit more comfortable usage than JLabel.
You can create image component straight by image source without any Icon.

Library improvements

– WebPathField edited path auto completion added

Automatically show all available paths from the current position in the field in additional window:

– Many components draw and settings improvements

I have refactored a lot of code and added most of UI settings into Web-components to call them straight and easily.
Some of default component settings were changed a bit to improve application style.

– Massive changes and improvements to tooltip system

First of all – tooltip system was fully changed to improve its speed and make the code clear.
CustomTooltip is now the main component used by TooltipManager.
TooltipManager doesn’t clone GlassPanes for same window anymore.
One-time tooltips are now won’t be closed by moving mouse outside the component by default.

– Checkbox and Radio button UIs changed to dynamic painting

Checkbox and Radio button UIs were changed from static images painting to dynamic ones.
Now they represent their focus properly and also a bit faster in updating their view.

– Menu items selection style changed

Just check out the new menu selection style:
New menu selection style

– Hidden file icons are now displayed as half-transparent

Hidden files icons are now half-transparent:
Half-transparent hidden files icons
To display hidden files in all file components just use:

StyleConstants.showHiddenFiles = true;

before WebLookAndFeel initialized.

Bug fixes

– Animation added in checkbox list for check state changes

Yes, it is now properly animated when You switch the checkbox state.
You can check this in demo application 🙂

– All four tab positions now properly displayed in tabbed pane

And even some more shown in demo:
Tabs position

– Files deletion now asks for confirmation

In any place where You are allowed to do that:
Delete confirmation

– WebPasswordFieldUI border fixed

Some minor WebPasswordFieldUI border fixes.
It was a bit different from the one in WebTextFieldUI.

– Button highlights are now properly resetted in closed windows

After closing a window by pressing any “Ok”/”Cancel” e.t.c button – they were frozen in highlighted state.
Now that bug is gone and buttons properly reset their state in such cases.

– Toolbar gripper is now always properly displayed

Just a small changes for toolbar gripper painting:
Toolbar gripper fix

Distribution changes

– JNLP example added on site

Now you can simply run WebLookAndFeel demo through the JNLP starter!

– WebLookAndFeel exampler massivly improved

I have refactored demo application once more to remove all unnecessary trash and add some lost examples.
In next update i am going to add example sources right into the demo.

– All additional library licenses are now presented in “licenses” folder in each distribution

You can now find licenses of all side libraries in the “licenses” folder inside any distribution.

– Code comments are in pure English now

Yes, i have finally removed all Russian comments and also improved some of them while translating to English.

I guess that’s mostly all about visible changes.
I have also improved the library structure a lot, but there is no point to describe that (at least so far) – there will be more changes.

As usual – stay tuned for more updates next month and thanks for coming!