Kaydet (Commit) a1c3fd49 authored tarafından Tomas O'Connor's avatar Tomas O'Connor

Add Edit/Debug Scripts dialog and change Interactive BeanShell Scripting menu

items to bring up this dialog
üst e9ec19a1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="EditDebugDialog" dlg:left="64" dlg:top="89" dlg:width="179" dlg:height="151" dlg:closeable="true" dlg:moveable="true" dlg:title="Edit/Debug Scripts">
<dlg:bulletinboard>
<dlg:combobox dlg:id="LocationCombo" dlg:tab-index="0" dlg:left="64" dlg:top="17" dlg:width="110" dlg:height="13" dlg:spin="true">
<script:event script:event-name="on-itemstatechange" script:location="application" script:macro-name="ScriptBindingLibrary.ScriptBinding.LangLocComboListener" script:language="StarBasic"/>
</dlg:combobox>
<dlg:combobox dlg:id="LanguageCombo" dlg:tab-index="1" dlg:left="64" dlg:top="33" dlg:width="110" dlg:height="13" dlg:spin="true">
<script:event script:event-name="on-itemstatechange" script:location="application" script:macro-name="ScriptBindingLibrary.ScriptBinding.LangLocComboListener" script:language="StarBasic"/>
</dlg:combobox>
<dlg:checkbox dlg:id="detail" dlg:tab-index="2" dlg:left="12" dlg:top="70" dlg:width="45" dlg:height="10" dlg:value="Detailed view" dlg:checked="false">
<script:event script:event-name="on-itemstatechange" script:location="application" script:macro-name="ScriptBindingLibrary.ScriptBinding.LangLocComboListener" script:language="StarBasic"/>
</dlg:checkbox>
<dlg:menulist dlg:id="ScriptList" dlg:tab-index="3" dlg:left="64" dlg:top="50" dlg:width="110" dlg:height="44"/>
<dlg:button dlg:id="OK" dlg:tab-index="4" dlg:left="58" dlg:top="131" dlg:width="36" dlg:height="14" dlg:value="OK">
<script:event script:event-name="on-performaction" script:location="application" script:macro-name="ScriptBindingLibrary.ScriptBinding.DoEdit" script:language="StarBasic"/>
</dlg:button>
<dlg:button dlg:id="Cancel" dlg:tab-index="5" dlg:left="97" dlg:top="131" dlg:width="36" dlg:height="14" dlg:value="Cancel">
<script:event script:event-name="on-performaction" script:location="application" script:macro-name="ScriptBindingLibrary.ScriptBinding.MenuCancelButton" script:language="StarBasic"/>
</dlg:button>
<dlg:button dlg:id="Help" dlg:tab-index="6" dlg:left="138" dlg:top="131" dlg:width="36" dlg:height="14" dlg:value="Help">
<script:event script:event-name="on-performaction" script:location="application" script:macro-name="ScriptBindingLibrary.ScriptBinding.MenuHelpButton" script:language="StarBasic"/>
</dlg:button>
<dlg:fixedline dlg:id="FixedLine1" dlg:tab-index="7" dlg:left="42" dlg:top="6" dlg:width="131" dlg:height="7"/>
<dlg:text dlg:id="Label1" dlg:tab-index="8" dlg:left="5" dlg:top="6" dlg:width="36" dlg:height="9" dlg:value="Select script"/>
<dlg:text dlg:id="Label7" dlg:tab-index="9" dlg:left="12" dlg:top="18" dlg:width="29" dlg:height="11" dlg:value="Location"/>
<dlg:text dlg:id="Label8" dlg:tab-index="10" dlg:left="12" dlg:top="31" dlg:width="35" dlg:height="9" dlg:value="Language"/>
<dlg:text dlg:id="Label9" dlg:tab-index="11" dlg:left="12" dlg:top="53" dlg:width="24" dlg:height="14" dlg:value="Script"/>
<dlg:fixedline dlg:id="FixedLine2" dlg:tab-index="12" dlg:left="7" dlg:top="120" dlg:width="167" dlg:height="7"/>
<dlg:button dlg:id="CommandButton1" dlg:tab-index="13" dlg:left="136" dlg:top="101" dlg:width="36" dlg:height="14" dlg:value="Browse...">
<script:event script:event-name="on-performaction" script:location="application" script:macro-name="ScriptBindingLibrary.ScriptBinding.DoBrowseAndEdit" script:language="StarBasic"/>
</dlg:button>
</dlg:bulletinboard>
</dlg:window>
...@@ -210,6 +210,21 @@ Sub updateMapWithDisabledKeys() ...@@ -210,6 +210,21 @@ Sub updateMapWithDisabledKeys()
End Sub End Sub
Sub ExecuteEditDebug()
locations = Array ( &quot;User&quot;, &quot;Share&quot; )
languages = Array ( &quot;BeanShell&quot;, &quot;Rhino&quot; )
dialogName = &quot;EditDebug&quot;
bindingDialog = LoadDialog( &quot;ScriptBindingLibrary&quot;, &quot;EditDebug&quot; )
PopulateLanguageCombo()
PopulateLocationCombo()
PopulateScriptList( languages(0), locations(0) )
bindingDialog.execute()
End Sub
Sub ExecuteKeyBinding() Sub ExecuteKeyBinding()
dialogName = &quot;Key&quot; dialogName = &quot;Key&quot;
createAndPopulateKeyArrays() createAndPopulateKeyArrays()
...@@ -1493,13 +1508,14 @@ sub LangLocComboListener() ...@@ -1493,13 +1508,14 @@ sub LangLocComboListener()
&apos;Enable/disable Assign button &apos;Enable/disable Assign button
scriptList = bindingDialog.getControl( &quot;ScriptList&quot; ) scriptList = bindingDialog.getControl( &quot;ScriptList&quot; )
if scriptList.getSelectedItem() = &quot;&quot; then if not (dialogName = &quot;EditDebug&quot;) then
bindingDialog.Model.NewButton.enabled = false if scriptList.getSelectedItem() = &quot;&quot; then
else bindingDialog.Model.NewButton.enabled = false
&apos; bindingDialog.Model.NewButton.enabled = true else
&apos; bindingDialog.Model.NewButton.enabled = true
end if
end if end if
&apos; extra dialog dependant processing &apos; extra dialog dependant processing
if dialogName = &quot;Menu&quot; then if dialogName = &quot;Menu&quot; then
&apos; will set New button to false if no text in LableBox &apos; will set New button to false if no text in LableBox
...@@ -1589,6 +1605,94 @@ end sub ...@@ -1589,6 +1605,94 @@ end sub
REM ------ Event Handling Functions (Buttons) ------ REM ------ Event Handling Functions (Buttons) ------
Sub DoBrowseAndEdit()
Dim oFilePicker As Object, oSimpleFileAccess As Object
Dim oSettings As Object, oPathSettings As Object
Dim sFileURL As String
Dim sFiles As Variant
bshfilter = &quot;BeanShell (*.bsh)&quot;
rhinofilter = &quot;Rhino (*.js)&quot;
REM file dialog
oFilePicker = CreateUnoService( &quot;com.sun.star.ui.dialogs.FilePicker&quot; )
oFilePicker.AppendFilter( bshfilter, &quot;*.bsh&quot; )
oFilePicker.AppendFilter( rhinofilter, &quot;*.js&quot; )
&apos; oFilePicker.SetCurrentFilter( &quot;BeanShell (*.bsh)&quot; )
If sFileURL = &quot;&quot; Then
oSettings = CreateUnoService( &quot;com.sun.star.frame.Settings&quot; )
oPathSettings = oSettings.getByName( &quot;PathSettings&quot; )
sFileURL = oPathSettings.getPropertyValue( &quot;Work&quot; )
End If
REM set display directory
oSimpleFileAccess = CreateUnoService( &quot;com.sun.star.ucb.SimpleFileAccess&quot; )
If oSimpleFileAccess.exists( sFileURL ) And oSimpleFileAccess.isFolder( sFileURL ) Then
oFilePicker.setDisplayDirectory( sFileURL )
End If
REM execute file dialog
If oFilePicker.execute() Then
sFiles = oFilePicker.getFiles()
sFileURL = sFiles(0)
If oSimpleFileAccess.exists( sFileURL ) Then
If (oFilePicker.GetCurrentFilter = bshfilter) then
RunDebugger(&quot;BeanShell&quot;, sFileURL, &quot;&quot;)
ElseIf (oFilePicker.GetCurrentFilter = rhinofilter) then
RunDebugger(&quot;Rhino&quot;, sFileURL, &quot;&quot;)
End If
End If
bindingDialog.endExecute()
End If
End Sub
Sub RunDebugger(lang as String, uri as String, filename as String)
dim document as object
dim dispatcher as object
dim parser as object
dim url as new com.sun.star.util.URL
document = ThisComponent.CurrentController.Frame
parser = createUnoService(&quot;com.sun.star.util.URLTransformer&quot;)
dim args(2) as new com.sun.star.beans.PropertyValue
args(0).Name = &quot;language&quot;
args(0).Value = lang
args(1).Name = &quot;uri&quot;
args(1).Value = uri
args(2).Name = &quot;filename&quot;
args(2).Value = filename
url.Complete = &quot;script://DebugRunner.Debug?&quot; _
+ &quot;language=Java&amp;function=DebugRunner.go&quot; _
+ &quot;&amp;location=user&quot;
parser.parseStrict(url)
disp = document.queryDispatch(url,&quot;&quot;,0)
disp.dispatch(url, args())
End Sub
sub DoEdit()
Dim scriptInfo as Object
menuScriptList = bindingDialog.getControl( &quot;ScriptList&quot; )
selectedScript = menuScriptList.getSelectedItem()
scripts() = scriptDisplayList(0)
for n = LBOUND( scripts() ) to UBOUND( scripts() )
if ( scripts( n ).Name = selectedScript ) then
scriptInfo = scripts( n ).Value
exit for
end if
next n
RunDebugger(scriptInfo.getLanguage, scriptInfo.getParcelURI, scriptInfo.getFunctionName)
bindingDialog.endExecute()
end sub
sub MenuOKButton() sub MenuOKButton()
WriteXMLFromArray() WriteXMLFromArray()
......
...@@ -240,7 +240,7 @@ ...@@ -240,7 +240,7 @@
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteMenuBinding()" menu:label="Assign Script to ~Menu..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteMenuBinding()" menu:label="Assign Script to ~Menu..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteKeyBinding" menu:label="Assign Script to ~Key..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteKeyBinding" menu:label="Assign Script to ~Key..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEventBinding()" menu:label="Assign Script to ~Event..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEventBinding()" menu:label="Assign Script to ~Event..."/>
<menu:menuitem menu:id="script://Interactive.BeanShell?location=user" menu:label="Interactive ~Beanshell Scripting..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEditDebug" menu:label="Edit/De~bug Scripts..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.RefreshAllScripts()" menu:label="~Refresh All Scripts"/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.RefreshAllScripts()" menu:label="~Refresh All Scripts"/>
</menu:menupopup> </menu:menupopup>
</menu:menu> </menu:menu>
......
...@@ -5,4 +5,5 @@ ...@@ -5,4 +5,5 @@
<library:element library:name="EventsBinding"/> <library:element library:name="EventsBinding"/>
<library:element library:name="HelpBinding"/> <library:element library:name="HelpBinding"/>
<library:element library:name="KeyBinding"/> <library:element library:name="KeyBinding"/>
<library:element library:name="EditDebug"/>
</library:library> </library:library>
...@@ -257,7 +257,7 @@ ...@@ -257,7 +257,7 @@
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteMenuBinding()" menu:label="Assign Script to ~Menu..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteMenuBinding()" menu:label="Assign Script to ~Menu..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteKeyBinding" menu:label="Assign Script to ~Key..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteKeyBinding" menu:label="Assign Script to ~Key..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEventBinding()" menu:label="Assign Script to ~Event..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEventBinding()" menu:label="Assign Script to ~Event..."/>
<menu:menuitem menu:id="script://Interactive.BeanShell?location=user" menu:label="Interactive ~Beanshell Scripting..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEditDebug" menu:label="Edit/De~bug Scripts..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.RefreshAllScripts()" menu:label="~Refresh All Scripts"/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.RefreshAllScripts()" menu:label="~Refresh All Scripts"/>
</menu:menupopup> </menu:menupopup>
</menu:menu> </menu:menu>
......
...@@ -284,7 +284,7 @@ ...@@ -284,7 +284,7 @@
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteMenuBinding()" menu:label="Assign Script to ~Menu..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteMenuBinding()" menu:label="Assign Script to ~Menu..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteKeyBinding" menu:label="Assign Script to ~Key..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteKeyBinding" menu:label="Assign Script to ~Key..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEventBinding()" menu:label="Assign Script to ~Event..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEventBinding()" menu:label="Assign Script to ~Event..."/>
<menu:menuitem menu:id="script://Interactive.BeanShell?location=user" menu:label="Interactive ~Beanshell Scripting..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEditDebug" menu:label="Edit/De~bug Scripts..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.RefreshAllScripts()" menu:label="~Refresh All Scripts"/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.RefreshAllScripts()" menu:label="~Refresh All Scripts"/>
</menu:menupopup> </menu:menupopup>
</menu:menu> </menu:menu>
......
...@@ -246,7 +246,7 @@ ...@@ -246,7 +246,7 @@
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteMenuBinding()" menu:label="Assign Script to ~Menu..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteMenuBinding()" menu:label="Assign Script to ~Menu..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteKeyBinding" menu:label="Assign Script to ~Key..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteKeyBinding" menu:label="Assign Script to ~Key..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEventBinding()" menu:label="Assign Script to ~Event..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEventBinding()" menu:label="Assign Script to ~Event..."/>
<menu:menuitem menu:id="script://Interactive.BeanShell?location=user" menu:label="Interactive ~Beanshell Scripting..."/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.ExecuteEditDebug" menu:label="Edit/De~bug Scripts..."/>
<menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.RefreshAllScripts()" menu:label="~Refresh All Scripts"/> <menu:menuitem menu:id="macro:///ScriptBindingLibrary.ScriptBinding.RefreshAllScripts()" menu:label="~Refresh All Scripts"/>
</menu:menupopup> </menu:menupopup>
</menu:menu> </menu:menu>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment