# Working Sets

###### Identifier:

org.eclipse.ui.workingSets

###### Since:

2.0

###### Description:

This extension point is used to define a working set wizard page. Working sets contain a number of elements of type IAdaptable and can be used to group elements for presentation to the user or for operations on a set of elements. A working set wizard page is used to create and edit working sets that contain elements of a specific type. An updater class is capable of monitoring for changes in resources contained within working sets and an element adapter class is able to transform resources prior to inclusion in the working set.

To select a working set the user is presented with a list of working sets that exist in the workbench. From that list a working set can be selected and edited using one of the wizard pages defined using this extension point. An existing working set is always edited with the wizard page that was used to create it or with the default resource based working set page if the original page is not available.

A new working set can be defined by the user from the same working set selection dialog. When a new working set is defined, the plugin provided wizard page is preceded by a page listing all available working set types. This list is made up of the name attribute values of each working set extension.

Views provide a user interface to open the working set selection dialog and must store the selected working set.

The resource navigator uses a working set to filter elements from the navigator view. Only parents and children of working set elements are shown in the view, in addition to the working set elements themselves.

###### Configuration Markup:

<!ELEMENT extension (workingSet*)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT workingSet (EMPTY*)>

<!ATTLIST workingSet

id CDATA #REQUIRED

name CDATA #REQUIRED

description CDATA #IMPLIED

icon CDATA #IMPLIED

pageClass CDATA #IMPLIED

updaterClass CDATA #IMPLIED

elementAdapterClass CDATA #IMPLIED>

- id - a unique name that can be used to identify this working set dialog.
- name - the name of the element type that will be displayed and edited by the working set page. This should be a descriptive name like "Resource" or "Java Element".
- description - a brief description of this working set type. This should likely include the general kinds of elements that can be added to the set. Added in 3.4.
- icon - the relative path of an image that will be displayed in the working set type list on the first page of the working set creation wizard as well as in the working set selection dialog.
- pageClass - the fully qualified name of a Java class implementing `org.eclipse.ui.dialogs.IWorkingSetPage`.
- updaterClass - the fully qualified name of a Java class implementing `org.eclipse.ui.IWorkingSetUpdater`. Use of this attribute will not cause eager plug-in activation. This class will only be instantiated when the declaring bundle is otherwise activated.
- elementAdapterClass - the fully qualified name of a Java class implementing `org.eclipse.ui.IWorkingSetElementAdapter`. Use of this attribute will not cause eager plug-in activation. This class will only be instantiated when the declaring bundle is otherwise activated. Added in 3.3.

###### Examples:

Following is an example of how the resource working set dialog extension is defined to display and edit generic IResource elements. Additionally, it supplies an updaterClass that can handle removal and addition of resources on the fly as well as an elementAdapterClass that is capable of adapting objects to IResources.

        <extension point="org.eclipse.ui.workingSets">
            <workingSet
                id="org.eclipse.ui.resourceWorkingSetPage"
                name="Resource"
                description="Contains basic resources (files, folders, and projects)"
                icon="icons/resworkset.gif"
                pageClass="org.eclipse.ui.internal.dialogs.ResourceWorkingSetPage"
                updaterClass="org.eclipse.ui.internal.workingsets.ResourceWorkingSetUpdater"
                elementAdapterClass="org.eclipse.ui.internal.workingsets.ResourceWorkingSetElementAdapter">
            </workingSet>
        </extension>

###### API Information:

The value of the pageClass attribute must represent a class that implements the `org.eclipse.ui.dialogs.IWorkingSetPage` interface.

###### Supplied Implementation:

The workbench provides a working set wizard page for creating and editing resource based working sets.

Copyright (c) 2002, 2006 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html