PackageManager Graphical User Interface

OpenOffice.org 2.0

Document - ID	Specification Owner	Last Change	Status
	Daniel Bölzle (db93792)	4/3/08	final
Conforms to	
Applies to	all
Task ID(s)	i20304 - Q-PCD Programmability: Live Deployment and GUI; 115885 – PackageManager GUI i21218 - Q-PCD Macro Security: UNO packages i32582 – MMP-1 i44381 – JSC
Category	Feature

Abstract

The PackageManager GUI is the client frontend to import, export and remove packages, i.e. extensions to an Office installation, e.g. UNO components or extensions coming with a single document, e.g. Scripts.

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

	Name	E-mail Address
User Experience	Bettina Haberer /BH	Bettina.Haberer@sun.com,
Development	Daniel Bölzle /DBO	boelzle@sun.com,
Quality Assurance	Olaf Felka /OF	Olaf.Felka@sun.com,
Documentation	Uwe Fischer /UF	Uwe.Fischer@sun.com

Approved for Implementation

	Approved by	Date
User Experience	Bettina Haberer /BH	05/19/2004
Development	Daniel Bölzle /DBO	05/19/2004
Quality Assurance	Olaf Felka /OF	05/19/2004
Documentation	Uwe Fischer /UF	05/19/2004
String Review	Elizabeth Matthis /EM	24.05.04

Document Change History

Rev. Level	Change	Initials	Date
1.0	initial draft	DBO	03/24/2004
1.1	adopting to first protoptype	DBO	04/16/2004
1.2	error messages, new snapshots, revision	BH, DBO	04/28/2004
1.3	minor	BH, DBO	05/11/2004
1.4	minor	DBO	05/24/2004
1.5	minor change, added new string		
1.6	minor string changes, already approved by EM	DBO	07/07/2004
	new note/issue MMP-1: removed separators for Package Manager menu item new future issue MMP-2	MMP	8/4/04
1.7	Extend export file picker with checkbox for "Automatic file name extension" (figure 7,8) and exchange outdated mockup (figure 9) with screenshot of current tools menu integration	JSC	3/20/06
1.8	Added reference to Package Manager Renaming specification in paragraph References	JL	2006-09-29
1.9	Corrected that the Extension Manager dialog is non-modal and not modal	JL	2007-04-07
1.10	Added references to enhancements and new features	JSK	2007-07-20
1.11	Added “Display Name of Extensions”	JL	2007-11-11
1.12	Added: “Preventing Installation on wrong platform	JL	2008-04-03

Contents

Glossary	1

1	Motivation	1

2	User Scenarios	1

3	Goals	1

4	Requirements and Dependencies	1

4.1	Requirements	1

4.2	Technical Dependencies	2

5	Competitive Analyses	2

6	Detailed Specification	2

6.1	The Extension Manager Dialog	2

6.2	Display Names of Extensions	3

6.3	Add...	4

6.4	Remove	5

6.5	Enable (if package is disabled, or status is unknown)	6

6.6	Disable (if package is enabled, or status is unknown)	7

6.7	Context menu	7

6.8	Export...	8

6.9	Location of the Package Manager	9

6.10	Icons	10

6.11	Showing process	11

6.12	Description in the Package Manager	12

6.13	Enhancing the Tip Help of an Extension	14

6.14	Error Messages	15

6.15	Warning before starting an action with a shared extension	17

6.16	Preventing Installation on wrong Platform	19

6.17	G11n	19

6.18	Error Conditions	19

6.19	Migration	19

7	Future Tasks	19

8	Notes	19

9	References	19

Glossary

Term	Description
Package	A package denotes a deployable item for an Office installation as well as for a document.
PackageManager	The PackageManager denotes the functionality to add, remove, enable, disable and export package(s).

Motivation

Office extensions come in different flavors, e.g. a UNO component (piece of software) or a menu entry (configuration data) or a script (e.g. StarBasic). Generically, those extensions are called packages.
There is the need for a single entry point for all kinds of packages, so the user knows which packages are installed and how to remove them, i.e. the PackageManager. In addition, the user might want to deactivate parts of an imported package, e.g. for security reasons.

User Scenarios

The user wants to add a package into its own Office installation's user layer.

