Redesign of Tools/Configure dialog

OpenOffice.org 2.0

Document - ID	Specification Owner	Last Change	Status
	Tomas O'Connor	10/29/03	Draft
Conforms to	
Applies to	Tools/Configure dialog of all OpenOffice.org applications
Task ID(s)	20068,20022,21879,21883
Category	Feature

Abstract

This specification outlines the new design of the Tools/Configure dialog for OpenOffice.org 2.0.

i-Team Members

	Name	E-mail Address
Specification Owner	Tomas O'Connor/TOC	toconnor@openoffice.org
User Experience	Christian Jansen/CJ	cj@openoffice.org
Development	Tomas O Connor/TOC Oliver Specht Carsten Driesner	toconnor@openoffice.org os@openoffice.org cd@openoffice.org
Quality Assurance	Thorsten Martens	thorsten.martens@sun.com
Documentation	Uwe Fischer	uwe.fischer@sun.com

Approved for Implementation

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

Document Change History

Rev. Level	Change	Initials	Date
0.1	First draft of specification	TOC	24/09/03
0.2	Add analysis of competitor product	TOC	20/10/03
0.3	Add ids of relevent IssueZilla issues	TOC	29/10/03
0.4	Update with comments from Uwe Fischer	TOC	31/10/03

Contents

Glossary	1

1	Motivation	1

2	Goals	1

3	Requirements and Dependencies	2

3.1	Requirements	2

3.2	Technical Dependencies	6

4	User Scenarios	7

5	Competitive Analyses	8

5.1	How assignment is done in our main competitors product	8

5.2	Observations about competitive product	9

5.3	Assignment before Recording	9

6	Detailed Specification	10

6.1	Error Conditions	10

7	Future Tasks	11

8	Legal Issues	11

9	Notes	11

10	References	11

Glossary

Term	Description
Builtin function	Function implemented internally by OpenOffice.org
Macro	A piece of code that can be written, tested, and executed from within the Basic IDE.
Assignment	The association of a builtin function, script or macro with a menu item, key combination, toolbar icon or event.
Scripting Framework	A framework provided by OpenOffice.org for the execution of code written in different languages such as Basic, Java, JavaScript, BeanShell and Python
Script	A piece of code that can be executed by the Scripting Framework

Motivation

A number of problems have been identified with the usability of the Tools/Configure dialog. Also scripts available for execution via the Scripting Framework need to be presented to the user in the Tools/Configure dialog.

Goals

The goals of redesigning the Tools/Configure dialog are:

Simplify and improve the look and feel of the Tools/Configure dialog.

Reduce the number of clicks required to create assignments in the Tools/Configure dialog.

Add support for creating assignments to scripts supported by the Scripting Framework.

All of the functionality of the Tools/Configure dialog must be keyboard accessible.

Requirements and Dependencies

Requirements

This list summarises some areas of the Tools/Configure dialog that could be improved. This list is not comprehensive.

Menu Tab

The Menu entries section contains too much detail. This makes it difficult to navigate to the menu item in which you are interested eg. Getting to the Tools menu requires scrolling past nearly 200 items before you reach it.

The icon associated with a menu item is not shown.

You cannot assign an accelerator key combination to a menu item.

There is no way to filter the list of Functions to which a user can make an assignment eg. builtin only, by language, author, signed/unsigned?

Only one item in the tab should be highlighted at any one time, otherwise the user will be confused as to which item will respond to a cursor key.

It is not obvious how to rename a menu item – it is done by clicking on the item in the menu entries section of the tab, but users may not realise this.

There are two buttons labelled Reset in the dialog.

The builtin functions are not sorted alphabetically.

Key Tab

The list of Shortcut keys is long and not easy to navigate.

Key assignments that cannot be modified are greyed out, these may be difficult to see for visually impaired users.

There are two Reset buttons in the dialog.

Customize Toolbars dialog

