6.1.15 Wie kann man einen Öffnen- oder Speichern-Dialog aufrufen?
Mit dem Service FilePicker von com.sun.star.ui.dialogs

Sub TestDialog
MyDialog=createunoservice("com.sun.star.ui.dialogs.FilePicker")
myDialog.displaydirectory="c:\"
MyDialog.execute
FileName=MyDialog.Files(0)
End sub

Mit der Propertie Files wird beim Öffnen des Dialoges ein Array bereitgestellt. Als Standard ist die Mehrfachauswahl nicht möglich. Wenn diese gewünscht wird ist dieser Modus zu aktivieren und dann das Array entsprechend auszulesen.

Der Mehrfachauswahlmodus (nur beim Öffnen-Dialog) wird mit:
myDialog.setMultiSelectionMode(true)
aktiviert.

Mit DisplayDirectory kann das Startverzeichnis festgelegt werden.


Um nun verschiedene Dialogtypen für Öffnen und Speichern zu bekommen, muss der Dialog mit einer Konstanten initialisiert werden.

Dim Dialogtyp(0)
DialogTyp(0) =com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE
myDialog.initialize( DialogTyp())

Achtung wenn man den Pfad festlegen will muß dies nach myDialog.initialize( DialogTyp()) erfolgen.


Mögliche Konstanten sind dabei:

Für den  Öffnen Dialog
FILEOPEN_SIMPLE = Standard Öffnen Dialog
FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE = Mit Checkbox Vorschau
FILEOPEN_PLAY = Mit "Abspielen" Button
FILEOPEN_READONLY_VERSION = Mit ReadonlyButton
FILEOPEN_LINK_PREVIEW = Verlinken und Vorschau


Für den "Speichern-unter"-Dialog
FILESAVE_SIMPLE = Standard Speichern Dialog
FILESAVE_AUTOEXTENSION_PASSWORD = Speichern mit Automatischer Extension und Password
FILESAVE_AUTOEXTENSION_PASSWORD_FILTEROPTIONS = dito mit Filtern
FILESAVE_AUTOEXTENSION_SELECTION =Speichern mit Automatischer Extension und Selection
FILESAVE_AUTOEXTENSION_TEMPLATE  = Mit Listbox Formatvorlage
FILESAVE_AUTOEXTENSION  = Automatische Extension

Bei dem "Speichern unter"-Dialog gibt es aber einen Haken: Die möglichen Dateiformate werden nicht angezeigt.
Diese kann man aber mit der Funktion appendfilter anhängen. Danach muß man den ausgewählten Filter über die Propertie "currentfilter" abfragen.
Aufgrund des Filters muß dann der entsprechende Filter zum  Speichern verwendet werden.

myDoc = thisComponent
DialogTyp(0) = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION

MyDialog=createunoservice("com.sun.star.ui.dialogs.FilePicker")
myDialog.initialize( DialogTyp())
myDialog.appendfilter("MS Word 97","Fi")
myDialog.appendfilter("MS Word 95","Filtername")
MyDialog.execute
FileName=MyDialog.Files(0)
Filtername=myDialog.currentfilter

Dim myProps(0) as New com.sun.star.beans.PropertyValue
sUrl= MyDialog.Files(0)
myProps(0).Name="FilterName"
myProps(0).Value = myDialog.currentfilter
REM Achtung dann muß der Schreibweise des Filters (siehe Wie lauten die möglichen Filter zum
REM rem Speichern und Exportieren von Dokumenten?entsprechen
myDoc.storeAsUrl(sUrl,myProps())