The list below describes recent changes and additions to MindFusion.Scheduling:
New in Version 5.7
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.
Miscellaneous
New in Version 5.6.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 event of the Calendar class. The size of the headers can be specified through the MainHeaderSize and FooterSize properties.
Miscellaneous
New in Version 5.6
Visual Studio 2015 Support
MindFusion.Scheduling now includes support for Visual Studio 2015. The installer can create VS2015 toolbox palette for the components.
Interactive Recurrence Rescheduling
Recurrences can be rescheduled interactively by holding down the 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 MindFusion.Scheduling – the Light theme. It is available through the ThemeType enumeration.
New Properties
Several new properties have been added to the control:
New in Version 5.5
Visual Studio 2013 Support
MindFusion.Scheduling now includes support for Visual Studio 2013. The installer can create VS2013 toolbox palette for the components, and can optionally install VS2013 sample projects.
Improved Support for Non-Gregorian Calendars
MindFusion.Scheduling now provides better support for non-Gregorian calendars, such as Hijri. In addition, the control can now display a Persian calendar through the new PersianCulture. To specify the calendar to be used by MindFusion.Scheduling, assign a culture that uses this calendar to the Culture property of the Calendar class.
New Holiday Provider
The new AustraliaHolidayProvider (available in the MindFusion.HolidayProviders.dll assembly) can be used to supply the major holidays in Australia for a specific time interval.
New in Version 5.4.5
Several new members have been added:
New in Version 5.4.4
New Events
Two new events added to the Calendar class – BeginItemDrawing and EndItemDrawing, signaling the start and end of the item drawing phase respectively.
Miscellaneous
- All resource collections now implement IList<T> where T is the type of resources in the collection.
- The GetExactDateAt method works more consistently in various scenarios.
New in Version 5.4.3
Exporting
New exporter has been added – PdfExporter, which enables exporting calendars to the PDF format.
Miscellaneous
- Custom texts and icons can now be supplied to the Print Preview form of the scheduling reports.
New in Version 5.4.2
Visual Studio 2012 Support
MindFusion.Scheduling now includes support for Visual Studio 2012. The installer can create VS2012 toolbox palette for the component, and can optionally install VS2012 sample projects. In addition, toolbox palettes are now created for all .NET target frameworks supported by the respective Visual Studio versions.
Text Customization
All texts within the calendar can now be customized explicitly through the new CustomizeText event of the Calendar class.
Improved Custom Drawing
Items, including their shadows, can now be custom-drawn completely through the new ItemDrawing event. The ItemDrawing event is raised before the item is rendered by the system and can be used to prevent the default item rendering.
New in Version 5.4.1
Localization
Localization support has been added to MindFusion.Scheduling built-in forms. All captions and control values can be customized by setting the corresponding property of the LocalizationInfo class. The localization data can also be exported to and loaded from XML. For additional information, refer to Localization.
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 in Version 5.4
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.
Miscellaneous
Several minor bug fixes when item optimization is enabled.
New in Version 5.3
Multiple Grouping
The Resource view now supports grouping by two resource types simultaneously (for example it can be grouped by contacts and by tasks). To enable dual grouping, use the regular Calendar.GroupType property to specify the first resource type, and the new Calendar.SecondaryGroupType to specify the second resource type. The new sample MultipleGrouping demonstrates this new feature.
The image below illustrates a resource view grouped by contacts and locations.
API Changes
Several changes were made to the API in order to accommodate the possibility to have item and cell associations with more than one resource at a time. Several event arguments now provide a new property of type Resource[] (in addition to the standard Resource property), which contains all resources related to the event in cases where this is applicable. For example DrawEventArgs, ModifyConfirmEventArgs, and ResourceDateEventArgs.
The Selection class has been extended in order to support multiple resources. More specifically, there are new overloads of the Add and Set methods, which allow selecting cells associated with more than one resource. The new Resources property gives access to all resources associated with the currently selected elements.
To simplify the Selection class, some properties have been removed and some methods have been changed. The Contact, Location and Task properties have been removed. The resource associated with the selection can now be accessed through the Selection.Resource property regardless of its type. In addition, the Add and Set overloads which previously accepted resources of all possible resource types, now accept a single Resource parameter.
Miscellaneous
The row header of the Resource view can now be resized interactively. To enable this, set the AllowResizeRowHeader property to Enabled. This functionality is available only when the headers are grouped (that is, when GroupRowHeader is set to Enabled). The cursor displayed when interacting with the headers can be specified through Calendar.RowHeaderResizeCursor.
New in Version 5.2.1
Exporting
New exporter has been added – ExcelExporter, which enables exporting calendars to the Open Office XML format. In addition, the MindFusion.Scheduling reports can also be exported to the Open Office XML format – through the new ExportExcel method.
Miscellaneous
New in Version 5.1.1
Miscellaneous
Holiday Providers
The implementations of the new IHolidayProvider interface can now be used to supply culture-specific lists of holidays. The USHolidayProvider can be used to supply the major holidays in United States for a specific time interval.
New in Version 5.1
Undo/Redo support
If the UndoEnabled property is set to true, MindFusion.Scheduling tracks changes done on the schedule and allows undoing and redoing them later by calling the Undo and Redo methods of the Schedule class respectively. Multiple changes could be recorded as a single undoable operation by enclosing them between StartCompositeOperation and CommitCompositeOperation calls. It is also possible to create custom undoable operations by deriving from the Command class and calling ExecuteCommand with the custom command as argument.
New in Version 5.0
Reporting changes
The reports can now be exported as PDF files through the new ExportPdf method. Additionally, all reporting classes have been moved to a separate assembly – MindFusion.Scheduling.Reporting.
New item presentation in List view
Items can now be rendered and laid out as icons (instead of as ribbons) in the List view. To enable this functionality, set the EnableMilestoneMode property of the ListViewSettings class to Enabled. In addition, the ItemDrawContext now exposes a new property – IsMilestone, which can be used to check if an item is being rendered in milestone mode. There is also a new sample – MilestoneItems, which demonstrates how to use the new mode and how to create items with custom appearance.
Removed members and types
All obsolete types and members have been removed. The following table contains a complete list of all removed types and members and short notes on how to work around if you have been using any of them:
Removed Type or Member | Substitute |
---|
All LoadFrom methods with BinaryReader and SerializationContext arguments: Appointment.LoadFrom(BinaryReader, SerializationContext) Contact.LoadFrom(BinaryReader, SerializationContext) Item.LoadFrom(BinaryReader, SerializationContext) Location.LoadFrom(BinaryReader, SerializationContext) Recurrence.LoadFrom(BinaryReader, SerializationContext) Reminder.LoadFrom(BinaryReader, SerializationContext) Resource.LoadFrom(BinaryReader, SerializationContext) Task.LoadFrom(BinaryReader, SerializationContext) | Use the LoadFrom overload that accepts BinarySerializationContext as an argument. |
All LoadFrom methods with XmlReader and SerializationContext arguments: Appointment.LoadFrom(XmlReader, SerializationContext) Contact.LoadFrom(XmlReader, SerializationContext) Item.LoadFrom(XmlReader, SerializationContext) Location.LoadFrom(XmlReader, SerializationContext) Recurrence.LoadFrom(XmlReader, SerializationContext) Reminder.LoadFrom(XmlReader, SerializationContext) Resource.LoadFrom(XmlReader, SerializationContext) Task.LoadFrom(XmlReader, SerializationContext) | Use the LoadFrom overload that accepts XmlSerializationContext as an argument. |
All SaveTo methods with BinaryWriter and SerializationContext arguments: Appointment.SaveTo(BinaryWriter, SerializationContext) Contact.SaveTo(BinaryWriter, SerializationContext) Item.SaveTo(BinaryWriter, SerializationContext) Location.SaveTo(BinaryWriter, SerializationContext) Recurrence.SaveTo(BinaryWriter, SerializationContext) Reminder.SaveTo(BinaryWriter, SerializationContext) Resource.LoadFrom(BinaryWriter, SerializationContext) Task.LoadFrom(BinaryWriter, SerializationContext) | Use the SaveTo overload that accepts BinarySerializationContext as an argument. |
All SaveTo methods with XmlWriter and SerializationContext arguments: Appointment.SaveTo(XmlWriter, SerializationContext) Contact.SaveTo(XmlWriter, SerializationContext) Item.SaveTo(XmlWriter, SerializationContext) Location.SaveTo(XmlWriter, SerializationContext) Recurrence.SaveTo(XmlWriter, SerializationContext) Reminder.SaveTo(XmlWriter, SerializationContext) Resource.SaveTo(XmlWriter, SerializationContext) Task.SaveTo(XmlWriter, SerializationContext) | Use the SaveTo overload that accepts XmlSerializationContext as an argument. |
Appointment.ImageIndex Item.ImageIndex | Use the ImageIndex property of the associated Style. |
ContentType.OldBinary ContentType.OldXml | The old formats are no longer supported. |
Schedule.SaveTo(Stream) | Use the SaveToStream method. |
Schedule.LoadFrom(Stream) | Use the LoadFromStream method. |
Schedule.SaveTo(XmlWriter, bool) | Use the SaveToXml method. |
Schedule.LoadFrom(XmlReader) | Use the LoadFromXml method. |
Style.BorderColorLight Style.BorderColorDark | Use BorderLeftColor, BorderTopColor, BorderRightColor and BorderBottomColor properties. |
Style.BorderWidth | Use BorderLeftWidth, BorderTopWidth, BorderRightWidth and BorderBottomWidth properties. |
Style.HeaderBorderColorLight Style.HeaderBorderColorDark | Use HeaderBorderLeftColor, HeaderBorderTopColor, HeaderBorderRightColor and HeaderBorderBottomColor properties. |
Style.HeaderBorderWidth | Use HeaderBorderLeftWidth, HeaderBorderTopWidth, HeaderBorderRightWidth and HeaderBorderBottomWidth properties. |
Selection.StartDate | Use the first element of the collection returned by the Ranges property. |
Selection.EndDate | Use the second element of the collection returned by the Ranges property. |
The MindFusion.Scheduling.WinForms.ItemEventArgs class has been removed. All references to this class have been replaced with references to the MindFusion.Scheduling.ItemEventArgs.
Renamed members
The following members have been renamed:
Removed delegates
All event delegates have been removed. When attaching an event handler now, you have to use the generic EventHandler class passing the appropriate EventArgs class as a template argument. The type of the corresponding events have been changed accordingly. For an example, see the following code fragment:
C#
Copy Code
|
---|
// The code... calendar.ItemModified += new ItemModifiedEventHandler(this.OnItemModified);
// ...will translate to: calendar.ItemModified += new EventHandler<ItemModifiedEventArgs>(this.OnItemModified); |
The following table contains a complete list of all deleted delegates and their corresponding EventArgs classes:
Miscellaneous
New in Version 4.6
The control has been renamed to MindFusion.Scheduling. The names of the assemblies comprising the product have been changed to match the new naming policy of MindFusion as follows:
Old Name | New Name |
---|
Calendar.dll | MindFusion.Scheduling.dll |
Outlook.dll | MindFusion.Scheduling.Outlook.dll |
StandardForms.dll | MindFusion.Scheduling.WinForms.StandardForms.dll |
Additionally, the MindFusion.DataBinding namespace has been renamed to MindFusion.Scheduling.DataBinding.
Miscellaneous
New in Version 4.5.2
Miscellaneous
- The new Completed event has been added to the SerializationContext class. You can attach handlers to this event in order to be notified when the serialization has completed successfully. This can be usefule when loading Resource or Item references in your custom schedule items.
- A new overload of the CompactItemLanes method has been added to the Calendar class.
- The new AllowDrag property of the Calendar class can be set to false to prevent the user from initiating drag & drop operation within the control (by holding the ItemDragKey).
- The Graphics property of the ItemDrawContext class is now of type IGraphics (used to be System.Drawing.Graphics).
- The Graphics property of the DrawEventArgs class is now of type IGraphics (used to be System.Drawing.Graphics).
- A new FillContents property has been added to the PrintOptions class, which, when set to false, will print all backgrounds as white.
New in Version 4.5.1
Improved List view performance
The performance of the List view when its FreeDrag property is enabled has been optimized. The view should now easily support thousands of items simultaneously.
Miscellaneous
- The new method CompactItemLanes of the Calendar class can now be used in order to remove gaps in a List view with enabled FreeDrag.
- The values ListViewSubHeader and ListViewSubHeaderCell have been added to the CustomDrawElements enumeration.
- Several minor bugs have been fixed, including a bug introduced in version 4.5 regarding the DayRanges property .
New in Version 4.5
New Vista theme
A brand new theme has been implemented in MindFusion.Scheduling. The theme resembles the default theme of Windows Vista. For preview screenshots of the theme, visit the MindFusion.Scheduling Themes topic. To use the new theme, simply assign the value Vista of the ThemeType enumeration to the Theme property of the Calendar class.
Several samples have been updated to use the new theme, namely the Clipboard, Databinding, UnlimitedScrolling and Zones samples. Refer to those samples for a visual preview of the theme.
Improved styles
The Style class now exposes several new properties that can be used to enable text shadows. The properties are HeaderTextShadowColor, HeaderTextShadowOffset, HeaderTextShadowStyle, TextShadowColor, TextShadowOffset and TextShadowStyle. These new properties automatically apply to all elements that are currently using Style class for their appearance.
API changes
The Ranges and DayRanges properties of the Selection class now return strongly-typed collections of dates. Those collections are immutable and any attempt to modify them directly will result in a NotSupportedException exception.
Improved RTL support
The stock forms AppointmentForm, TaskForm and RecurrenceForm now support Right-to-left layout.
Updated icons
Several built-in icons have been replaced to improve appearance.
The list below describes changes in all versions of MindFusion.Scheduling:
New in Version 4.4.1
The following features were implemented in the MindFusion.Scheduling reports:
You can now enable grouping in reports by using the new GroupType property of the ReportOptions class. The resources to group by are automatically obtained from the items displayed in the report. The appearance of the resource headers can be controlled through the new GroupHeaderStyle property.
The new property FixedRowHeight can now be used to automatically calculate the height of each row so that the text displayed within it does not get clipped.
New in Version 4.4
Visual Studio 2008 support
The MindFusion.Scheduling package now includes .NET 3.5 assemblies and sample VS2008 projects.
Improved serialization
The serialization of the MindFusion.Scheduling Schedule has been internally redesigned to allow easier custom item and tag serialization and more robust compatibility with previous file format versions. All schedule file formats post version 3 should be supported by the new serialization. If you want to use the previous serialization you need to specify OldXml and OldBinary values of the ContentType enumeration.
The following list summarizes the additions and improvements to the serialization system:
- Improved custom item serialization: The custom item classes should now override the SaveTo and LoadFrom methods of the Item or Appointment classes that accept XmlSerializationContext and BinarySerializationContext arguments. These new context classes provide a vast range of new methods that can help you serialize and deserialize various data types with ease.
- Tag values can now be serialized through the new SerializeTag and DeserializeTag events.
- Images and brushes are now written only once in the XML file format, regardless of how many times they are actually referenced.
Improved custom item rendering
The ItemDrawContext class has been extended with several methods that enable you to draw various item elements in a theme-independent way. The class now also provides methods for drawing various standard images, such as the standard recurrence and clock icons. The new sample AdvancedItemDrawing demonstrates how to use the methods of the ItemDrawContext class.
Enhanced List view
The List view has been substantially improved. The following list describes the new features implemented in the view:
- Custom item snapping: It is now possible to define different snapping unit for items than the one specified by CellUnit property. In order to enable custom snapping, use the two new properties – EnableSnapping and SnapUnit.
- The new ItemOrientation property enables you to explicitly specify the item orientation.
- Free dragging: Users can now be allowed to drag items anywhere in the view. Once dragged, the items retain their new position. In order to enable this functionality, use the new FreeDrag property.
- The items that do not fit in the view due to insufficient space can now be scrolled through by enabling the new EnableVirtualItemSpace property.
- Navigation buttons similar to those in the Timetable and SingleMonth views can now be enabled for the List view as well by using the new ShowNavigationButtons property.
- A subheader can now be displayed under the main view header by specifying the new Subheader value for the HeaderStyle property. The new header can display an arbitrary number of subdivisions of the main header's time interval, as specified by the new SubheaderDivisions property.
Miscellaneous
New in Version 4.3
List View
The new
List view replaces the old
DayRange view. The
List view displays an arbitrary long sequences of seconds, minutes, hours, weeks, months and years, in addition to the day sequences supported by the
DayRange view. The
List view also supports grouping.
The names of certain properties, methods, events and classes have been changed in order to better represent the generalized nature of the List view. If you are using the DayRange view, you will have to rename the members and classes related to it. See below for more details.
Miscellaneous
- The Position enumeration now contains new value (None), which when specified indicates that the headers will not be displayed.
- The new CellUnits property of the ListViewSettings class specifies the time resolution of the cells in the list view. The property value can be any of the TimeUnit members.
- A new property TimeFormat has been added to each of the ready-made forms: AppointmentForm, TaskForm and RecurrenceForm.
- The TimelineSettings class now exposes three new properties: NowColor, NowFillColor and ShowCurrentTime. These properties indicate whether and how to display the current time in a timeline of a Resource view. The new properties act in a way similar to the corresponding properties with the same names in the TimetableSettings class.
- The WeekRangeHeaderStyle enumeration now contains the Reference value, which indicates whether the view header should display the name of the corresponding resource when grouping is enabled.
- The property CurrentTime has been added to the Calendar class. This property may be used to 'override' the current system time.
- The new Calendar.ToolTip property now gives access to the underlying .NET ToolTip object associated with the control.
API changes
- The following table lists all members, classes and enumerations whose names have been changed:
New in Version 4.2.1
Miscellaneous
Bug fixes
- A memory leak when using recurring items has been fixed.
New in Version 4.2
Custom themes
The
Theme class is no longer sealed and can be inherited in order to create user-defined themes. For more information, refer to the
Custom Themes topic. There is also a new stand-alone application, which automates the process of creating new themes. To learn more about it, see
Theme Editor.
Miscellaneous
- The Style class now exposes 8 new properties specifying the left, top, right and bottom margins of normal and header texts accordingly.
- The new GetVisibleItems method allows you to get a collection of all visible items.
- The new event ItemCreationCanceled is now fired when an interactive item creation is canceled by the user.
New in Version 4.1
Database support
MindFusion.Scheduling schedules can now be serialized to a database.
Microsoft Outlook Import/Export Library
MindFusion.Scheduling can now import and export appointment, contact and task data from/to Microsoft Outlook. This functionality has been implemented in a separate assembly called
Outlook.dll.
Improved recurrence
The recurrence in
MindFusion.Scheduling has been extended with a new recurrence type
– ByTimeInterval. The new recurrence type allows recurrences over arbitrary period of time, as specified by the new
Interval property. Furthermore, the recurrence can now be applied to items of arbitrary length. In previous versions the recurrence could support items up to 1 day in length.
Miscellaneous
- Cells can now be deselected by holding down the CTRL key and clicking on them. In previous versions holding the CTRL key always selected the cells.
- Items can now be interactively created by clicking and dragging in the control. To enable this feature, set Calendar.EnableDragCreate to true.
- Interactive item cloning can now be canceled by right clicking while dragging the cloned items.
- New click event has been added – MonthWeekHeaderClick in the Calendar class. The event is fired when the user clicks on the week header in a SingleMonth and MonthRange views.
- New events added to the Calendar control – ItemCloning and ItemCloned to better control interactive cloning of items, ItemSelectionComplete – a one-time event fired when user selects or deselects items, and ItemSelecting and ItemDeselecting, which are fired when the item is about to be selected or deselected respectively.
- The TimetableSettings class now exposes a new property – EnableDayItems, which can be used to prevent all day items and items longer than one day to appear in the day header.
- The new property ShowClocks has been added to ItemSettings, which can be used to hide or display item clocks in various situations.
- More styles have been added to allow customization of items' appearance when the items are being hovered with the mouse. For addition information refer to PointedStyle, PointedSelectedStyle, PointedItemStyle and PointedSelectedItemStyle.
- More precise control over the item interaction can now be achieved through the use of the new AllowMove, AllowChangeStart and AllowChangeEnd properties.
- The reminder checks in the schedule can now be turned off, be settings DisableReminders to true.
- The text displayed in week headers in the SingleMonth and MonthRange views is now formatted according to the new WeekHeaderFormat property.
- The design-time brush editors have been improved to provide better support for choosing colors.
- Various minor improvements and bug fixes.
Removed members
- StartHour, StartMinute, EndHour and EndMinute properties have been removed. Now the recurrence uses the start and end time of the associated master item instead. This was done to enable recurring items with arbitrary length and over more than one day.
- The constructors of several EventArgs-derived classes have been removed, since these classes were not intended to be instantiated externally.
Obsolete members
- The following properties are considered obsolete: Item.ImageIndex and Appointment.ImageIndex. Instead use the ImageIndex property from the corresponding Style.
API changes
Other changes
- The format specifiers permitted in the value of the property ItemTooltipFormat has been changed to allow for more sophisticated tool tips. Some older values might yield unexpected results, even though no errors will occur while compiling or running the program.
New in Version 4
Reports
A new reporting functionality has been added to
MindFusion.Scheduling. This enables users to preview and print lists of appointments presented in a tabular format. The reports provide rich customization options, such as filtering, sorting, custom styles and much more. The classes supporting this new functionality are collected in the new namespace
MindFusion.Scheduling.Reporting.
Miscellaneous
- Users can now interactively clone items by holding specific modifier key when dragging the item as specified in the new ItemCloneKey property.
- More sophisticated user interaction control can be achieved through the use of the new properties AllowInplaceCreate and EnableKeyboard.
- The Selection object has been improved to support setting the selection to a specific resource in a grouped view. New properties has also been added which allow getting the resource related to the current selection.
- The Style class now allows settings the width and color of individual borderlines. For example it is possible to specify different width and color to the left, top, right and bottom borders of an element.
- The Timetable view now supports reverse grouping, that is, grouping first by resource and then by date. To reverse grouping, use the new ReverseGrouping property.
- The Timetable view can now operate on levels other than the cell level. For example users can select only parts of cells and move/resize items disregarding snapping to cells. Check the new properties TimetableSettings.EnableSnapping and TimetableSettings.SnapInterval.
- The Timetable and Resource views now provide a new property – TimetableSettings.ExpandActiveItemOn and ResourceViewSettings.ExpandActiveItemOn respectively, which allows turning off collision detection for items when certain operation are performed on them. For example, you can turn off collision detection for an item when it is moved.
Obsolete members
- The following properties are considered obsolete: Style.BorderColorLight, Style.BorderColorDark, Style.BorderWidth, Style.HeaderBorderColorLight, Style.HeaderBorderColorDark, Style.HeaderBorderWidth. Instead use the new set of border properties.
API changes
New in Version 3.2
Miscellaneous
- The DayRange view now supports grouping.
- A new theme called Silver has been added (see Styles and Themes).
- The new event ItemSelectionChanged is now fired when an item is selected or deselected.
- Improved item ordering. Items in the same day in a DayRange, WeekRange, SingleMonth and MonthRange views are ordered according to their start time now. They were pseudo-randomly ordered in previous versions. The Priority of items can still be used to break default ordering.
- Improved interaction with items in the Resource view. The items now have resizing bands when selected similarly to the items in the timetable view.
- Several improvements and bug fixes in printing and print preview. A new property Landscape added to PrintOptions.
- The new property TimetableSettings.SelectWholeDayOnHeaderClick now controls whether the whole day is selected when the user clicks on the column header in a Timetable view.
- Selection now supports non-contiguous time ranges. The two selection properties StartDate and EndDate are considered obsolete and should no longer be used. The new property Ranges should be used instead. Time ranges can be added and removed from the selection programmatically by calling the new Add and Remove methods respectively.
- The new property SnapUnitCount now makes items in resource view snap at arbitrary intervals.
- Other minor changes.
Obsolete members
- As stated above the properties StartDate and EndDate of the Selection class are now considered obsolete and their use should be avoided.
API changes
- The Save and Load methods in MindFusion.Scheduling in Schedule, Item, Contact, and so on, classes were renamed to SaveTo and LoadFrom accordingly to match the corresponding methods in Planner.NET.
New in Version 3.1
Miscellaneous
- The resource view now supports filtering. Particularly certain days of the week can be hidden through the use of the new HiddenDays property. Furthermore the visible part of the day can be limited by the VisibleStartTime and VisibleEndTime properties. The filtering only works in an Hour and partially in a Day view.
- The bounding rectangle of an item can now be obtained at any time by calling GetItemBounds.
- The new event ItemModificationCanceled is now triggered when an interactive item modification is canceled.
- Text rendering in MindFusion.Scheduling can now be controlled via the TextRendering property.
- Improved tooltips support.
- Other minor changes.
API changes
- The methods EnsureVisible, ExpandResourceRow, CollapseResourceRow and IsResourceRowExpanded now take as a parameter a reference to a Resource instead of Object. This ensues from the new design introduced in version 3 where contacts, locations and tasks all derive from Resource.
- Several other properties have had their type changed from Object to Resource.
- The ItemModified event is now declared as ItemModifiedEventHandler (was ItemEventHandler in the previous versions). The ItemModifiedEventArgs object supplied to the handlers of this event contains additional information about the initial state of the modified item.
- TimetableSettings.ShowSecondTimeZone is replaced by SecondTimelineStyle, which gives more control over the position of the second timeline. The assignment 'settings.ShowSecondTimeZone = State.Enabled;' translates to 'settings.SecondTimelineStyle = Alignment.Near;'.
- TimetableSettings.SecondTimeZoneOffset is renamed to SecondTimelineOffset.
New in Version 3
Resource view
A new view type, called
Resource view, has been implemented. It displays the distribution of resources over an arbitrary period of time. Each resource is displayed in its own row in the view, and the horizontal position of items represents their time span. See
Resource view for more information.
Resources
The
Resource class implements a new general type of resources that can be assigned to schedule items along with contacts, locations and tasks.
Styles and themes
Styles have been redesigned to support cascading propagation of style attributes. For example, when a distinct
DateStyle is defined for a range of dates, only the settings that are explicitly set in the custom style are used. Attributes defined in more specific styles override the attributes defined in more general styles. If a style leaves some attribute values undefined, the ones specified in a more general style or the current theme are used.
The themes have been redesigned too, so that applying a theme to the calendar in design time is a reversible operation. In previous versions applying a theme caused a lot of modifications of various settings of the control, which were hard to control or undo.
Timetable view
Now the timetable view can display cells with accuracy down to the second. The deprecated property
MinutesPerCell has been replaced by
CellTime, which allows specifying arbitrary periods of time for timetable cells with seconds precision. See below for more API changes.
Miscellaneous
- Three new methods added to the Calendar class allow manipulation of resource rows in a resource view: CollapseResourceRow, ExpandResourceRow and IsResourceRowExpanded.
- The minimal length of items created interactively can now be controlled via the MinItemLength property.
- A new item editor has been added, which allows modifying the item's description as well as the item's header text. The editor is implemented by the ItemEditorEx class. In order to use this editor as well as any item editor other than the default, you have to create a custom item class. Tutorial #5 sheds more light on this issue.
- A new cool theme has been added (see Styles and Themes).
- The Timetable view can be zoomed in or out. To enable zooming, set the UseZoom property of the calendar's TimetableSettings. The ZoomFactor property of the latter is used to specify the zoom level.
- Resources property has been added to the Item class. It can be used to associate Resource objects with an item.
API changes
- In order to support cascading styles and themes, the type of all boolean properties has been changed to State in the following classes: DayRangeSettings, DaySettings, ItemSettings, MonthSettings, Selection, TimetableSettings and WeekRangeSettings.
- In order to support cascading styles and themes, a new field 'Unspecified' has been added to the following enumerations: ControlAppearance, DayRangeHeaderStyles, MonthHeaderStyles, MonthRangeHeaderStyles, MonthWeekHeaderStyle, Orientation, Position, SelectionStyle, ShadowStyle, MinuteFormat, WeekRangeHeaderStyle and WeekRangeViewStyle. This field is used to indicate that the properties of these types are not set.
- ImageAlignment – the field Invalid has been changed to Unspecified.
- Calendar.DisplayDate renamed to Calendar.Date.
- DaySettings has been removed from the Calendar class. Now most settings classes contain a separate DaySettings instance, thus changes in the day settings of one view do not affect the others. The settings classes that now incorporate DaySettings object are MonthSettings, MonthRangeSettings and WeekRangeSettings.
- StartDate and EndDate have been removed from the WeekRangeSettings class. The Calendar.Date and Calendar.EndDate properties are used for the same purpose.
- Calendar.DetachThemeOnChange has been removed.
- CustomDrawArgs.StartMinute and CustomDrawArgs.EndMinute have been changed to CustomDrawArgs.StartTime and CustomDrawArgs.EndTime respectively.
- ItemDrawContext.HeaderTextFont and ItemDrawContext.TextFont have been removed. Use the Font and the HeaderFont properties of the associated ItemDrawContext.Style instead.
- ItemTooltipEventArgs and ItemTooltipEventHandler are now in the MindFusion.Scheduling.WinForms namespace instead of MindFusion.Scheduling.
- MonthRangeSettings.Rows renamed to MonthRangeSettings.VisibleRow.
- PrintOptions.ScaleToPage has been removed.
- TimetableSettings.MinutesPerCell is replaced by TimetableSettings.CellTime. The assignment 'settings.MinutesPerCell = 15;' translates to 'settings.CellTime = TimeSpan.FromMinutes(15);'