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.mylyn.internal.tasks.ui.properties.ProjectTaskRepositoryPage.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {

    Font font = parent.getFont();

    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    composite.setLayout(layout);//  w  w w  . j  av  a 2s  .c  o m
    composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    composite.setFont(font);

    initialize();

    Label description = createDescriptionLabel(composite);
    description.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));

    listViewer = CheckboxTableViewer.newCheckList(composite, SWT.TOP | SWT.BORDER);
    listViewer.getTable().setFont(font);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.grabExcessHorizontalSpace = true;

    // Only set a height hint if it will not result in a cut off dialog
    if (DialogUtil.inRegularFontMode(parent)) {
        data.heightHint = getDefaultFontHeight(listViewer.getTable(), REPOSITORY_LIST_MULTIPLIER);
    }
    listViewer.getTable().setLayoutData(data);
    listViewer.getTable().setFont(font);

    listViewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(),
            PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
    listViewer.setContentProvider(new IStructuredContentProvider() {
        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
        }

        public void dispose() {
        }

        public Object[] getElements(Object parent) {
            return TasksUi.getRepositoryManager().getAllRepositories().toArray();
        }

    });

    listViewer.setSorter(new TaskRepositoriesSorter());
    listViewer.setInput(project.getWorkspace());

    listViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getChecked()) {
                // only allow single selection
                listViewer.setAllChecked(false);
                listViewer.setChecked(event.getElement(), event.getChecked());
            }
            modified = true;
        }
    });
    updateLinkedRepository();

    // TODO this code was copied from SelectRepositoryPage
    final AddRepositoryAction action = new AddRepositoryAction();
    action.setPromptToAddQuery(false);

    Button button = new Button(composite, SWT.NONE);
    button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
    button.setText(AddRepositoryAction.TITLE);
    button.setEnabled(action.isEnabled());
    button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            TaskRepository taskRepository = action.showWizard();
            if (taskRepository != null) {
                listViewer.setInput(project.getWorkspace());
                listViewer.setSelection(new StructuredSelection(taskRepository));
                updateLinkedRepository();
            }
        }
    });

    return composite;
}

From source file:org.eclipse.n4js.ui.workingsets.WorkingSetConfigurationDialog.java

License:Open Source License

private void createTableViewer(final Composite parent) {
    tableViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER | SWT.MULTI);
    tableViewer.addCheckStateListener(new ICheckStateListener() {
        @Override/*from  w  w w  .  j  a  v a2s.c o  m*/
        public void checkStateChanged(final CheckStateChangedEvent event) {
            syncSelectionAndButtonStates();
        }
    });
    final GridData data = new GridData(GridData.FILL_BOTH);
    data.heightHint = convertHeightInCharsToPixels(20);
    data.widthHint = convertWidthInCharsToPixels(50);
    tableViewer.getTable().setLayoutData(data);

    tableViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(WorkingSetLabelProvider.INSTANCE));
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());
    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            handleSelectionChanged();
        }
    });
    tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {
            if (editButton != null && editButton.isEnabled()) {
                editSelectedWorkingSet();
            }
        }
    });
}

From source file:org.eclipse.nebula.widgets.nattable.filterrow.combobox.FilterNatCombo.java

License:Open Source License

