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.jlibrary.client.ui.web.dialogs.CrawlSelectionDialog.java

License:Open Source License

/**
 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
 *//* w ww . j  ava 2s  .c  om*/
protected Control createDialogArea(final Composite parent) {

    Composite outer = (Composite) super.createDialogArea(parent);

    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 3;
    gridLayout.marginHeight = 10;
    gridLayout.marginWidth = 10;
    gridLayout.horizontalSpacing = 20;
    gridLayout.verticalSpacing = 10;

    outer.setLayout(gridLayout);

    GridData data = new GridData();
    data.horizontalSpan = 3;
    data.horizontalAlignment = GridData.FILL;

    changeButton = new Button(outer, SWT.CHECK);
    changeButton.setText(Messages.getMessage("crawl_selection_dialog_check"));
    changeButton.setLayoutData(data);
    changeButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {

            if (changeButton.getSelection()) {
                viewer.setAllChecked(true);
            } else {
                viewer.setAllChecked(false);
            }
        }
    });

    data = new GridData();
    data.horizontalAlignment = GridData.FILL;
    data.widthHint = 250;
    data.heightHint = 200;

    viewer = CheckboxTableViewer.newCheckList(outer, SWT.BORDER);
    viewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    viewer.setContentProvider(new CrawlContentProvider());
    viewer.setLabelProvider(new CrawlLabelProvider());
    viewer.getControl().setLayoutData(data);

    viewer.setInput(files);

    return outer;
}

From source file:org.kalypso.contribs.eclipse.jface.wizard.ArrayChooserPage.java

License:Open Source License

/**
 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
 *//* ww w.j a v a2s  .co  m*/
@Override
public void createControl(final Composite parent) {
    /* Init the dialog settings. */
    initDialogSettings();

    final Composite panel = new Composite(parent, SWT.NONE);
    panel.setLayout(new GridLayout());

    m_viewer = CheckboxTableViewer.newCheckList(panel, SWT.BORDER);
    final GridData viewerData = new GridData(SWT.FILL, SWT.FILL, true, true);
    viewerData.heightHint = 400; // maybe we want to get that from outside
    m_viewer.getTable().setLayoutData(viewerData);
    m_viewer.setLabelProvider(m_labelProvider);
    m_viewer.setContentProvider(new ArrayContentProvider());
    m_viewer.setInput(m_chooseables);
    m_viewer.addCheckStateListener(m_checkStateListener);

    if (m_selected != null)
        m_viewer.setSelection(new StructuredSelection(m_selected));
    if (m_checked != null)
        m_viewer.setCheckedElements(m_checked);

    final Composite buttonpanel = new Composite(panel, SWT.RIGHT);
    buttonpanel.setLayout(new GridLayout(2, true));
    final GridData buttonpaneldata = new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.GRAB_HORIZONTAL);
    buttonpaneldata.grabExcessHorizontalSpace = true;
    buttonpanel.setData(buttonpaneldata);

    createSelectButton(buttonpanel, m_viewer, true);
    createSelectButton(buttonpanel, m_viewer, false);

    setControl(panel);

    /* Apply the dialog settings. */
    chkDialogSettings();

    /* Check if the page could be completed. */
    chkPageComplete(true);
}

From source file:org.kalypso.contribs.eclipse.ui.dialogs.ListSelectionDialog.java

License:Open Source License

/**
 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
 *///from  w w  w  .j  av  a  2  s.  co  m
