Version

Configuring xamScheduleView

This is one of the five topics explaining the views of the xamSchedule controls:

This topic is organized in sections as follows:

  • Introduction

  • Purpose

  • Presenting Activities in the Schedule

  • Configuring the Data Source

  • User Interaction and Usability

  • xamScheduleView Configuration Options

  • Related Topics

Introduction

XamScheduleView is one of the five view controls in the XamSchedule family. This view is similar to the xamDayView with a couple of exceptions. The primary difference is that in XamScheduleView the timeslots of the days are displayed horizontally in a single line (as opposed to vertically in a single column for xamDayView). (Figure 1)

xamSchedule Schedule01.png
Figure 1: Example of the xamScheduleView control

Purpose

This view is meant to provide an easier method of comparing the schedules of one or more calendars/resources. (See User Interaction and Usability below.)

Presenting Activities in the Schedule

As in xamDayView, the activities are displayed as rectangles filling the timeslots between their Start and End times.

Configuring the Data Source

The data for the activities and resource calendars displayed in the view is provided by an instance of XamDataManager. That instance is configured with the DataManager property of xamMonthView.

User Interaction and Usability

In XamScheduleView, users can:

  • Navigate through the timeslots and activities using the keyboard

  • Create activities with one click of the mouse:

    • by selecting time slot (with keyboard or mouse) and typing directly into it

    • by clicking the “Click to Add” prompt that is displayed when hovering over a time slot

  • Resize an activity (that is, change the Start or End of an activity) using the resize grips

  • Drag an activity from one schedule to another (that is, among different xamSchedule controls associated with the same xamScheduleDataManager)

  • Click and modify the Subject of an activity

  • Create a new activity by double-clicking a day (via the activity dialog)

  • Edit an activity by double-clicking on it

  • Navigate to an activity using the more activity arrows

  • Scroll the schedule using the scrollbar

  • Delete selected activities

    • with the Delete key

    • from the Activity dialog

  • Resize the calendar groups

  • Resize the calendar header area

xamScheduleView Configuration Options

  1. WeekDisplayMode – this setting has three options:

    • None – displays the day or days specified in the VisibleDays Collection

    • Week – displays all 7 week days

    • WorkWeek – displays the working days of the week. Note that the default Monday to Friday work days can be changed via WorkingDays property in Settings of the XamDataManager.

  1. ShowWorkingHoursOnly is a boolean property that allows the developer to show only the working hours of the day. The default (9am-5pm) values can be changed via WorkingHours property in Settings of the XamDataManager. (See the Working Hours topic)

  1. Secondary Timezone settings – the xamScheduleView displays one primary timezone header by default. However there is a property called SecondaryTimeZoneVisibility that allows the developer to show a secondary Timezone header. There are also properties for setting the TimeZoneId and the label for it. Here is a sample:

    In Visual Basic:

    scheduleView.SecondaryTimeZoneVisibility = _
        System.Windows.Visibility.Visible
    scheduleView.SecondaryTimeZoneLabel = _
        "(UTC-03:30)"
    scheduleView.SecondaryTimeZoneId = _
        "Newfoundland Standard Time"

    In C#:

    scheduleView.SecondaryTimeZoneVisibility =
        System.Windows.Visibility.Visible;
    scheduleView.SecondaryTimeZoneLabel =
        "(UTC-03:30)";
    scheduleView.SecondaryTimeZoneId =
        "Newfoundland Standard Time";
    xamSchedule Schedule02.png
  1. CalendarDisplayMode – this property has three valid options – Overlay, Separate and Merged.

    Overlay Separate Merged

    CalendarDisplayMode.Overlay

    CalendarDisplayMode.Separate

    CalendarDisplayMode.Merged

    xamSchedule Schedule03.png
    xamSchedule Schedule04.png
    xamSchedule Schedule05.png

    When using Overlay and Separate modes the developer can choose to show the Close and Overlay buttons (affects Overlay mode only). The visibility of these buttons lets the end user move the calendars in different groups and allows closing them.

    In Visual Basic:

    scheduleView.ShowCalendarCloseButton = True
    scheduleView.ShowCalendarOverlayButton = True

    In C#:

    scheduleView.ShowCalendarCloseButton = true;
    scheduleView.ShowCalendarOverlayButton = true;
    Overlay Separate

    CalendarDisplayMode.Overlay

    CalendarDisplayMode.Separate

    xamSchedule Schedule06.png
    xamSchedule Schedule07.png
  1. Visible Days – the developer can show multiple days for one calendar just by populating the VisibleDates collection.

  1. TimeslotInterval – This property allows the developer to change the default 15-minute timeslots.

    In Visual Basic:

    scheduleView.TimeslotInterval = New System.TimeSpan(0, 30, 0)

    In C#:

    scheduleView.TimeslotInterval = new System.TimeSpan(0, 30, 0);
    xamSchedule Schedule08.png
  1. The single calendars or calendar groups (depending of the value set in the CalendarDisplayMode property) have equal size. In case you have more calendars in one group comparing to the other you may want the end user to be able to resize these groups. This can be achieved by setting the AllowCalendarGroupResizing Boolean property. Double clicking on the resizing point will restore the initial size of the calendar groups.

    Overlay Separate

    CalendarDisplayMode.Overlay

    CalendarDisplayMode.Separate

    xamSchedule scheduleView resizing groups 1.png
    xamSchedule scheduleView resizing groups 2.png
  1. To allow the end user to resize the calendar header area, set the AllowCalendarHeaderAreaResizing Boolean property to true. Also you can use the CalendarHeaderAreaWidth property to specify custom width for it. Double clicking on the resizing point will restore the initial calendar header width.

    In Visual Basic:

    scheduleView.AllowCalendarHeaderAreaResizing = True

    In C#:

    scheduleView.AllowCalendarHeaderAreaResizing = true;
    xamSchedule scheduleView resizing area 1.png