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.celllife.idart.gui.reportParameters.CohortDrugCollections.java

License:Open Source License

private void createTblPackages() {

    lblColumnTableHeader = new Label(getShell(), SWT.BORDER);
    lblColumnTableHeader.setBounds(new Rectangle(120, 360, 200, 20));
    lblColumnTableHeader.setText("Column Name");
    lblColumnTableHeader.setAlignment(SWT.CENTER);
    lblColumnTableHeader.setFont(ResourceUtils.getFont(iDartFont.VERASANS_8));

    tblColumns = CheckboxTableViewer.newCheckList(getShell(), SWT.BORDER);
    tblColumns.getTable().setBounds(new org.eclipse.swt.graphics.Rectangle(120, 380, 200, 200));
    tblColumns.getTable().setFont(ResourceUtils.getFont(iDartFont.VERASANS_8));
    tblColumns.setContentProvider(new ArrayContentProvider());
    tblColumns.setInput(getColumns());//from   w w w. j  av a2 s . co  m
    tblColumns.setCheckedElements(DrugsDispensedEnum.getDefaults());

    lblDrugTableHeader = new Label(getShell(), SWT.BORDER);
    lblDrugTableHeader.setBounds(new Rectangle(370, 360, 200, 20));
    lblDrugTableHeader.setText("Drug Name");
    lblDrugTableHeader.setAlignment(SWT.CENTER);
    lblDrugTableHeader.setFont(ResourceUtils.getFont(iDartFont.VERASANS_8));

    tblPackageColumns = CheckboxTableViewer.newCheckList(getShell(), SWT.BORDER);
    tblPackageColumns.getTable().setBounds(new org.eclipse.swt.graphics.Rectangle(370, 380, 200, 200));
    tblPackageColumns.getTable().setFont(ResourceUtils.getFont(iDartFont.VERASANS_8));
    tblPackageColumns.setContentProvider(new ArrayContentProvider());
    tblPackageColumns.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent arg0) {
            Object element = arg0.getElement();
            if (!arg0.getChecked() && Arrays.asList(getDefaults()).contains(element)) {
                tblPackageColumns.setChecked(element, true);
            }
        }
    });

    tblPackageColumns.setInput(getPackageColumns());
    tblPackageColumns.setCheckedElements(getDefaults());
    tblPackageColumns.setGrayedElements(getDefaults());
}

From source file:org.celllife.idart.gui.reportParameters.DrugsDispensed.java

License:Open Source License

private void createTblDrugs() {

    lblColumnTableHeader = new Label(getShell(), SWT.BORDER);
    lblColumnTableHeader.setBounds(new Rectangle(120, 360, 200, 20));
    lblColumnTableHeader.setText("Column Name");
    lblColumnTableHeader.setAlignment(SWT.CENTER);
    lblColumnTableHeader.setFont(ResourceUtils.getFont(iDartFont.VERASANS_8));

    tblColumns = CheckboxTableViewer.newCheckList(getShell(), SWT.BORDER);
    tblColumns.getTable().setBounds(new org.eclipse.swt.graphics.Rectangle(120, 380, 200, 200));
    tblColumns.getTable().setFont(ResourceUtils.getFont(iDartFont.VERASANS_8));
    tblColumns.setContentProvider(new ArrayContentProvider());
    tblColumns.addCheckStateListener(new ICheckStateListener() {
        @Override/* w  w  w. j ava 2  s . c o  m*/
        public void checkStateChanged(CheckStateChangedEvent arg0) {
            DrugsDispensedEnum element = (DrugsDispensedEnum) arg0.getElement();
            if (DrugsDispensedEnum.getCompulsory().contains(element) && !arg0.getChecked()) {
                tblColumns.setChecked(element, true);
            }
        }
    });

    lblDrugTableHeader = new Label(getShell(), SWT.BORDER);
    lblDrugTableHeader.setBounds(new Rectangle(370, 360, 200, 20));
    lblDrugTableHeader.setText("Drug Name");
    lblDrugTableHeader.setAlignment(SWT.CENTER);
    lblDrugTableHeader.setFont(ResourceUtils.getFont(iDartFont.VERASANS_8));

    tblDrugNames = CheckboxTableViewer.newCheckList(getShell(), SWT.BORDER);
    tblDrugNames.getTable().setBounds(new org.eclipse.swt.graphics.Rectangle(370, 380, 200, 200));
    tblDrugNames.getTable().setFont(ResourceUtils.getFont(iDartFont.VERASANS_8));
    tblDrugNames.setContentProvider(new ArrayContentProvider());

    drugList = DrugManager.getAllDrugs(getHSession());
    tblDrugNames.setInput(drugList);
    tblDrugNames.setLabelProvider(new DrugsDispensedLabelProvider());

    tblColumns.setInput(DrugsDispensedEnum.values());
    tblColumns.setCheckedElements(DrugsDispensedEnum.getDefaults());
    tblColumns.setGrayedElements(DrugsDispensedEnum.getCompulsory().toArray());

    populateTblDrugs();

    chkBatchInformation = new Button(getShell(), SWT.CHECK);
    chkBatchInformation.setBounds(new Rectangle(250, 585, 200, 20));
    chkBatchInformation.setFont(ResourceUtils.getFont(iDartFont.VERASANS_8));
    chkBatchInformation.setText("Include Batch Information in Report?");
    chkBatchInformation.setSelection(true);

}

