Introducing IT Mill Toolkit 5

Effortless web application development for Java-programmers.

Release Notes for IT Mill Toolkit Version

Version 5.3.0 is the first stable release of IT Mill Toolkit 5, meaning that there are no known major problems and the API will be kept backward compatible.

Google Web Toolkit Upgraded to Version 1.5

The GWT used in IT Mill Toolkit is upgraded to version 1.5. If you have made your own client side components, you will need to upgrade your GWT library. Many things have changed in GWT 1.5, but upgrading is rather straightforward and, as a bonus, you will get the nice features from Java 1.5. For more details on GWT 1.5, see the GWT web site.

Java 5 Now Required

As GWT now requires Java 5, support for Java 1.4 is discontinued also in IT Mill Toolkit.

Debug Mode Enabled by Default

The debug mode is now enabled by default, to allow debugging layout and other problems more easily. The debug mode:

  • Displays debug data to the server console/log.
  • Allows showing the client-side logging window, which you can enable by adding the request parameter "?debug=true" to the application URI.
  • Adds an "Analyze layouting" -button to the debug window: when pressed, it will show red markers in potentially problematic layouts and show layout hint texts in the browser-window and in System.out.

You should disable the debug mode when releasing your application for production use. You can do this by including the following setting in your web.xml.

  <context-param>
  	<param-name>productionMode</param-name>
  	<param-value>true</param-value>
  	<description>IT Mill Toolkit production mode</description>
  </context-param>

Layout Changes

The stable IT Mill Toolkit version 5.3 introduces a major rework of layout components since the beta versions 5.2.x and before.

Major changes include:

  • Layouts are stricter than before - use of debug mode recommended
  • VerticalLayout and HorizontalLayout obsolete OrderedLayout
  • ExpandLayout deprecated
  • Default changes changed

These major changes are detailed below.

Use debug mode during development / debugging

Layouts are now more strict than before and some components may even be invisible if you use relative sizes in a wrong way.

The debug mode, which is now enabled by default (see above), will make Toolkit run some sanity checks for relatively sized components and print informative error messages to the server console. Invalid components are painted without their relative size and colored red.

OrderedLayout deprecated

VerticalLayout and HorizontalLayout replace the old OrderedLayout, which is now deprecated.

Essentially, this makes the creation of these basic layouts a bit tidier as you don't have to give the orientation as an ugly parameter to the constructor. You won't be able to change the orientation with setOrientation() any longer, though such need is rare anyhow.

Handling of relative sizes has changed, ExpandLayout deprecated

ExpandLayout is deprecated. You can now define the relative sizes of components more flexibly with setExpandRatio() method available in VerticalLayout or HorizontalLayout.

See the article on Relative sizes in IT Mill Toolkit for details.

Some components now have default sizes

Previously, almost all components had undefined size by default. Now some containers have 100% width by default. These components are:

  • VerticalLayout
  • Window
  • Panel
  • TabSheet
  • SplitPanel (note that SplitPanel also has 100% height by default)
  • Form
  • FormLayout

Miscellaneous Layout Changes

  • You can now give component alignments inside layouts easily with setComponentAlignment() as a string, such as "top left" or "m,c" (for middle-center). See #2279.
  • Form no longer copies all components from the old layout to the new one when doing setLayout(), instead only fields belonging to the Form are copied.

Custom Tailored Client-Side Components

Due to the layout changes, all child component size changes (outside the updateFromUIDL() function) must be announced. Most commonly, this kind of change occurs when an image gets loaded inside a component. There is a helper method componentSizeUpdated() in the Util class for making the announcement:

            Set<Widget> w = new HashSet<Widget>();
            w.add(this);
            Util.componentSizeUpdated(w);

Themes

Many components have changed significantly due to layout refactoring. Especially the DOM structures of the components have changed, which may break old themes.

Building themes for Toolkit is not the most straightforward process as there is quite a lot of JavaScript magic done while rendering the components, e.g., dimension measuring, etc. If you use unsupported CSS, a component may be rendered in an unexpected way in a browser. A "Theme builder's Handbook" is at the top of our TODO list. In the mean time, it is often safest to override the values defined in the default theme.

