Example usage for org.eclipse.jface.viewers CheckboxTableViewer newCheckList

List of usage examples for org.eclipse.jface.viewers CheckboxTableViewer newCheckList

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers CheckboxTableViewer newCheckList.

Prototype

public static CheckboxTableViewer newCheckList(Composite parent, int style) 

Source Link

Document

Creates a table viewer on a newly-created table control under the given parent.

Usage

From source file:org.eclipse.cdt.make.internal.ui.part.CheckboxTablePart.java

License:Open Source License

@Override
protected StructuredViewer createStructuredViewer(Composite parent, int style) {
    style |= SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER;
    CheckboxTableViewer tableViewer = CheckboxTableViewer.newCheckList(parent, style);
    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override/*  ww  w .j  a  v a  2s  . co m*/
        public void selectionChanged(SelectionChangedEvent e) {
            CheckboxTablePart.this.selectionChanged((IStructuredSelection) e.getSelection());
        }
    });
    tableViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            elementChecked(event.getElement(), event.getChecked());
        }
    });
    return tableViewer;
}

From source file:org.eclipse.cdt.managedbuilder.pkgconfig.properties.PkgConfigPropertyTab.java

License:Open Source License

@Override
public void createControls(Composite parent) {
    super.createControls(parent);
    this.usercomp.setLayout(new GridLayout(1, false));

    this.sashForm = new SashForm(this.usercomp, SWT.NONE);
    this.sashForm.setBackground(this.sashForm.getDisplay().getSystemColor(SWT.COLOR_GRAY));
    this.sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));

    GridLayout layout = new GridLayout(1, false);
    layout.marginHeight = 5;//w  w  w  .ja  v  a 2  s  .co m
    this.sashForm.setLayout(layout);

    final Composite c1 = new Composite(this.sashForm, SWT.NONE);
    GridLayout layout2 = new GridLayout(3, false);
    c1.setLayout(layout2);

    this.pkgCfgViewer = CheckboxTableViewer.newCheckList(c1,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    final Table tbl = this.pkgCfgViewer.getTable();
    tbl.setHeaderVisible(true);
    tbl.setLinesVisible(true);
    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    gd = new GridData(GridData.FILL_BOTH);
    gd.horizontalSpan = 2;
    tbl.setLayoutData(gd);

    createColumns(c1, this.pkgCfgViewer);
    this.pkgCfgViewer.setContentProvider(new ArrayContentProvider());
    this.selectedToolChain = getSelectedToolchain();
    updatePkgConfigBinPath();
    this.pkgCfgViewer.setInput(new DataModelProvider(this.page.getProject().getName()).getEntries());

    this.pkgCfgViewer.addCheckStateListener(new PkgListener());

    this.pkgCfgViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            TableItem itm = tbl.getSelection()[0];
            if (itm.getChecked()) {
                itm.setChecked(false);
            } else {
                itm.setChecked(true);
            }
            handleCheckStateChange();
        }
    });

    // buttons
    Composite compositeButtons = new Composite(c1, SWT.NONE);
    initButtons(compositeButtons, BUTTONS);

    initializePackageStates();
    this.previouslyChecked = new HashSet<Object>(Arrays.asList(getCheckedItems()));
}

From source file:org.eclipse.contribution.visualiser.internal.preference.VisualiserPreferencePage.java

License:Open Source License

/**
 * Creates the widgets for the list of providers.
 *//* w  ww  .  ja  v  a2 s  .c om*/
