LwVCL 4.20 (including new SWT branch)

New LwVCL version is done. The version painting performance has been improved considerably. The other great step is a new LwVCL branch that works basing on SWT (Standard Widget Toolkit)! As a result you will get rich, flexible GUI components set for the following:

  • J2SE Platform
  • J2ME Platform
  • Java SWT (New!)
  • .NET Platform

At last the J2SE LwVCL version provides the way to support the mouse wheel.

Using the library you have a chance to create UI for different platforms basing on the same UI components, concepts, API, look and feel. The table below shows the most important changes that have been done in the new version:

Changes Description
J2SEDesktop added This class implements desktop interface for the J2SE and J2ME (Personal Profile) LwVCL branches. The class belongs to adaptive level and you should not use it directly.
NCanvas added This is J2SE native canvas implementation.
LwRoot removed This class has been replaced with the listed above.
AWTPopuManager removed Starting from this version we provide own popup menu implementation, so we don't need the AWT popup menu.
LwDesktop
  • The getNCanvas method is added. The method returns a native canvas where the desktop "lives".
  • The getDA method is added to return the "dirty" area of the desktop. The dirty area is a rectangular area that should be repainted.
LwMenu Supports the disabled menu item inserting. For example:
   …
   LwMenu  menu = new LwMenu();
   LwLabel item = new LwLabel("Item");
   item.setEnabled(false);
   menu.add(lab);
   …
LwPaintManager
  • The rootPaint method is removed. The startPaint and paintDesktop methods are added. The first new method is supposed to be called by the native component to initiate the desktop painting. The second is the desktop painting algorithm implementation.
  • The painting process has been synchronized to be thread-safe. It means you can call the repaint method for any light weight component from the different threads.
LwPaintManImpl The manager doesn't support the foolish "shared" flag. So, it is not necessary to care if there is several or just one created desktop.
New properties file format To reduce the properties file size, it is not necessary to specify prefix for described object. For example the previous version was:
   obj.1.cl=classname
   obj.1.key=key
   obj.1.arg=1,2
The new version is:
   1.cl=classname
   1.key=key
   1.arg=1,2
LwNotebook The component can scroll its tabs. It means if a tab is out of the visible area as soon as you select it the tab will be shifted to the notebook visible area.
LwExtender added This is new component that allows you to hide/show the specified component. The new component is added to LwVCL extension package.
MatrixModel The interface is extended to have two new methods:
  • The removeRows method.
  • The removeCols method.
LwCombo The combo box behavior has been improved.
LwList The component generates a selection event in a case if the item has been selected again.
LwWindow The isMaximized method is added to test if the window has been maximized or not.
MathBox The unite method is added. The method unites the two specified rectangular areas and returns a result.
LwActionEvent removed To avoid unnecessary LwActionEvent object creation the LwActionListener has source and data object instead of the action object wrapper.
ListenerSupport removed This is rare used class.
ValidationObject removed This is rare used class.
LwTooltipMan The setTootltipInfo method is replaced by the setTooltip method. The new method can get a string, component or tool tip info interface as its argument. It simplifies the tool tip component specification. For example, it is possible to pass a string that should be shown as a tool tip.
LwGridMetrics The getColPSWidth and getRowPSHeight methods are added to get preferred sizes for the specified columns and rows.
LwGridCaption
  • The setFlagState and getFlagState methods are added. The method allows you to enable columns or rows resize and enable columns or rows auto resize according to its preferred sizes.
  • The enableResize method is replaced with the setFlagState method.
  • It is possible to auto size the grid column or row according to its preferred size by double clicking inside resize area.
LwMWheelSpport added The class allows you to support the mouse wheel in your LwVCL applications.

Enjoy !