THIS IS A BETA NOTIFICATION. PLEASE READ THE BELOW TEXT TO AVOID ISSUES OR ALREADY ANSWERED QUESTIONS…
Hi all,
Version 3 of the Calendar Bean is a complete rebuild of the old version. There is still old code but the core has changed dramatically.
Rebuilding was necessary due to the many new features that were implemented over the years as well as to honor feature requests that could not be implemented due to the design.
With this version we removed certain limitations and optimized the way the Calendar Bean works.
The Calendar Bean now consists of five different Beans; the Calendar Bean (IT2BeCalendarCalendar), the Gantt Bean (IT2BeCalendarGantt), the Category Bean (IT2BeCalendarCategories), the DatePicker Bean (IT2BeCalendarDatePicker) and the Toolbar Bean (IT2BeCalendarToolbar).
The sixt Bean (IT2BeCalendar) is created to get you (re-started) fast and is a replacement for the old ‘Classic’ Calendar Bean.
When you want to test drive v3.0b1 our Calendar Bean you can download it following the below instructions.
What are the important changes
- introduction of JSDecorator and JSDecoratorSet to create background shades. You can use this to show availability of resources, block certain times for lunch etc.
- introduction of JSCategory and JSCategorySet replacing the old way of setting categories. The old methods are deprecated (although you can still use them) and it is preferred to use the new method for more flexibility and future enhancements
- introduction of JSEvent and JSEventSet replacing the old way of setting events. The old methods are deprecated (although you can still use them) and it is preferred to use the new method for more flexibility and future enhancements. Most important enhancements at this time are: iCalendar compatible setting of recurring events, override a color, add tags for (internal) identification
- there are three themes created for those that like the ‘iCal’ laf or the ‘Outlook’ laf. They are both inspired on (but not an exact match of) on the two famous apps that the names are borrowed from. The third theme is named ‘Classic’ and give all flexibility of the old Bean.
- the toolbar has changed dramatically and looks much more ‘modern’
- and many more smaller and bigger enhancements and changes
This is what you have to do
- Download the Component Manager from http://www.it2be.com/index.php/downloads
- Install the Component Manager following the instructions in the manual (see download link above)
- The Component Manager will make a backup of your old beans- and plugins folders but it is preferred to work with a clean install. All components were updated due to changes to the core.
- Run the Component Manager from the command line: ‘java -jar it2be-manager -beta’. This will make that the Component Manager points to the beta components.
- Select and Download the components you want to use.
- Quit the Component Manager and (re-)restart Servoy.
- Import the solution application_server/solutions/it2be-examples/it2be-calendar.servoy
PLEASE REPORT ALL ISSUES WITH A TICKET IN THE SUPPORT SYSTEM AT http://www.it2be.com/index.php/support
Where do I start
When you have an old solution you should be able to continue working withouth any changes (although not advised, see below) but we can not guarantee that we thought of everything. It was a massive job and there are still things to do (check out the list: ‘Things to do’ for what we already know).
Please import the sample solution to see the new bean at work, we re-built it based on the new bean.
IMPORTANT: UNLIKE THE OLD BEAN NOT ALL PROPERTY CHANGES ARE SHOWN IN DESIGN MODE
Known bugs and things to do
The Bean is fully prepared but does not yet allow you to:
- work with multiple instances of a panel with different sets. We found a last minute issue with the way an instance of a panel is identified and need clarification/help of Servoy to solve it.
- only the ‘ClassicBean’ works at this point, all other beans are almost ready but can not yet be used
- the GanttBean (and as a result the GanttView in the ‘ClassicBean’) is not yet implemented
- showing events for different categories in ‘their own column’ does not work yet in Servoy. This was a last minute discovery, it works in the SandBox but not in Servoy. Should be easy to solve.
- event/shape templates have not been tested
- splitpanel positions don’t stick yet
List of Changes
Events
It is now possible to give the allDay Event a different Shape.
Completely new is the use of a ‘recurrence icon’ when recurring events are set.
Except for moving the properties for setting an event to the new JSEvent and JSEventSet we added:
[new] you can now tab through the calendar events that show.
[new] method setFont(…) to override the standard font
[new] property color to override the standard or category color
[new] property source reserved for future use
[new] property status reserved for future use
[new] property tags reserved for future use
[chg] it is not possible to set a recurring event with an iCalendar compatible string for more flexibility (advanced feature)
Classic Bean
[chg] it is not possible anymore to set the timescale > 30 minutes for the calendar
[chg] the datePicker now also ‘follows’ calendar settings
[fix] the calendar timescale, inactive range and background are now displayed correct in compressed view
[fix] several fixes implemented for all shapes
Properties (‘Form Design’ in propertiesbar)
[new] toolbarSpacerWidth
[new] usedTheme
[new] headerFont
[new] headerForeground
[new] eventAllDayShape
[new] eventUseRecurrenceIcon
[new] eventMonthUseRecurrenceIcon
[new] eventAllDayUseRecurrenceIcon
[new] eventGanttUseRecurrenceIcon
[new] allDay shape title now defaults to title (can also be set to another template)
[new] added calendar and gantt button (to switch calendar type) to the default toolbar
[change] added option to make calendar and gantt buttons visible through componentsVisible
[deprecated] toolbarButtonsTransparent
[deprecated] toolbarFloatable
[deprecated] toolbarSize
Scriptable properties
[new] calendarHourDisplayFormat
[new] calendarTimeInterval
[new] ganttDayTimeInterval
[new] ganttWeekTimeInterval
[new] headerFont
[new] toolbarSpacerWidth
[new] usedTheme
[new] eventAllDayShape
[new] eventUseRecurrenceIcon
[new] eventMonthUseRecurrenceIcon
[new] eventAllDayUseRecurrenceIcon
[new] eventGanttUseRecurrenceIcon
[deprecated] toolbarButtonsTransparent
[deprecated] toolbarFloatable
[deprecated] toolbarSize
Methods
[new] All callback methods that received the event id as first argument now also receive the JSEvent as last argument
[new] When an event change occurred in the Calendar (Move or resize) the callback method gets the JSEvent returned as last two arguments (with odl and new daterange)
[new] setCalendarDecoratorSet(JSDecoratorSet)
[new] setCategorySet(JSCategorySet)
[new] setToolbarButtonEnabled
[new] setToolbarButtonVisible
[new] SetToolbarDefaultButtonEnabled
[new] SetToolbarDefaultButtonVisible
[deprecated] enableToolbarButton (see setToolbarButtonEnabled)
[deprecated] convertToDataSet (see JSEvent and JSEventSet)
[deprecated] exportICalendar
[deprecated] getCategoryExpanded(…), now use isCategoryExpanded(…)
[deprecated] importCalendar
[deprecated] setCategories
[deprecated] setEvents
[deprecated] setToolbarMethod, now use setToolbarActionMethod