@Override
protected Control createDialogArea(final Composite parent) {
    /* Set the title. */
    getShell().setText("Auswahl erforderlich");

    /* Create the main composite. */
    final Composite main = (Composite) super.createDialogArea(parent);
    main.setLayout(new GridLayout(1, false));
    final GridData mainData = new GridData(SWT.FILL, SWT.FILL, true, true);
    mainData.widthHint = 400;
    main.setLayoutData(mainData);

    /* Create a label. */
    final Label descriptionLabel = new Label(main, SWT.WRAP);
    descriptionLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    descriptionLabel.setText("Bitte whlen Sie die gewnschten Elemente aus.");
    if (m_description != null && m_description.length() > 0)
        descriptionLabel.setText(m_description);

    /* Create the list viewer. */
    final CheckboxTableViewer listViewer = CheckboxTableViewer.newCheckList(main, SWT.BORDER);
    listViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    listViewer.getTable().setHeaderVisible(false);
    listViewer.getTable().setLinesVisible(true);
    listViewer.setContentProvider(new ArrayContentProvider());
    listViewer.setInput(m_allElements);
    listViewer.setLabelProvider(new LabelProvider());
    if (m_labelProvider != null)
        listViewer.setLabelProvider(m_labelProvider);

    /* Add a check state provider. */
    listViewer.setCheckStateProvider(new ICheckStateProvider() {
        /**
         * @see org.eclipse.jface.viewers.ICheckStateProvider#isGrayed(java.lang.Object)
         */
        @Override
        public boolean isGrayed(final Object element) {
            return false;
        }

        /**
         * @see org.eclipse.jface.viewers.ICheckStateProvider#isChecked(java.lang.Object)
         */
        @Override
        public boolean isChecked(final Object element) {
            if (m_selectedElements == null || m_selectedElements.length == 0)
                return false;

            final List<T> checkedElements = Arrays.asList(m_selectedElements);
            return checkedElements.contains(element);
        }
    });

    /* Add a listener. */
    listViewer.addCheckStateListener(new ICheckStateListener() {
        @SuppressWarnings("unchecked")
        @Override
        public void checkStateChanged(final CheckStateChangedEvent event) {
            /* Store the new selection. */
            final Object[] checkedElements = listViewer.getCheckedElements();

            final Object newInstance = java.lang.reflect.Array.newInstance(m_clazz, checkedElements.length);
            System.arraycopy(checkedElements, 0, newInstance, 0, checkedElements.length);
            m_selectedElements = (T[]) newInstance;

            /* Check if the dialog can be completed. */
            checkDialogComplete();
        }
    });

    return main;
}

From source file:org.kalypso.model.km.internal.ui.kmupdate.KMUpdateWizardPage.java

License:Open Source License

/**
 * This function creates the channel list viewer.
 *
 * @param parent/*from w  ww.  j a  v a2  s . c  o  m*/
 *          The parent composite.
 * @return The channel list viewer.
 */
private CheckboxTableViewer createChannelListViewer(final Composite parent) {
    /* Get the km channels of the NA model. */
    final KMChannelElement[] elements = KMBindingUtils.createKMElements(m_naModel);
    for (final KMChannelElement element : elements) {
        if (ArrayUtils.contains(m_selectedFeatures, element.getKMChannel()))
            element.getKMType().setEnabled(true);
    }

    /* Create a checkbox table viewer. */
    final CheckboxTableViewer channelListViewer = CheckboxTableViewer.newCheckList(parent,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);

    /* Configure it. */
    channelListViewer.setContentProvider(new ArrayContentProvider());
    channelListViewer.setLabelProvider(new KMUpdateLabelProvider());
    channelListViewer.setCheckStateProvider(new KMUpdateCheckstateProvider());
    channelListViewer.setInput(elements);

    /* Add a listener. */
    channelListViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            handleChannelListChanged(selection, false);
        }
    });

    channelListViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final KMChannelElement element = (KMChannelElement) event.getElement();
            element.getKMType().setEnabled(event.getChecked());
        }
    });

    /* If there are selected features, select the first one. */
    if (m_selectedFeatures.length > 0) {
        /* Select the first selected feature. */
        channelListViewer.setSelection(new StructuredSelection(m_selectedFeatures[0]));
    }

    channelListViewer.update(elements, null);

    return channelListViewer;
}

From source file:org.kalypso.model.km.internal.ui.kmupdate.KMViewer.java

License:Open Source License

/**
 * This function creates the controls./* w ww. ja  va 2 s .com*/
 * 
 * @param parent
 *          The parent composite.
 */
