Specification of a Dialog Component

Selection Component

Task ID(s)

110234,110235,110237 links to tasks

Category	Specification Affects

Wizards in general

Abstract

Extracting fields from a big pool of fields is a common task and should therefor be handled in a consistent way over the whole StarOffice application.

i-Team

Specification Owner	Berend Cornelius	Berend.Cornelius@sun.com
Marketing Contact		
User Experience Contact	Christian Jansen	Christian.Jansen@Sun.COM
Development Contact	Berend Cornelius	Berend.Cornelius
Quality Assurance Contact	Marc Schwanz	Marc.schwanz@sun.com
Documentation Contact	Uwe Fischer	Uwe.Fischer@Sun.COM

Approved for Implementation

	Approved by	Date
User Experience		
Development		
Quality Assurance		
Documentation		
String Review	Elizabeth Matthis	03/11/04; had to be done along with Query Wizard specification because these strings appear there.

Document History

Version	Author	Comment
Draft 06/17/03	Berend Cornelius	Initial Draft
Draft 07/16/03	Berend Cornelius	Corrections due to Comments of CJ worked in
Final <Date>		

Contents

Glossary	1

References	1

1	Motivation	1

2	Goals	1

3	Dependencies	1

3.1	Technical Dependencies / Requirements	1

4	Detailed Specification	1

4.1	General Usage	1

4.2	Initialization	3

4.2.1	Parameters to be handlled by the component	3

4.3	Error Conditions	4

5	Notes	4

Glossary

Term	Description
Source Field Pool	The initial pool of fields of which a selection can be made.

References

http://java.sun.com/products/jlf/at/book/Wizards.html

Motivation

In order to present a consistent user interface we should exactly specify how commonly used dialog components are to look and function. This specification describes the exact look of a field selection component that is frequently used over the StarOffice application.

Goals

The goal is to create a dialog component that allows the user to make a selection of fields and rearrange the order of the selected fields afterwards. The appropriate usability is achieved by allowing the user to select or deselect one or many fields out of the source field pool.

Dependencies

Technical Dependencies / Requirements

This design is platform independent. As we aim to create a consistent user interface over the whole applications we should adapt the user interface to this specification. This specification is relevant for the following use cases (list is likely to be incomplete):

“Copy Paste Table” dialog in the database beamer. To access this dialog select a database table, context menu item “Copy”; select another table in another datasource; context menu “Paste” -> dialog pops up.

Initial dialog page in the form Autopilot and Report Autopilot.

Field selection dialog pages for the form controls “Listbox” ,“Combo box” and “Table Control”.

The future Query autopilot will most probably contain such a component too.

Detailed Specification

General Usage

The component is initialized by passing over an array of fields of which the selection can be made (Source Field pool). The first listbox in Illustration 1 is filled up with this pool. It is to be specified if the Target Listbox” is to be emptied (Emptymode) or if the list is to be appended (Appendmode).

Illustration 1Measurements on a real life Component

The controls on this image are named as follows:

“Source Listbox”: The listbox on the left hand side where the field data are merged into when the component is initialized. A doubleclick on this listbox will trigger the same functionality like the “Select OneItem Button”. It allows Multiselection.

“Target Listbox”: The listbox on the right hand side where the selected field items are merged into when one of the buttons in between the listboxes is acitvated or the source listbox is doubleclicked. A doubleclick on this listbox will trigger the same functionality like the “Deselect OneItem Button”. It allows Multiselection

“SelectOneItem Button”: This button is enabled only when a selection in the “Source Listbox” is made. It moves the selected item(s) from the “Source Listbox” and inserts it to the position after the last currently selected Item. If no item is selected it will be append.

“DeselectOneItem button”: This button is enabled only when a selection in the “Source Listbox” is made. It moves the selected item in the “Target Listbox” and appends it to the “Source Listbox” on activation. If the selected item does not originate from the current list in the “Source Listbox” it is just removed from the “Target Listbox”.

“SelectAllItems Button”: This button is enabled as long as the “Source listbox” contains items. It appends all items of the “Source Listbox” to the existing items of the “Target Listbox”.

“DeselectallItems button”: This button restores the original List in the “Source ListBox” and removes all items from the “Target Listbox”. It is enabled as long as the “Target Listbox” contains items. If the selected items do not originate from the current list in the “Source Listbox” they are just removed from the “Target Listbox”.

