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:com.iauto.mist.spec.m2t.uml2html.dialog.StateMachineChooseDialog.java

License:Open Source License

private void createProjectSelectionTable(Composite radioGroup) {
    projectNames = CheckboxTableViewer.newCheckList(radioGroup, SWT.BORDER);
    projectNames.setContentProvider(new StmContentProvider());
    projectNames.setLabelProvider(new StateMachineLabelProvider());
    //      projectNames.setComparator( new ResourceComparator( ResourceComparator.NAME ) );
    //      projectNames.addFilter( new ViewerFilter() {
    //         private final IProject[] projectHolder = new IProject[1];
    ///* www.j av a2  s .c  o m*/
    //         public boolean select( Viewer viewer, Object parentElement, Object element ) {
    //            if ( !( element instanceof IProject ) ) {
    //               return false;
    //            }
    //            IProject project = (IProject) element;
    //            if ( !project.isAccessible() ) {
    //               return false;
    //            }
    //            projectHolder[0] = project;
    //            return BuildUtilities.isEnabled( projectHolder, IncrementalProjectBuilder.CLEAN_BUILD );
    //         }
    //      } );
    projectNames.setInput(original.toArray(new StateMachine[original.size()]));
    GridData data = new GridData(GridData.FILL_BOTH);
    data.horizontalSpan = 2;
    data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
    data.heightHint = IDialogConstants.ENTRY_FIELD_WIDTH;
    projectNames.getTable().setLayoutData(data);

    //table is disabled to start because all button is selected
    //      projectNames.getTable().setEnabled( selectedButton.getSelection() );
    setCheckboxTableBackground();

    projectNames.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (allButton.getSelection()) {
                projectNames.setAllChecked(true);
            } else {
                selection = projectNames.getCheckedElements();
                updateOKButton();
            }
        }
    });

    //      projectNames.setCheckedElements( selection );

}

From source file:com.ibm.research.tagging.java.dialogs.SynchronizeWaypointsDialog.java

License:Open Source License

private void createProjectSelectionTable(Composite radioGroup) {
    projectNames = CheckboxTableViewer.newCheckList(radioGroup, SWT.BORDER);
    projectNames.setContentProvider(new WorkbenchContentProvider());
    projectNames.setLabelProvider(new WorkbenchLabelProvider());
    projectNames.setSorter(new ResourceSorter(ResourceSorter.NAME));
    projectNames.addFilter(new ViewerFilter() {
        private final IProject[] projectHolder = new IProject[1];

        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (!(element instanceof IProject)) {
                return false;
            }//from  www. j  a  va  2 s.co m
            IProject project = (IProject) element;
            if (!project.isAccessible()) {
                return false;
            }
            projectHolder[0] = project;
            return true;
        }
    });
    projectNames.setInput(ResourcesPlugin.getWorkspace().getRoot());
    GridData data = new GridData(GridData.FILL_BOTH);
    data.horizontalSpan = 2;
    data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
    data.heightHint = IDialogConstants.ENTRY_FIELD_WIDTH;
    projectNames.getTable().setLayoutData(data);
    projectNames.setCheckedElements(fSelection);
    //table is disabled to start because all button is selected
    projectNames.getTable().setEnabled(selectedButton.getSelection());
    projectNames.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            fSelection = projectNames.getCheckedElements();
            updateEnablement();
        }
    });
}

From source file:com.iw.plugins.spindle.ui.CheckboxTreeAndList.java

License:Mozilla Public License

/**
 *   Create this group's list viewer./*www.j a v a  2  s . c  o  m*/
 */
protected void createListViewer(Composite parent, int width, int height) {
    listViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.widthHint = width;
    data.heightHint = height;
    listViewer.getTable().setLayoutData(data);
    listViewer.setContentProvider(listContentProvider);
    listViewer.setLabelProvider(listLabelProvider);
    listViewer.addCheckStateListener(this);

    new Composite(parent, SWT.NULL);
    createButtonBar(parent);

}