@Override
protected void createDropdownControl(int style) {
    super.createDropdownControl(style);

    FormLayout layout = new FormLayout();
    layout.spacing = 0;// w w  w  .  j  a  va2s.com
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    dropdownShell.setLayout(layout);

    int dropdownListStyle = style | SWT.V_SCROLL | HorizontalAlignmentEnum.getSWTStyle(cellStyle)
            | SWT.FULL_SELECTION;
    this.selectAllItemViewer = CheckboxTableViewer.newCheckList(this.dropdownShell, dropdownListStyle);

    FormData data = new FormData();
    data.top = new FormAttachment(dropdownShell, 0, SWT.TOP);
    data.left = new FormAttachment(dropdownShell, 0, SWT.LEFT);
    data.right = new FormAttachment(dropdownShell, 0, SWT.RIGHT);
    this.selectAllItemViewer.getTable().setLayoutData(data);

    data = new FormData();
    //need to set the top attachment like this because attaching it to the viewer does some wrong calculations
    data.top = new FormAttachment(dropdownShell, this.selectAllItemViewer.getTable().getItemHeight(), SWT.TOP);
    data.left = new FormAttachment(dropdownShell, 0, SWT.LEFT);
    data.right = new FormAttachment(dropdownShell, 0, SWT.RIGHT);
    dropdownTable.setLayoutData(data);

    this.selectAllItemViewer.setContentProvider(new IStructuredContentProvider() {

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

        @Override
        public void dispose() {
        }

        @SuppressWarnings("unchecked")
        @Override
        public Object[] getElements(Object inputElement) {
            return ((Collection<String>) inputElement).toArray();
        }
    });

    this.selectAllItemViewer.setLabelProvider(new ILabelProvider() {

        @Override
        public void removeListener(ILabelProviderListener listener) {
        }

        @Override
        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        @Override
        public void dispose() {
        }

        @Override
        public void addListener(ILabelProviderListener listener) {
        }

        @Override
        public String getText(Object element) {
            return element.toString();
        }

        @Override
        public Image getImage(Object element) {
            return null;
        }
    });

    final String selectAllLabel = "Select All"; //$NON-NLS-1$
    List<String> input = new ArrayList<String>();
    input.add(selectAllLabel);
    this.selectAllItemViewer.setInput(input);

    this.selectAllItemViewer.getTable().addFocusListener(new FocusAdapter() {
        @Override
        public void focusGained(FocusEvent e) {
            showDropdownControl();
        }
    });

    this.selectAllItemViewer.addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            //if the select all item is clicked directly, the grayed state needs to be set to false
            selectAllItemViewer.setGrayed(selectAllLabel, false);

            if (event.getChecked()) {
                //select all
                dropdownTable.selectAll();
            } else {
                //deselect all
                dropdownTable.deselectAll();
            }

            //after selection is performed we need to ensure that selection and checkboxes are in sync
            for (TableItem tableItem : dropdownTable.getItems()) {
                tableItem.setChecked(dropdownTable.isSelected(itemList.indexOf(tableItem.getText())));
            }

            updateTextControl(!multiselect);
        }
    });

    //set an ICheckStateProvider that sets the checkbox state of the select all checkbox regarding
    //the selection of the items in the dropdown
    this.selectAllItemViewer.setCheckStateProvider(new ICheckStateProvider() {

        @Override
        public boolean isGrayed(Object element) {
            if (dropdownTable.getSelectionCount() == dropdownTable.getItemCount()) {
                return false;
            }
            return true;
        }

        @Override
        public boolean isChecked(Object element) {
            if (dropdownTable.getSelectionCount() == 0) {
                return false;
            }
            return true;
        }
    });

    //add a selection listener to the items that simply refreshes the select all checkbox
    this.dropdownTable.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            selectAllItemViewer.refresh();
        }
    });
}

From source file:org.eclipse.oomph.p2.internal.ui.AdditionalURIPrompterDialog.java

License:Open Source License