private void createProvidersArea(Composite mainComposite) {

    Font mainFont = mainComposite.getFont();
    Composite providersComposite = new Composite(mainComposite, SWT.NONE);
    providersComposite.setLayoutData(new GridData(GridData.FILL_BOTH));

    GridLayout providersLayout = new GridLayout();
    providersLayout.marginWidth = 0;
    providersLayout.marginHeight = 0;
    providersComposite.setLayout(providersLayout);
    providersComposite.setFont(mainFont);

    Label providersLabel = new Label(providersComposite, SWT.NONE);
    providersLabel.setText(VisualiserMessages.VisualiserPreferencePage_providersLabel);
    providersLabel.setFont(mainFont);

    // Checkbox table viewer of decorators
    checkboxViewer = CheckboxTableViewer.newCheckList(providersComposite, SWT.SINGLE | SWT.TOP | SWT.BORDER);
    checkboxViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    checkboxViewer.getTable().setFont(providersComposite.getFont());
    checkboxViewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            return ((ProviderDefinition) element).getName();
        }
    });
    checkboxViewer.getTable().setFont(mainFont);

    checkboxViewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {
            // Nothing to do on dispose
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }

        public Object[] getElements(Object inputElement) {
            // Make an entry for each decorator definition
            // return sorter.sort((Object[]) inputElement);
            return (Object[]) inputElement;
        }

    });

    checkboxViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (event.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection sel = (IStructuredSelection) event.getSelection();
                ProviderDefinition definition = (ProviderDefinition) sel.getFirstElement();
                if (definition == null)
                    clearDescription();
                else
                    showDescription(definition);
            }
        }
    });

    checkboxViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            checkboxViewer.setAllChecked(false);
            checkboxViewer.setChecked(event.getElement(), true);
            checkboxViewer.setSelection(new StructuredSelection(event.getElement()), true);

            // reset palette choice in drawing options tab
            ProviderDefinition definition = (ProviderDefinition) event.getElement();
            String pid = VisualiserPreferences.getPaletteIDForProvider(definition.getID());
            String pname = null;
            if ((pid != null) && (pid.length() > 0)) {
                pname = PaletteManager.getPaletteByID(pid).getName();
            }
            if ((pname == null) || (pname.length() == 0)) {
                pname = PaletteManager.getDefaultForProvider(definition).getName();
            }
            colourList.setSelection(new String[] { pname });
        }
    });
}

From source file:org.eclipse.contribution.xref.internal.ui.preference.XReferencePreferencePage.java

License:Open Source License

/**
 * Creates the widgets for the list of providers
 *///from  w ww  .ja  va 2 s  .c o  m
private void createProvidersArea(Composite mainComposite) {
    Font mainFont = mainComposite.getFont();
    Composite providersComposite = new Composite(mainComposite, SWT.NONE);
    providersComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
    GridLayout providersLayout = new GridLayout();
    providersLayout.marginWidth = 0;
    providersLayout.marginHeight = 0;
    providersComposite.setLayout(providersLayout);
    providersComposite.setFont(mainFont);

    Label providersLabel = new Label(providersComposite, SWT.NONE);
    providersLabel.setText(XRefMessages.XReferencePreferencePage_providersLabel);
    providersLabel.setFont(mainFont);

    // Checkbox table viewer of providers
    checkboxViewer = CheckboxTableViewer.newCheckList(providersComposite, SWT.SINGLE | SWT.TOP | SWT.BORDER);
    checkboxViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    checkboxViewer.getTable().setFont(providersComposite.getFont());
    checkboxViewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            return ((XReferenceProviderDefinition) element).getLabel();
        }
    });
    checkboxViewer.getTable().setFont(mainFont);

    checkboxViewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {
            //Nothing to do on dispose
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }

        public Object[] getElements(Object inputElement) {
            //Make an entry for each provider definition
            return (Object[]) inputElement;
        }

    });

    checkboxViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (event.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection sel = (IStructuredSelection) event.getSelection();
                XReferenceProviderDefinition definition = (XReferenceProviderDefinition) sel.getFirstElement();
                if (definition == null)
                    clearDescription();
                else
                    showDescription(definition);
            }
        }
    });

    checkboxViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            checkboxViewer.setSelection(new StructuredSelection(event.getElement()));
        }
    });

}

From source file:org.eclipse.datatools.connectivity.internal.ui.wizards.ExportProfilesDialog.java

License:Open Source License

protected CheckboxTableViewer setupCheckboxTableViewer(Composite parent) {
    final CheckboxTableViewer checkboxTableViewer = CheckboxTableViewer.newCheckList(parent,
            SWT.V_SCROLL | SWT.BORDER | SWT.H_SCROLL);
    checkboxTableViewer.setLabelProvider(new TableLabelProvider());
    checkboxTableViewer.setContentProvider(new ContentProvider());
    final Table table = checkboxTableViewer.getTable();
    final GridData gridData_1 = new GridData(GridData.FILL_BOTH);
    gridData_1.horizontalSpan = 3;/*  w w  w.j a va 2s . c om*/
    gridData_1.widthHint = 392;
    table.setLayoutData(gridData_1);
    checkboxTableViewer.setInput(new Object());
    checkboxTableViewer.setSorter(new ProfileSorter());
    tvViewer = checkboxTableViewer;
    tvViewer.refresh();
    return tvViewer;
}