From source file:com.javadude.workingsets.internal.NatureWorkingSetPage.java

License:Open Source License

/**
 * Create the UI for the property page/* ww  w.j  ava2  s.com*/
 */
@Override
protected void createFields(Composite parent) {
    if (getWorkingSet() != null) {
        natureId_ = getWorkingSet().getName().substring(8);
    }
    Label label = new Label(parent, SWT.NULL);
    label.setText("Registered Natures:");
    label.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, true));
    int style = SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION
            | SWT.CHECK;
    final CheckboxTableViewer table = CheckboxTableViewer.newCheckList(parent, style);
    List<String> natures = new ArrayList<String>();
    for (IProjectNatureDescriptor nature : ResourcesPlugin.getWorkspace().getNatureDescriptors()) {
        natures.add(nature.getNatureId());
    }
    Collections.sort(natures);
    for (String nature : natures) {
        table.add(nature);
    }
    if (natureId_ != null) {
        String[] split = natureId_.split("[,\\s]");
        for (String nature : split) {
            table.setChecked(nature, true);
        }
    }
    table.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    table.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            natureId_ = null;
            for (Object o : table.getCheckedElements()) {
                if (natureId_ == null) {
                    natureId_ = (String) o;
                } else {
                    natureId_ += ',' + (String) o;
                }
            }
            dialogChanged();
        }
    });
}

From source file:com.laex.j2objc.preferences.ClasspathPropertyPage.java

License:Open Source License

@Override
public Control createContents(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    container.setLayout(new GridLayout(1, false));

    btnUseAllClasspathLibraries = new Button(container, SWT.CHECK);
    btnUseAllClasspathLibraries.addSelectionListener(new SelectionAdapter() {
        @Override/*from ww w. j  ava2 s  . com*/
        public void widgetSelected(SelectionEvent e) {
            useAllClasspathLibs();
        }
    });
    btnUseAllClasspathLibraries.setText("Use all classpath libraries");

    Composite composite = new Composite(container, SWT.NONE);
    composite.setLayout(new FillLayout(SWT.HORIZONTAL));
    GridData gd_composite = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    gd_composite.widthHint = 358;
    gd_composite.heightHint = 308;
    composite.setLayoutData(gd_composite);

    checkboxTableViewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.FULL_SELECTION);
    table = checkboxTableViewer.getTable();
    table.setHeaderVisible(true);

    TableViewerColumn tableViewerColumn = new TableViewerColumn(checkboxTableViewer, SWT.NONE);
    TableColumn tblclmnLibraryName = tableViewerColumn.getColumn();
    tblclmnLibraryName.setWidth(116);
    tblclmnLibraryName.setText("Library");

    TableColumn tblclmnClasspath = new TableColumn(table, SWT.NONE);
    tblclmnClasspath.setWidth(400);
    tblclmnClasspath.setText("Classpath");

    checkboxTableViewer.setContentProvider(new ContentProvider());
    checkboxTableViewer.setLabelProvider(new TableLabelProvider());

    // load
    try {
        loadProjectReferencedClasspaths();
        loadUserSelectedClasspaths();
    } catch (CoreException e1) {
        LogUtil.logException(e1);
    } catch (IOException e1) {
        LogUtil.logException(e1);
    }

    return container;
}

