Version History

The list below describes past changes and additions to JPlanner:

 New in Version 2.1.3

  • JSON files are now saved using Unicode UTF8 encoding.
  • Database storage sample project added.

 New in Version 2.1.2

RecurrenceForm fixes.

 New in Version 2.1.1

JSON compatibility fixes.

 New in Version 2.1

JSON serialization

Schedules can now be serialized in JSON format. This can be used for interoperability with MindFusion JavaScript scheduling library, or for general storage in JSON files or databases. To serialize a Schedule to a JSON string, call its saveToJson method. To deserialize a schedule back from its JSON representation, call the loadFromJson method. Custom item classes can implement JSON serialization for their additional properties by overriding the saveTo(JsonObject) and loadFrom(JsonObject) methods of base Item class. Such classes must be registered for serialization by calling the registerItemClass method and providing a string identifier for the clientClass parameter.

Standard forms

The library now includes several standard forms for editing object properties. AppointmentForm can be used to create or edit Appointment instances, respectively RecurrenceForm for Recurrence instances, and TaskForm for Task instances. All forms can be localized by passing a LocalizationInfo object to their constructor. The Tutorial3 example now demonstrates appointment and recurrence forms.

ItemListView control

ItemListView is a toolbox-alike control. It displays a list of prototype schedule items, and lets user create new items based on them by drag-and-drop. ItemListView can contain instances of any Item-derived class.

 New in Version 2.0

API changes

The following changes to the control's API have been introduced:

  • The com.mindfusion.scheduling.awt package has been removed. The AwtCalendar class is no longer available the Calendar class should be used instead. The PrintOptions and PreviewTextKey classes have been moved to the com.mindfusion.scheduling package.
  • All enumeration classes are now true java enumerations. Flag enumerations are now represented as EnumSet<T> objects.
  • The wrapper Color and Font classes have been removed. The control now uses the Font and Color classes from java.awt.
  • The mouse buttons enumeration has been removed. The constants in the MouseEvent class should now be used instead.

RangeSelector integration

The Calendar control can integrate with the new RangeSelector component in order to implement a timeline in the Resource view. The new resourceTimeline sample illustrates this integration.


 New in Version 1.2.1

Improved List view

The List view can now display an additional header and a footer. To turn them on, set the appropriate flag to the HeaderStyle property of the ListViewSettings class. The FooterFormat and MainHeaderFormat properties let you customize the text in the respective header. The text can also be customized through the customizeText method of the CalendarListener interface. The size of the headers can be specified through the MainHeaderSize and FooterSize properties.


 New in Version 1.2


There is no separate trial build of the control anymore. Instead, use the setLicenseKey method of the Calendar control to disable the component's evaluation mode and stop displaying trial messages. License key strings are listed on the Keys & Downloads page at MindFusion's customer portal.

Interactive Recurrence Rescheduling

Recurrences can be rescheduled interactively by holding down the key specified by RescheduleRecurrenceKey while dragging a recurrent item. The control tries to preserve the current pattern of the recurrence when possible. Otherwise, the recurrence may be modified to accommodate to the new start and end times of the modified item. Interactive rescheduling is not registered in the undo history.

New Theme

A new built-in theme is available in JPlanner  the Light theme. Preview of this theme is available in JPlanner Themes.

New Members

Several new members have been added to the control:

 New in Version 1.1

Item Effects

The new Glass and Aero visual effects can be applied to items. To apply an effect, create an instance of one of the effect classes, set up its properties, then add the instance to the Calendar.ItemEffects collection. Currently, there are two effect types available AeroEffect and GlassEffect. Effects can be added, removed or modified at any time and this will immediately reflect on the calendar. Effects of different types can be applied simultaneously. It is also possible to apply more than one effect of the same type. For more information about effects, visit the Item Effects topic.

Custom Grouping

Custom grouping represents the ability to specify the secondary resources individually for each primary resource. This can be done through the new customizeGrouping event. Grouping can now also be enabled by the runtime type of resources, rather than just the four predefined categories. For more information, check the Grouping topic.

New Events

The CalendarListener interface exposes several new events, in addition to customizeGrouping  beginItemDrawing, itemDrawing, endItemDrawing, and filterItem.


  • Fixed a bug that prevented styled item texts from appearing.
  • The getExactDateAt method works more consistently in various scenarios.
  • New setViewport method.