From source file:org.eclipse.datatools.enablement.sybase.asa.actions.MultiASADialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {
    Composite content = (Composite) super.createDialogArea(parent);
    GridData gd = new GridData();
    GridLayout gl = new GridLayout(2, true);
    content.setLayout(gl);// w  w w  .j  a  v a2s . c  o m
    // Text box.
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;
    gd.verticalAlignment = GridData.FILL;
    gd.horizontalAlignment = GridData.FILL;

    this.mCheckButton = new Button(content, SWT.PUSH);
    GridData pingData = new GridData();
    pingData.horizontalSpan = 2;
    pingData.horizontalAlignment = GridData.BEGINNING;
    this.mCheckButton.setLayoutData(pingData);
    this.mCheckButton.setText(JDBCASAProfileMessages.getString("MultiASAWizardPage.checkButton.label")); //$NON-NLS-1$
    this.mCheckButton.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            Connection conn = JDBCHelper.getConnectionForProfile(getShell(), mProfile);
            if (conn != null) {
                String[] dbs = JDBCHelper.getDBNamesFromASA(conn);
                mList.setInput(dbs);
                mList.getTable().setEnabled(true);
                if (dbs == null) {
                    updateOKButton(false);
                    mList.getTable().setEnabled(false);
                } else if (dbs.length == 1) {
                    List list = Arrays.asList(mList.getCheckedElements());
                    mDBNames = (String[]) list.toArray(new String[list.size()]);
                    setErrorMessage(JDBCASAProfileMessages.getString("MultiASAWizardPage.OnlyOneDBMessage")); //$NON-NLS-1$
                    updateOKButton(false);
                    mList.getTable().setEnabled(false);
                } else {
                    setErrorMessage(null);
                    updateOKButton(true);
                    mList.getTable().setEnabled(true);
                }

                /************************** added by mzhou for cr 417911-1 *************************/
                //show the database specified in the original db connnection profile as selected element in the db list
                String dbName = (String) mProfile.getProperties(mProfile.getProviderId())
                        .get(ISybaseJDBCConnectionProfileConstants.PROP_DB_NAME);
                if (dbName != null) {
                    for (int i = 0; i < dbs.length; i++) {
                        if (dbName.equals(dbs[i])) {
                            mList.setChecked(dbName, true);
                        }
                    }
                }
                /************************** added by mzhou for cr 417911-1 *************************/
            }
        }

        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }
    });

    Label label = new Label(content, SWT.NONE);
    GridData labelData = new GridData();
    labelData.horizontalSpan = 2;
    label.setLayoutData(labelData);
    label.setText(JDBCASAProfileMessages.getString("MultiASAWizardPage.Label.ChooseDbs")); //$NON-NLS-1$

    mList = CheckboxTableViewer.newCheckList(content, SWT.BORDER | SWT.MULTI);
    GridData listData = new GridData(SWT.FILL, SWT.FILL, true, true);
    listData.horizontalSpan = 2;
    mList.setContentProvider(new IStructuredContentProvider() {

        private String[] mDatabases = null;

        public void dispose() {
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            if (newInput instanceof String[]) {
                mDatabases = (String[]) newInput;
            }
        }

        public Object[] getElements(Object inputElement) {
            return mDatabases;
        }
    });
    mList.setLabelProvider(new LabelProvider());
    mList.getTable().setLayoutData(listData);
    mList.getTable().setEnabled(false);
    mList.addCheckStateListener(new ICheckStateListener() {

        public void checkStateChanged(CheckStateChangedEvent event) {
            List list = Arrays.asList(mList.getCheckedElements());
            mDBNames = (String[]) list.toArray(new String[list.size()]);
        }
    });

    mSelectAll = new Button(content, SWT.PUSH);
    mSelectAll.setText(JDBCASAProfileMessages.getString("MultiASAWizardPage.selectAllButton.label")); //$NON-NLS-1$
    GridData gridData = new GridData();
    gridData.horizontalSpan = 1;
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.TOP;
    mSelectAll.setLayoutData(gridData);
    mSelectAll.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent event) {
            selectAll();
        }
    });

    mDeselectAll = new Button(content, SWT.PUSH);
    mDeselectAll.setText(JDBCASAProfileMessages.getString("MultiASAWizardPage.deselectAllButton.label")); //$NON-NLS-1$
    gridData = new GridData();
    gridData.horizontalSpan = 1;
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.TOP;
    mDeselectAll.setLayoutData(gridData);
    mDeselectAll.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent event) {
            unselectAll();
        }
    });

    setTitle(JDBCASAProfileMessages.getString("MultiASADialog.dialog.message.title")); //$NON-NLS-1$
    setMessage(JDBCASAProfileMessages.getString("MultiASADialog.dialog.message")); //$NON-NLS-1$

    return content;
}