public void createControls(final Composite parent) {
    /* Set a layout to the parent. */
    parent.setLayout(new GridLayout(3, false));

    /* Create a empty label. */
    final Label emptyLabel = new Label(parent, SWT.NONE);
    emptyLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));

    /* Create a text. */
    m_labelText = new Text(parent, SWT.BORDER | SWT.READ_ONLY);
    m_labelText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    /* Create a empty label. */
    final Label emptyLabel1 = new Label(parent, SWT.NONE);
    emptyLabel1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));

    /* Create a widget for asking for a file. */
    m_dirField = new DirectoryFieldWidget(parent, m_context); //$NON-NLS-1$ //$NON-NLS-2$
    m_dirField.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            handleDirectoryFieldSelected((IStructuredSelection) event.getSelection());
        }
    });

    /* Create a label. */
    final Label startLabel = new Label(parent, SWT.NONE);
    startLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
    startLabel.setText(Messages.getString("org.kalypso.ui.rrm.kmupdate.KMViewer.2")); //$NON-NLS-1$

    /* Create a text. */
    m_startText = new Text(parent, SWT.BORDER);
    m_startText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    /* Create a empty label. */
    final Label emptyLabel2 = new Label(parent, SWT.NONE);
    emptyLabel2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));

    /* Create a label. */
    final Label endLabel = new Label(parent, SWT.NONE);
    endLabel.setText(Messages.getString("org.kalypso.ui.rrm.kmupdate.KMViewer.3")); //$NON-NLS-1$
    endLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));

    /* Create a text. */
    m_endText = new Text(parent, SWT.BORDER);
    m_endText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    /* Create a empty label. */
    final Label emptyLabel3 = new Label(parent, SWT.NONE);
    emptyLabel3.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));

    /* Create a label. */
    final Label profilesLabel = new Label(parent, SWT.NONE);
    profilesLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false));
    profilesLabel.setText(Messages.getString("org.kalypso.ui.rrm.kmupdate.KMViewer.4")); //$NON-NLS-1$

    /* Create a checkbox table viewer. */
    m_profileListViewer = CheckboxTableViewer.newCheckList(parent,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.HIDE_SELECTION | SWT.FULL_SELECTION);
    final Table table = m_profileListViewer.getTable();
    table.setHeaderVisible(true);
    m_profileListViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    m_profileListViewer.setContentProvider(new KMViewerContentProvider());
    m_profileListViewer.setCheckStateProvider(new KMViewerCheckStateProvider(this));
    m_profileListViewer.addFilter(m_profileFilter);

    /* Create a table viewer column. */
    final TableViewerColumn stationViewerColumn = new TableViewerColumn(m_profileListViewer, SWT.LEFT);
    stationViewerColumn.setLabelProvider(new ProfileStationLabelProvider());
    final TableColumn stationColumn = stationViewerColumn.getColumn();
    stationColumn.setText(Messages.getString("KMViewer_1")); //$NON-NLS-1$
    stationColumn.setResizable(false);
    ColumnsResizeControlListener.setMinimumPackWidth(stationColumn);
    ColumnViewerSorter.registerSorter(stationViewerColumn, new ProfileStationSorter());

    /* Create a table viewer column. */
    final TableViewerColumn validViewerColumn = new TableViewerColumn(m_profileListViewer, SWT.LEFT);
    validViewerColumn.setLabelProvider(new ProfileValidLabelProvider(this));
    final TableColumn validColumn = validViewerColumn.getColumn();
    validColumn.setText(Messages.getString("KMViewer_2")); //$NON-NLS-1$
    stationColumn.setResizable(false);
    ColumnsResizeControlListener.setMinimumPackWidth(validColumn);

    /* Make sure, the columns are properly resized. */
    table.addControlListener(new ColumnsResizeControlListener());

    m_profileListViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final Profile profile = (Profile) event.getElement();
            profile.setEnabled(event.getChecked());
        }
    });

    createSelectButtons(parent);

    /* Add a listener. */
    m_startText.addFocusListener(new FocusAdapter() {
        /**
         * @see org.eclipse.swt.events.FocusAdapter#focusLost(org.eclipse.swt.events.FocusEvent)
         */
        @Override
        public void focusLost(final FocusEvent e) {
            handleKMStartModified();
        }
    });

    /* Add a listener. */
    m_endText.addFocusListener(new FocusAdapter() {
        @Override
        public void focusLost(final FocusEvent e) {
            handleKMEndModified();
        }
    });

    updateControls();
}

