File Open Dialog

OpenOffice.org 2.0

Document - ID	Specification Owner	Last Change	Status
	Andreas Schlüns	02/18/04	draft
Conforms to	
Applies to	all OOo modules
Task ID(s)	<Required - Tasklist comma separated.>
Category	feature

Abstract

##

“Open with...”

Integration of Template Dialog into File Open Dialog

The usability of loading documents into different OpenOffice.org application modules via the file open dialog must be improved. The old mechanism of preselection must be replaced with a more intuitive useable UI.

Further the separated functionality of the different file open and template dialog implementations should be merged together, so the concept of opening documents and templates will be more clear for an office user.

i-Team Members (The specification owner is part of the i-Team)

	Name	E-mail Address
User Experience	Matthias Müller-Prove, MMP	mprove@sun.com
Development	Andreas Schlüns, AS Mathias Bauer, MBA Hennes Rohling, HR Tino Rachui, TRA	andreas.schluens@sun.com mathias.bauer@sun.com hennes.rohling@sun.com tino.rachui@sun.com
Quality Assurance	##	
Documentation	##	

Approved for Implementation

	Approved by	Date
User Experience	<Name>	<Date>
Development		
Quality Assurance		
Documentation		
String Review		

Document Change History

Rev. Level	Change	Initials	Date
1.0 draft	First draft	AS	10/22/03
	Ideas of meeting on Jan. 15Th 2004	AS	01/22/04
	review	TRA	01/30/04
	review	MMP	02/18/04

Contents

Glossary	4

1	Motivation	4

2	User Scenarios	5

2.1	Opening a File	5

2.2	Cross Module Opening of Files	5

2.3	Overrule Preselection	5

2.4	Template Scenario	5

3	Goals	5

4	Requirements and Dependencies	6

4.1	Requirements	6

4.2	Technical Dependencies	6

5	Competitive Analyses	6

6	Detailed Specification	6

6.1	The UI of the new dialog	6

6.2	Components of the Office File Open Dialog	7

6.2.1	File View List	7

6.2.2	File View	7

6.2.3	Controls related to the File View	8

6.2.4	Function View	8

6.2.5	The preselection algorithm	9

6.2.6	Leaving the dialog with “OK”	9

6.3	G11n	9

6.4	Error Conditions	9

6.5	Migration	10

7	Future Tasks	10

8	Notes	10

9	References	10

Glossary

Term	Description
preselection	Mechanism to force loading documents into a special application module. A preselection overwrites the default module, where the document will be loaded normally.
module	Means an OpenOffice.org application module of like e.g. Writer, Writer/Web or Draw.
file format	Describes the type of a file content.
filter	An implementation, which can import and/or export a file of a specific file format into/from an OpenOffice.org module.
system file dialog	Refers to the system implementation of the file dialog, which is used on Windows only.
office file dialog	Refers to the OOo-internal file open dialog, which can be used on all supported platforms
system features	Means “operating system dependent features” as e.g. The support for special folders like Desktop or Network Places.
office features	Means “OOo specific features” as e.g. The UCB support for remote contents like http:// or ftp://.
file view	a view that shows the content of a folder
system view	a system dependent file view, which uses system routines
standard view	a file view, which does not depend on any operating system and can be used on any platform
CSV	comma separated value, a special file format
UCB	universal content broker

Motivation

The mechanism of preselection in OOo 1.1, which uses filter names, is not clear for a average user. Without reading the related documentation he does not know that selection of an entry from the filter selection box forces an action during loading.

##TRA: Ist das durch irgendwelche Zahlen belegbar, d.h. gibt es irgendwelche Usability Tests, die das bestätigen oder sind das Annahmen von Dir.

The cryptical coded filter names and the more then 300 list entries must accurately be read to understand which filter binds which file format to which OpenOffice.org module.

Further the list of filters presents more information than real filter names only. It provides groups of filters too, which has no effect for preselection. These groups are not marked as such and they can be distinguished by its used plural only (which is btw. not supported by all languages as e.g. Korean).

