private void createAvailableFeaturesControls()

in plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/KarafConfigurationTab.java [434:476]


    private void createAvailableFeaturesControls(final Group group) {
        GridData gd;
        availableFeaturesViewer = CheckboxTableViewer.newCheckList(group, SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
        final Table tree = availableFeaturesViewer.getTable();

        final TableColumn column1 = new TableColumn(tree, SWT.LEFT);
        column1.setText("Feature");
        column1.setWidth(250);

        final TableColumn column2 = new TableColumn(tree, SWT.LEFT);
        column2.setText("Version");
        column2.setWidth(150);

        final TableColumn column3 = new TableColumn(tree, SWT.LEFT);
        column3.setText("Repository");
        column3.setWidth(150);

        gd = new GridData(GridData.FILL_BOTH);
        gd.heightHint = 200;
        tree.setLayoutData(gd);
        tree.setHeaderVisible(true);

        availableFeaturesViewer.setContentProvider(new AvailableFeaturesContentProvider());
        availableFeaturesViewer.setLabelProvider(new AvailableFeaturesLabelProvider());
        availableFeaturesViewer.setInput(null);
        availableFeaturesViewer.addCheckStateListener(new ICheckStateListener() {

            @Override
            public void checkStateChanged(final CheckStateChangedEvent event) {
                final AvailableFeature f = (AvailableFeature) event.getElement();
                if (event.getChecked()) {
                    if (!bootFeaturesList.contains(f.getFeatureName())) {
                        bootFeaturesList.add(f.getFeatureName());
                        bootFeaturesViewer.refresh();
                    }
                } else {
                    bootFeaturesList.remove(f.getFeatureName());
                    bootFeaturesViewer.refresh();
                }
                KarafConfigurationTab.this.updateLaunchConfigurationDialog();
            }
        });
    }