Imports System.Collections.Generic
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Public Sub InitDateTimeIntervals(ByVal control As UltraTimelineView)
' Remove all additional intervals
control.AdditionalIntervals.Clear()
' Get the current culture's date/time format info
Dim formatInfo As System.Globalization.DateTimeFormatInfo = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat
' Create a monthly interval set its header format to the YearMonthPattern
' for the current culture so that the year is displayed along with the month name.
Dim monthInterval As DateInterval = New DateInterval(1, DateIntervalUnits.Months)
monthInterval.HeaderTextFormat = formatInfo.YearMonthPattern
' Create a bi-weekly interval use the 'RangeStart' HeaderTextFormatStyle,
' and customize the format so it shows as a pay period. Also, set its
' SynchronizingDate property to the first Monday of the year so that the
' cycles begin on a Monday.
Dim biWeeklyInterval As DateInterval = New DateInterval(2, DateIntervalUnits.Weeks)
biWeeklyInterval.HeaderTextFormatStyle = TimelineViewHeaderTextFormatStyle.RangeStart
biWeeklyInterval.HeaderTextFormat = String.Format("\P\a\y \P\e\r\i\o\d: {0}", formatInfo.MonthDayPattern)
biWeeklyInterval.SynchronizingDate = New DateTime(2009, 1, 5)
' Create a daily interval since we already have the year showing,
' we can set the format to only display the name of the day of the week.
Dim dayInterval As DateInterval = New DateInterval(1, DateIntervalUnits.Days)
dayInterval.HeaderTextFormat = "dddd"
' Create 1-hour TimeIntervals for some of the different U.S. time zones
Dim tzHawaii As TimeZoneInfo = TimeZoneInfo.FromStandardName("Hawaiian Standard Time", False)
If Not tzHawaii Is Nothing Then
Dim hawaii As New TimeInterval(1, TimeIntervalUnits.Hours)
hawaii.TimeZone = tzHawaii
hawaii.LabelText = "Hawaii"
hawaii.LabelToolTipText = tzHawaii.DisplayName
' Use the colors of the Hawaii state flag to style the appearance
hawaii.HeaderAppearance.BackGradientStyle = GradientStyle.None
hawaii.HeaderAppearance.ForeColor = Color.Red
hawaii.HeaderAppearance.BackColor = Color.White
hawaii.HeaderAppearance.BorderColor = Color.Black
hawaii.LabelAppearance.BackColor = Color.White
hawaii.DateNavigationButtonAppearance.ForeColor = Color.Red
hawaii.DateNavigationButtonAppearance.BorderColor = Color.Navy
' Set DateNavigationButtonVisibility to 'ShowOnFirstAndLastHeader', and set
' DateNavigationButtonAction to 'None'
hawaii.DateNavigationButtonVisibility = TimelineViewDateNavigationButtonVisibility.ShowOnFirstAndLastHeader
hawaii.DateNavigationButtonAction = TimelineViewDateNavigationButtonAction.None
' Add it to the AdditionalIntervals collection
control.AdditionalIntervals.Add(hawaii)
End If
Dim tzAlaska As TimeZoneInfo = TimeZoneInfo.FromStandardName("Alaskan Standard Time", False)
If Not tzAlaska Is Nothing Then
Dim alaska As TimeInterval = New TimeInterval(1, TimeIntervalUnits.Hours)
alaska.TimeZone = tzAlaska
alaska.LabelText = "Alaska"
alaska.LabelToolTipText = tzAlaska.DisplayName
' Use the colors of the Alaska state flag to style the appearance
alaska.HeaderAppearance.BackGradientStyle = GradientStyle.None
alaska.HeaderAppearance.ForeColor = Color.Goldenrod
alaska.HeaderAppearance.BackColor = Color.CornflowerBlue
alaska.HeaderAppearance.BorderColor = Color.Black
alaska.LabelAppearance.BackColor = Color.CornflowerBlue
alaska.DateNavigationButtonAppearance.ForeColor = Color.Goldenrod
alaska.DateNavigationButtonAppearance.BorderColor = Color.Black
' Set DateNavigationButtonVisibility to 'ShowOnFirstAndLastHeader', and set
' DateNavigationButtonAction to 'None'
alaska.DateNavigationButtonVisibility = TimelineViewDateNavigationButtonVisibility.ShowOnFirstAndLastHeader
alaska.DateNavigationButtonAction = TimelineViewDateNavigationButtonAction.None
' Add it to the AdditionalIntervals collection
control.AdditionalIntervals.Add(alaska)
End If
' Handle the DateNavigationButtonClicked event so we can customize
' the navigation for the Alaska and Hawaii intervals.
AddHandler control.DateNavigationButtonClicked, AddressOf Me.OnDateNavigationButtonClicked
' Create a 30-minute TimeInterval that will be used as the PrimaryInterval;
' Since we have other time zones showing, show the current time zone's name
' in the tooltip.
Dim primaryInterval As TimeInterval = New TimeInterval(30, TimeIntervalUnits.Minutes)
Dim tzCurrent As TimeZoneInfo = TimeZoneInfo.CurrentTimeZone
If Not tzCurrent Is Nothing Then
Dim standardName As String = tzCurrent.StandardName
Dim acronym As String = standardName
' Build an acronym from the standard name and assign that
' string value to the LabelText property
Dim split As String() = standardName.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
If (Split.Length > 1) Then
acronym = String.Empty
For Each s As String In split
acronym += s(0)
Next
End If
primaryInterval.LabelText = acronym
primaryInterval.LabelToolTipText = standardName
' Set some appearance properties
primaryInterval.HeaderAppearance.BackGradientStyle = GradientStyle.None
primaryInterval.HeaderAppearance.ForeColor = SystemColors.ControlDark
primaryInterval.HeaderAppearance.BackColor = SystemColors.Control
primaryInterval.HeaderAppearance.BorderColor = SystemColors.ControlDarkDark
primaryInterval.LabelAppearance.BackColor = SystemColors.Control
End If
' Assign the TimeInterval to the PrimaryInterval property
control.PrimaryInterval = primaryInterval
' Add each interval we created to the AdditionalIntervals collection
control.AdditionalIntervals.Add(monthInterval)
control.AdditionalIntervals.Add(biWeeklyInterval)
control.AdditionalIntervals.Add(dayInterval)
End Sub