The different file open implementations of the OpenOffice.org (system file dialog and office file dialog) has a different set of functionality. The system file dialog supports more system features and the office file dialog supports more office features. Templates are supported by a special dialog implementation explicitly. The normal file open dialogs provides an “open template as new document” feature only.

User Scenarios

Opening a File

The author Mark selects a text document (which is a chapter of its new book) inside the file open dialog of OpenOffice.org and click the “OK” button. It will be opened into the OpenOffice.org Writer module and Mark can edit the document.

Cross Module Opening of Files

Some days before Mark created a drawing for its book and now he wishes to edit the file. He open the file dialog from the menu of the OpenOffice.org Writer module; selects the drawing and click on the “OK” button again. The file is opened into the OpenOffice.org Draw module and Mark can start to make his changes there.

Overrule Preselection

During Mark edit the file he noticed, that a new email reached him. His friend Peter send him some statistic data. Mark save the attachment and try to open it into OpenOffice.org. But not the spreadsheet module of the OpenOffice.org was used for open – the document was loaded into OOo Writer module. Mark recognized that the file has the extension “txt” and closes the document. After that he open it again. But now he uses the new preselection feature of the file dialog. He click on the drop down icon of the “OK” button and from the list of presented OOo module he selects the OpenOffice.org Calc. The dialog of the special CSV filter comes up and after Mark changed some parameters the statistic data will be opened as a spreadsheet.

Template Scenario

##

Goals

The handling of the preselection feature must be simplified. The number of possible preselection items must fall from ca. 300 to 10 as maximum.

##TRA: Kommt die Komplexität des “Preselection Features” einfach nur durch Masse der Einträge oder gibt es andere messbare Eigenschaften, die für die Komplexität verantwortlich sind.

Filter names have not to be used inside this new dialog. They have to be replaced with non-cryptical file format names.

The group feature of the selection box must be supported by the new dialog implementation too.

The different file open dialog and template dialog implementations must be merged together. The new dialog should support system and OOo features. Further functions related to templates must be integrated into this dialog too.

##TRA: Sieht für mich wie zwei unabhängig voneinander realisierbare Ziele aus

Komplexitätsverringerung des “Preselection” Features

Verschiedene FileOpen/Template Dialog Implementierungen zusammenfassen.

Gehe ich richtig in der Annahme, dass man 1. auch umsetzen könnte ohne 2. umsetzen zu müssen und umgekehrt?

Zusätzliche Ziele für 2. wären aus meiner Sicht: Bessere Benutzbarkeit, einheitliches Feature Set und nicht viele verschiedene Dialoge und jeder kann oder macht etwas ein bisschen anders. Wartung und Pflege der Dialog Implementierungen zusammenfassen. Kein System FileOpen Dialog mehr, dadurch weniger externe Abhängigkeiten (vor allem von M$ Bugs in diesem Bereich). Einfacher Benutzereinstellungen, es fällt wieder ein Punkt im Tools->Option Dialog weg (“General->StarOffice Dialoge verwenden”).

Requirements and Dependencies

Requirements

Suitable file format names has to be defined, so they can replace the cryptical filter names.

The new dialog has to support a component based framework, so it can be adapted to new functions very easy. The support of system features has to reimplemented as component, so it can be integrated into the dialog framework.

##TRA: “...has to support a component based framework...can be adapted to new functions very easy” ist natürlich sehr unscharf. Weißt Du schon genau an was der Dialog denn eventuell mal angepasst werden soll. Ich denke der Einsatz von Komponenten allein macht ja etwas noch nicht unbedingt leichter adaptierbar, im Gegenteil, oftmal wird es noch schwerer bestimmte Sachen zu ändern, weil man sich an veröffentlichte Interfaces halten muß etc. Müßte man hier nicht von Anfang an genauere Anforderungen spezifizieren wenn möglich.

Technical Dependencies

<Are there any technical dependencies for this feature? Does the implementation of this feature create any technical dependencies to other program parts? Or very important any issues for automatedd GUI Testing?>

Competitive Analyses

Competitive products on the market doesnt provide such “Open With ...” feature at all. Every file open dialog there can be used only to open a selected content everytimes into the same application.