From source file:org.codecover.eclipse.properties.CodeCoverPropertyPage.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {
    Composite mainComposite = new Composite(parent, SWT.NONE);
    mainComposite.setLayout(new GridLayout());
    mainComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    this.codeCoverState = new Button(mainComposite, SWT.CHECK);
    this.codeCoverState.setText(ENABLE_CODE_COVER_LABEL);
    this.codeCoverState.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    this.codeCoverState.setFont(parent.getFont());
    this.codeCoverState.addSelectionListener(new SelectionAdapter() {
        @Override/* w w w.  j av a  2s .co m*/
        public void widgetSelected(SelectionEvent e) {
            CodeCoverPropertyPage.this.handleCriteriaListState();
            CodeCoverPropertyPage.this.validatePage();
        }
    });

    this.codeCoverState.setSelection(CodeCoverPlugin.isCodeCoverActivated(getProject()));

    Label tableLabel = new Label(mainComposite, SWT.NONE);
    tableLabel.setFont(parent.getFont());
    tableLabel.setText(SELECT_THE_COVERAGE_CRITERIA_LABEL);

    this.tableViewer = CheckboxTableViewer.newCheckList(mainComposite, SWT.BORDER);
    this.tableViewer.getTable().setFont(parent.getFont());
    this.tableViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    this.tableViewer.setContentProvider(new CriteriaListContentProvider());
    this.tableViewer.setLabelProvider(new CriteriaListLabelProvider());
    this.tableViewer.addCheckStateListener(new CriteriaListCheckListener());

    this.tableViewer.setInput(getAllCriteria().toArray());

    for (Criterion criterion : getAllCriteria()) {
        boolean state = CodeCoverPlugin.getCriterionSelectedState(getProject(), criterion);
        this.tableViewer.setChecked(criterion, state);
    }

    handleCriteriaListState();
    validatePage();

    return mainComposite;
}

From source file:org.codecover.eclipse.views.controls.DeleteTSCsSelectDialog.java

License:Open Source License

private static CheckboxTableViewer createTSCList(Composite parent) {
    /*/*from  w w  w . j  av a2s  .  c  o m*/
     * with SWT.MULTI the selection mark (usually the selected row has a
     * blue background) can be hidden by setting an empty selection
     */
    CheckboxTableViewer viewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER | SWT.MULTI);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new LabelProvider() {
        @Override
        public Image getImage(Object element) {
            return CodeCoverPlugin.getDefault().getImageRegistry()
                    .get(CodeCoverPlugin.Image.SESSION_CONTAINER.getPath());
        }

        @Override
        public String getText(Object element) {
            return ((TSContainerInfo) element).getName();
        }
    });
    // create context menu
    MenuManager menuMgr = new MenuManager(null);
    menuMgr.add(DeleteTSCsSelectDialog.makeSelectAllAction(viewer));
    menuMgr.add(DeleteTSCsSelectDialog.makeDeselectAllAction(viewer));
    Menu menu = menuMgr.createContextMenu(viewer.getControl());
    viewer.getControl().setMenu(menu);
    return viewer;
}