From source file:com.liferay.ide.project.ui.dialog.ProjectSelectionDialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {
    // page group
    Composite composite = (Composite) super.createDialogArea(parent);

    Font font = parent.getFont();
    composite.setFont(font);//from   w ww  .j a va  2 s  .c  o m

    createMessageArea(composite);

    fTableViewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER);

    fTableViewer.addPostSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            updateOKButtonState(event);
        }
    });

    addSelectionButtons(composite);

    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
    data.widthHint = SIZING_SELECTION_WIDGET_WIDTH;
    fTableViewer.getTable().setLayoutData(data);

    fTableViewer.setLabelProvider(new JavaElementLabelProvider());
    fTableViewer.setContentProvider(getContentProvider());
    fTableViewer.setComparator(new JavaElementComparator());
    fTableViewer.getControl().setFont(font);

    updateFilter(true);

    IJavaModel input = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
    fTableViewer.setInput(input);
    fTableViewer.setAllChecked(true);

    doSelectionChanged(new Object[0]);
    Dialog.applyDialogFont(composite);

    return composite;
}

From source file:com.liferay.ide.project.ui.upgrade.animated.UpgradePomPage.java

License:Open Source License

public UpgradePomPage(Composite parent, int style, LiferayUpgradeDataModel dataModel) {
    super(parent, style, dataModel, UPGRADE_POM_PAGE_ID, true);

    GridLayout layout = new GridLayout(2, false);
    layout.marginHeight = 0;/* www  .  j  a va 2 s .  c o m*/
    layout.marginWidth = 0;

    this.setLayout(layout);

    final GridData descData = new GridData(GridData.FILL_BOTH);
    descData.grabExcessVerticalSpace = true;
    descData.grabExcessHorizontalSpace = true;

    this.setLayoutData(descData);

    fTableViewer = CheckboxTableViewer.newCheckList(this, SWT.BORDER);
    fTableViewer.setContentProvider(new ArrayContentProvider());
    fTableViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(new ProjectLabelProvider()));

    fTableViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            handleCompare((IStructuredSelection) event.getSelection());
        }
    });

    final Table table = fTableViewer.getTable();

    final GridData tableData = new GridData(GridData.FILL_BOTH);
    tableData.grabExcessVerticalSpace = true;
    tableData.grabExcessHorizontalSpace = true;
    tableData.horizontalAlignment = SWT.FILL;
    table.setLayoutData(tableData);

    Composite buttonContainer = new Composite(this, SWT.NONE);
    buttonContainer.setLayout(new GridLayout(1, false));
    buttonContainer.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1));

    final Button selectAllButton = new Button(buttonContainer, SWT.NONE);
    selectAllButton.setText("Select All");
    selectAllButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1));
    selectAllButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            int i = 0;
            Object object = fTableViewer.getElementAt(i++);

            while (object != null) {
                UpgradePomElement element = (UpgradePomElement) object;

                if (!element.finished) {
                    fTableViewer.setChecked(element, true);
                }

                object = fTableViewer.getElementAt(i++);
            }
        }
    });

    final Button disSelectAllButton = new Button(buttonContainer, SWT.NONE);
    disSelectAllButton.setText("Deselect All");
    disSelectAllButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1));
    disSelectAllButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            fTableViewer.setAllChecked(false);
        }
    });

    upgradeButton = new Button(buttonContainer, SWT.NONE);
    upgradeButton.setText("Upgrade Selected");
    upgradeButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
    upgradeButton.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            handleUpgradeEvent();
        }
    });

    fTableViewer.addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            UpgradePomElement element = (UpgradePomElement) event.getElement();

            if (element.finished && event.getChecked()) {
                fTableViewer.setChecked(element, false);
            }
        }
    });
}

From source file:com.liferay.ide.project.ui.wizard.AbstractCheckboxCustomPart.java

License:Open Source License