@Override
protected void createUI(Composite parent) {
    Composite mainComposite = new Composite(parent, SWT.NONE);
    mainComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
    GridLayout mainLayout = new GridLayout();
    mainLayout.marginWidth = 10;/*from  w w w. j ava 2 s .com*/
    mainLayout.marginHeight = 10;
    mainComposite.setLayout(mainLayout);

    SashForm sashForm = new SashForm(mainComposite, SWT.SMOOTH | SWT.VERTICAL);
    sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));

    Composite artifactComposite = new Composite(sashForm, SWT.NONE);
    GridLayout artifactLayout = new GridLayout();
    artifactLayout.marginWidth = 0;
    artifactLayout.marginHeight = 0;
    artifactComposite.setLayout(artifactLayout);

    Label artifactLabel = new Label(artifactComposite, SWT.NONE);
    artifactLabel.setText("Remaining Damaged Artifacts:");

    TableViewer artifactViewer = new TableViewer(artifactComposite, SWT.BORDER | SWT.FULL_SELECTION);
    artifactViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    artifactViewer.setSorter(new ViewerSorter());
    artifactViewer.setLabelProvider(new AgentAnalyzerComposite.TableLabelProvider(parent.getDisplay(), true));
    artifactViewer.setContentProvider(new ArrayContentProvider());
    artifactViewer.setInput(artifacts);

    Composite repositoryComposite = new Composite(sashForm, SWT.NONE);
    GridLayout repositoryLayout = new GridLayout();
    repositoryLayout.marginTop = 10;
    repositoryLayout.marginWidth = 0;
    repositoryLayout.marginHeight = 0;
    repositoryComposite.setLayout(repositoryLayout);

    Composite repositoryHeader = new Composite(repositoryComposite, SWT.NONE);
    repositoryHeader.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    GridLayout repositoryHeaderLayout = new GridLayout(2, false);
    repositoryHeaderLayout.marginWidth = 0;
    repositoryHeaderLayout.marginHeight = 0;
    repositoryHeader.setLayout(repositoryHeaderLayout);

    Label repositoryLabel = new Label(repositoryHeader, SWT.NONE);
    repositoryLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    repositoryLabel.setText("Additional Repositories:");

    ToolBar toolBar = new ToolBar(repositoryHeader, SWT.FLAT | SWT.RIGHT);
    toolBar.setBounds(0, 0, 89, 23);

    ToolItem checkAll = new ToolItem(toolBar, SWT.NONE);
    checkAll.setToolTipText("Check all repositories");
    checkAll.setImage(getDefaultImage("tool16/checkAll"));

    ToolItem uncheckAll = new ToolItem(toolBar, SWT.NONE);
    uncheckAll.setToolTipText("Uncheck all repositories");
    uncheckAll.setImage(getDefaultImage("tool16/uncheckAll"));

    repositoryViewer = CheckboxTableViewer.newCheckList(repositoryComposite, SWT.BORDER | SWT.FULL_SELECTION);
    repositoryViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    repositoryViewer.setSorter(new ViewerSorter());
    repositoryViewer.setLabelProvider(new AgentAnalyzerComposite.TableLabelProvider(parent.getDisplay()));
    repositoryViewer.setContentProvider(new ArrayContentProvider());
    repositoryViewer.setInput(repositories);
    repositoryViewer.addCheckStateListener(this);

    checkAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            repositoryViewer.setAllChecked(true);
            checkStateChanged(null);
        }
    });

    uncheckAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            repositoryViewer.setAllChecked(false);
            checkStateChanged(null);
        }
    });

    Composite uriComposite = new Composite(repositoryComposite, SWT.NONE);
    GridLayout uriLayout = new GridLayout(3, false);
    uriLayout.marginWidth = 0;
    uriLayout.marginHeight = 0;
    uriComposite.setLayout(uriLayout);
    uriComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    Label uriLabel = new Label(uriComposite, SWT.NONE);
    uriLabel.setText("URI:");

    final AtomicReference<URI> enteredURI = new AtomicReference<URI>();
    final Text uriText = new Text(uriComposite, SWT.BORDER);
    uriText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    final Button uriButton = new Button(uriComposite, SWT.NONE);
    uriButton.setText("Add");
    uriButton.setToolTipText("Add the entered URI to the repositories list");
    uriButton.setEnabled(false);
    uriButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            URI uri = enteredURI.get();
            repositories.add(uri);

            repositoryViewer.refresh();
            repositoryViewer.setChecked(uri, true);
            checkStateChanged(null);

            uriText.setText("");
            uriText.setFocus();
        }
    });

    uriText.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            URI uri;

            try {
                String text = uriText.getText();
                uri = text.length() == 0 ? null : new URI(text);
            } catch (Exception ex) {
                uri = null;
            }

            enteredURI.set(uri);
            uriButton.setEnabled(uri != null);
        }
    });

    sashForm.setWeights(new int[] { 1, 2 });
}

From source file:org.eclipse.oomph.setup.internal.installer.ProductCatalogsDialog.java

License:Open Source License

@Override
protected void createUI(Composite parent) {
    catalogViewer = CheckboxTableViewer.newCheckList(parent, SWT.NONE);
    catalogViewer.getTable().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    catalogViewer.setContentProvider(new IStructuredContentProvider() {
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // Do nothing.
        }//w  ww .jav a  2  s .  c o  m

        public void dispose() {
            // Do nothing.
        }

        public Object[] getElements(Object inputElement) {
            if (!(inputElement instanceof CatalogManager)) {
                throw new IllegalArgumentException("input must be a CatalogManager");
            }

            List<Scope> scopes = new ArrayList<Scope>();
            for (Scope scope : catalogManager.getCatalogs(product)) {
                if (!"redirectable".equals(scope.getName())) {
                    scopes.add(scope);
                }
            }

            return scopes.toArray();
        }
    });

    catalogViewer.addFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return element instanceof Scope && !SelfProductCatalogURIHandlerImpl.SELF_PRODUCT_CATALOG_NAME
                    .equals(((Scope) element).getName());
        }
    });

    catalogViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            return SetupCoreUtil.getLabel((Scope) element);
        }
    });

    catalogViewer.setInput(catalogManager);
    catalogViewer.setCheckedElements(catalogManager.getSelectedCatalogs(product).toArray());
}

