IT Mill Toolkit Release Notes

Version 4.0.1

General

Version 4.0.1 is an maintenance release for IT Mill Toolkit 4.0 branch. It contains bugfixes for various browsers including few critical fixes for mobile terminals. We have added multiple new demos, source code included. Client-side source code is also provided for those who wish to look further how new themes or custom UI components are created for Toolkit applications, see themes under lib directory. Note, that client-side API (i.e. JavaScript and CSS files) are subject to change during 2007. These changes are required for better client-side compatibility, and they will not affect on the server-side Java APIs and components. Contact support@itmill.com for more information about client-side API changes.

Following changes may be considered as enhancements even though this is a maintenance release. See demos for more information.

  • Select component has server-side lazyloading functionality (large dataset scenarios)
  • Select component has filter options (begins with, contains, ends with filters)
  • UI components may be controlled with keyboard (Toolkit has support for receiving key events)

Note that executing demos locally may provide security warning from your firewall software. This is due to started Web service which is required to run demos. You have to ignore warnings or temporarily accept connections to port 8888 on your firewall software.

A simple Millstone migration example is also included in demos. Previously Toolkit library was called Millstone UI Library. The last publicly available version of Millstone UI Library is 3.1.1. This new generation 4.0.1 version of the library is still API-level compatible with the previous version.

See index.html for more information.

Requirements

Supported server-side environments are

  • Sun JDK, version 1.4, 5 and 6
  • Servlet Container, version 2.3 and 2.4
  • Application Servers / Servlet Containers
    • Apache Tomcat, since version 5
    • BEA WebLogic Server, since version 8.1
    • IBM WebSphere Application Server, since version 5.1
    • JBoss Application Server, since version 3.2.7
    • Jetty, since version 5
    • Oracle Application Server, since version 9i
    • Sun Java Systems Application Server, since version 7

Supported client-side environments are

  • Browsers on AJAX-mode
    • Internet Explorer, version 6 and 7.0
    • Firefox, version 1.5 and 2.0
    • Safari, version 2.0
    • Opera, version 9.0 and 9.1
    • Konqueror, version 3.5
    • Camino version 1.0
    • Series60 version 3.1 fp1
    • WebKit since version 400
  • Browsers on HTML-mode
    • Other browsers (non-AJAX capable) use HTML-mode automatically
  • Operating systems
    • Windows 2000 Pro/2000 Server 2003/XP Server/XP Pro/XP Home/Vista
    • Mac OS X 10.3 / 10.4 / 10.5
    • Linux Debian / RedHat / Ubuntu / Suse

How to start

See index.html for more information or go to Developers' Area at www.itmill.com.

Changes in this Release (4.0.1)

Compatibility

IT Mill Toolkit version 4.0.1 is API level compatible with Millstone UI Library version 3.1.1.

Following steps are required to upgrade from version 3.1.1 into 4.0.1:

  • 1. update your application's imports
    • search for import org.millstone.base.*
    • and replace to com.itmill.toolkit.*
  • 2. update application's Deployment Description, rename WebAdapter class into ApplicationServlet class
    • search for <servlet-class>org.millstone.webadapter.WebAdapterServlet</servlet-class>
    • and replace to <servlet-class>com.itmill.toolkit.terminal.web.ApplicationServlet</servlet-class>

Fixed issues in this Release (4.0.1)

Since versionIssueDescriptionWorkaround
4.0.0Window with Button or Select limitations (Firefox)Using Select component with style "optiongroup" or Button component with "SwitchMode" inside Window component does not work reliably. Select or Button components. Affects Firefox browsers.
4.0.0Table column hiding issueIf user hides columns from Table component and Table is rendered again (e.g. Web browser reload current page is executed), columns are garbled and table horizontal size is wrong.
4.0.0Themes are obfuscatedCreating new and modifying existing Themes or UI components on Toolkit is impossible because only optimized (compressed and therefore obfuscated) version of Themes are offered in Toolkit release.
4.0.0Table context menus do not work (Safari / WebKit)Context menus activated by 2nd mouse button on Table component do not work. Affects Safari and WebKit browsers.
4.0.0Feature Browser properties table empty (Safari 2)You cannot edit properties of any component on Feature Browser demo. Affects Safari 2 browser.Test Feature Browser Properties panel demo using any other supported browser.
4.0.0Table sorts even if sort is disabledTable component sorts even if setSortDisabled(true) is set.
4.0.0Select visual issue with popup messages (IE 6)Select components widgets are seen through popup messages if component alignment is appropriate. Affects Internet Explorer 6 browser.
4.0.0Setting focus on Java side to any UI component does not work.AbstractField.setFocus() method is broken.
4.0.0Table scrollable even if it's disabledTable that is not enabled may still be scrolled but content is not updated from the server.
4.0.0Table does not work with mouse scroll wheel (Opera 9)Table components rows scroll, but new rows are not fetched. Affects Opera 9 browser.Use scroll bar in usual manner instead.
4.0.0Table with MultiSelect feature limitation.Table component that has MultiSelect feature enabled forgets selected rows if user scrolls table rows enough up or down.
4.0.0Mouse usability is not good with Feature Browser demo (Nokia S60)Mouse pointer usability is poor on Feature Browser demo. This might cause problems in selecting some items in Feature Browser demo. Affects Nokia S60 browsers.
4.0.0Table render anomalies when disabled and columns edited (IE 7)Table component may be rendered transparently if Table is disabled and columns are resized and one column is hidden. Affects Internet Explorer 7 browser.
4.0.0Table column widths not optimal with empty tableTable component column widths are not optimal when content is first empty and then single item is added to Table.
4.0.0Windows and context menus suffers minor jitter when renderingRendering suffers of jitter when using component Context menus (Action class) and Windows with style "modal".
4.0.0Select rendering anomaliesSelect component with style "twincol" may render deformed if zero or only few items exists on Select component.
4.0.0Table may busyloop in rare ciscumstances (Safari)Table component may fall into eternal loop in some rare circumstances. Affects Safari browsers.
4.0.0Table with labels limitationTable component that contains Label components did not render all Labels properties such as icons.
4.0.0Table embedded objects do not workSetting embedded objects (e.g. icons) to table does not work.
4.0.0Table horizontal scroll reloadsHorizontal scroll in Table component forces reloads of the component. These cause the bar to pop back to the beginning and sometimes resizes the entire table effectively preventing the user from viewing the information.
4.0.0Select visual anomalies1) Select component with style "lazyLoading" always renders options ("itemCaption") using toString(), without regard to current itemCaptionPropertyId. Therefore you cannot specify which property to use as caption. 2) Theme for Select component with style "lazyLoading" renders options without caption (empty string) as an empty div. Therefore option is only a few pixels high, and hard to select.