From source file:org.kalypso.model.wspm.pdb.ui.internal.admin.waterbody.imports.ImportWaterbodiesPreviewPage.java

License:Open Source License

private void createWaterTable(final Composite panel) {
    m_viewer = CheckboxTableViewer.newCheckList(panel, SWT.BORDER | SWT.FULL_SELECTION);
    m_viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    WaterBodyViewer.configureViewer(m_viewer);
    m_viewer.setContentProvider(new ArrayContentProvider());

    WaterBodyViewer.createRankColumn(m_viewer);

    final TableViewerColumn validColumn = new TableViewerColumn(m_viewer, SWT.LEFT);
    validColumn.getColumn().setText(Messages.getString("ImportWaterbodiesPreviewPage.2")); //$NON-NLS-1$
    validColumn.getColumn().setResizable(false);
    ColumnsResizeControlListener.setMinimumPackWidth(validColumn.getColumn());
    ColumnViewerSorter.registerSorter(validColumn, new ViewerComparator());
    validColumn.setLabelProvider(/*from  ww w  .  j  ava2s.  com*/
            new WaterBodyImportStatusLabelProvider(m_data.getExistingWaterBodies(), m_waterBodyStatus));

    final IObservableValue target = ViewersObservables.observeInput(m_viewer);
    final IObservableValue model = BeansObservables.observeValue(m_data,
            ImportWaterBodiesData.PROPERTY_WATER_BODIES);

    m_binding.bindValue(target, model);

    final IViewerObservableSet targetCheck = ViewersObservables.observeCheckedElements(m_viewer,
            WaterBody.class);
    final WritableSet modelCheck = m_data.getSelectedWaterBodies();

    final DataSetBinder checkBinder = new DataSetBinder(targetCheck, modelCheck);
    checkBinder.apply(m_binding);

    m_viewer.addOpenListener(new IOpenListener() {
        @Override
        public void open(final OpenEvent event) {
            showElementStatus((IStructuredSelection) event.getSelection());
        }
    });
}

From source file:org.kalypso.model.wspm.pdb.ui.internal.admin.waterbody.imports.ImportWaterlevelsPreviewPage.java

License:Open Source License

