Imports VBTrain.GraphicalObjects.WebShape

 

Public Class WebShapeDemoPage1

      Inherits MasterPage

     

' Web Form Designer Generated Code here

 

#Region "Event Handlers"

 

      Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

            If Not Me.IsPostBack Then

                  If Not Me.InitDone Then

                        Call UpdatePropsFromShape()

                  End If

                  Call UpdateDemoShape(DemoShape)

                  Call InitCombos()

            End If

      End Sub

 

      Private Sub UpdateBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UpdateBtn.Click

            Dim enumString As String

            Dim obj As Object

 

            With DemoShape

                  enumString = ShapeTypeDropDown.SelectedItem.ToString

                  obj = System.Enum.Parse(GetType(VbShapeEnum), enumString)

                  .ShapeType = CType(obj, VbShapeEnum)

                  .Filled = CBool(FilledDropDown.SelectedItem.ToString)

                  enumString = FillEffectDropDown.SelectedItem.ToString

                  obj = System.Enum.Parse(GetType(BrushTypeEnum), enumString)

                  .FillEffect = CType(obj, BrushTypeEnum)

                  .FillColor1 = Color.FromName(FillColor1DropDown.SelectedItem.ToString)

                  .FillColor2 = Color.FromName(FillColor2DropDown.SelectedItem.ToString)

                  .BorderThickness = CSng(BorderThicknessDropDown.SelectedItem.ToString)

                  enumString = LineAngleDropDown.SelectedItem.ToString

                  obj = System.Enum.Parse(GetType(LineAngleEnum), enumString)

                  .LineAngleType = CType(obj, LineAngleEnum)

                  enumString = VBTrainLineCapDropDown.SelectedItem.ToString

                  obj = System.Enum.Parse(GetType(VBTrainLineCapEnum), enumString)

                  .VBTrainLineCapStart = CType(obj, VBTrainLineCapEnum)

                  .VBTrainLineCapEnd = CType(obj, VBTrainLineCapEnum)

                  .PolyNumberOfSides = CInt(PolyNumSidesDropDown.SelectedItem.ToString)

 

                  ' update master page props

                  Me.DemoFilled = .Filled

                  Me.DemoShapeType = .ShapeType

                  Me.DemoFillColor1 = .FillColor1

                  Me.DemoFillColor2 = .FillColor2

                  Me.DemoFillEffect = .FillEffect

                  Me.DemoBorderThickness = .BorderThickness

                  Me.DemoLineAngleType = .LineAngleType

                  Me.DemoLineCap = .VBTrainLineCapStart

                  Me.DemoPolyNumSides = .PolyNumberOfSides

            End With

            Server.Transfer("WebShapeDemoPage1.aspx")         ' This is required so the streaming.aspx form reloads.

      End Sub

 

#End Region

 

#Region "Implementation Methods"

 

      Private Sub InitCombos()

            FilledDropDown.SelectedIndex = FilledDropDown.Items.IndexOf(New ListItem(DemoShape.Filled.ToString))

            ShapeTypeDropDown.SelectedIndex = ShapeTypeDropDown.Items.IndexOf(New ListItem(DemoShape.ShapeType.ToString))

            FillEffectDropDown.SelectedIndex = FillEffectDropDown.Items.IndexOf(New ListItem(DemoShape.FillEffect.ToString))

            FillColor1DropDown.SelectedIndex = FillColor1DropDown.Items.IndexOf(New ListItem(GetColorStringFromColor(DemoShape.FillColor1)))

            FillColor2DropDown.SelectedIndex = FillColor2DropDown.Items.IndexOf(New ListItem(GetColorStringFromColor(DemoShape.FillColor2)))

            BorderThicknessDropDown.SelectedIndex = BorderThicknessDropDown.Items.IndexOf(New ListItem(DemoShape.BorderThickness.ToString))

            LineAngleDropDown.SelectedIndex = LineAngleDropDown.Items.IndexOf(New ListItem(DemoShape.LineAngleType.ToString))

            VBTrainLineCapDropDown.SelectedIndex = VBTrainLineCapDropDown.Items.IndexOf(New ListItem(DemoShape.VBTrainLineCapStart.ToString))

            PolyNumSidesDropDown.SelectedIndex = PolyNumSidesDropDown.Items.IndexOf(New ListItem(DemoShape.PolyNumberOfSides.ToString))

      End Sub

 

      Private Function GetColorStringFromColor(ByVal inputColor As Color) As String

            Dim colorStr As String

 

            Select Case inputColor.ToArgb

                  Case Color.Blue.ToArgb

                        colorStr = "Blue"

                  Case Color.Yellow.ToArgb

                        colorStr = "Yellow"

                  Case Color.Orange.ToArgb

                        colorStr = "Orange"

                  Case Color.Green.ToArgb

                        colorStr = "Green"

                  Case Color.Red.ToArgb

                        colorStr = "Red"

                  Case Else

                        colorStr = "White"

            End Select

 

            Return colorStr

      End Function

 

      Protected Sub UpdatePropsFromShape()

            With DemoShape

                  Me.DemoFilled = .Filled

                  Me.DemoShapeType = .ShapeType

                  Me.DemoFillEffect = .FillEffect

                  Me.DemoFillColor1 = .FillColor1

                  Me.DemoFillColor2 = .FillColor2

                  Me.DemoBorderThickness = .BorderThickness

                  Me.DemoPolyNumSides = .PolyNumberOfSides

                  Me.DemoLineAngleType = .LineAngleType

                  Me.DemoLineCap = .VBTrainLineCapStart

            End With

            Me.InitDone = True

      End Sub

 

#End Region

 

#Region "Properties"

 

      Protected Property InitDone() As Boolean

            Get

                  Return CBool(Session("InitDone"))

            End Get

            Set(ByVal Value As Boolean)

                  Session("InitDone") = Value.ToString

            End Set

      End Property

 

#End Region

 

End Class