From source file:org.codehaus.groovy.eclipse.wizards.ListMessageDialog.java

License:Open Source License

@Override
protected Control createCustomArea(Composite parent) {
    ((GridLayout) parent.getLayout()).numColumns = 2;
    ((GridLayout) parent.getLayout()).makeColumnsEqualWidth = false;

    viewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.heightHint = 150;// www . j a v a  2s.co m
    gd.verticalSpan = 2;
    viewer.getTable().setLayoutData(gd);
    viewer.setContentProvider(new TableContentProvider());
    viewer.setLabelProvider(new WorkbenchLabelProvider() {
        @Override
        protected String decorateText(String input, Object element) {
            String label = super.decorateText(input, element);
            if (element instanceof IProject) {
                SpecifiedVersion version = CompilerUtils.getCompilerLevel((IProject) element);
                return label + " -- " + version.toReadableVersionString();
            } else {
                return label;
            }
        }
    });
    viewer.setInput(mismatchedProjects);
    viewer.setAllChecked(true);
    applyDialogFont(viewer.getControl());
    createButton(parent, "Select all", new SelectionAdapter() { //$NON-NLS-1$
        @Override
        public void widgetSelected(SelectionEvent e) {
            viewer.setAllChecked(true);
        }
    });
    createButton(parent, "Select none", new SelectionAdapter() { //$NON-NLS-1$
        @Override
        public void widgetSelected(SelectionEvent e) {
            viewer.setAllChecked(false);
        }
    });

    Composite compilerBlock = CompilerSwitchUIHelper.createCompilerSwitchBlock(parent);
    compilerBlock.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1));

    return parent;
}

From source file:org.cropinformatics.ui.viewers.list.SingleListTableViewer.java

License:Apache License

@Override
protected StructuredViewer createStructuredViewer(Composite parent) {
    TableViewer tableViewer;/*w  w w . j  a  v a2s  . co  m*/

    if (ConfigurationUtils.isCheckSelectionInUse(getConfiguration()))
        tableViewer = CheckboxTableViewer.newCheckList(parent, createWidgetStyle());
    else
        tableViewer = new TableViewer(parent, createWidgetStyle());

    tableViewer.setColumnProperties(new String[] { "Name" });

    return tableViewer;
}

From source file:org.dafoe.plugin.imp.skos.main.SkosLoaderResource.java

License:Open Source License

