Search
Version History

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:

Old Name

New Name

CustomDrawArgs

DrawEventArgs

ReportFilterItemArgs

ReportFilterItemEventArgs

ReportQueryHeaderTextArgs

ReportQueryHeaderTextEventArgs

ReportQueryStyleArgs

ReportQueryStyleEventArgs

ReportQueryTextArgs

ReportQueryTextEventArgs

CustomDrawElements.ScheduleItem

CustomDrawElements.TimetableItem

CustomDrawElements.WeekRangeReferenceHeader

CustomDrawElements.WeekRangeResourceHeader

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:

Removed Delegate

EventArgs

InstantiateItemEventHandler

InstantiateItemEventArgs

InstantiateResourceEventHandler

InstantiateResourceEventArgs

ItemEventHandler in MindFusion.Scheduling

ItemEventArgs

ItemTimeEventHandler in MindFusion.Scheduling

ItemTimeEventArgs

SerializeTagEventHandler

SerializeTagEventArgs

TaskEventHandler

TaskEventArgs

ContinuePrintingReportEventHandler

ContinuePrintingReportEventArgs

ReportFilterItemHandler

ReportFilterItemEventArgs

ReportQueryHeaderTextHandler

ReportQueryHeaderTextEventArgs

ReportQueryStyleHandler

ReportQueryStyleEventArgs

ReportQueryTextHandler

ReportQueryTextEventArgs

ContinuePrintingEventHandler

ContinuePrintingEventArgs

DateChangedEventHandler

DateChangedEventArgs

DateEventHandler

DateEventArgs

ItemConfirmEventHandler in MindFusion.Scheduling.WinForms

ItemConfirmEventArgs

ItemEditConfirmEventHandler

ItemEditConfirmEventArgs

ItemEventHandler in MindFusion.Scheduling.WinForms

ItemEventArgs

ItemModifiedEventHandler

ItemModifiedEventArgs

ItemModifyConfirmEventHandler

ItemModifyConfirmEventArgs

ItemMouseEventHandler

ItemMouseEventArgs

ItemSelectionEventHandler

ItemSelectionEventArgs

ItemTooltipEventHandler

ItemTooltipEventArgs

RecurringItemConfirmEventHandler

RecurringItemConfirmEventArgs

ResourceDateEventHandler

ResourceDateEventArgs

TooltipEventHandler

TooltipEventArgs

ContactConfirmEventHandler

ContactConfirmEventArgs

ItemConfirmEventHandler in MindFusion.Scheduling.Outlook

ItemConfirmEventArgs

TaskConfirmEventHandler

TaskConfirmEventArgs

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:

Old name

New name

Calendar.OnDayRangeHeaderClick

Calendar.OnListViewHeaderClick

Calendar.DayRangeSettings

Calendar.ListViewSettings

Calendar.DayRangeSettings

Calendar.ListViewHeaderClick

CalendarView.DayRange

CalendarView.List

CustomDrawElements.DayHeader

CustomDrawElements.CellHeader

CustomDrawElements.DayContents

CustomDrawElements.CellContents

CustomDrawElements.DayRangeHeader

CustomDrawElements.ListViewHeader

CustomDrawElements.DayRangeHeaderCell

CustomDrawElements.ListViewHeaderCell

DaySettings

CellSettings

DayRangeHeaderStyles

ListViewHeaderStyles

DayRangeHeaderStyles.SubheaderPerDay

ListViewHeaderStyles.SubheaderPerCell

DayRangeSettings

ListViewSettings

DayRangeSettings.DaySettings

ListViewSettings.CellSettings

DayRangeSettings.DaySpacing

ListViewSettings.CellSpacing

DayRangeSettings.NumberOfDays

ListViewSettings.NumberOfCells

DayRangeSettings.VisibleDays

ListViewSettings.VisibleCells

Old name

New name

Importer

OutlookImporter

Exporter

OutlookExporter

 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