From source file:org.eclipse.oomph.setup.ui.recorder.RecorderPoliciesComposite.java

License:Open Source License

public RecorderPoliciesComposite(Composite parent, int style, boolean clean) {
    super(parent, SWT.NONE);
    this.clean = clean;

    setLayout(new FillLayout(SWT.HORIZONTAL));
    TableColumnLayout tableLayout = new TableColumnLayout();

    Composite composite = new Composite(this, SWT.NONE);
    composite.setLayout(tableLayout);//from  w ww.  j a v a 2  s  . c  o  m

    viewer = CheckboxTableViewer.newCheckList(composite, style);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new LabelProvider());
    viewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            String path = (String) event.getElement();
            boolean policy = event.getChecked();
            transaction.setPolicy(path, policy);
        }
    });

    viewer.setCheckStateProvider(new ICheckStateProvider() {
        public boolean isGrayed(Object element) {
            return false;
        }

        public boolean isChecked(Object element) {
            return Boolean.TRUE.equals(transaction.getPolicy(element.toString()));
        }
    });

    TableColumn column = new TableColumn(viewer.getTable(), SWT.LEFT);
    tableLayout.setColumnData(column, new ColumnWeightData(100));
}

From source file:org.eclipse.paho.mqtt.ui.support.table.TableViewerBuilder.java

License:Open Source License

/**
 * Creates a new TableViewerBuilder/*w  ww .  j  a  va2 s  .  c o m*/
 * 
 * @param parent
 * @param style
 */
public TableViewerBuilder(Composite parent, int style) {
    // check parent
    if (parent.getChildren().length > 0) {
        throw new IllegalArgumentException(
                "The parent composite for the table needs to be empty for TableColumnLayout."); //$NON-NLS-1$
    }

    mappings = Collections.emptyMap();
    checkable = (style & SWT.CHECK) == SWT.CHECK;

    if (checkable) {
        viewer = CheckboxTableViewer.newCheckList(parent, style);
    } else {
        viewer = new TableViewer(parent, style);
    }

    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setUseHashlookup(true);

    // enable tooltip support
    ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);

    Table table = viewer.getTable();

    // set TableColumnLayout to table parent
    // Table parent layout needs to be a TableColumnLayout
    table.getParent().setLayout(new TableColumnLayout());

    // headers / lines visible by default
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
}

From source file:org.eclipse.papyrus.uml.diagram.activity.activitygroup.ui.IntegrateViewToConfigureComposite.java

License:Open Source License

/**
 * Create the composite./*from  ww w.j a v  a2  s. c o  m*/
 * 
 * @param parent
 * @param style
 */
public IntegrateViewToConfigureComposite(Composite parent, int style, List<IGroupNotifier> newChildren,
        String label) {
    super(parent, style);
    setLayout(new GridLayout(1, false));
    Label lblNewLabel = new Label(this, SWT.NONE);
    lblNewLabel.setText(label);
    checkboxTableViewer = CheckboxTableViewer.newCheckList(this, SWT.FULL_SELECTION);
    table = checkboxTableViewer.getTable();
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    checkboxTableViewer.setContentProvider(new ArrayContentProvider());
    checkboxTableViewer.setLabelProvider(new GroupNotifierLabelProvider());
    checkboxTableViewer.setInput(newChildren);
    checkboxTableViewer.setAllChecked(true);
}

From source file:org.eclipse.papyrus.uml.diagram.wizards.template.SelectModelTemplateComposite.java

License:Open Source License

/**
 * Creates the templates viewer./*ww  w  . j  av  a  2s.  co m*/
 * 
 * @param composite
 *        the composite
 */
private void createTemplatesViewer(Composite composite) {
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, false);
    templateTableViewer = CheckboxTableViewer.newCheckList(composite, SWT.NO_BACKGROUND);
    templateTableViewer.getTable().setBackground(composite.getBackground());
    templateTableViewer.getTable().setLayoutData(data);
    templateTableViewer.getTable().setEnabled(true);

    templateTableViewer.setContentProvider(new ModelTemplatesContentProvider());
    templateTableViewer.setLabelProvider(new ModelTemplatesLabelProvider());
    templateTableViewer.getControl().setEnabled(true);

    templateTableViewer.getTable().setLayout(new GridLayout());
}