The Add--> and <--Remove buttons are misleading. The Add--> button gives the impression that an item will be removed from the Available buttons tree and added to the Buttons in use list but this does not happen. Similarly the <--Remove button gives the impression that the item removed from the Buttons in use list will reappear in the Available buttons tree.

Events Tab

There are no Load, Save, Reset buttons in this tab.

Builtin functins are not listed in the Events tab.

Events are not listed alphabetically.

General

Basic macros are listed under one root node in the Functions tree, whereas each set of builtin functions is listed under a separate node.

In the case of Basic macros every subroutine in a Basic module is listed as a function to which an assignment can be created. However many of these subroutines will fail when executed as they are not the main entry point in the module. Should they be listed?

The look of the Functions tree in the Menu and Key tabs is different to the Available buttons tree in the Cusomize Toolbars dialog even though they are presenting the same data.

Throughout the tabs different labels are used on buttons which do the same thing eg. Modify/Delete in the Menu tab and Assign/Remove in the Events tab. Another one is using buttons with Move Up/Move Down in one place and buttons with arrow icons in another.

In some tabs the orientation is left to right (Customize Toolbars), whereas in others it is bottom to top(Menu, Key, Event).

If you have made changes in the Customize Toolbars dialog and press Cancel it pops up a message telling you you have unsaved changes and asking you if you wish to discard them. This does not happen with the other tabs.

In some of the tabs there are radio buttons to set the scope of the changes being made (eg. OpenOffice.org or Writer, OpenOffice.org or Document). These are not highlighted clearly enough, they appear in the top right corner of the dialogs and can be missed easily.

The Tools/Configure dialog is not resizable.

IssueZilla enhancement request 21883. Calc functions such as SUM are not available in the Tools/Configure dialog, in particular in the Keyboard tab, it would be useful to be able to assign a commonly used function to a key combination.

Technical Dependencies

The Scripting Framework needs to be available, and StarBasic need to be integrated with the framework.

The Configuration API needs to be implemented.

User Scenarios

This section providers some options for how the user experience of the Tools/Configure dialog could be changed:

Separate customizing menus and selecting macros/builtin functions.

Users could use the New... button to bring up a Function Selector dialog where they could browse to builtin functions or script/macros and select the one they wish to assign. The menu tab would only display the menu hierarchy and would provide buttons to modify its structure.

Illustration 1Tools/Configure/Menu Tab

Change the Menu and Key tabs to use the same layout as the Customize Toolbars dialog

On the left you have a tree view of all of the available functions/macros. This view is a combination of the Category and Function lists presented in the Menu and Keyboard tabs in the Configure dialog. It could be further simplified by three top level nodes: Builtin Functions, OpenOffice.org Macros and Document Macros.

Expanding the Builtin Functions node would give you the list of builtin functions - Application, View, Templates and so on. The two macros nodes would expand to show application level and document level macros. You can select an entry from the tree and then click on the "Add->" button to add your entry to the menu hierarchy.

The menu hierarchy is displayed in a second tree view on the right hand side of the dialog. The ability to rename entries in the menu hierarchy must be simple.

Setting the scope of changes

We could introduce the concept of a "Profile" (per user, per application) with an associated set of menu, key, event assignments and toolbar, statusbar settings. The user could select which Profile they wish to edit in the Configure dialog and the scope of the changes they were making in the dialog would then be understood. The Load/Save/Reset buttons could then be renamed to Load Profile etc.

Organising functions according to the skill of the user

This is a suggestion from Uwe Brauer on the dev@openoffice.org list:

“Would it be possible for the configuration/customization to have say 3 levels.

(*) beginners, only basic function are displayed

(*) advanced half of all functions are displayed

(*) expert all the functions are displayed.

This way the beginners are not going to be overwhelmed and the experts not frustrated.”

Competitive Analyses

How assignment is done in our main competitors product

Customize Dialog

Tools/Customize, or View/Toolbars/Customize opens the Customize dialog

Three tabs Toolbars, Commands, Options