The user wants to add a package into an open document, meaning that the package will be saved in that document and activated when the document is loaded.

The user wants to remove a previously added package from its own Office installation's user layer.

The user wants to disable a previously added package (user layer), e.g. for security reasons. The package is still present in its user layer, but not active.

The user wants to enable a previously disabled package of its user layer.

The user wants to disable a package inside an open document, e.g. for security reasons. The package is still present in that document and, if the package was disabled, it keeps disabled when the document is loaded again.

The user wants to know what packages are installed in its Office installation's user and shared layer as well as installed packages inside open documents.

Goals

The goal is to provide a graphical user interface to manage packages in the mentioned contexts, i.e. the user and office installation layers of an Office installation as well as packages in open documents.

Requirements and Dependencies

Requirements

[taken from Q-PCD: http://tools.openoffice.org/releases/q-concept.html#4.1.4.Programmability]
...

Currently users have to shut down a running office process before running the pkgchk deployment tool adding or removing packages. It may be desirable that users can deploy packages while running an office process and trigger removal of existing packages. Moreover, the currently used pkgchk deployment tool is a command line tool. If deployment can be performed while running the office process, a proper user interface is nice, too (e.g. in “Tools” menu bar).

...

Technical Dependencies

The PackageManager GUI as well as other PackageManager clients, e.g. the command line tool unopkg, is dependent on the PackageManager API being implemented.

Competitive Analyses

There is different software on the market that deals with extensions. One may see any Operation System installer, e.g. the Windows Add&Remove Programs Dialog or the RedHat package manager (rpm) and its front-ends (e.g. gnome rpm) as such.
Coming to specific applications, you can have a look at Mozilla plugins and themes, how they are added/removed/managed by the Mozilla application.

Detailed Specification

The Extension Manager Dialog

In the following paragraph, a non-modal GUI dialog is shown that catches all mentioned user scenarios. In general, the dialog shows up a treelistbox listing all available packages, related to the context in which they reside, e.g. the User Installation, the Office Installation layer, or open documents.

Figure 1

Item	English	German	Comments
dialog title	Package Manager	Package Manager	title of whole dialog; “Package” is a technical term that should not be translated in German and possibly not in other languages either, but the l10n team should decide on a per language basis.
fixed text	Browse packages	Packages durchsuchen	
button/context menu	~Add...	~Hinzufügen...	adding a package
button/context menu	~Remove	~Entfernen	removing a package
button/context menu	~Enable	~Aktivieren	activating a package
button/context menu	~Disable	~Deaktivieren	deactivating a package
button/context menu	E~xport...	E~xportieren...	exporting one or more packages
button (default)	Close	Schließen	closing the dialog
button	Help	Hilfe	help button
Listbox content	My Packages	Meine Packages	top-level node of treelistbox denoting the user installation layer
Listbox content	%PRODUCTNAME Packages	%PRODUCTNAME Packages	top-level node of treelistbox denoting the office installation layer (not modifyable)
Column header	Package	Package	column header of treelistbox
Column header	Status	Status	column header of treelistbox (-> enabled, disabled, unknown)

Display Names of Extensions

An extension may have a display name. This is a name which the developer defines in the descripion.xml. This name is localized. That is, the extension may provide the display names in multiple languages. The Extension Manager will choose the language which matches most closely the locale of the office. For details about how the display named is defined and how the Extension Manager chooses the display name dependent on the locale refer to the Developer's Guide (chapter Extensions).

If no display name is provided then the file name of Extension will be displayed.

Add...

The user selects the user installation entry or an open document, i.e. a top-level node of the tree-list. Then she clicks Add.. Then a message box may appear (see Error Messages, Warning before starting an action with a shared extension). If this happens and the user presses the Ok button or the warning does not appear at all then a File-Open dialog appears for package selection. Selection of several packages is possible by multiselection. After he has selected one or more packages, the package(s) will be copied into the specific layer and enabled (registered). This process will pop up a modal status box showing progress.
If the package has been correctly added, the previously disabled Ok button in the status column can be clicked and the package has been added and will appear in the treelistbox.
If the user cancels the action, a cleanup process will be triggered and the status box will be closed.

Figure 2

Item	English	German	Comments
Dialog label	Add Package(s)...	Package(s) hinzufügen...	title for file-chooser dialog adding one or more packages

Remove

The user can remove packages belonging to the user or open documents nodes. Thus this button is enabled, if a direct sub-node of user or open documents is selected. Upon removal, a status box will appear to show progress.

Figure 3

Item	English	German	Comments
Status column entry	Enabled	aktiviert	text item of right column of treelistbox whether a specific package is active or not
Status column entry	Disabled	deaktiviert	text item of right column of treelistbox whether a specific package is active or not
Status column entry	Unknown	unbekannt	text item of right column of treelistbox: status is unknown

Enable (if package is disabled, or status is unknown)

The user can select one or more first-level package(s) (e.g. cli_testobj_bridge.uno.dll), and enable that package(s), if it is disabled. If they are already enabled, then this button is disabled. Upon enabling package(s), a progress box will show up. In case of package bundles enabling also applies for all the packages within the top-level package.

Figure 5 Figure 4

Disable (if package is enabled, or status is unknown)

the user can select one or more first-level package(s) and disable that package(s), if it is enabled. If they are already disabled, then this button is disabled. Upon enabling package(s), a progress box will show up. In case of package bundles disabling also applies for all the packages within that package bundle.

Context menu

Additionally besides the use of the buttons in the Package Manager dialog a context menu is available within the listbox at the treelist entries.

Item	English	German	Comments
Context menu entry	~Add...	~Hinzufügen...	available at the top-level node of the tree-list
Context menu entry	~Remove	~Entfernen	available at the direct sub-level node of the top-level node
Context menu entry	~Enable	~Aktivieren	available at the first level package(s)
Context menu entry	~Disable	~Deaktivieren	available at the first level package(s)
Context menu entry	E~xport...	E~xportieren...	available at the each package(s)

Export...

The user can select one or more package(s), even packages of package bundles (e.g. myPackage.uno.pkg), and export that package. If multiple packages are to be exported, a folder picker will occur.

Figure 6
Figure 7

Item	English	German	Comments
Dialog label	Export Package...	Package exportieren...	title for file-chooser dialog exporting a single package

Figure 8

Item	English	German	Comments
Dialog label	Export Packages to...	Packages exportieren nach...	title for folder-chooser dialog exporting multiple packages

Location of the Package Manager

The following figure shows the location of the Package Manager, which can be accessed as a tool in the Tools menu.

Figure 9 mockup

Tools

...

---------------

Macros	>

Package Manager...	MMP-1 removed separators

XML Filter Settings...

Customize...	was “Configure...”; not for Start Module

Options...

Item	English	German	Comments
Menu Item label	~Package Manager...	~Package Manager...	label of menu item raising the Package Manager dialog

Icons

The following icons are used within the Package Manager GUI.

Harddisk / user installation / office installation	
Puzzle / general default package	
Puzzlefolder / package bundle	
Modulfolder / basic script library	
Dialog / dialog library	
XML file / configuration schema	
UNO dynamic library component	
UNO Java component	
UNO type libraries	
UNO Java type libraries	

Showing process

During the several processes a message box like shown in figure 10 comes up. The dialog label and the status text is visible according the started process.

Adding OOo Report11.zip Figure 10

String list

Item	English	German	Comments
Dialog label	Adding Package(s)	Package(s) werden hinzugefügt	the process of adding one or more packages
Dialog label	Removing Package(s)	Package(s) werden entfernt	the process of removing one or more packages
Dialog label	Enabling Package(s)	Package(s) werden aktiviert	the process of activating one or more packages
Dialog label	Disabling Package(s)	Package(s) werden deaktiviert	the process of deactivating one or more packages
Dialog label	Exporting Package(s)	Package(s) werden exportiert	the process of exporting one or more packages
string	Copying Package: <name>	Package wird kopiert: <Name>	action text: copying a package
string	Enabling package: <name>	Package wird aktiviert: <Name>	action text: registering a package
string	Disabling package: <name>	Package wird deaktiviert: <Name>	action text: deregistering/revoking a package

Description in the Package Manager

A bubble help shows the description of each content in the listbox of the Package Manager. Available is the information about the package and media type as it it shown in the following figure.

Figure 11

Item	English	German	Comments
string	UNO Dynamic Library Component	UNO Dynamic Library Component	package type,We suggest that you DO NOT TRANSLATE
string	UNO Java Component	UNO Java Component	package type, We suggest that you DO NOT TRANSLATE
string	UNO Python Component	UNO Python Component	package type, We suggest that you DO NOT TRANSLATE
string	UNO RDB Type Library	UNO RDB Type Library	package type, We suggest that you DO NOT TRANSLATE
string	UNO Java Type Library	UNO Java Type Library	package type, We suggest that you DO NOT TRANSLATE
string	Configuration Schema	Konfigurationsschema	
string	Configuration Data	Konfigurationsdaten	
string	%PRODUCTNAME Basic Library	%PRODUCTNAME Basic Bibliothek	package type, DO NOT TRANSLATE “Basic” because it is part of the language name “StarOffice Basic”, for example.
String	%MACROLANG Library	%MACROLANG Bibliothek	DO NOT TRANSLATE “%MACROLANG” it will be replaced at runtime by Java Script or BeanShell or other macro language automatically
string	Dialog Library	Dialog-Bibliothek	package type
string	UNO Package Bundle	UNO Package Bundle	package type for multiple packages bundled in one package (new .uno.pkg format), We suggest that you DO NOT TRANSLATE “package bundle”

Enhancing the Tip Help of an Extension

[Not implemented yet]

Enables to search in the web from within the OpenOffice.org.

The tip help shows the essential function of an extension in one short sentence.

The description of an extension in the tip help should show a short sentence about the essential function about this extension. This needs to become part of the developers guide.

As an issue for a next version is to show only the extension and not further xcu files, dlls etc. hanging under an extension, no further tip help texts are needed as only that one for the extension.

Error Messages

Within the following error box the several error messages get visible according the occuring error. The following figure shows the error box.

Item	English	German	Comments
Text label	The media type could not be detected: <File-URL>	Media-Typ des Package konnte nicht ermittelt werden: <File-URL>	error message
Text label	An error occurred while adding the package: <Name>	Fehler beim Hinzufügen des Package: <Name>	error message
Text label	An error occurred while removing the package: <name>	Fehler beim Entfernen des Package: <Name>	error message
Text label	This package has already been added: <Name>	Package ist bereits vorhanden: <name>	error message
Text label	There is no such package deployed.	Package ist nicht bekannt.	error message
Text label	The library name could not be determined.	Bibliotheks-Name konnte nicht ermittelt werden.	error message, if corrupt Basic or dialog library file
Text label	This library name already exists. Please choose a different name.	Dieser Bibliotheks-Name wird bereits verwendet. Bitte wählen Sie einen anderen Namen.	error message if a Basic or dialog library (of the same name) already exists
Text label	This media-type is not supported: <Media-Type>	Dieser Media-Typ wird nicht unterstützt: <Media-Typ>	error message
Text label	An error occurred while enabling the package: <name>	Fehler beim Aktivieren des Package: <Name>	error message
Text label	An error occurred while disabling the package: <name>	Fehler beim Deaktivieren des Package: <Name>	error message
<eventually more to come>			

Tab Order

Key Board Shortcuts

Del-Key removes a package

Warning before starting an action with a shared extension

Figure 11: The warning box at adding a shared extension.

When users have write access to the directory where the shared extensions are installed then they can also install extensions for all users (e.g. “shared extensions”). They can also perform all other tasks which are also possible with user extensions.

Because there can be running multiple instances of OOo or the Extension Manager at the same time, and all access the same shared data, it is dangerous to modify the shared data. In the worst case this could lead to irrevocably damaging the shared data. As a consequence, OOo or unopkg could behave unpredictably when accessing this data.

Therefore users are notified when they are about to modify the shared data, that is, when they install, remove, disable, enable or update shared extensions (that is, the extension is installed under “OpenOffice.org Extensions”). Please refer to http://specs.openoffice.org/appwide/packagemanager/online_update_for_extensions.odt

for the behavior in case of an update. In all other scenarios an warning box appears when the user presses the respective button, which, of course, must be enabled.

The message box is only displayed the first time the user presses the button during a session. If the same button is pressed again during the same session then the message box will not be displayed. For example, an extension is being installed under “OpenOffice.org Extensions” and no other share extension has been installed before while this office is running. The message box appears and the user either continues or cancels the action. While the office is still running he/she repeats this action. This time the message box will not be displayed. Also the user wants now to disable a previously installed share extension. When pressing the Disable button, the message box appears. But when he/she repeats this action for another shared extensions, then the message box will not appear anymore. Only after a restart of OOo, the message boxes will be displayed again when he respective button is being used for the first time..

The warning box will include an OK-button and a Cancel-button (the focus is on the Cancel button) and the following string:

	English	German	Comment
1	Make sure that no further users are working with the same %PRODUKTNAME, when installing an extensions for all users in a multi user environment.\n\nFor whom do you want to install the extension?		Was 'Before updating a shared extension, make sure that no further instances of %PRODUKTNAME are running.' Appears in case the 'Add...' button is clicked.
2	Make sure that no further users are working with the same %PRODUKTNAME, when changing shared extensions in a multi user environment./nClick 'OK' to remove the extension./nClick 'Cancel' to stop removing the extension.		Appears in case the 'Remove' button is clicked.
3	Make sure that no further users are working with the same %PRODUKTNAME, when changing shared extensions in a multi user environment./nClick 'OK' to enable the extension./nClick 'Cancel' to stop enabling the extension.		Appears in case the 'Enable' button is clicked.
4	Make sure that no further users are working with the same %PRODUKTNAME, when changing shared extensions in a multi user environment./nClick 'OK' to disable the extension./nClick 'Cancel' to stop disabling the extension.		Appears in case the 'Disable' button is clicked.
	Make sure that no further users are working with the same %PRODUKTNAME, when changing shared extensions in a multi user environment./nClick 'OK' to update the extensions./nClick 'Cancel' to stop updating the extensions.		Appears at click on 'Install' in the 'extension Updates' dialog, when the 'Updates...' button has been clicked or 'Update' in the context menu of a shared extension has been selected.

Preventing Installation on wrong Platform

Extension can determine one or more target platform. The extension manager will install the extension only on those platforms. On other platforms the installation will be refused and an error message is displayed:

English	Comment
The extension '%NAME' does not work on this computer.	%NAME will be replaced with the display name of the extension.

@Jochen: Please exchange the string above with this one: “The extension '%NAME' does not support this operating system. “ as it makes clear for the user, why the extension is not installed.

For more information refer to the openoffice.org wiki documentation:

http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Target_Platform

G11n

n/a

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>

Migration

n/a

Future Tasks

XSLT filter packages ought to be installable using PackageManager GUI.
It may be sensible asking the user whether she wants to remove a package before actually removing it (additional dialog).

MMP-2: The Package Manager and the XML Filter Settings Dialog could be merged. This reduces the confusion for the user between “XML Filter Packages” and the “Package Manager”. cf. i27312

Notes

Technically, not all error messages can be translated. Therefore I have only specified the most common error messages. I suggest to now translate rather exotic error messages that imply a broken Office.

Two icons (default package and dialog library) will be revised by STS.

MMP-1 Issue high: removed separators for Package Manager menu item.

References

There have been a lot of enhancements to the Extension Manager (formerly known as Package Manager GUI). Find the details here:

Renaming of the Package Manger to “Extension Manager”

http://specs.openoffice.org/appwide/packagemanager/package_manager_renaming.odt

Online update feature

http://specs.openoffice.org/appwide/packagemanager/online_update_for_extensions.odt and

http://specs.openoffice.org/appwide/packagemanager/link_to_extensions_services_openoffice_org.odt

System integration

http://specs.openoffice.org/appwide/packagemanager/extension_system_integration.odt

Extension Identifiers

http://specs.openoffice.org/appwide/packagemanager/extensionidentifiers.odt

Extension versioning

http://specs.openoffice.org/appwide/packagemanager/extensionversion.odt

Extension Dependencies

http://specs.openoffice.org/appwide/packagemanager/extensiondependencies1.odt

Extension options

http://specs.openoffice.org/appwide/packagemanager/options_dialog_for_extensions.odt

PackageManager Graphical User Interface

Page 20

http://specs.openoffice.org/appwide/packagemanager/packagemanager_gui_spec.sxw

Bettina Haberer

2004-03-24T15:19:03

Bettina Haberer