diff options
Diffstat (limited to 'odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/FileDialog.xba')
-rw-r--r-- | odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/FileDialog.xba | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/FileDialog.xba b/odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/FileDialog.xba new file mode 100644 index 000000000000..4a36d76217e2 --- /dev/null +++ b/odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/FileDialog.xba @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> +<script:module xmlns:script="http://openoffice.org/2000/script" script:name="FileDialog" script:language="StarBasic">REM ***** BASIC ***** + +Dim oDialog As Object + +Sub Main() + + Dim oLibContainer As Object, oLib As Object + Dim oInputStreamProvider As Object + + Const sLibName = "ToolkitControls" + Const sDialogName = "FileDialogDlg" + + REM load/get library and input stream provider + oLibContainer = DialogLibraries + oLibContainer.loadLibrary( sLibName ) + oLib = oLibContainer.getByName( sLibName ) + oInputStreamProvider = oLib.getByName( sDialogName ) + + REM create dialog control + oDialog = CreateUnoDialog( oInputStreamProvider ) + + REM show the dialog + oDialog.execute() + +End Sub + +Sub OpenFileDialog() + + Dim oFilePicker As Object, oSimpleFileAccess As Object + Dim oPathSettings As Object + Dim oTextField As Object, oTextFieldModel As Object + Dim sFileURL As String + Dim sFiles As Variant + + REM file dialog + oFilePicker = CreateUnoService( "com.sun.star.ui.dialogs.FilePicker" ) + + REM set filter + oFilePicker.AppendFilter( "All files (*.*)", "*.*" ) + oFilePicker.AppendFilter( "StarOffice 6.0 Text Text Document", "*.sxw" ) + oFilePicker.AppendFilter( "StarOffice 6.0 Spreadsheet", "*.sxc" ) + oFilePicker.SetCurrentFilter( "All files (*.*)" ) + + REM if no file URL is set, get path settings from configuration + oTextFieldModel = oDialog.Model.TextField1 + sFileURL = ConvertToURL( oTextFieldModel.Text ) + If sFileURL = "" Then + oSettings = CreateUnoService( "com.sun.star.frame.Settings" ) + oPathSettings = CreateUnoService( "com.sun.star.util.PathSettings" ) + sFileURL = oPathSettings.getPropertyValue( "Work" ) + End If + + REM set display directory + oSimpleFileAccess = CreateUnoService( "com.sun.star.ucb.SimpleFileAccess" ) + 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 + REM set file path in text field + oTextField = oDialog.GetControl("TextField1") + oTextField.SetText( ConvertFromURL( sFileURL ) ) + End If + End If + +End Sub +</script:module>
\ No newline at end of file |