Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Private DockPane1 As DockPane
Private DockNode1 As DockNode
Private DockNode2 As DockNode
Private DockNode3 As DockNode
Private FirstResize As Boolean = True
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.RootPane.LoadLayout("1") 'Load the layout file.
MainForm.Show
CallSubDelayed(Me,setupDockNode)
End Sub
Sub setupDockNode
DockNode1.Initialize(Me,"DockNode1","DockNode1",Null).PrefSize(MainForm.Width / 2, (MainForm.Height/3*2))
DockNode1.Pane.LoadLayout("DockNode1")
DockNode1.Dock(DockPane1,"LEFT")
DockNode1.Tag = "DockNode1"
DockNode2.Initialize(Me,"DockNode2","DockNode2",Null).PrefSize(MainForm.Width / 2, (MainForm.Height/3*2))
DockNode2.Pane.LoadLayout("DockNode2")
DockNode2.Dock(DockPane1,"RIGHT")
DockNode2.Tag = "DockNode2"
DockNode3.Initialize(Me,"DockNode3","DockNode3",Null).PrefSize(MainForm.Width, (MainForm.Height/3))
DockNode3.Pane.LoadLayout("DockNode3")
DockNode3.Dock(DockPane1,"BOTTOM")
DockNode3.Tag = "DockNode3"
DockPane1.SetDefaultUserAgentStylesheet
End Sub
Sub MainForm_Resize (Width As Double, Height As Double)
'Hack for first setup. We can also use this method to programatically resize the nodes at any time.
' We have to get the splitpane from the correct node using reflection as it is a private variable.
If FirstResize Then
Dim R As Reflector
R.Target = DockPane1.AsNode
Dim SP As SplitPane = R.GetField("root")
SP.DividerPositions = Array As Double(0.66)
FirstResize = False
End If
End Sub