@Override
public FormComponentPresentation createPresentation(SwtPresentation parent, Composite composite) {
    return new FormComponentPresentation(this, parent, composite) {
        @Override/*from  w ww  .j av a 2s. com*/
        public void render() {
            final Composite parent = SWTUtil.createComposite(composite(), 2, 2, GridData.FILL_BOTH);

            checkBoxViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);

            checkBoxViewer.addCheckStateListener(new ICheckStateListener() {
                @Override
                public void checkStateChanged(CheckStateChangedEvent event) {
                    handleCheckStateChangedEvent(event);
                }
            });

            checkBoxViewer.setContentProvider(new CheckboxContentProvider());

            checkBoxViewer.setLabelProvider(new DelegatingStyledCellLabelProvider(getLableProvider()));

            final Table table = checkBoxViewer.getTable();
            final GridData tableData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 4);
            tableData.heightHint = 225;
            tableData.widthHint = 400;
            table.setLayoutData(tableData);

            final Button selectAllButton = new Button(parent, SWT.NONE);
            selectAllButton.setText("Select All");
            selectAllButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
            selectAllButton.addListener(SWT.Selection, new Listener() {
                @Override
                public void handleEvent(Event event) {
                    handleSelectAllEvent();
                }
            });

            final Button deselectAllButton = new Button(parent, SWT.NONE);
            deselectAllButton.setText("Deselect All");
            deselectAllButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
            deselectAllButton.addListener(SWT.Selection, new Listener() {
                @Override
                public void handleEvent(Event event) {
                    handleDeSelectAllEvent();
                }
            });

            final Button refreshButton = new Button(parent, SWT.NONE);
            refreshButton.setText("Refresh");
            refreshButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
            refreshButton.addListener(SWT.Selection, new Listener() {
                @Override
                public void handleEvent(Event event) {
                    checkAndUpdateCheckboxElement();
                }
            });

            startCheckThread();
        }

        private void startCheckThread() {
            final Thread t = new Thread() {
                @Override
                public void run() {
                    checkAndUpdateCheckboxElement();
                }
            };

            t.start();
        }
    };
}

From source file:com.maccasoft.composer.ListSelectionDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
    layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
    layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    composite.setLayout(layout);//from w  w w.j  a  v a  2s .c  o m
    composite.setLayoutData(new GridData(GridData.FILL_BOTH));
    applyDialogFont(composite);

    Label label = new Label(composite, SWT.NONE);
    label.setText(message);
    label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    viewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.widthHint = convertWidthInCharsToPixels(50);
    layoutData.heightHint = viewer.getTable().getItemHeight() * 20;
    viewer.getControl().setLayoutData(layoutData);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new LabelProvider());
    viewer.setInput(elements);

    return composite;
}

From source file:com.mansfield.pde.api.tools.internal.ui.preferencepages.TargetBaselinePreferencePage.java

License:Open Source License

