MiG Calendar Component Changes
If you want to be notified of product updates please join any of our mail lists.
6.6
- Fixed: SelectionGridDecorator marked the first cell if selection was outside the date area's range.
6.5.5
- Fixed: AM/FM does not work correctly in the DateSpinner under some circumstances.
- Fixed: src/resources was missing in v6.5.4.
6.5.4
- Made so that a change of a DateArea's visible range always results in a repaint.
6.5.3
- Added a non-obfuscated compoent .jar to the Source Code distribution.
- Fixed an exception when switching between certain kinds of themes.
6.5.2
- Fixed a bug in GridDimensionLayoutBean that compressed the wrong rows and the end of the grid sometimes.
- Simplified printing of a DateAreaBean by overriding print(Grpahics g) to do the necessary pre-steps.
- Fixed a bug that made activities configured through the ActivityAShapeBean not selectable if they where not draggable.
6.5.1
- Added property activitiesSupported to DateAreaBean. You can turn off support for activities to increase performance in a date area that
will not show activities anyway.
- Made disabled date areas not recieve key or mouse inputs.
6.5
- Refactored the BeanDemo to look almost exactly like iCal on Mac OS X. Needs to be run on Mac to look the best.
- Improved row, datearea and activity size calculations. They do differ slightly from < v6.5. Set MigUtil.NEW_SIZE_CALCULATIONS
to false to get the old calculations. The improvment is more correct calculation of minimum/preferred/maximum sizes set.
- Improved License Key handling and added a LicenseKey property to DateAreaBean to make it possible
to remove license nag text in the IDE preview.
- Added several new properties to the beans to make is easier to create certain kind of designs.
- Added an option to DateAreaBean to paint the background with the bounds for the visible area only.
- Made it possible to have up to 19 (indexed -9 to 9) other components on each side around the date area.
- Added option to create the default ActivityAShapeBean with a name prefix. This way totally independent ashapes
can be created and they parts of then can be overridden without affecting eachother.
- Changed so that the PlaceRect of FlexGridLayout is calculated before the occupied space is removed.
- Fixed the bean source code generation for FlexGridlayout.getWrapGeometry() to work under Java 1.4 and so that it serializes correctly.
- Changed so that mouse and key listeners registered on the DateAreaBean is transfered to the DateArea it contains. This makes
the component simpler to interact with from a RAD designer such as NetBeans.
- Fixed a bug that caused a faulty redundant date change event to be fired when mouse was relesed of the date area.
- Fixed a bug in DateUtil.setMillisSpanned(...) when dstSafe was true.
6.3.2
- Added structure change events for attach and detach parent in CategoryDepository.
- Added CategoryDepository.detachParent(..) to detach a parent from a category.
6.3.1
- Added a lot to the BeanDemo application. You can now swtich views and drag between categories.
- Switched to a better obfuscator (ProGuard) which resulted in smaller files.
- Misc. small bugs found by customers.
6.2.2
- Fixed an issue that made mouse overed activities disappear visually if in DST shift and shorter than one hour.
6.2.1
- Fixed an issue with the CategoryHeaders not being aligned correctly when expanding header to the corner "before".
6.2
- Fixed an issue with the CategoryTree that made some items non clickable.
- Fixed a bug that made the Rubber Band Multi Select Rectangle on the Beans not show.
- Fixed a bug that caused activities to be unmovable when removing an activity and hen adding one with the same ID.
6.1.3
- Fixed an AccessControlException for a call to System.getProperty(..).
6.1.2
- Fixed a bug in the DateRangeDecorator when using custom ranges.
- Fixed a bug that cut the CategoryHeader information in the PrintPreviewBean if not showing in a scroll pane.
- Fixed headers misplaced when printing and in a scroll pane.
6.1.1
- Fixed an IllegalArgumentException when using CellLabelDecorator in some circumstances.
- Improved the functionality and usability of the SlimDateSpinner.
- Fixed: SlimDateSpinner defaulted to year 2001 when using Month and right click.
- Fixed: Labels in cells used the default TimeZone and not the TimeZone of the DateGrid.
- Added option to remove an ActivityDepository.
- Added enable/disable to ActivityLink.
6.1
- Right clicking now doesn't deselect activities.
- Better compatibility for the NetBeans module.
- Some speed enhancements and API additions.
- Added option to set the key to use for multi select with mouse-click. Default is still Shift.
- Fixed a selection bug for activities. Both rubberband and click-select was fixed.
- Fixad a bug in DateRange that set the current date/time if millis 0 (Jan 1, 1970) was sent in.
- Fixed date boundary checking for the date/time spinner beans.
- Added date boundary checking for the DateGroupConnectorBean.
- Fixed a mouse-over glitch in DefaultSubRowLevel.
- Fixed a TimeZone bug in the editor display for DatePicker.
6.0.1
- Fixed a problem with some 6.0 license keys. After 20 minutes the date area became blank.
6.0 - Smaller Changes. See major changes on the product site.
- Added DateRangeDecorator that can be used to paint outline, formatted text and background in any cells in the grid depending on one or more date ranges.
- Added GridCellRangeDecorator that can be used to paint outline and background in any cells in the grid.
- Added better suppport for subpixel (ClearType) support for any text when the bean is used with Java 6.0.
- Changed the AbstractHeaderBeas to only accept DateAreaBeans as GridContainer. Client code might need to be recompiled.
- Improved the color handling in the Bean Property Editors to support HSB and stored colors.
- Improved synchronization for ActivityDepository and CategoryDepository so that they now support concurrency with higher performance.
- Added optional logging of everyting in ActivityDepository and CategoryDepository. See XxxDepository.setLogger(Logger l).
- Added more convenience methods to DateGrid that returns different kinds of pixel boundaries for a DateRange. Greatly simplifies writing DateGridDecorators.
- Added option to increase row resize performance (E.g. for zooming). If new GridDimensionLayout is set on a DefaultDateArea call DefaultDateArea.revalidateGridDimensionLayout() instead of DefaultDateArea.invalidateGrid(). Automatically handled by DateAreaBean.
- Added option to handle setting auto-scrolling to off in DefaultDateArea.
- Improved duration string calculation speed and fixed a problem that added a trailing space for some custom formats.
- Added option to set a Composite on an AShape. This can for instance be used to paint the whole AShape 50% translucent or color it in some custom color without having to change all the attributes in the shape tree.
- Convenience methods to load/save Activites to XML. See ActivityDepository. The file/stream are optionally zipped which reduces the size to 1/20th.
- Added the possibility to "veto" property changes to any Activity. This effectively make all properties of an Activity constrained and will help a lot of use cases where control over what is changed in an Activity is needed.
- Added option to synchronize activity states between two or more date areas.
- Added option to validate all changes to all properties in activities and categories.
- Added option to use different AShapes to paint the activities in different DateAreaBeans. See DateAreaBean.setActivityPaintContext(String)
- Added support sorting Categories in the CategoryDepository with a custom Comparator. Provided default configurable implementation with CategorySorter.
5.8.0
5.7.6
- Fixed a NullPointerException for right clicks in MouseKeyInteractor
5.7.5
- Fixed recurrence bug
- Fixed ScrollBar visibility bug
5.7.3
- Fixed a bug that cut labels for the CategoryTreeBean pre release (upcoming for 6.0)
5.7.2
- Fixed the freezing of activities even further as there was still an issue found by a customer.
- Fixed a Category add bug in 5.7.1 and 5.7.0
5.7.1
- Added LabelNowRangeType to DateAreaBean so that for instance the current month can have the same label foreground color.
- Fixed Activity Paint Layering problem.
- Fixed a problem with the CellLabelDecorator and vertical primary dimension in the grid.
- Fixed a freeze problem with activities if an ActivityResolver was installed and a new activity was added with an ID that already existed.
- Many smaller API enhancements and additions.
5.6.9
- Enhanced the CategoryDepository to be more resilient agains reloading of Categories (removeAll/addAll)
- Enhanced so that dragging an activity will not automatically snap/round the end date. Now the length is preserved instead.
5.6.8
- Fixed a bug in DateAreaBean that made labels not show unless you had set some other properties as well.
- Fixed a regression that made the beans not work in JFormDesigner.
- Misc. small customer reported bugs.
5.6.7
- Fixed a bug that made the move/resize snap-override key not work.
- Fixed a bug that had the effect that the license code had to be set before the component was created. Now the license code can be set after creation.
5.6.6
- Fixed a bug that made removing and updating the overrides in the CategoryDepository somtimes fail.
5.6.5
- Fixed a problem where an activity was not updated if many properties was changed on the activity at the same time.
- Some smaller fixes and enhancements.
5.6.4
- Fixed a rarely occuring dead-lock in DefaultDateArea.
5.6.3
- Reduced time-to-show when bean tree is expanded first times in netBeans.
- Fixed a NullPointerException in DateGrid.
5.6.2
- Fixed a Recurrence bug that set the time of day to '00:00' for a type of ByXxxRule.
5.6.1
- Added WrapBoundaryCount to the CalendarTheme and ThemeEditor.
- Fixed bug when using the new WrapBoundaryCount.
- Changed so that ActivityDepository.removeAllBrokedActivites() fires one change event.
5.6
- Fixed a row layout bug that made the row size wrong if a single main row was used with the DateAreaBean.
- New Feature: Added WrapBoundaryCount property to DefaultDateArea and DateAreaBean. It can be used to for instance wrap the date grid every second day or eighth hour. Before wraps could only be made on every minute, hour, day or week.
5.5.17
- Fixed the resizing of the DateGridContainer so that it revalidates better and the scroll bars are shown/hidden correctly.
- Added Theme.setList(String listKey, Object[] values) so that a list key can be exchanged in one go without first clearing it.
5.5.16
- Plugged a memory leak that held a DateAreaBean in memory even if it was removed.
- Fixed: If recurrence is removed with activity.setRecurrence(null) then activity.isRecurrent() will still return true.
- Fixed a bug that made the first ComboDateSpinner in a DateSpinnerGroup report the same value for new and old.
- Added possibility to have anti aliasing and label rotation only for certain rows in the header.
- Fixed date label decorator for the themed approach. They were not using the time zone and locale of the theme if set to non-default.
- Added suport for keeping tooltips inside the screen and/or the frame.
- Increased performance for OccupiedDecorator and fixed an activity view recreation bug when using it.
- Fixed a bug where the activity views was always recreated for calls to DefaultDateArea.getActivityViews().
- Reduced Activity memory footprint if an activity is visible in more than one date area.
- Fixed stable sorting also when the date/time range of two activities was exactly the same (to reduce flickering).
- Added option to paint mouse over and/or selected activites on top of other activites from the DateAreaBean.
- Added option to only create bean demo data in design time mode.
- Made the date area grab the focus when pressed on with the mouse.
- Rearranged the demo code somewhat to make it possible to use the CategoryTree as a separated component.
- Fixed a tooltip bug that "stole" a popup window from Swing sometimes.
5.5.15
- Eased up on the obfuscation in migcalendarbean.jar. This is so that for instance the variable names for methods should be visible. Note that migcalendarbean.jar should be used for development and migcalendar.jar for deployment as it is smaller and doesn't contain the BeanEditor classes.
5.5.14
- Fixed a bug in CategoryDepository.addBrokedCategoryByID()
- Fixed bug that made Serialization of custom property types not correctly versioned
- Fixed a bug in the Point-to-SubRow conversion which made it return the wrong row in certain circumstances.
- Smaller customer found bugs and fixes.
5.5.12
- Bug in JavaBeans when not category root was set.
- Fixed regression bug in DatePicker
- Extended functionality of date picker somewhat.
- Smaller customer found bugs and fixes.
5.5.11
- Category changes. Category trees should now be created through the Category depository. This is to make it work more like ActivityDepository and optimize for simpler persistance.
- Usability enhancements for the DatePicker class.
- Better support for time selections in the DatePicker as well as more options to tweak it to show different kinds of dates/times.
- Added missing JavaDoc for JavaBeans.
- Several smaller fixes for the Theme Editor. Some additions to the CalendarTheme to include better coverage of the features.
- Several minor fixes and enhancements.
5.5.6
- Several Recurrence fixes.
- Usability enhancements for the DatePicker class.
- Fix for a CategoryID filtering bug that threw a NPE.
- Several minor fixes and enhancements.
November 21, 2005 - Version 5.5.6
- Several Recurrence fixes.
- Usability enhancements for the DatePicker.
- Fix for a CategoryID filtering bug that threw a NullPpointerException.
- Several minor fixes and enhancements.
October 4, 2005 - Version 5.5
- Added separate "today/now" look for label in a cell in the JavaBeans. Font, foreground, background, dateFormat and border can be changed.
- Fixed a problem with DST (e.g. EST vs EDT time zone) notation in time zone strings.
- Added JavaBeans components that is customizable from a visual GUI environment such as netBeans. The classes are completely new an works as a Facade to the component. Advanced custom PropertyEditors are included in the bean enabled .jar.
- Simplified and sped up the coupling between an Activity and an AShape by the intruduction of static overrides in the Interactors. This makes it, for instance, simple to couple % complete to some graphics that show the completion.
- Added normal Swing Border support for AShapes.
- Improved support for setting custom borders for headers, dateAreas and their scrollPanes.
- Fixed a few Time Zone bugs and added a section in the tutorial about how to use them.
- Fixed some AShape clipping issues.
- Reimplemented the gridline handling for the grid objects to make it simpler and more predictable when having hirerarcical grid rows. Also made it faster.
- Made most objects Serializable by shunting it through the XMLEncoder. This insulates against changes to the objects in later versions. The Serializable part is only used in the JavaBeans' persistence.
- Changed nag-dialog to nag-label since IDEs can't cope with popup dialogs at all times. They might end up behind main window.
- Added Click, Double-Click and Popup-trigger default interaction events for the default AShape. See DemoAppPanel.java in sources for how to catch the events.
- Fixed some bugs regarding the Korean and other Eastern Asia languages.
- Several minor bug fixes.
- Minor API changes and enhancements.
- Exchanged all keys for AShape and Activity from the class type String to PropertyKey. This increases flexibility and increses performance a lot.
- Added ActivityPreMoveListener support to DefaultDateArea. It can be used to drag between categories and veto activity moves among other things.
- Added ActivityDragResize support to DefaultDateArea. It makes it easier to catch commit moves/resizes of activites.
- Added support for tooltips over activities in a DefaultDateArea.
March 27, 2005 - Version 5.21
- Fixed a DateRange getSize(..) bug happening in rare circumstances.
- Fixed a NPE when showing a date range which spanned over a daylight savings transition.
February 28, 2005 - Version 5.2
- Added ActivityLinks and ActivityConstraints to enable linking of Activities, such as done in a Gantt Chart.
- Added support for folding sub rows as common for Gantt charts.
- Reduced memory footprint for Activities and ActivityViews down to 25% by removing Calendar fields.
- Reduced memory allocation in GridUtil by using timeMillis + TimeZone instead of Calendar.
- Simplified and increased flexibility when changing how an Activity will look like.
- Increased speed for DateRangeI sub classes
- Increased speed for the layout procedure
- Misc. bug fixes.
February 17, 2005 - Version 5.1
- Added support to lock the aspect ratio of any rectangle (PlaceRect) used throughout the component. For instance AShapes can benefit greatly from this.
- Added support to also lay out sub grid rows to a main row with the use of GridSegmentsSpec:s. This means that even sub grid rows can now have templete sizes.
- Added full support for GridRows in GridRows. They can now form a complete tree structure.
- Added a number of manual overrides for properties of the DatePicker and ThemeDatePicker. It is now possible to tweak the look to look like any custom Look & Feel. JGoodies, Alloy, Windows XP, Windows 2000, Metal, Ocean and Motif and ready out of the box.
- Added optional filtering on activities retrieved from the ActivityDepository
- Retrofitted Activity, ActivityView, Category and AShape to implement PropertyProvider. This ensures that they can be active parts in a Filter or Expression. This means that any property of these classes can be filtered upon in a date area or date area sub row.
- Inreased row filter functionality for a date area to include generic Filters and Expressions.
- Increased the functionality of Filter to include composite and boolean filters.
- Increased the functionality of Expression to include composite and booland generic expressions.
- Added the class StrokeAnimation. Will allow animation From one BasicStroke to another.
- Added the class NumberAnimation. Will allow animation of a generic Number (e.g Float). For instance animate text alignment from 0.0 to 1.0 over 10 frames to create a scroll text.
- Increased performance of TimeSpanList. This will increase performance generally in the component.
- Vastly incresed performance when only laying out parts of a date area.
- Vastly incresed performance when only repainting parts of a date area.
- Increased performance for multi-line texts in AShapes.
- Minor bug fixed and enhancements.
February 4, 2005 - Version 5.02
January 28, 2005 - Version 5.01
- Fixed some key navigation issues with the included date spinners and date picker
- Fixed some look & feel issues for the Date Picker so that it now mimics the L&Fs better
January 26, 2005 - Version 5.0