From source file:org.eclipse.datatools.enablement.sybase.asa.internal.ui.connection.MultiASAWizardPage.java

License:Open Source License

public void createControl(Composite parent) {
    Composite content = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;/*from w ww. j av  a  2s .  co  m*/
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    layout.makeColumnsEqualWidth = true;
    content.setLayout(layout);

    this.mCheckButton = new Button(content, SWT.PUSH);
    GridData pingData = new GridData();
    pingData.horizontalSpan = 2;
    pingData.horizontalAlignment = GridData.BEGINNING;
    this.mCheckButton.setLayoutData(pingData);
    this.mCheckButton.setText(JDBCASAProfileMessages.getString("MultiASAWizardPage.checkButton.label")); //$NON-NLS-1$

    Label label = new Label(content, SWT.NONE);
    GridData labelData = new GridData();
    labelData.horizontalSpan = 2;
    label.setLayoutData(labelData);
    label.setText(JDBCASAProfileMessages.getString("MultiASAWizardPage.Label.ChooseDbs")); //$NON-NLS-1$

    mList = CheckboxTableViewer.newCheckList(content, SWT.BORDER | SWT.MULTI);
    GridData listData = new GridData(SWT.FILL, SWT.FILL, true, true);
    listData.horizontalSpan = 2;
    mList.setContentProvider(new IStructuredContentProvider() {

        private String[] mDatabases = null;

        public void dispose() {
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            if (newInput instanceof String[]) {
                mDatabases = (String[]) newInput;
            }
        }

        public Object[] getElements(Object inputElement) {
            return mDatabases;
        }
    });
    mList.setLabelProvider(new LabelProvider());
    mList.getTable().setLayoutData(listData);
    mList.getTable().setEnabled(false);

    mSelectAll = new Button(content, SWT.PUSH);
    mSelectAll.setText(JDBCASAProfileMessages.getString("MultiASAWizardPage.selectAllButton.label")); //$NON-NLS-1$
    GridData gridData = new GridData();
    gridData.horizontalSpan = 1;
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.TOP;
    mSelectAll.setLayoutData(gridData);
    mSelectAll.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent event) {
            selectAll();
        }
    });

    mDeselectAll = new Button(content, SWT.PUSH);
    mDeselectAll.setText(JDBCASAProfileMessages.getString("MultiASAWizardPage.deselectAllButton.label")); //$NON-NLS-1$
    gridData = new GridData();
    gridData.horizontalSpan = 1;
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.TOP;
    mDeselectAll.setLayoutData(gridData);
    mDeselectAll.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent event) {
            unselectAll();
        }
    });

    this.mCheckButton.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            Connection conn = getConnectionForTempProfile();
            if (conn != null) {
                String[] dbs = JDBCHelper.getDBNamesFromASA(conn);
                mList.setInput(dbs);
                mList.getTable().setEnabled(true);
                if (dbs.length == 1) {
                    mSelectAll.setEnabled(false);
                    mDeselectAll.setEnabled(false);
                    mList.getTable().setEnabled(false);
                    mList.setAllChecked(true);
                } else {
                    mSelectAll.setEnabled(true);
                    mDeselectAll.setEnabled(true);
                    mList.getTable().setEnabled(true);
                    mList.setAllChecked(false);
                }
            }
        }

        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }
    });

    setControl(content);
}

From source file:org.eclipse.dltk.debug.ui.preferences.ScriptStepFilterPreferencePage.java

License:Open Source License

/**
 * Create a group to contain the step filter related widgetry
 *///  w w w .  j a v a 2 s . c  o  m