private void createWaterTable(final Composite panel) {
    final Set<WaterlevelsForStation> checkedWaterlevels = m_data.getWaterlevels();

    m_viewer = CheckboxTableViewer.newCheckList(panel, SWT.BORDER | SWT.FULL_SELECTION);
    m_viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    m_viewer.setUseHashlookup(true);/*from   w ww .ja  va 2  s  .co  m*/

    final Table table = m_viewer.getTable();
    table.setHeaderVisible(true);
    table.addControlListener(new ColumnsResizeControlListener());

    m_viewer.setContentProvider(new ArrayContentProvider());
    m_viewer.setCheckStateProvider(new EventFixationsCheckstateProvider(checkedWaterlevels));

    final TableViewerColumn validColumn = new TableViewerColumn(m_viewer, SWT.LEFT);
    validColumn.getColumn().setText(Messages.getString("ImportWaterlevelsPreviewPage.2")); //$NON-NLS-1$
    validColumn.getColumn().setResizable(false);
    ColumnsResizeControlListener.setMinimumPackWidth(validColumn.getColumn());
    ColumnViewerSorter.registerSorter(validColumn, new ViewerComparator());
    validColumn.setLabelProvider(new WaterLevelImportStatusLabelProvider());

    createWaterlevelColumn(m_viewer, WaterlevelFixationStrings.STATION, WaterlevelsForStation.PROPERTY_STATION,
            "%s", SWT.RIGHT); //$NON-NLS-1$
    createWaterlevelColumn(m_viewer, Messages.getString("ImportWaterlevelsPreviewPage.3"), //$NON-NLS-1$
            WaterlevelsForStation.PROPERTY_WATERLEVEL_COUNT, "%,d", SWT.RIGHT); //$NON-NLS-1$
    createWaterlevelColumn(m_viewer, Messages.getString("ImportWaterlevelsPreviewPage.4"), //$NON-NLS-1$
            WaterlevelsForStation.PROPERTY_WATERLEVEL_SIMPLIFIED_COUNT, "%,d", SWT.RIGHT); //$NON-NLS-1$
    createWaterlevelColumn(m_viewer, Messages.getString("ImportWaterlevelsPreviewPage.5"), //$NON-NLS-1$
            WaterlevelsForStation.PROPERTY_WATERLEVEL_SEGMENT_COUNT, "%,d", SWT.RIGHT); //$NON-NLS-1$
    // createWaterlevelColumn( m_viewer, WaterlevelFixationStrings.WATERLEVEL, WaterlevelsForStation.PROPERTY_WATERLEVEL, "%s" ); //$NON-NLS-1$
    // createWaterlevelColumn( m_viewer, WaterlevelFixationStrings.DISCHARGE, WaterlevelsForStation.PROPERTY_DISCHARGE, "%s" ); //$NON-NLS-1$
    // createWaterlevelColumn( m_viewer, WaterlevelFixationStrings.MEASUREMENT, WaterlevelsForStation.PROPERTY_MEASURMENT_DATE, "%s" ); //$NON-NLS-1$
    // createWaterlevelColumn( m_viewer, WaterlevelFixationStrings.DESCRIPTION, WaterlevelsForStation.PROPERTY_DESCRIPTION, "%s" ); //$NON-NLS-1$

    m_viewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final boolean checked = event.getChecked();
            final WaterlevelsForStation waterlevel = (WaterlevelsForStation) event.getElement();
            if (checked && waterlevel.isValid())
                checkedWaterlevels.add(waterlevel);
            else
                checkedWaterlevels.remove(waterlevel);
        }
    });

    m_viewer.addOpenListener(new IOpenListener() {
        @Override
        public void open(final OpenEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            final WaterlevelsForStation waterlevel = (WaterlevelsForStation) selection.getFirstElement();
            if (waterlevel == null)
                return;

            final IStatus validate = waterlevel.validate();
            StatusDialog.open(getShell(), validate, getWizard().getWindowTitle());
        }
    });

    // TODO: show list of read waterlevels on double click
}

From source file:org.kalypso.model.wspm.tuhh.ui.featureview.ReachSegmentFeatureControl.java

License:Open Source License

@Override
public Control createControl(final Composite parent, final int style) {
    m_linkChecklist = CheckboxTableViewer.newCheckList(parent, style | SWT.MULTI);
    m_linkChecklist.setContentProvider(new ArrayContentProvider());
    m_linkChecklist.setLabelProvider(new GMLLabelProvider());

    m_linkChecklist.addCheckStateListener(new ICheckStateListener() {
        @Override/*from   w  w  w.  j  a  va  2 s.  co m*/
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final IProfileFeature profileFeature = (IProfileFeature) event.getElement();
            final boolean checked = event.getChecked();
            handleCheckStateChanged(new IProfileFeature[] { profileFeature }, checked);
        }
    });

    /* Configure context menu */
    final MenuManager manager = new MenuManager();
    manager.add(new ChangeCheckstateAction(
            Messages.getString("org.kalypso.model.wspm.tuhh.ui.featureview.ReachSegmentFeatureControl.0"), //$NON-NLS-1$
            true));
    manager.add(new ChangeCheckstateAction(
            Messages.getString("org.kalypso.model.wspm.tuhh.ui.featureview.ReachSegmentFeatureControl.1"), //$NON-NLS-1$
            false));

    final Table table = m_linkChecklist.getTable();
    table.setMenu(manager.createContextMenu(table));

    updateControl();

    return table;
}