Known issues in this Release (4.0.1)

Since versionIssueDescriptionWorkaround
4.0.0Datefield format limitationDatefield component renders dates in day.month.year format.
4.0.0Popups position calculation not optimalPopups on various UI components are not displayed on best possible place.
4.0.0Closing Application session not possible.AjaxApplicationContext class does not include any method for closing sessions.Register TransactionListener where HttpServletRequest class is available. HttpServletRequest provides you access to session.
4.0.0Keyboard input feature in beta stage for AJAX-mode.Keyboard input feature for UI components is supported, but considered as beta for AJAX-mode. API may change.
4.0.0Table with certain configuration does not sortWhen "List" or "Paging" styles are used, Table component sorts only to one direction.Use "Default" style.
4.0.0Windows limitation in HTML-modeMultiple Window components are not supported in HTML-mode.
4.0.0Select NullPointerExceptionIt is not possible to select null item for Select component after some other item has been selected, doing this results in NullPointerException.
4.0.0Upload requires manual refresh (Safari / Konqueror)Upload component requires manual refresh from browser after file is sent from client to server. This issue is related to bug that exists in Safari and Konqueror browsers. Note, current WebKit has this issue resolved. Affects Safari and Konqueror browsers.Test Feature Browser Upload component demo using some other supported browser.
4.0.0Select with "Twincol" style is hard to useI cannot select multiple items in "Twincol" style Select component.In "Twincol" style you most likely want to allow multiple selections also or only one selection is allowed on right side (selected). Check Select components API for more information.
4.0.1Table column size modifications broken (Opera 9)Dragging table column size larger or smaller does not align headers correctly. Affects Opera 9 browser.
4.0.1Label CONTENT_RAW brokenLabel with content mode CONTENT_RAW does not work.Use CONTENT_XHTML as content mode instead.
4.0.1Table setVisible state issueSetting Table visibility to false and then back to true does not always bring Table back to UI.Put your Table into component container such as Panel and use Panel's setVisible methods instead.
4.0.0Table row header icon limitationTable does not properly support icons in row headers in AJAX rendering mode
4.0.0DateField does not support Locale on AJAX-modeChanging locale for DateField component does not produce any visible changes when AJAX-mode is used. HTML mode is not affected by this bug.
4.0.0Calendar and Window interoperabilityOpening Calendar component in child windows in AJAX-mode is unsupported
4.0.0Nokia Communicator 9300i may not work with ToolkitAutodetection of Nokia Communicator 9300i may fail. This results to empty application screen.
4.0.0Select may produce JavaScript errorsIf "lazyloading" feature is used for Select component, Javascript error is produced for each typed character that does not match. This mean cases where user is searching for values that do not exists.
4.0.0Embedded limitationMethod setVisible() provides no changes on the component.
4.0.0Embedded limitationMethod setEnable() provides no changes on the component.
4.0.0Terminal class not usable until Application is initialized.Terminal class is null until Application.init() has been completed.Create CustomComponent and use it as your Application's first page. You can now override paint() method and access Terminal class before anything is rendered at client-side.
4.0.0Table sort provides minor jitter on HTML-mode (Opera 9)Sorting Table component rows with HTML-mode may result in temporary relocation of component for small amount of time. This can be seen as minor jitter on client-side. Affects Opera 9 browser.
4.0.0Demo package does not work fully with Oracle ASWhen demo package itmill-toolkit.war is deployed to Oracle Application Server, non-AJAX (HTML) demos fail and you cannot browse javadocs or theme code.Configure Oracle AS to allow directory listing for docs and themes directories. To get HTML demos work you have to specify the used XSLT processor with JVM parameter like:
-Djavax.xml.transform.TransformerFactory =
net.sf.saxon.TransformerFactoryImpl
-Dorg.xml.sax.driver =
org.apache.crimson.parser.XMLReaderImpl
4.0.1Setting focus to UI component limitationsAbstractField.setFocus() method works only for Button and Textfield components.
4.0.0Embedded does not work on HTML-mode (IE 6, 7)Embedded objects may not be seen on HTML-mode. Affects Internet Explorer 6 and 7 browsers.
4.0.0Button usability (Safari)Selected Button component can only be clicked by pressing spacebar when using keyboard. Enter would be a more intuitive choice. Affects Safari browser.
4.0.1URIHandler, ParameterHandler broken (Safari)URIHandler and ParameterHandler does not work. Affects Safari browsers.