@Override
public void createUI(Composite parent) {
    final Composite body = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout(3, false);
    layout.horizontalSpacing = 0;/*from  w ww.j  a v  a 2  s . com*/
    layout.verticalSpacing = 0;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    body.setLayout(layout);

    new Label(body, SWT.NONE).setText("TerminoOntology Name:");

    // Create the text box extra wide to show long paths
    txtTerminoOntoName = new Text(body, SWT.BORDER);
    GridData dataRes = new GridData(GridData.FILL_HORIZONTAL);
    dataRes.horizontalSpan = 2;
    txtTerminoOntoName.setLayoutData(dataRes);

    new Label(body, SWT.NONE).setText("File :");

    // Create the text box extra wide to show long paths
    txtSelectedFile = new Text(body, SWT.BORDER);
    txtSelectedFile.setEnabled(false);
    GridData data = new GridData(GridData.FILL_HORIZONTAL);
    data.horizontalSpan = 1;
    txtSelectedFile.setLayoutData(data);

    // Clicking the button will allow the user
    // to select a directory
    Button btnBrowse = new Button(body, SWT.PUSH);
    btnBrowse.setText("Browse...");
    btnBrowse.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            FileDialog dlg = new FileDialog(body.getShell());

            // Set the initial filter path according
            // to anything they've selected or typed in
            //dlg.setFilterPath(txtDirectory.getText());

            // Change the title bar text
            dlg.setText(" Dialog");

            // Calling open() will open and run the dialog.
            // It will return the selected directory, or
            // null if user cancels
            String seletedFilePath = dlg.open();
            currentSkosFile = new File(seletedFilePath);

            if (currentSkosFile != null) {
                // Set the text box to the new selection
                txtSelectedFile.setText(seletedFilePath);

                //remove all already loaded files
                fileCheckBoxTableViewer.getTable().removeAll();

                // load files of the selected dir in fileTableviewer
                skosModel = SKOSModel.newInstance();

                skosModel.read(currentSkosFile);
                //SKOSConceptScheme[]

                skosConceptSchemesInFile = Util.toList(skosModel.getConceptSchemes());

                fileCheckBoxTableViewer.setInput(skosConceptSchemesInFile);

                fileCheckBoxTableViewer.refresh();
            }
        }
    });

    //final Composite areaFile= new Composite(body, SWT.NONE);
    GridData gdAreaFile = new GridData(GridData.FILL_HORIZONTAL);
    //areaFile.setLayoutData(GDCOMP);
    //GridLayout GL2 = new GridLayout(3, false);
    //areaFile.setLayout(GL2);
    gdAreaFile.horizontalSpan = 2;
    gdAreaFile.verticalSpan = 1;
    Label lbFile = new Label(body, SWT.NONE);
    lbFile.setText("Selected ConceptScheme(s):");
    //lbFile.setLayoutData(gdAreaFile);
    // create blank ui
    Label lbBlank = new Label(body, SWT.NONE);
    lbBlank.setLayoutData(gdAreaFile);
    // create blank ui
    //new Label(body, SWT.NONE);

    //final Composite areaViewer= new Composite(body, SWT.NONE);
    GridData gdAreaViewer = new GridData(GridData.FILL_HORIZONTAL);
    gdAreaViewer.horizontalSpan = 2;
    gdAreaViewer.verticalSpan = 10;

    // Create the CheckboxTableViewer to display the files in the source dir
    fileCheckBoxTableViewer = CheckboxTableViewer.newCheckList(body, SWT.BORDER);
    fileCheckBoxTableViewer.getTable().setLayoutData(gdAreaViewer);
    fileCheckBoxTableViewer.setContentProvider(new SkosConceptSchemeContenProvider());
    fileCheckBoxTableViewer.setLabelProvider(new SkosConceptSchemeLabelProvider());

    Button btnSelectAll = new Button(body, SWT.PUSH);
    btnSelectAll.setText("Select all");
    btnSelectAll.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {

        }
    });
    btnSelectAll.setEnabled(false);

    Button btnDeselectAll = new Button(body, SWT.PUSH);
    btnDeselectAll.setText("Deselect all");
    btnDeselectAll.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
        }
    });
    btnDeselectAll.setEnabled(false);

    Button btnRefresh = new Button(body, SWT.PUSH);
    btnRefresh.setText("Refresh");
    btnRefresh.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {

        }
    });
    btnRefresh.setEnabled(false);

    // all plugin must explicit notify the change of the content after build it
    setContent(body);
}

From source file:org.dawnsci.conversion.ui.pages.AbstractDatasetChoosePage.java

License:Open Source License