Especially, if you encounter problems with margins or spacings, check the manual. Some CSS class names and conventions have changed as well. (Many of the changes are not yet included in the manual.)

If you have or get "broken" component on your screen, the first thing to do is to comment out all your custom theme. If it works, you may have the rework your CSS for that particular component. Below are a few things to check:

  • Do not use custom margins outside a component. In IT Mill Toolkit, no component should have a margin defined. Settings width/height on the server-side would mean offset width/height on client-side, so using custom margins for components using CSS may break some features in the layouts.
  • The same goes for borders and paddings for the main element unless they are used for the main element in the default theme. It is often safer to use borders in the same elements that have borders in the default theme or in inner elements.

The easiest and safest way to build a custom theme is, often, to override the values from the default theme.

Browser support changes since 5.2.x

Safari 2, Firefox 1.5, and versions of Opera prior to version 9.6 are no longer supported. Users of these browsers are strongly encouraged to upgrade to a newer version.

Google Chrome is not yet supported, but it is known to work rather well as it is a close relative to Safari.

The GWT Hosted Mode Browser on Linux uses same Gecko version as FF 1.5 and is currently partially broken. Some layouts do not render properly. We hope to resolve these issues soon with next generation Hosted Mode Browser aka OOPHM or with minor hacks to the client side code.

Miscellaneous Changes and Enhancements

Version 5.3 also contains a large number (more than 200) of small changes, which might not be worth mentioning in the release notes, but below are some of them.

  • A new sub-window theme
  • The HTML structure of TabSheet has changed
  • Better shadow support for overlay elements
  • Row and column icons for Table
  • New component: PopupPanel/PopupView
  • Theme changing on-the-fly
  • Table cellstyle and rowstyle generators
  • New component: MenuBar
  • Security: double-cookie submission pattern
  • Low-level support for bookmarking and history
  • Sub-windows can be centered on screen. Modal windows are centered automatically
  • The Link component now behaves like a normal "weblink"

The release of IT Mill Toolkit includes new features and a large number of fixes to problems compared to the older 5.2.x version. Major enhancements and dozens of bug fixes have been implemented. Only the most significant issues are mentioned here.

For up-to-date status of known problems, see the developer website dev.itmill.com.

Important known problems in

  • #1155 Uncompressing the installation package fails in Windows if using the default Zip uncompression. Uncompression gives (in Windows Vista) an error message about too long filenames, and a more obscure message in other versions of Windows. Workaround: use 7-Zip or some other good unzip program for Windows.
  • #1636 Incompatibility with some versions of Firefox and other browsers based on Gekko 1.7. For example, the hosted mode browser of Google Web Toolkit 1.4.62 (included in IT Mill Toolkit) does not work fully in Linux so the the new feature for having multiple applications per page is not possible. This is due to the new client-side loader code. For a workaround for loading multiple applications per page, use a static HTML loader page, see for example the multiapp.html demo page.

For other known problems, see open tickets at developer site dev.itmill.com.

Requirements

IT Mill Toolkit is available for the following operating systems:

  • Windows (see the Zip installation notice above)
  • Linux
  • Mac OS X Tiger (mac) or Leopard (leopard)
  • Other UNIX operating systems such as Sun Solaris using the Linux installation package.

IT Mill Toolkit supports the following browsers:

  • Mozilla Firefox releases 2, and 3 (see notice above about Gecco 1.7).
  • Internet Explorer releases 6, 7, and 8.
  • Safari 3
  • Opera 9.6

There may be differences between the exact versions of the supported browsers that may cause incompatibility with applications made with IT Mill Toolkit.

The following browsers are not supported but have been found to work to a large degree:

  • Safari 2
  • Firefox 1.5
  • iPhone
  • Galeon, Epiphany and other Gecco-based browsers (see notice about Gecco 1.7 above)
  • Nokia Internet Tablet N800 and N810 (ITOS 2008)

Nokia E-series phones with at least 128MB of memory have been known to work with older versions, but not with IT Mill Toolkit 5.2.x. Konqueror, the default browser in many Linux distributions, is known to have limited usability.