##TRA: Ein Angabe, welche Konkurrenzprodukte denn untersucht wurden wäre sicherlich hilfreich. Allgemeiner Hinweis: Deine Beschreibungen, Use Case, etc. müssen nicht von Deiner Oma verstanden werden. Allerdings finde ich es auch als normaler OpenOffice.org Anwender machmal schwierig ihnen zu folgen. Vielleicht kannst Du einige Punkte durch Screeshots noch besser verdeutlichen und versuche die Sachen immer mit dem Hintergedanken zu schreiben kann jemand den Text flüssig ohne zuviel auf externe Informationen etc. zuzugreifen verfolgen und die Probleme nachvollziehen.

##MMP

“Open with” on (Windows) system level

Register for MS file formats on Windows

Unique situation of OOo modules

Detailed Specification

The UI of the new dialog

Illustration 1 Mockup #1 <TODO image of the new dialog and description of its controls>

##MMP

Provide path control

Components of the Office File Open Dialog

File View List

On the left side the dialog must provide the file view list. This list contains entries of standard views and system views. Standard views must be shown everytimes. System views can be missing if the underlying platform does not support this view. Every view entry is described by an icon and its name.

If an entry of the file view list will be selected, the file view has to be activated. If the selected view is still active, nothing has to be done.

##TRA: Was sind “Standard Views” was sind “System views”? Was ist die “File view”? (Vorwärtsreferenz)

##MMP: Lets call it “shortcut bar” or somethin glike that.

Also, describe items in detail.

File View

The file view is placed on the right side of the file list view. A generic framework to plug file views, based on UNO components, make the dialog extendable. The following functions must be supported by a file view:

Showing a list of all files, which are part of the opened folder. Which informations are presented there depends on the real implementation of the file view component.

##TRA: Ich dachte das zeigt die “File View List”?

Supports traveling during this file list with keyboard and mouse.

Supports selection of files (including multi selection).

Provides function to show filtered view of files by selecting attributes (e.g. File extensions or file names) with wildcard support..

##TRA: Ich versteh gerade nicht ganz. Ich dachte das sind alles Funktionen der “File View List”

Controls related to the File View

The following controls must be placed below the file view:

A text field for editing the file name.

A drop down box for selecting the file filter, which updates the file view.
From now the entries of this drop down box are used for updating the file view only. They are no longer related to the preselection feature. Further the entries of this box are type names instead of filter names.

##TRA: Versionsbox und ggf. Diverse andereUI Elemente, abhängig von der jeweiligen Applikation. Soll das auch von den Applikationen selbst erweiterbar sein, wenn neue UI Elemente benötigt werden oder willst Du das auf Anfrage immer einbauen. Automatisch ist natürlich schwierig weil dann schwer sicherzustellen ist, das zusätzliche UI Elemente nicht irgendwor platziert werden, sonder die Usability des Dialogs erhalten bleibt...

Function View

The function view is placed on the right side of the dialog. It can be shown or hidden, so the user can have a simple or a more complex dialog.

##TRA: Heist Verstecken, die “File View List” wird automatisch größer (siehe System FileOpen Dialog Feature)?

This function view provides a generic framework, based on uno components, to be extendable. The function view contains function sets and layout it as tab pages. The reason for that: the functionality of the file open dialog and the template dialog is complex. Its not possible to present all possible actions for a selected file directly to the user. Its usefull to group similar functions to a function set, and provide it on its own tab page. The user can decide, which functionality is important for its work.

##TRA: Was für unterschiedliche Funktionen gibt es denn so? Welche davon sind notwendig und sinnvoll?

The existing features “Preview” and “DocumentProperties” has to be moved to this new concept. New function set as e.g. “FileSearch” can be implemented if they are needed.

##TRA: Würde das z.B. Bedeuten, ich kann eine zusätzliche Ansicht für die “Function View” implementieren, die eine Dateisuche möglich macht, gefundene Dateien auflistet und wenn der Benutzer eine Datei auswählt, diese auch in der “File name” Textfeld auftaucht.

Function Set: Preview

