// rest of javadoc inherited
  public DeviceDefinitionPoliciesSection(Composite parent, int style, DeviceEditorContext context) {
    super(parent, style);

    setMinWidth(DEFAULT_MIN_WIDTH);
    this.context = context;
    DeviceRepositoryAccessorManager dram = context.getDeviceRepositoryAccessorManager();

    Section section = SectionFactory.createSection(this, SWT.NONE, TITLE, MESSAGE);
    GridData data = new GridData(GridData.FILL_BOTH);
    section.setLayoutData(data);

    categoriesComposite = new CategoriesComposite(section, CategoriesComposite.POLICIES, dram);
    section.setClient(categoriesComposite);

    // Set up a focus listener for maintaining global actions.
    categoriesComposite
        .getTreeViewer()
        .getControl()
        .addFocusListener(
            new FocusListener() {
              public void focusGained(FocusEvent event) {
                IActionBars actionBars =
                    DeviceDefinitionPoliciesSection.this.context.getActionBars();
                origDelete = actionBars.getGlobalActionHandler(IWorkbenchActionConstants.DELETE);
                actionBars.setGlobalActionHandler(
                    IWorkbenchActionConstants.DELETE, deletePolicyAction);
                actionBars.updateActionBars();
              }

              public void focusLost(FocusEvent event) {
                IActionBars actionBars =
                    DeviceDefinitionPoliciesSection.this.context.getActionBars();
                actionBars.setGlobalActionHandler(IWorkbenchActionConstants.DELETE, origDelete);
                actionBars.updateActionBars();
              }
            });

    // We use the selection manager for event handling because it allows
    // use to use filters which we need for resolving category elements
    // for use with ODOMAction enablement.
    categoriesComposite.addSelectionChangedListener(context.getODOMSelectionManager());

    data = new GridData(GridData.FILL_BOTH);
    categoriesComposite.setLayoutData(data);

    createActions();
    createContextMenu();

    createButtons(this, SWT.NONE);
  }
 /** Add a SelectionChange listener that is notified when policy selection changes. */
 public void addSelectionChangedListener(ISelectionChangedListener listener) {
   categoriesComposite.addSelectionChangedListener(listener);
 }