public void createContentAfterFileChoose(Composite container) {

    this.multiFileMessage = new Label(container, SWT.WRAP);
    multiFileMessage.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 4, 1));
    multiFileMessage.setText("(Directory will contain exported files named after the data file.)");
    GridUtils.setVisible(multiFileMessage, false);

    this.overwriteButton = new Button(container, SWT.CHECK);
    overwriteButton.setText("Overwrite file if it exists.");
    overwriteButton.setSelection(overwrite);
    overwriteButton.addSelectionListener(new SelectionAdapter() {
        @Override/*from  ww w .j ava2  s  .c  o  m*/
        public void widgetSelected(SelectionEvent e) {
            overwrite = overwriteButton.getSelection();
            pathChanged();
        }
    });
    overwriteButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 4, 1));

    this.openButton = new Button(container, SWT.CHECK);
    openButton.setText("Open file after export.");
    openButton.setSelection(true);
    openButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            AbstractDatasetChoosePage.this.open = openButton.getSelection();
            pathChanged();
        }
    });
    openButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 4, 1));

    final Composite main = new Composite(container, SWT.NONE);
    main.setLayout(new GridLayout(2, false));
    main.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1));
    GridUtils.removeMargins(main);

    final Label chooseData = new Label(main, SWT.LEFT);
    chooseData.setText("Please tick data to export:");

    final ToolBarManager toolMan = new ToolBarManager(SWT.RIGHT | SWT.FLAT | SWT.WRAP);
    createActions(toolMan);
    toolMan.createControl(main);
    toolMan.getControl().setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, true, false));

    final Text searchText = new Text(main, SWT.SINGLE | SWT.BORDER | SWT.SEARCH | SWT.ICON_CANCEL);
    searchText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
    searchText.setToolTipText("Search on data set name.");
    searchText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1));

    this.checkboxTableViewer = CheckboxTableViewer.newCheckList(main, SWT.BORDER | SWT.FULL_SELECTION);
    Table table = checkboxTableViewer.getTable();
    table.setToolTipText(getDataTableTooltipText());
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

    final MenuManager man = new MenuManager();
    createActions(man);
    Menu menu = man.createContextMenu(checkboxTableViewer.getControl());
    checkboxTableViewer.getControl().setMenu(menu);

    checkboxTableViewer.setContentProvider(new IStructuredContentProvider() {
        @Override
        public void dispose() {
        }

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

        @Override
        public Object[] getElements(Object inputElement) {
            return dataSetNames;
        }
    });
    checkboxTableViewer.setInput(new Object());
    checkboxTableViewer.setAllGrayed(true);

    final DatasetTableFilter setFilter = new DatasetTableFilter();
    checkboxTableViewer.addFilter(setFilter);
    searchText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            if (main.isDisposed())
                return;
            setFilter.setSearchText(searchText.getText());
            checkboxTableViewer.refresh();
        }
    });

    setPageComplete(false);

}

From source file:org.dawnsci.conversion.ui.pages.H5From1DConvertPage.java

License:Open Source License

public void createContentAfterFileChoose(Composite container) {

    Composite main = new Composite(container, SWT.NONE);
    main.setLayout(new GridLayout(2, false));
    main.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1));

    final Label chooseData = new Label(main, SWT.LEFT);
    chooseData.setText("Please tick data to export:");

    final ToolBarManager toolMan = new ToolBarManager(SWT.RIGHT | SWT.FLAT | SWT.WRAP);
    createActions(toolMan);/*from w  ww  .j  av a 2 s  . c om*/
    toolMan.createControl(main);
    toolMan.getControl().setLayoutData(new GridData(SWT.RIGHT, SWT.FILL, true, false));

    this.checkboxTableViewer = CheckboxTableViewer.newCheckList(main, SWT.BORDER | SWT.FULL_SELECTION);
    Table table = checkboxTableViewer.getTable();
    table.setToolTipText("Select data to export to the csv.");
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

    final MenuManager man = new MenuManager();
    createActions(man);
    Menu menu = man.createContextMenu(checkboxTableViewer.getControl());
    checkboxTableViewer.getControl().setMenu(menu);

    checkboxTableViewer.setContentProvider(new IStructuredContentProvider() {
        @Override
        public void dispose() {
        }

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

        @Override
        public Object[] getElements(Object inputElement) {
            return dataSetNames;
        }
    });
    checkboxTableViewer.setInput(new Object());
    checkboxTableViewer.setAllGrayed(true);

    CheckBoxGroup axisCheckBox = new CheckBoxGroup(main, SWT.None);
    axisCheckBox.setLayout(new GridLayout(2, false));
    axisCheckBox.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    axisCheckBox.setText("Save axis dataset");

    final Composite content = axisCheckBox.getContent();

    nameChoice = new CCombo(content, SWT.READ_ONLY | SWT.BORDER);
    nameChoice.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    nameChoice.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            datasetName = nameChoice.getItem(nameChoice.getSelectionIndex());
        }
    });

    nameChoice.setItems(dataSetNames);

    Label label = new Label(content, SWT.WRAP);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    label.setText(
            "Select a dataset to be used as an axis. Nexus signal/axis tags will be added to appropriately sized datasets.");
    axisCheckBox.deactivate();

    createAdvanced(container);

    setPageComplete(false);
}

