| <?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 = "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> |