Package org.eclipse.debug.ui

# Interface IBreakpointOrganizerDelegate

All Known Subinterfaces:
  `IBreakpointOrganizerDelegateExtension`

All Known Implementing Classes:
  `AbstractBreakpointOrganizerDelegate`

public interface IBreakpointOrganizerDelegate
A breakpoint organizer is used to categorize breakpoints and provides change notification when categorization has changed. Categories are represented as arbitrary adaptable objects. For example, projects could be used to categorize breakpoints. Images and labels for categories are generated via workbench adapters.

Organizers may optionally support breakpoint recategorization.

Following is example plug-in XML for contributing a breakpoint organizer.

     <extension point="org.eclipse.debug.ui.breakpointOrganizers">
            <breakpointOrganizer
                    class="com.example.BreakpointOrganizer"
          id="com.example.BreakpointOrganizer"
          label="Example Organizer"
          icon="icons/full/obj16/example_org.png"/>
     </extension>

The attributes are specified as follows:

- `class` Fully qualified name of a Java class that implements `IBreakpointOrganizerDelegate`.
- `id` Unique identifier for this breakpoint organizer.
- `label` Label for this organizer which is suitable for presentation to the user.
- `icon` Optional path to an icon which can be shown for this organizer

Clients contributing a breakpoint organizer are intended to implement this interface.

Since:
  3.1

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`P_CATEGORY_CHANGED`
Change event id when a category's breakpoints have changed.

## Method Summary

Modifier and Type
Method
Description
`void`
`addBreakpoint(IBreakpoint breakpoint, IAdaptable category)`
Adds the specified breakpoint to the given category.
`void`
`addPropertyChangeListener(IPropertyChangeListener listener)`
Adds the specified listener.
`boolean`
`canAdd(IBreakpoint breakpoint, IAdaptable category)`
Returns whether the given breakpoint can be categorized in the specified category.
`boolean`
`canRemove(IBreakpoint breakpoint, IAdaptable category)`
Returns whether the given breakpoint can be removed from the given category.
`void`
`dispose()`
Disposes this breakpoint organizer.
`IAdaptable[]`
`getCategories()`
Returns all categories managed by this organizer, or `null`.
`IAdaptable[]`
`getCategories(IBreakpoint breakpoint)`
Returns objects representing the categories of the specified breakpoint or `null` if this organizer cannot classify the breakpoint.
`void`
`removeBreakpoint(IBreakpoint breakpoint, IAdaptable category)`
Removes the specified breakpoint from the given category.
`void`
`removePropertyChangeListener(IPropertyChangeListener listener)`
Removes the specified listener.

## Field Details

### P_CATEGORY_CHANGED

static final String P_CATEGORY_CHANGED
Change event id when a category's breakpoints have changed. The `oldValue` of the `PropertyChangeEvent` will be the category that has changed, and the source of the event will the the breakpoint organizer. Breakpoints in the category will be recategorized when this event is fired.

See Also:
  - `IPropertyChangeListener`

## Method Details

### getCategories

IAdaptable[] getCategories(IBreakpoint breakpoint)
Returns objects representing the categories of the specified breakpoint or `null` if this organizer cannot classify the breakpoint. Categories must return `true` when sent the message `equals(Object)` with an equivalent category as an argument.

Parameters:
  `breakpoint` - breakpoint to classify
Returns:
  categories of the given breakpoint or `null`

### addPropertyChangeListener

void addPropertyChangeListener(IPropertyChangeListener listener)
Adds the specified listener. Has no effect if an identical listener is already registered.

Parameters:
  `listener` - listener to add

### removePropertyChangeListener

void removePropertyChangeListener(IPropertyChangeListener listener)
Removes the specified listener. Has no effect if an identical listener is not already registered.

Parameters:
  `listener` - listener to remove

### addBreakpoint

void addBreakpoint(IBreakpoint breakpoint, IAdaptable category)
Adds the specified breakpoint to the given category. Only called if `canAdd(...)` returns `true` for the given breakpoint and category.

Parameters:
  `breakpoint` - breakpoint to recategorize
  `category` - the breakpoint's new category

### removeBreakpoint

void removeBreakpoint(IBreakpoint breakpoint, IAdaptable category)
Removes the specified breakpoint from the given category. Only called if `canRemove(...)` returns `true` for the given breakpoint and category.

Parameters:
  `breakpoint` - breakpoint to recategorize
  `category` - the category the breakpoint is remove from

### canAdd

boolean canAdd(IBreakpoint breakpoint, IAdaptable category)
Returns whether the given breakpoint can be categorized in the specified category.

Parameters:
  `breakpoint` - breakpoint to recatogorize
  `category` - the category to add the breakpoint to
Returns:
  whether the given breakpoint can be categorized in the specified category

### canRemove

boolean canRemove(IBreakpoint breakpoint, IAdaptable category)
Returns whether the given breakpoint can be removed from the given category.

Parameters:
  `breakpoint` - breakpoint to recategorize
  `category` - the category to remove the breakpoint from
Returns:
  whether the given breakpoint can be removed from the given category

### getCategories

IAdaptable[] getCategories()
Returns all categories managed by this organizer, or `null`. When `null` is returned, the breakpoints view only displays categories that contain breakpoints. When a collection of categories is returned the breakpoints will display all of the categories, some of which may be empty.

Returns:
  all categories managed by this organizer, or `null`

### dispose

void dispose()
Disposes this breakpoint organizer.