Toolbars tab

Lists all available toolbars and allows user to toggle which toolbars should be shown.

Instant apply, toolbars switched on are immediately displayed in the UI

Toolbars can be created and deleted, and reset to default

No modification of the content of the toolbar, this is done via the Rearrange Commands... button in the Commands tab

Commands tab

Lists Categories of Command available on left, and Commands in each category on right. List includes builtin commands (like OpenOffice.org slots), macros, and also includes AutoText, Fonts, Styles and builtin menus

Commands can be dragged directly from the Commands listbox to toolbars and menus in the UI. Menus and Toolbars can also be reorganised when the Customize window is open.

Scope of changes is done using the "Save in:" combo box

The Rearrange Commands... button opens the Rearrange Commands dialog

Rearrange Commands dialog

Allows user to add, delete, modify and moves items in menus and toolbars

Options tab

Allows user to set display options for menus and toolbars eg. icon size, menu animations etc.

Observations about competitive product

What is does well:

Tools/Customize is more intuitive name than Tools/Configure

Ability to drag'n'drop items to menus and toolbars, gives immediate visual feedback on how the change will look

UI customization of menus and toolbars is seperate from assignment of functions to events

Menus are displayed as they will appear in the application, with icons, hotkeys shown

Detail is hidden, users open a new dialog to reorganize menu or toolbar structure, rather than doing everything in the main tab

What is does not do well:

Keyboard configuration does not have it's own tab, it is available from a Keyboard... button at the bottom of the Customize dialog

Assignment before Recording

The following is an example of a product that allows the user to choose a key assignment and then record a macro for that assignment

Create new Action

Give the Action a name and keyboard shortcut

Press record

Stop recording

Result: Action are listed automatically in the tool window.

Detailed Specification

To be done depending on which of the user scenarios we select.

<String Lists>

<Dialogs providing strings which have to be translated, have to be accompanied by a table containing the strings used in the image (English or German or both) Strings have to include mnemonics and the item for which the string is used. Mnemonics have to be visualized by a ~ - symbol in front of the letter which has to be displayed mnemonic.>

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.>

Error Conditions

<List all error conditions, and the action the system takes about them. If an alert box comes up, which kind is it? Include exact text of messages, or say what points need to be covered. Error Messages need a string list>

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.>

Legal Issues

<If there are any legal issues to deal with the should be described here. Legal issues could be for example we have to redistribute third party technology. This section can also contain links the Legal Review Tool.If the Specification will be published on OpenOffice.org this section has to be removed.>

Notes

References

Scripting Framework project: http://framework.openoffice.org/scripting/

<Required – This paragraphs gives the audience idea of what to aspect from this document. It should be described shortly what problem will be solved.>

The source of software product implementation and change is the I-Team (Implementation Team). I-Teams are typically comprised of people who have skills in the areas of Product Marketing, Development Engineering, Technical Publications, and Test Engineering. I-Teams define the features or set of changes (based on input from SCs, customers, Engineering, or Marketing), plan the implementation project, perform the implementation and testing...

<Required. It makes sense to describe or visualize the tabbing order. The description of the tab order has to contain which control has the initial focus.>

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

<Required - List all error conditions, and the action the system takes about them. If an alert box comes up, which kind is it? Include exact text of messages, or say what points need to be covered. Error Messages need a string list>

<Recommended - 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.>

<Recommended - If there are any legal issues to deal with the should be described here. Legal issues could be for example we have to redistribute third party technology. This section can also contain links the Legal Review Tool.If the Specification will be published on OpenOffice.org this section has to be removed.>

<Recommended - Questions will arise during the writing of the specification. State these in here.>

Required - Give references to related documentation, such as engineering designs, technical specs, and other sources for related units. Also include links to documents that other sections in this spec need to refer to, such as user opinions usability test reports.

<Required - Specification Title>

Page 11

<Required - Path to specification>

2003-09-12T16:14:31