Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Private Button1 As Button
Private ComboBox1 As ComboBox
Private Label1 As Label
Private TextField1 As TextField
Private TextField2 As TextField
Private plugin As ABPlugin
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
MainForm.RootPane.LoadLayout("1")
' initialize the plugin lib
plugin.Initialize("plugin", File.Combine(File.DirApp, "plugins"), "MyKey")
' start the plugin lib, check for plugins every 5 seconds
plugin.Start(5000)
MainForm.Show
End Sub
Sub Button1_Action
If ComboBox1.Value = Null Then Return
If TextField1.text = "" Then Return
If TextField2.text = "" Then Return
' create a map with the parameters of the method
Dim params As Map
params.Initialize
params.Put("val1", TextField1.Text)
params.Put("val2", TextField2.Text)
' run the plugin!
Dim result As Double = plugin.RunPlugin(ComboBox1.Value, "calculate", params)
Label1.Text = TextField1.Text & " " & ComboBox1.Value & " " & TextField2.Text & " = " & result
End Sub
' new plugins are found, or plugins have been removed
Sub plugin_PluginsChanged()
Log("plugins have changed!")
Dim plugins As List = plugin.GetAvailablePlugins
ComboBox1.Items.Clear
For i = 0 To plugins.Size - 1
ComboBox1.Items.Add(plugins.Get(i))
Next
End Sub