blob: 4a36d76217e2958a266d1202735dcbdbe7707a4e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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>
|