The preview must show a thumbnail view of the currently selected file. If more then one file or if an unsupported file format is selected the preview must be empty.

Because creating of a thumbnail can be very expensive, the preview has to be updated slightly delayed. Otherwise it can make trouble during traveling due to the file view.

Function Set: DocumentProperties

This set shows all properties of the selected file. That can be external properties like e.g. Format, File Name, Data, Time or it can be internal properties like e.g. Author, Version, Description. If more then on file if an unsupported item (file/directory) was selected, the function set must be empty.

Because getting the properties can may be expensive, the function set has to be updated slightly delayed. Otherwise it can make trouble during traveling due to the file view.

Function Set: Preselection

If the user wishes to load the specified file into a specific application module, he must use the special function set provided by the function view of the dialog before he click on the “OK” button.

The function set for preselection provides a list of suitable OOo modules, if the user selects a file inside the file view. Because detection of a file (which is necessary for creating the list) can be very expensive, the list has to be updated slightly delayed. Otherwise it can make trouble during traveling due to the file view.

The preselection algorithm

The list of possible application modules has to be generated inside an acceptable time frame. ##TRA. “...acceptable time frame” laut Tom Gilb ein Major Defect, weil nicht spezifiziert, nicht messbar was damit gemeint ist und ob die nicht nachprüfbar, ob die Spezifikation erfüllt wurde ## A deep detection (which base on an open file stream) can be very expensive. A flat detection (based on the URL and some configuration data only) has to be preferred. But such flat detection can fail – e.g. if the extension is wrong or missing. The following algorithm has to be used:

First the location of the selected file and its size (if possible) has to be specified.

If the file resides on the local machine and its size isn't to big (what does that mean in real must be specified separately!) a deep detection can be started. In such cases a deep detection doesn't need so much time, but can improve the results.

##TRA: Wie willst Du rausfinden, ob eine Datei lokal ist?

Otherwise a flat detection must be used only.

If detection was successfully, the presented list of application modules will be restricted to really possible ones. That decrease the chance that loading of the selected file into the selected application will fail.

If detection failed (e.g. because the extension was missing but the file resides on a remote file system or its size was to high) the complete list of all application modules must be presented. But then there is no guarantee, that the selected application module can handle the selected file realy. The following load request can fail.

In general the default OOo module must be placed as first of the provided module list. So the user can see, what will happen if he does not use preselection.

Leaving the dialog with “OK”

Leaving the dialog via “OK” button must open the selected file (represented by the URL inside the edit field only) into the default application registered for this file type. Its not useful to use the current open OOo module as default here – because the user will be confused if he uses the file open dialog in combination with different active OOo modules or he tries to open a document by using a system file explorer.

String list

Item	English	German	Comments
Button	~Delete	~Entfernen	

Tab Order

<If necessary Describe or visualize the tabbing order. The description of the tab order has to contain which control has the initial focus.>

Key Board Shortcuts

<Key Board shortcuts used in dialogs have to be listed in a table with a small description.>

G11n

<Globalization related topics should be stated here. A globalization related topic is for example when a feature needs to be enhanced to satisfy special regional needs.>

Error Conditions

Currently there is a filter selection dialog in case the content type of a loaded file couldn't be detected. But this indicates more an error inside the type/filter detection as an error forced by the user. The detection has to be improved here and the filter selection dialog has to be removed.

Migration

<Any migration issues have to be stated here. For example how can users migrate from one version of a database to another?>

Future Tasks

<If there are features which couldn't be implemented but have to be implemented in the future. State these in here with a description why the feature couldn't be implemented right now.>

Notes

TRA-1: Angenommen wir werden den System FileOpen/Save Dialog los, was ist mit dem System FolderPicker? Nur den zu behalten und damit die entsprechende Option in Tools->Options würde aus meiner Sicht keinen Sinn machen.

MMP-1: What about File SaveAs Dialog?

References

Spec: “Performance of loading config data for type/filter detection”

10	OpenOffice.org 2.0

File Open Dialog	10

http://specs.openoffice.org/appwide/fileIO/FileOpenDialog.sxw

Matthias Müller-Prove

2004-02-18T13:23:01