From source file:org.eclipse.pde.api.tools.ui.internal.wizards.TargetBasedApiBaselineWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite comp = SWTFactory.createComposite(parent, 4, 1, GridData.FILL_HORIZONTAL);
    SWTFactory.createWrapLabel(comp, WizardMessages.ApiProfileWizardPage_5, 1);
    nametext = SWTFactory.createText(comp, SWT.BORDER | SWT.SINGLE, 3,
            GridData.FILL_HORIZONTAL | GridData.BEGINNING);
    nametext.addModifyListener(new ModifyListener() {
        @Override/*from   w w  w  . j a  va2  s. c  om*/
        public void modifyText(ModifyEvent e) {
            setPageComplete(pageValid());
        }
    });

    SWTFactory.createVerticalSpacer(comp, 1);
    targetsViewer = CheckboxTableViewer.newCheckList(comp, SWT.MULTI | SWT.BORDER);
    GridDataFactory.fillDefaults().span(3, 1).grab(true, true).applyTo(targetsViewer.getControl());

    targetsViewer.setLabelProvider(new TargetLabelProvider());
    targetsViewer.setContentProvider(ArrayContentProvider.getInstance());
    targetsViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getChecked()) {
                targetsViewer.setCheckedElements(new Object[] { event.getElement() });
                selectedTargetDefinition = (ITargetDefinition) event.getElement();
            } else {
                selectedTargetDefinition = null;
            }
            updateButtons();
            setPageComplete(pageValid());
        }
    });

    // add the targets
    ITargetPlatformService service = getTargetService();
    if (service != null) {
        for (ITargetHandle handle : service.getTargets(null)) {
            try {
                fTargets.add(handle.getTargetDefinition());
            } catch (CoreException e) {
                PDECore.log(e);
            }
        }
        if (fTargets.isEmpty()) {
            // Ensure we have at least a default TP
            try {
                fTargets.add(service.getWorkspaceTargetDefinition());
            } catch (CoreException e) {
                PDECore.log(e);
            }
        }
        targetsViewer.setInput(fTargets);
    }

    targetsViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            String name1 = ((ITargetDefinition) e1).getName();
            String name2 = ((ITargetDefinition) e2).getName();
            if (name1 == null) {
                return -1;
            }
            if (name2 == null) {
                return 1;
            }
            return name1.compareToIgnoreCase(name2);
        }
    });

    reloadbutton = SWTFactory.createPushButton(comp, WizardMessages.ApiProfileWizardPage_12, null);
    reloadbutton.setEnabled(targetsViewer.getCheckedElements().length == 1);
    reloadbutton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            doReload();
        }
    });

    SWTFactory.createWrapLabel(comp, WizardMessages.ApiProfileWizardPage_13, 4);
    Tree tree = new Tree(comp, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.heightHint = 100;
    gd.horizontalSpan = 4;
    tree.setLayoutData(gd);
    treeviewer = new TreeViewer(tree);
    treeviewer.setLabelProvider(new ApiToolsLabelProvider());
    treeviewer.setContentProvider(new ContentProvider());
    treeviewer.setComparator(new ViewerComparator());
    treeviewer.setInput(getCurrentComponents());
    treeviewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    });
    treeviewer.addFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof IApiComponent) {
                IApiComponent component = (IApiComponent) element;
                try {
                    if (component.isSourceComponent() || component.isSystemComponent()) {
                        return false;
                    }
                } catch (CoreException e) {
                    ApiPlugin.log(e);
                }
                return true;
            }
            return !(element instanceof SystemLibraryApiComponent);
        }
    });

    setControl(comp);
    if (fProfile != null) {
        nametext.setText(fProfile.getName());

        ITargetDefinition found = null;
        // Use isDerivedFromTarget as the target may have had its
        // sequence number bumped several times
        for (ITargetDefinition target : fTargets) {
            if (ApiModelFactory.isDerivedFromTarget(fProfile, target)) {
                found = target;
                break;
            }
        }
        if (found != null) {
            selectedTargetDefinition = found;
            targetsViewer.setCheckedElements(new Object[] { found });
        }
    }
    initialize();
    updateButtons();
    setPageComplete(pageValid());
    PlatformUI.getWorkbench().getHelpSystem().setHelp(comp, IApiToolsHelpContextIds.APIPROFILES_WIZARD_PAGE);
    Dialog.applyDialogFont(comp);
}