blob: 368d79de14e07e8694225411857cfa5d62be6680 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--***********************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
***********************************************************-->
<!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 = &quot;ToolkitControls&quot;
Const sDialogName = &quot;FileDialogDlg&quot;
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( &quot;com.sun.star.ui.dialogs.FilePicker&quot; )
REM set filter
oFilePicker.AppendFilter( &quot;All files (*.*)&quot;, &quot;*.*&quot; )
oFilePicker.AppendFilter( &quot;StarOffice 6.0 Text Text Document&quot;, &quot;*.sxw&quot; )
oFilePicker.AppendFilter( &quot;StarOffice 6.0 Spreadsheet&quot;, &quot;*.sxc&quot; )
oFilePicker.SetCurrentFilter( &quot;All files (*.*)&quot; )
REM if no file URL is set, get path settings from configuration
oTextFieldModel = oDialog.Model.TextField1
sFileURL = ConvertToURL( oTextFieldModel.Text )
If sFileURL = &quot;&quot; Then
oSettings = CreateUnoService( &quot;com.sun.star.frame.Settings&quot; )
oPathSettings = CreateUnoService( &quot;com.sun.star.util.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
REM set file path in text field
oTextField = oDialog.GetControl(&quot;TextField1&quot;)
oTextField.SetText( ConvertFromURL( sFileURL ) )
End If
End If
End Sub
</script:module>