private void createTargetProfilesGroup(Composite parent) {
    Composite comp = SWTFactory.createComposite(parent);
    GridLayoutFactory.swtDefaults().margins(0, 0).applyTo(comp);
    GridDataFactory.fillDefaults().grab(true, true).hint(350, SWT.DEFAULT).applyTo(comp);

    Label message = SWTFactory.createLabel(comp, SWT.WRAP, PDEUIMessages.TargetPlatformPreferencePage2_0);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(message);

    Label spacer = SWTFactory.createLabel(comp);
    GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).hint(SWT.DEFAULT, 1).applyTo(spacer);

    Composite tableComposite = SWTFactory.createComposite(comp);
    GridLayoutFactory.swtDefaults().margins(0, 0).numColumns(2).applyTo(tableComposite);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(tableComposite);

    Label tableTitle = SWTFactory.createLabel(tableComposite, PDEUIMessages.TargetPlatformPreferencePage2_2);
    GridDataFactory.swtDefaults().span(2, 1).applyTo(tableTitle);

    fTableViewer = CheckboxTableViewer.newCheckList(tableComposite, SWT.MULTI | SWT.BORDER);
    GridDataFactory.fillDefaults().hint(250, SWT.DEFAULT).grab(true, true).applyTo(fTableViewer.getTable());

    fTableViewer.setLabelProvider(new TargetNameLabelProvider());
    fTableViewer.setContentProvider(ArrayContentProvider.getInstance());
    fTableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object definition = event.getElement();
            if (event.getChecked()) {
                fTableViewer.setCheckedElements(new Object[] { definition });
                int id = getIdentifier(definition);
                newDefinitionId = id;/*from w  ww .ja  va2s  .c o  m*/
            } else {
                fTableViewer.setChecked(definition, event.getChecked());
                newDefinitionId = NULL_DEFINITION;
            }
            rebuild_Count = 0;
            fTableViewer.refresh(true);
            is_Dirty = true;
        }
    });
    fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
            updateDetails();
        }
    });
    fTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection ss = (IStructuredSelection) event.getSelection();
            handleEdit(ss.getFirstElement());
        }
    });
    fTableViewer.getTable().addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent e) {
            if (e.stateMask == SWT.NONE && e.keyCode == SWT.DEL) {
                handleRemove();
            }
        }
    });

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

    Composite buttonComposite = SWTFactory.createComposite(tableComposite);
    GridLayoutFactory.swtDefaults().margins(0, 0).applyTo(buttonComposite);
    GridDataFactory.fillDefaults().applyTo(buttonComposite);

    fReloadButton = SWTFactory.createPushButton(buttonComposite,
            PDEUIMessages.TargetPlatformPreferencePage2_16);
    int width = SWTFactory.getButtonWidthHint(fReloadButton);
    GridDataFactory.fillDefaults().hint(width, SWT.DEFAULT).applyTo(fReloadButton);
    fReloadButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            handleReload();
        }
    });

    spacer = SWTFactory.createLabel(buttonComposite);
    GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).hint(SWT.DEFAULT, 1).applyTo(spacer);

    fAddButton = SWTFactory.createPushButton(buttonComposite, PDEUIMessages.TargetPlatformPreferencePage2_3);
    GridDataFactory.fillDefaults().applyTo(fAddButton);
    fAddButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            handleAdd();
        }
    });

    fEditButton = SWTFactory.createPushButton(buttonComposite, PDEUIMessages.TargetPlatformPreferencePage2_5);
    GridDataFactory.fillDefaults().applyTo(fEditButton);
    fEditButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            handleEdit(getCurrentSelection().get(0));
        }
    });

    fRemoveButton = SWTFactory.createPushButton(buttonComposite, PDEUIMessages.TargetPlatformPreferencePage2_7);
    GridDataFactory.fillDefaults().applyTo(fRemoveButton);
    fRemoveButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            handleRemove();
        }
    });

    // TODO: Bad Label
    fMoveButton = SWTFactory.createPushButton(buttonComposite, PDEUIMessages.TargetPlatformPreferencePage2_13,
            null);
    GridDataFactory.fillDefaults().applyTo(fMoveButton);
    fMoveButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            handleMove();
        }
    });

    Composite detailsComposite = SWTFactory.createComposite(comp);
    GridLayoutFactory.swtDefaults().margins(0, 0).applyTo(detailsComposite);
    GridDataFactory.fillDefaults().applyTo(detailsComposite);

    Label locations = SWTFactory.createLabel(detailsComposite, PDEUIMessages.TargetPlatformPreferencePage2_25);
    GridDataFactory.fillDefaults().applyTo(locations);

    fDetails = new TableViewer(detailsComposite);
    GridDataFactory.fillDefaults().hint(SWT.DEFAULT, 50).grab(true, false).applyTo(fDetails.getTable());

    fDetails.setLabelProvider(new DefinitionLocationLabelProvider(true, true));
    fDetails.setContentProvider(new ArrayContentProvider());

    compilers_ConfigBlock = new ApiBaselinesConfigurationBlock((IWorkbenchPreferenceContainer) getContainer());
    compilers_ConfigBlock.createControl(comp, null);

    // Initialization steps

    // Bootstrap the buttons with their initial state
    updateButtons();

    // Add the existing API Baseline definitions
    BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
        public void run() {
            IApiBaseline[] existingBaselines = baseline_Manager.getApiBaselines();
            List<IApiBaseline> baselines = new ArrayList<IApiBaseline>(existingBaselines.length);
            Collections.addAll(baselines, existingBaselines);
            // Find any persisted (active?) baselines with the @target extension
            // and remove them from the list of baselines since they should be
            // associated with a target
            for (int i = 0; i < baselines.size(); i++) {
                IApiBaseline baseline = baselines.get(i);
                if (baseline.getName().endsWith(TARGET_BASELINE_EXTENSION)) {
                    baselines.remove(i--);
                }
            }

            buildIdentifiers(baselines);
            baselineDefinitions.addAll(baselines);
            allDefinitions.addAll(baselines);
        }
    });

    // Add the existing Target definitions
    BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
        public void run() {
            ITargetPlatformService service = getTargetService();
            if (service != null) {
                ITargetHandle[] targets = service.getTargets(null);
                for (int i = 0; i < targets.length; i++) {
                    try {
                        ITargetDefinition target = targets[i].getTargetDefinition();
                        buildIdentifier(target);
                        targetDefinitions.add(target);
                        allDefinitions.add(target);
                    } catch (CoreException e) {
                        PDECore.log(e);
                        setErrorMessage(e.getMessage());
                    }
                }
            }
        }
    });

    // Load the definitions into the table
    fTableViewer.setInput(allDefinitions);

    // Set the active baseline, if any
    BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
        public void run() {
            IApiBaseline activeBaseline = baseline_Manager.getDefaultApiBaseline();
            if (activeBaseline != null) {
                if (!activeBaseline.getName().endsWith(TARGET_BASELINE_EXTENSION)) {
                    fTableViewer.setCheckedElements(new Object[] { activeBaseline });
                    activeDefinitionId = getIdentifier(activeBaseline);
                    newDefinitionId = activeDefinitionId;
                } else {
                    int index = activeBaseline.getName().lastIndexOf(TARGET_BASELINE_EXTENSION);
                    String name = activeBaseline.getName().substring(0, index);
                    for (int i = 0; i < targetDefinitions.size(); i++) {
                        ITargetDefinition target = targetDefinitions.get(i);
                        if (target.getName().equals(name)) {
                            try {
                                IApiBaseline tempBaseline = ApiModelFactory.newApiBaseline("local_temp"); //$NON-NLS-1$
                                try {
                                    addComponents(tempBaseline, target, new NullProgressMonitor());
                                } catch (CoreException ex) {
                                    // do nothing, assume they do not match
                                    continue;
                                }

                                // Even though they are supposed to be returned by lookup order,
                                // the order is non-deterministic (provable, bug?) thus we need to
                                // sort the arrays
                                IApiComponent[] activeComponents = activeBaseline.getApiComponents();
                                Arrays.sort(activeComponents, componentSorter);
                                IApiComponent[] tempComponents = tempBaseline.getApiComponents();
                                Arrays.sort(tempComponents, componentSorter);

                                if (activeComponents.length != tempComponents.length) {
                                    continue;
                                }

                                boolean equal = true;
                                for (int j = 0; j < activeComponents.length && equal; j++) {
                                    // Since we are only interested in the bundles and not any SystemLibraryComponents
                                    // we can use the overridden equals() method in BundleComponent for the evaluation
                                    // If there is a system library then this will fail, as it should since Targets
                                    // cannot have system libraries
                                    equal &= areEqual(activeComponents[j], tempComponents[j]);
                                }

                                if (equal) {
                                    fTableViewer.setCheckedElements(new Object[] { target });
                                    activeDefinitionId = getIdentifier(target);
                                    newDefinitionId = activeDefinitionId;
                                    break;
                                }
                            } finally {
                                baseline_Manager.removeApiBaseline("local_temp"); //$NON-NLS-1$
                            }
                        }
                    }
                }
            }
        }
    });

    fTableViewer.refresh(true);
}