Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/Silverlight/VB/EditorsDemo/Controls/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/Silverlight/VB/EditorsDemo/Controls/Map.xaml.vb

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Imports DevExpress.Xpf.Editors
Imports System.Globalization

Namespace EditorsDemo
	Partial Public Class Map
		Inherits Button
		Private Const totalDistance As Double = 684R
		Private Const totalTime As Double = 6R
		Public Shared ReadOnly MapDataProperty As DependencyProperty
		Shared Sub New()
			Dim ownerType As Type = GetType(Map)
			MapDataProperty = DependencyProperty.Register("MapData", GetType(MapData), ownerType, New PropertyMetadata(Nothing))
		End Sub
		Public Shared towns() As String = { "Afrene", "Hibesona", "Erarium", "Myralana", "Myrynana", "Minacius", "Lucacova", "Danyrova", "Tritrium" }
		Public Sub New()
			InitializeComponent()
			AddHandler Loaded, AddressOf Map_Loaded
		End Sub

		Private Sub Map_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
			UpdateData(CType(GetTemplateChild("tb"), TrackBarEdit))
			Dim edit As TrackBarEdit = CType(GetTemplateChild("tb"), TrackBarEdit)
		End Sub
		Public Property MapData() As MapData
			Get
				Return CType(GetValue(MapDataProperty), MapData)
			End Get
			Set(ByVal value As MapData)
				SetValue(MapDataProperty, value)
			End Set
		End Property
		Private Sub TrackBarEdit_EditValueChanged(ByVal sender As Object, ByVal e As EditValueChangedEventArgs)
			UpdateData(CType(sender, TrackBarEdit))
		End Sub
		Private Function GetStartIndex(ByVal edit As TrackBarEdit) As Integer
			Return CInt(Fix((CType(edit.EditValue, TrackBarEditRange)).SelectionStart))
		End Function
		Private Function GetEndIndex(ByVal edit As TrackBarEdit) As Integer
			Return CInt(Fix((CType(edit.EditValue, TrackBarEditRange)).SelectionEnd))
		End Function
		Private Sub UpdateData(ByVal edit As TrackBarEdit)
			Dim data As New MapData()
			data.StartTown = towns(GetStartIndex(edit))
			data.EndTown = towns(GetEndIndex(edit))
			data.DistanceFromAToStart = ((CType(edit.EditValue, TrackBarEditRange)).SelectionStart - edit.Minimum) / (edit.Maximum - edit.Minimum) * totalDistance
			data.DistanceFromAToEnd = (edit.Maximum - (CType(edit.EditValue, TrackBarEditRange)).SelectionStart) / (edit.Maximum - edit.Minimum) * totalDistance
			data.DistanceFromBToStart = ((CType(edit.EditValue, TrackBarEditRange)).SelectionEnd - edit.Minimum) / (edit.Maximum - edit.Minimum) * totalDistance
			data.DistanceFromBToEnd = (edit.Maximum - (CType(edit.EditValue, TrackBarEditRange)).SelectionEnd) / (edit.Maximum - edit.Minimum) * totalDistance
			data.TimeFromAToStart = ((CType(edit.EditValue, TrackBarEditRange)).SelectionStart - edit.Minimum) / (edit.Maximum - edit.Minimum) * totalTime
			data.TimeFromAToEnd = (edit.Maximum - (CType(edit.EditValue, TrackBarEditRange)).SelectionStart) / (edit.Maximum - edit.Minimum) * totalTime
			data.TimeFromBToStart = ((CType(edit.EditValue, TrackBarEditRange)).SelectionEnd - edit.Minimum) / (edit.Maximum - edit.Minimum) * totalTime
			data.TimeFromBToEnd = (edit.Maximum - (CType(edit.EditValue, TrackBarEditRange)).SelectionEnd) / (edit.Maximum - edit.Minimum) * totalTime
			data.DistanceBetween = ((CType(edit.EditValue, TrackBarEditRange)).SelectionEnd - (CType(edit.EditValue, TrackBarEditRange)).SelectionStart) / (edit.Maximum - edit.Minimum) * totalDistance
			data.TimeBetween = ((CType(edit.EditValue, TrackBarEditRange)).SelectionEnd - (CType(edit.EditValue, TrackBarEditRange)).SelectionStart) / (edit.Maximum - edit.Minimum) * totalTime
			MapData = data
		End Sub
	End Class
	Public Class MapData
		Private privateStartTown As String
		Public Property StartTown() As String
			Get
				Return privateStartTown
			End Get
			Set(ByVal value As String)
				privateStartTown = value
			End Set
		End Property
		Private privateEndTown As String
		Public Property EndTown() As String
			Get
				Return privateEndTown
			End Get
			Set(ByVal value As String)
				privateEndTown = value
			End Set
		End Property
		Private privateDistanceBetween As Double
		Public Property DistanceBetween() As Double
			Get
				Return privateDistanceBetween
			End Get
			Set(ByVal value As Double)
				privateDistanceBetween = value
			End Set
		End Property
		Private privateDistanceFromAToEnd As Double
		Public Property DistanceFromAToEnd() As Double
			Get
				Return privateDistanceFromAToEnd
			End Get
			Set(ByVal value As Double)
				privateDistanceFromAToEnd = value
			End Set
		End Property
		Private privateDistanceFromBToEnd As Double
		Public Property DistanceFromBToEnd() As Double
			Get
				Return privateDistanceFromBToEnd
			End Get
			Set(ByVal value As Double)
				privateDistanceFromBToEnd = value
			End Set
		End Property
		Private privateDistanceFromAToStart As Double
		Public Property DistanceFromAToStart() As Double
			Get
				Return privateDistanceFromAToStart
			End Get
			Set(ByVal value As Double)
				privateDistanceFromAToStart = value
			End Set
		End Property
		Private privateDistanceFromBToStart As Double
		Public Property DistanceFromBToStart() As Double
			Get
				Return privateDistanceFromBToStart
			End Get
			Set(ByVal value As Double)
				privateDistanceFromBToStart = value
			End Set
		End Property
		Private privateTimeBetween As Double
		Public Property TimeBetween() As Double
			Get
				Return privateTimeBetween
			End Get
			Set(ByVal value As Double)
				privateTimeBetween = value
			End Set
		End Property
		Private privateTimeFromAToEnd As Double
		Public Property TimeFromAToEnd() As Double
			Get
				Return privateTimeFromAToEnd
			End Get
			Set(ByVal value As Double)
				privateTimeFromAToEnd = value
			End Set
		End Property
		Private privateTimeFromBToEnd As Double
		Public Property TimeFromBToEnd() As Double
			Get
				Return privateTimeFromBToEnd
			End Get
			Set(ByVal value As Double)
				privateTimeFromBToEnd = value
			End Set
		End Property
		Private privateTimeFromAToStart As Double
		Public Property TimeFromAToStart() As Double
			Get
				Return privateTimeFromAToStart
			End Get
			Set(ByVal value As Double)
				privateTimeFromAToStart = value
			End Set
		End Property
		Private privateTimeFromBToStart As Double
		Public Property TimeFromBToStart() As Double
			Get
				Return privateTimeFromBToStart
			End Get
			Set(ByVal value As Double)
				privateTimeFromBToStart = value
			End Set
		End Property
	End Class
	Public Class MapDataToTextConverter
		Implements IValueConverter
		#Region "IValueConverter Members"
		Private Function IValueConverter_Convert(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As CultureInfo) As Object Implements IValueConverter.Convert
			Dim data As MapData = CType(value, MapData)
			If data Is Nothing Then
				Return Nothing
			End If
			Dim text As String = Nothing
			If CStr(parameter) = "Start" Then
				text = data.StartTown.ToUpper() + Constants.vbLf + Map.towns(0) & " - " & data.StartTown & ": " & data.TimeFromAToStart & " h, " & data.DistanceFromAToStart & " km" & Constants.vbLf + data.StartTown & " - " & Map.towns(Map.towns.Length - 1) & ": " & data.TimeFromAToEnd & " h, " & data.DistanceFromAToEnd & " km"
			End If
			If CStr(parameter) = "End" Then
				text = data.EndTown.ToUpper() + Constants.vbLf + Map.towns(0) & " - " & data.EndTown & ": " & data.TimeFromBToStart & " h, " & data.DistanceFromBToStart & " km" & Constants.vbLf + data.EndTown & " - " & Map.towns(Map.towns.Length - 1) & ": " & data.TimeFromBToEnd & " h, " & data.DistanceFromBToEnd & " km"
			End If
			If CStr(parameter) = "Total" Then
				text = data.StartTown.ToUpper() & " - " & data.EndTown.ToUpper() + Constants.vbLf + data.TimeBetween.ToString() & " h, " & data.DistanceBetween.ToString() & " km"
			End If
			Return text
		End Function
		Private Function ConvertBack(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
			Throw New NotImplementedException()
		End Function
		#End Region
	End Class
End Namespace