private void createStepFilterPreferences(Composite parent) {
    Composite container = SWTFactory.createComposite(parent, parent.getFont(), 2, 1, GridData.FILL_BOTH, 0, 0);
    fUseStepFiltersButton = SWTFactory.createCheckButton(container,
            ScriptDebugPreferencesMessages.ScriptStepFilterPreferencePage__Use_step_filters, null,
            StepFilterManager.isUseStepFilters(getPreferenceStore()), 2);
    fUseStepFiltersButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            setPageEnablement(fUseStepFiltersButton.getSelection());
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    SWTFactory.createLabel(container,
            ScriptDebugPreferencesMessages.ScriptStepFilterPreferencePage_Defined_step_fi_lters__8, 2);
    fTableViewer = CheckboxTableViewer.newCheckList(container,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    fTableViewer.getTable().setFont(container.getFont());
    fTableViewer.setLabelProvider(new FilterLabelProvider());
    fTableViewer.setComparator(new FilterViewerComparator());
    fTableViewer.setContentProvider(new StepFilterContentProvider());
    fTableViewer.setInput(getAllStoredFilters(false));
    fTableViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    fTableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            ((Filter) event.getElement()).setChecked(event.getChecked());
        }
    });
    fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();
            if (selection.isEmpty()) {
                fRemoveFilterButton.setEnabled(false);
            } else {
                fRemoveFilterButton.setEnabled(true);
            }
        }
    });
    fTableViewer.getControl().addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent event) {
            handleFilterViewerKeyPress(event);
        }
    });

    createStepFilterButtons(container);

    setPageEnablement(fUseStepFiltersButton.getSelection());
}

From source file:org.eclipse.dltk.internal.testing.util.CheckedTableSelectionDialog.java

License:Open Source License

private Table createTableViewer(Composite parent) {
    fViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);

    fViewer.setContentProvider(fContentProvider);
    fViewer.setLabelProvider(fLabelProvider);
    fViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            updateOKStatus();/*from   ww w. j av a 2  s .  co  m*/
        }
    });

    if (fFilters != null) {
        for (int i = 0; i != fFilters.size(); i++)
            fViewer.addFilter((ViewerFilter) fFilters.get(i));
    }

    fViewer.setInput(fInput);
    return fViewer.getTable();
}

From source file:org.eclipse.dltk.internal.ui.filters.CustomFiltersDialog.java

License:Open Source License

private void createCheckBoxList(Composite parent) {
    // Filler//  www . ja v a 2s .  c o  m
    new Label(parent, SWT.NONE);

    Label info = new Label(parent, SWT.LEFT);
    info.setText(FilterMessages.CustomFiltersDialog_filterList_label);

    fCheckBoxList = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.heightHint = fCheckBoxList.getTable().getItemHeight() * 10;
    fCheckBoxList.getTable().setLayoutData(data);

    fCheckBoxList.setLabelProvider(createLabelPrivder());
    fCheckBoxList.setContentProvider(new ArrayContentProvider());
    Arrays.sort(fBuiltInFilters);
    fCheckBoxList.setInput(fBuiltInFilters);
    setInitialSelections(getEnabledFilterDescriptors());

    List initialSelection = getInitialElementSelections();
    if (initialSelection != null && !initialSelection.isEmpty())
        checkInitialSelections();

    // Description
    info = new Label(parent, SWT.LEFT);
    info.setText(FilterMessages.CustomFiltersDialog_description_label);
    final Text description = new Text(parent,
            SWT.LEFT | SWT.WRAP | SWT.MULTI | SWT.READ_ONLY | SWT.BORDER | SWT.V_SCROLL);
    data = new GridData(GridData.FILL_HORIZONTAL);
    data.heightHint = convertHeightInCharsToPixels(3);
    description.setLayoutData(data);
    fCheckBoxList.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object selectedElement = ((IStructuredSelection) selection).getFirstElement();
                if (selectedElement instanceof FilterDescriptor)
                    description.setText(((FilterDescriptor) selectedElement).getDescription());
            }
        }
    });
    fCheckBoxList.addCheckStateListener(new ICheckStateListener() {
        /*
         * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
         */
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object element = event.getElement();
            if (element instanceof FilterDescriptor) {
                // renew if already touched
                if (fFilterDescriptorChangeHistory.contains(element))
                    fFilterDescriptorChangeHistory.remove(element);
                fFilterDescriptorChangeHistory.push(element);
            }
        }
    });

    addSelectionButtons(parent);
}