From source file:org.kalypso.ogc.gml.featureview.control.ChecklistOfLinksFeatureControl.java

License:Open Source License

@Override
public Control createControl(final Composite parent, final int style) {
    m_linkChecklist = CheckboxTableViewer.newCheckList(parent, style | SWT.MULTI | SWT.FULL_SELECTION);
    m_linkChecklist.setContentProvider(new ArrayContentProvider());
    m_linkChecklist.setLabelProvider(new GMLLabelProvider());

    m_linkChecklist.addCheckStateListener(new ICheckStateListener() {
        @Override/*from  w  w  w  .j  a v  a2s  . c o  m*/
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final IXLinkedFeature[] elements = new IXLinkedFeature[] { (IXLinkedFeature) event.getElement() };
            handleCheckStateChanged(elements, event.getChecked());
        }
    });

    /* Configure context menu */
    final MenuManager manager = new MenuManager();
    manager.add(new ChangeCheckstateAction(Messages.getString("ChecklistOfLinksFeatureControl.0"), true)); //$NON-NLS-1$
    manager.add(new ChangeCheckstateAction(Messages.getString("ChecklistOfLinksFeatureControl.1"), false)); //$NON-NLS-1$

    final Table table = m_linkChecklist.getTable();
    table.setMenu(manager.createContextMenu(table));

    updateControl();

    return table;
}

From source file:org.kalypso.ui.rrm.internal.cm.view.EditMultiDialog.java

License:Open Source License

/**
 * This function creates the content of the details group.
 *
 * @param parent//from w  w w  .j a v  a2 s  .  co m
 *          The parent composite.
 */
private void createDetailsContent(final Composite parent) {
    /* Create the generator viewer. */
    m_generatorViewer = CheckboxTableViewer.newCheckList(parent,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.SINGLE);
    m_generatorViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    m_generatorViewer.getTable().setLinesVisible(true);
    m_generatorViewer.getTable().setHeaderVisible(true);
    m_generatorViewer.getTable().addControlListener(new ColumnsResizeControlListener());
    m_generatorViewer.setContentProvider(new ArrayContentProvider());
    m_generatorViewer.setFilters(new ViewerFilter[] { new ParameterTypeViewerFilter(
            (String) m_bean.getProperty(ILinearSumGenerator.PROPERTY_PARAMETER_TYPE)) });

    /* Create the columns. */
    createGeneratorViewerColumns(m_generatorViewer);

    /* Set the input. */
    final ILinearSumGenerator[] generators = getGenerators();
    m_generatorViewer.setInput(generators);

    /* Add a checkstate provider. */
    m_generatorViewer.setCheckStateProvider(new ICheckStateProvider() {
        @Override
        public boolean isGrayed(final Object element) {
            return false;
        }

        @Override
        public boolean isChecked(final Object element) {
            final ILinearSumGenerator[] subGenerators = m_bean.getSubGenerators();
            if (subGenerators == null || subGenerators.length == 0)
                return false;

            final List<ILinearSumGenerator> subGeneratorsList = Arrays.asList(subGenerators);
            if (subGeneratorsList.contains(element))
                return true;

            return false;
        }
    });

    /* Add a listener. */
    m_generatorViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final Object[] checkedElements = m_generatorViewer.getCheckedElements();

            final List<ILinearSumGenerator> subGenerators = new ArrayList<>();
            for (final Object checkedElement : checkedElements)
                subGenerators.add((ILinearSumGenerator) checkedElement);

            m_bean.setSubGenerators(subGenerators.toArray(new ILinearSumGenerator[] {}));
            m_generatorViewer.refresh();

            updateStatus();
        }
    });

    /* Create the status composite. */
    m_statusComposite = new StatusComposite(parent, StatusComposite.DETAILS);
    m_statusComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
}