Initial Comit
This commit is contained in:
167
MenuManager/MenuCustomClass.bas
Normal file
167
MenuManager/MenuCustomClass.bas
Normal file
@@ -0,0 +1,167 @@
|
||||
B4J=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=Class
|
||||
Version=5.9
|
||||
@EndOfDesignText@
|
||||
Sub Class_Globals
|
||||
Private fx As JFX
|
||||
Private TJO As JavaObject
|
||||
Private mModule As Object
|
||||
Private mEventName As String
|
||||
Private ReturnEventName As String
|
||||
End Sub
|
||||
|
||||
'Initializes the object. You can add parameters to this method if needed.
|
||||
Public Sub Initialize(Module As Object,EventName As String,TNode As Node)
|
||||
mModule = Module
|
||||
mEventName = EventName
|
||||
TJO.InitializeNewInstance("javafx.scene.control.CustomMenuItem",Array(TNode))
|
||||
Dim O As Object = TJO.CreateEventFromUI("javafx.event.EventHandler","Action",Null)
|
||||
TJO.RunMethod("setOnAction",Array(O))
|
||||
End Sub
|
||||
|
||||
'Pass the menu action event to the calling module
|
||||
Private Sub Action_Event (MethodName As String, Args() As Object) As Object 'Ignore
|
||||
If SubExists(mModule, mEventName & "_Action") Then CallSub(mModule,mEventName & "_Action")
|
||||
End Sub
|
||||
|
||||
'Gets the value of the property content.
|
||||
Public Sub GetContent As Node
|
||||
Return TJO.RunMethod("getContent",Null)
|
||||
End Sub
|
||||
|
||||
'Gets the value of the property hideOnClick.
|
||||
Public Sub IsHideOnClick As Boolean
|
||||
Return TJO.RunMethod("isHideOnClick",Null)
|
||||
End Sub
|
||||
|
||||
'Sets the value of the property content.
|
||||
Public Sub SetContent(Value As Node) As MenuCustomClass
|
||||
TJO.RunMethod("setContent",Array As Object(Value))
|
||||
Return Me
|
||||
End Sub
|
||||
|
||||
'Sets the value of the property hideOnClick. Selecting MouseTransparent will make it non responsive to mouse hover and focus
|
||||
Public Sub SetHideOnClick(Value As Boolean,MouseTransparent As Boolean) As MenuCustomClass
|
||||
TJO.RunMethod("setHideOnClick",Array As Object(Value))
|
||||
|
||||
If Value Then
|
||||
RemoveStyle("mm-menucustom-hidden")
|
||||
Else
|
||||
If MouseTransparent Then AddStyle("mm-menucustom-hidden")
|
||||
End If
|
||||
|
||||
Dim L As List = TJO.RunMethodJO("getStyleClass",Null)
|
||||
For Each S As String In L
|
||||
Log(S)
|
||||
Next
|
||||
Return Me
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
'Set a Graphic on this menu item
|
||||
'Returns the menu item
|
||||
Public Sub SetGraphic(Graphic As Node) As MenuCustomClass
|
||||
TJO.RunMethod("setGraphic",Array(Graphic))
|
||||
Return Me
|
||||
End Sub
|
||||
|
||||
'Get the graphic set on this menu item
|
||||
Public Sub GetGraphic As Node
|
||||
Return TJO.RunMethod("getGraphic",Null)
|
||||
End Sub
|
||||
|
||||
'Set a shortcut key for this menu item
|
||||
'Returns the menu item
|
||||
Public Sub SetShortCutKey(Combination() As String) As MenuCustomClass
|
||||
Dim KC As JavaObject
|
||||
KC.InitializeStatic("javafx.scene.input.KeyCombination")
|
||||
Dim KCS As String
|
||||
For i = 0 To Combination.Length - 1
|
||||
If i > 0 Then KCS = KCS & "+"
|
||||
KCS = KCS & Combination(i)
|
||||
Next
|
||||
TJO.RunMethod("setAccelerator",Array(KC.RunMethod("keyCombination",Array(KCS))))
|
||||
Return Me
|
||||
End Sub
|
||||
|
||||
'Set the enabled state for this menu item
|
||||
'Returns the menu item
|
||||
Public Sub SetEnabled(Enabled As Boolean) As MenuCustomClass
|
||||
TJO.RunMethod("setEnabled",Array(Enabled))
|
||||
Return Me
|
||||
End Sub
|
||||
|
||||
'Get the enabled state for this menu item
|
||||
Public Sub GetEnabled As Boolean
|
||||
Return TJO.RunMethod("getEnabled",Null)
|
||||
End Sub
|
||||
|
||||
'Set an alternate event name for this menu item
|
||||
'Returns the menu item
|
||||
Public Sub SetEventName (Name As String) As MenuCustomClass
|
||||
ReturnEventName = Name
|
||||
Return Me
|
||||
End Sub
|
||||
|
||||
'Get the alternate Event name for this menu item
|
||||
Public Sub GetEventName As String
|
||||
Return ReturnEventName
|
||||
End Sub
|
||||
|
||||
'Get / Set the text of the menu item
|
||||
Sub getText As String
|
||||
Return TJO.RunMethod("getText",Null)
|
||||
End Sub
|
||||
Public Sub setText(Text As String)
|
||||
TJO.RunMethod("setText", Array(Text))
|
||||
End Sub
|
||||
|
||||
'Get the list of style classes set on this menu item
|
||||
Public Sub GetStyleClass As List
|
||||
Return TJO.RunMethod("getStyleClass",Null)
|
||||
End Sub
|
||||
|
||||
'Set a style class for this menu item, checks it is not already added
|
||||
'Returns the menu item
|
||||
Public Sub SetStyleClass(Class As String) As MenuCustomClass
|
||||
Dim L As List = GetStyleClass
|
||||
Dim Pos As Int = L.IndexOf(Class)
|
||||
If Pos = -1 Then L.Add(Class)
|
||||
Return Me
|
||||
End Sub
|
||||
|
||||
'Set a tag for this menu item
|
||||
'Returns the menu item
|
||||
Public Sub SetTag(TTag As Object) As MenuCustomClass
|
||||
TJO.RunMethod("setUserData",Array(TTag))
|
||||
Return Me
|
||||
End Sub
|
||||
|
||||
'Get the tag for this menu item
|
||||
Public Sub GetTag As Object
|
||||
Dim Tag As Object = TJO.RunMethod("getUserData",Null)
|
||||
If Tag = Null Then Tag = ""
|
||||
Return Tag
|
||||
End Sub
|
||||
|
||||
'Get the native menu item as a Javaobject
|
||||
Public Sub AsJavaObject As JavaObject
|
||||
Return TJO
|
||||
End Sub
|
||||
|
||||
'Get the native menu item as an object
|
||||
Public Sub AsObject As Object
|
||||
Return TJO
|
||||
End Sub
|
||||
|
||||
Private Sub AddStyle(Style As String)
|
||||
TJO.RunMethodJO("getStyleClass",Null).RunMethod("add",Array(Style))
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub RemoveStyle(Style As String)
|
||||
TJO.RunMethodJO("getStyleClass",Null).RunMethod("remove",Array(Style))
|
||||
End Sub
|
||||
Reference in New Issue
Block a user