“MoveUp Button”: This button moves one selected item in the “Target Listbox” one position further up. It is disabled when no item is selected or the selected item is already at the top position. If more than one item is selected in the “Target ListBox” it is disabled. too.

“MoveDown Button”: This button moves one selected item in the “Target Listbox” one position further down. It is disabled when no item is selected or the selected item is already at the bottom position.
If more than one item is selected in the “Target ListBox” it is disabled. too

Unlike in Illustration 1 all buttons are to be equipped with images that display an arrow. Buttonlabels are inadequate because they demand too much space in width. The arrows to change the order in the “Target Listbox” should substantially differ from the ones between the “Source Listbox” and the “Target Listbox” because they represent a different functionality.

The “Next” button on the respective dialog page must be toggled when the list in the “Target Listbox” contains content or when the content is completely removed.

The Component must provide an interface to broadcast calls to a delivered Object that implements this interface: The interface has to support the following methods:

public interface XFieldSelectionActions {

public void shiftFromLeftToRight(String[] Selitem );

public void shiftFromRightToLeft(String[] Selitem );

public void moveItemUp(String Selitem);

public void moveItemDown(String Selitem);

}

The use of labels as seen in Illustration 1 is not compulsory.

The String parameter “Item” describe the selected Item(s) before the according method of the component is executed.

In this way a complete both a capsulation of the component and an external handling after the internal actions of the component is provided.

Initialization

The component can be extended by any time by additional constructors that can be overloaded.

Parameters to be handlled by the component

The dialog component as specified in the class UnoDialogs in the wizards project. If the dialog component contains a commandbutton named “cmdNext” this is toggled.

Source List

a Flag that specifies whether the “Source Listbox” is to be emptied or the existing List appended by the new SourceList

Initial Tabindex

Initial HelpID

Position of the ComponentHeight of the component in MAPs

Width of the component. As the width of all the buttons is fixed the width of the listboxes is adapted accordinglyInitialization with “Single Item Move Buttons” only

Compared to the constructor in it will also supply a boolean parameter that specifies that “Select All” and “Deselect All” Buttons are not included. The remaining “SelectOneItem Button” and “DeselectOneItem Button” will be vertically aligned to the “MoveUp Buttons” and “MoveDown Buttons”.

General Resources

Basically it should be possible to overload the component with additional constructors that retrieve different resources because the following ones might not be accurate enough for the needed purpose.

String list

Item	English	German	Comments
Label	~Available fields	~Verfügbare Felder	
Accessible Name Add field Füge Feld hinzu Accessible Name Add all fields Füge alle Felder hinzu Accessible Name Remove field Entferne Feld Accessible Name Remove all fields Entferne alle Felder Accessible Name Move field up Feld nach oben bewegen Accessible Name Move field down Feld nach unten bewegen	Resources to be used by a screenreader for accessibility purposes

Tab Order

To calculate the tab order the initial Index “InitTabIndex” has to be passed over on initializing the component. The tab orders for the other controls is then calculated as follows:

Controls	Tabindex
“Source Listbox” Label	InitTabIndex
“Source Listbox”	InitTabIndex + 1
“SelectOneItem Button”	InitTabIndex + 2
“SelectAllItems Button”	InitTabIndex + 3
DeselectOneItem button”	InitTabIndex + 4
“DeselectallItems button”	InitTabIndex + 5
“Target Listbox” Label	InitTabIndex + 6
“Target Listbox”	InitTabIndex + 7
“MoveUp Button”	InitTabIndex + 8
“Move Down Button”	InitTabIndex + 9

Key Board Shortcuts

It is to be discussed if keyboard short cuts should be assigned automatically. Otherwise they are to be used according to the ampersands in the String list.

Error Conditions

Errors are to be passed over to the calling method. Future TasksFor a future task it would be a further improvement of this task if the listboxes supported drag'n drop

Notes

This component can be extended by anytime by overloading own constructors. It might be that there are similar use cases in the Office application that this specification cannot be applied to by 100 %. Anyway this specification should be applied as far as possible.

It should be discussed whether it makes sense to provide an additional parameter that represents the command button “Next” which is toggled in coherence with the “Target Listbox”.

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

Dialog Field Selection Component

Page 1

http://dba.openoffice.org/specifications/DialogComponent_FieldSelection.sxw

Berend Cornelius

2003-06-12T17:11:31

Elizabeth Matthis