From source file:org.dawnsci.internal.intro.universal.CustomizationContentsArea.java

License:Open Source License

private void addHomePage() {
    TabItem item = new TabItem(tabFolder, SWT.NULL);
    item.setText(Messages.WelcomeCustomizationPreferencePage_home);
    Composite container = new Composite(tabFolder, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;//from  ww w . j  a  v  a  2s.c  o  m
    container.setLayout(layout);
    Composite leftColumn = new Composite(container, SWT.NULL);
    layout = new GridLayout();
    layout.marginWidth = layout.marginHeight = 0;
    leftColumn.setLayout(layout);
    leftColumn.setLayoutData(new GridData(GridData.FILL_BOTH));
    Composite rightColumn = new Composite(container, SWT.NULL);
    layout = new GridLayout();
    layout.marginWidth = layout.marginHeight = 0;
    rightColumn.setLayout(layout);
    rightColumn.setLayoutData(new GridData(GridData.FILL_BOTH));

    Label themeLabel = new Label(leftColumn, SWT.NULL);
    themeLabel.setText(Messages.WelcomeCustomizationPreferencePage_background);
    GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
    themeLabel.setLayoutData(gd);
    themes = new TableViewer(leftColumn, SWT.BORDER);
    themes.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
    themes.setContentProvider(contentProvider);
    themes.setLabelProvider(labelProvider);
    themes.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent e) {
            Object sel = ((StructuredSelection) e.getSelection()).getFirstElement();
            introTheme = (IntroTheme) sel;
            themePreview.redraw();
            enableFontsButton();
        }
    });
    loadThemes();
    Label previewLabel = new Label(rightColumn, SWT.NULL);
    previewLabel.setText(Messages.WelcomeCustomizationPreferencePage_preview);
    themePreview = new Canvas(rightColumn, SWT.BORDER);
    gd = new GridData();
    gd.widthHint = 160 + 20;
    gd.heightHint = 120 + 20;
    themePreview.setLayoutData(gd);
    themePreview.addPaintListener(new PaintListener() {

        public void paintControl(PaintEvent e) {
            if (introTheme == null)
                return;
            Image bgImage = introTheme.getPreviewImage();
            if (bgImage == null)
                return;
            //Rectangle carea = themePreview.getClientArea();
            Rectangle ibounds = bgImage.getBounds();
            e.gc.drawImage(bgImage, 0, 0, ibounds.width, ibounds.height, 10, 10, 160, 120);
        }
    });
    Label label = new Label(container, SWT.NULL);
    label.setText(Messages.WelcomeCustomizationPreferencePage_rootpages);
    gd = new GridData();
    gd.horizontalSpan = 2;
    label.setLayoutData(gd);
    rootPages = CheckboxTableViewer.newCheckList(container, SWT.BORDER);
    rootPages.setContentProvider(contentProvider);
    rootPages.setLabelProvider(labelProvider);
    gd = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
    gd.horizontalSpan = 2;
    rootPages.getControl().setLayoutData(gd);
    rootPages.addCheckStateListener(new ICheckStateListener() {

        public void checkStateChanged(CheckStateChangedEvent event) {
            RootPage page = (RootPage) event.getElement();
            boolean checked = event.getChecked();
            onPageChecked(page.id, checked);
        }
    });
    item.setControl(container);
}