Example usage for org.eclipse.jface.viewers CheckboxTableViewer CheckboxTableViewer

List of usage examples for org.eclipse.jface.viewers CheckboxTableViewer CheckboxTableViewer

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers CheckboxTableViewer CheckboxTableViewer.

Prototype

public CheckboxTableViewer(Table table) 

Source Link

Document

Creates a table viewer on the given table control.

Usage

From source file:org.eclipse.team.internal.ccvs.ui.tags.TagConfigurationDialog.java

License:Open Source License

/**
 * @see Dialog#createDialogArea(Composite)
 *///w w w .j a va  2 s  .  co  m
protected Control createDialogArea(Composite parent) {
    Composite shell = new Composite(parent, SWT.NONE);
    GridData data = new GridData(GridData.FILL_BOTH);
    shell.setLayoutData(data);
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 2;
    gridLayout.makeColumnsEqualWidth = true;
    gridLayout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
    gridLayout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
    shell.setLayout(gridLayout);

    Composite comp = new Composite(shell, SWT.NULL);
    gridLayout = new GridLayout();
    gridLayout.numColumns = 1;
    gridLayout.marginWidth = 0;
    gridLayout.marginHeight = 0;
    comp.setLayout(gridLayout);
    comp.setLayoutData(new GridData(GridData.FILL_BOTH));

    Label cvsResourceTreeLabel = new Label(comp, SWT.NONE);
    cvsResourceTreeLabel.setText(CVSUIMessages.TagConfigurationDialog_5);
    data = new GridData();
    data.horizontalSpan = 1;
    cvsResourceTreeLabel.setLayoutData(data);

    Tree tree = new Tree(comp, SWT.BORDER | SWT.MULTI);
    cvsResourceTree = new TreeViewer(tree);
    cvsResourceTree.setContentProvider(new RemoteContentProvider());
    cvsResourceTree.setLabelProvider(new WorkbenchLabelProvider());
    data = new GridData(GridData.FILL_BOTH);
    data.heightHint = 150;
    data.horizontalSpan = 1;
    cvsResourceTree.getTree().setLayoutData(data);
    cvsResourceTree.setComparator(new FileComparator());
    cvsResourceTree.setInput(TagSourceResourceAdapter.getViewerInput(tagSource));
    cvsResourceTree.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateShownTags();
            updateEnablements();
        }
    });

    comp = new Composite(shell, SWT.NULL);
    gridLayout = new GridLayout();
    gridLayout.numColumns = 1;
    gridLayout.marginWidth = 0;
    gridLayout.marginHeight = 0;
    comp.setLayout(gridLayout);
    comp.setLayoutData(new GridData(GridData.FILL_BOTH));

    Label cvsTagTreeLabel = new Label(comp, SWT.NONE);
    cvsTagTreeLabel.setText(CVSUIMessages.TagConfigurationDialog_6);
    data = new GridData();
    data.horizontalSpan = 1;
    cvsTagTreeLabel.setLayoutData(data);

    final Table table = new Table(comp,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.CHECK);
    data = new GridData(GridData.FILL_BOTH);
    data.heightHint = 150;
    data.horizontalSpan = 1;
    table.setLayoutData(data);
    cvsTagTree = new CheckboxTableViewer(table);
    cvsTagTree.setContentProvider(new WorkbenchContentProvider());
    cvsTagTree.setLabelProvider(new WorkbenchLabelProvider());
    cvsTagTree.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateEnablements();
        }
    });

    Composite selectComp = new Composite(comp, SWT.NONE);
    GridLayout selectLayout = new GridLayout(2, true);
    selectLayout.marginHeight = selectLayout.marginWidth = 0;
    selectComp.setLayout(selectLayout);
    selectComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    Button selectAllButton = new Button(selectComp, SWT.PUSH);
    selectAllButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    selectAllButton.setText(CVSUIMessages.ReleaseCommentDialog_selectAll);
    selectAllButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            int nItems = table.getItemCount();
            for (int j = 0; j < nItems; j++)
                table.getItem(j).setChecked(true);
        }
    });
    Button deselectAllButton = new Button(selectComp, SWT.PUSH);
    deselectAllButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    deselectAllButton.setText(CVSUIMessages.ReleaseCommentDialog_deselectAll);
    deselectAllButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            int nItems = table.getItemCount();
            for (int j = 0; j < nItems; j++)
                table.getItem(j).setChecked(false);
        }
    });

    cvsTagTree.setComparator(new ViewerComparator() {
        public int compare(Viewer viewer, Object e1, Object e2) {
            if (!(e1 instanceof TagElement) || !(e2 instanceof TagElement))
                return super.compare(viewer, e1, e2);
            CVSTag tag1 = ((TagElement) e1).getTag();
            CVSTag tag2 = ((TagElement) e2).getTag();
            int type1 = tag1.getType();
            int type2 = tag2.getType();
            if (type1 != type2) {
                return type1 - type2;
            }
            // Sort in reverse order so larger numbered versions are at the top
            return -tag1.compareTo(tag2);
        }
    });

    Composite rememberedTags = new Composite(shell, SWT.NONE);
    data = new GridData(GridData.FILL_BOTH);
    data.horizontalSpan = 2;
    rememberedTags.setLayoutData(data);
    gridLayout = new GridLayout();
    gridLayout.numColumns = 2;
    gridLayout.marginHeight = 0;
    gridLayout.marginWidth = 0;
    rememberedTags.setLayout(gridLayout);

    Label rememberedTagsLabel = new Label(rememberedTags, SWT.NONE);
    rememberedTagsLabel.setText(CVSUIMessages.TagConfigurationDialog_7);
    data = new GridData();
    data.horizontalSpan = 2;
    rememberedTagsLabel.setLayoutData(data);

    tree = new Tree(rememberedTags, SWT.BORDER | SWT.MULTI);
    cvsDefinedTagsTree = new TreeViewer(tree);
    cvsDefinedTagsTree.setContentProvider(new WorkbenchContentProvider());
    cvsDefinedTagsTree.setLabelProvider(new WorkbenchLabelProvider());
    data = new GridData(GridData.FILL_BOTH);
    data.heightHint = 100;
    data.horizontalAlignment = GridData.FILL;
    data.grabExcessHorizontalSpace = true;
    cvsDefinedTagsTree.getTree().setLayoutData(data);
    cvsDefinedTagsRootElement = new TagSourceWorkbenchAdapter(wrappedTagSource,
            TagSourceWorkbenchAdapter.INCLUDE_BRANCHES | TagSourceWorkbenchAdapter.INCLUDE_VERSIONS
                    | TagSourceWorkbenchAdapter.INCLUDE_DATES);
    cvsDefinedTagsTree.setInput(cvsDefinedTagsRootElement);
    cvsDefinedTagsTree.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateEnablements();
        }
    });
    cvsDefinedTagsTree.setComparator(new ProjectElementComparator());

    Composite buttonComposite = new Composite(rememberedTags, SWT.NONE);
    data = new GridData();
    data.verticalAlignment = GridData.BEGINNING;
    buttonComposite.setLayoutData(data);
    gridLayout = new GridLayout();
    gridLayout.marginHeight = 0;
    gridLayout.marginWidth = 0;
    buttonComposite.setLayout(gridLayout);

    addSelectedTagsButton = new Button(buttonComposite, SWT.PUSH);
    addSelectedTagsButton.setText(CVSUIMessages.TagConfigurationDialog_8);
    data = getStandardButtonData(addSelectedTagsButton);
    data.horizontalAlignment = GridData.FILL;
    addSelectedTagsButton.setLayoutData(data);
    addSelectedTagsButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            rememberCheckedTags();
            updateShownTags();
            updateEnablements();
        }
    });
    Button addDatesButton = new Button(buttonComposite, SWT.PUSH);
    addDatesButton.setText(CVSUIMessages.TagConfigurationDialog_0);
    data = getStandardButtonData(addDatesButton);
    data.horizontalAlignment = GridData.FILL;
    addDatesButton.setLayoutData(data);
    addDatesButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            CVSTag dateTag = NewDateTagAction.getDateTag(getShell(), tagSource.getLocation());
            addDateTagsSelected(dateTag);
            updateShownTags();
            updateEnablements();
        }
    });
    removeTagButton = new Button(buttonComposite, SWT.PUSH);
    removeTagButton.setText(CVSUIMessages.TagConfigurationDialog_9);
    data = getStandardButtonData(removeTagButton);
    data.horizontalAlignment = GridData.FILL;
    removeTagButton.setLayoutData(data);
    removeTagButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            deleteSelected();
            updateShownTags();
            updateEnablements();
        }
    });

    Button removeAllTags = new Button(buttonComposite, SWT.PUSH);
    removeAllTags.setText(CVSUIMessages.TagConfigurationDialog_10);
    data = getStandardButtonData(removeAllTags);
    data.horizontalAlignment = GridData.FILL;
    removeAllTags.setLayoutData(data);
    removeAllTags.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            removeAllKnownTags();
            updateShownTags();
            updateEnablements();
        }
    });

    if (allowSettingAutoRefreshFiles) {
        Label explanation = new Label(rememberedTags, SWT.WRAP);
        explanation.setText(CVSUIMessages.TagConfigurationDialog_11);
        data = new GridData();
        data.horizontalSpan = 2;
        //data.widthHint = 300;
        explanation.setLayoutData(data);

        autoRefreshFileList = new org.eclipse.swt.widgets.List(rememberedTags, SWT.BORDER | SWT.MULTI);
        data = new GridData();
        data.heightHint = 45;
        data.horizontalAlignment = GridData.FILL;
        data.grabExcessHorizontalSpace = true;
        autoRefreshFileList.setLayoutData(data);
        try {
            autoRefreshFileList.setItems(CVSUIPlugin.getPlugin().getRepositoryManager()
                    .getAutoRefreshFiles(getSingleFolder(tagSource, false)));
        } catch (CVSException e) {
            autoRefreshFileList.setItems(new String[0]);
            CVSUIPlugin.log(e);
        }
        autoRefreshFileList.addSelectionListener(new SelectionListener() {
            public void widgetSelected(SelectionEvent e) {
                updateEnablements();
            }

            public void widgetDefaultSelected(SelectionEvent e) {
                updateEnablements();
            }
        });

        Composite buttonComposite2 = new Composite(rememberedTags, SWT.NONE);
        data = new GridData();
        data.verticalAlignment = GridData.BEGINNING;
        buttonComposite2.setLayoutData(data);
        gridLayout = new GridLayout();
        gridLayout.marginHeight = 0;
        gridLayout.marginWidth = 0;
        buttonComposite2.setLayout(gridLayout);

        addSelectedFilesButton = new Button(buttonComposite2, SWT.PUSH);
        addSelectedFilesButton.setText(CVSUIMessages.TagConfigurationDialog_12);
        data = getStandardButtonData(addSelectedFilesButton);
        data.horizontalAlignment = GridData.FILL;
        addSelectedFilesButton.setLayoutData(data);
        addSelectedFilesButton.addListener(SWT.Selection, new Listener() {
            public void handleEvent(Event event) {
                addSelectionToAutoRefreshList();
            }
        });

        removeFileButton = new Button(buttonComposite2, SWT.PUSH);
        removeFileButton.setText(CVSUIMessages.TagConfigurationDialog_13);
        data = getStandardButtonData(removeFileButton);
        data.horizontalAlignment = GridData.FILL;
        removeFileButton.setLayoutData(data);
        removeFileButton.addListener(SWT.Selection, new Listener() {
            public void handleEvent(Event event) {
                String[] selected = autoRefreshFileList.getSelection();
                for (int i = 0; i < selected.length; i++) {
                    autoRefreshFileList.remove(selected[i]);
                    autoRefreshFileList.setFocus();
                }
            }
        });
        PlatformUI.getWorkbench().getHelpSystem().setHelp(autoRefreshFileList,
                IHelpContextIds.TAG_CONFIGURATION_REFRESHLIST);
    }

    Label seperator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
    data = new GridData(GridData.FILL_BOTH);
    data.horizontalSpan = 2;
    seperator.setLayoutData(data);

    PlatformUI.getWorkbench().getHelpSystem().setHelp(shell, IHelpContextIds.TAG_CONFIGURATION_OVERVIEW);

    updateEnablements();
    Dialog.applyDialogFont(parent);
    return shell;
}

From source file:org.eclipse.team.svn.ui.composite.DiffViewerFileAssociationsComposite.java

License:Open Source License

protected void createFileAssociationsTable(Composite parent) {
    Table table = new Table(parent, SWT.CHECK | SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);
    TableLayout layout = new TableLayout();
    layout.addColumnData(new ColumnPixelData(20, false));
    layout.addColumnData(new ColumnWeightData(30, true));
    layout.addColumnData(new ColumnWeightData(40, true));
    layout.addColumnData(new ColumnWeightData(40, true));
    GridData data = new GridData(GridData.FILL_BOTH);
    table.setLayoutData(data);// ww w  . j av  a2 s  .  c  om
    table.setLayout(layout);
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    this.tableViewer = new CheckboxTableViewer(table);
    this.tableViewer.setUseHashlookup(true);
    //this.tableViewer.setColumnProperties(columnNames);

    this.tableViewer.setContentProvider(new FileAssociationsContentProvider());
    this.tableViewer.setLabelProvider(new FileAssociationsLabelProvider());

    ColumnedViewerComparator comparator = new FileAssociationsComparator(this.tableViewer);

    TableColumn column = new TableColumn(table, SWT.NONE);
    column.setResizable(false);

    column = new TableColumn(table, SWT.NONE);
    column.setText(SVNUIMessages.DiffViewerFileAssociationsComposite_ExtensionMimeType_Column);
    column.addSelectionListener(comparator);

    column = new TableColumn(table, SWT.NONE);
    column.setText(SVNUIMessages.DiffViewerFileAssociationsComposite_DiffProgramPath_Column);
    column.addSelectionListener(comparator);

    column = new TableColumn(table, SWT.NONE);
    column.setText(SVNUIMessages.DiffViewerFileAssociationsComposite_MergeProgramPath_Column);
    column.addSelectionListener(comparator);

    this.tableViewer.setComparator(comparator);
    comparator.setColumnNumber(DiffViewerFileAssociationsComposite.COLUMN_EXTENSION);
    this.tableViewer.getTable().setSortColumn(
            this.tableViewer.getTable().getColumn(DiffViewerFileAssociationsComposite.COLUMN_EXTENSION));
    this.tableViewer.getTable().setSortDirection(SWT.UP);

    this.tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            ResourceSpecificParameters param = (ResourceSpecificParameters) event.getElement();
            param.isEnabled = event.getChecked();
        }
    });

    this.tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            ResourceSpecificParameters param = getSelectedResourceSpecificParameter();
            DiffViewerFileAssociationsComposite.this.editFileAssociations(param);
        }
    });

    //selection listener
    this.tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            //init parameters control
            ResourceSpecificParameters param = DiffViewerFileAssociationsComposite.this
                    .getSelectedResourceSpecificParameter();
            if (param != null) {
                String diffParamsStr = param.params.diffParamatersString;
                diffParamsStr = diffParamsStr != null ? diffParamsStr : ""; //$NON-NLS-1$
                DiffViewerFileAssociationsComposite.this.diffParametersText.setText(diffParamsStr);

                String mergeParamsStr = param.params.mergeParamatersString;
                mergeParamsStr = mergeParamsStr != null ? mergeParamsStr : ""; //$NON-NLS-1$
                DiffViewerFileAssociationsComposite.this.mergeParametersText.setText(mergeParamsStr);
            }

            DiffViewerFileAssociationsComposite.this.enableButtons();
        }
    });
}

From source file:org.eclipse.team.svn.ui.composite.ResourceSelectionComposite.java

License:Open Source License

public void createControls() {
    GridLayout gridLayout = null;
    GridData data = null;//w w  w. j  ava 2 s .  co m

    gridLayout = new GridLayout();
    gridLayout.marginHeight = gridLayout.marginWidth = 0;
    this.setLayout(gridLayout);

    int style = SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER;
    Table table = new Table(this, this.showCheckBoxesAndButtons ? style | SWT.CHECK : style);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    TableLayout layout = new TableLayout();
    table.setLayout(layout);

    this.tableViewer = new CheckboxTableViewer(table);
    data = new GridData(GridData.FILL_BOTH);
    this.tableViewer.getTable().setLayoutData(data);

    // creating a comparator right now to get column listeners
    ResourcesTableComparator comparator = new ResourcesTableComparator(this.tableViewer);

    // checkbox
    TableColumn col = new TableColumn(table, SWT.NONE);
    col.setResizable(false);
    layout.addColumnData(new ColumnPixelData(20, false));

    // resource name
    col = new TableColumn(table, SWT.NONE);
    col.setResizable(true);
    col.setText(SVNUIMessages.ResourceSelectionComposite_Resource);
    layout.addColumnData(new ColumnWeightData(44, true));
    col.addSelectionListener(comparator);

    // status
    col = new TableColumn(table, SWT.NONE);
    col.setResizable(true);
    col.setText(SVNUIMessages.ResourceSelectionComposite_Content);
    layout.addColumnData(new ColumnWeightData(12, true));
    if (this.cacheEnabled) {
        col.addSelectionListener(comparator);
    }

    // propstatus
    col = new TableColumn(table, SWT.NONE);
    col.setResizable(true);
    col.setText(SVNUIMessages.ResourceSelectionComposite_Properties);
    layout.addColumnData(new ColumnWeightData(12, true));
    if (this.cacheEnabled) {
        col.addSelectionListener(comparator);
    }

    TableColumn treatAsEdit = null;
    if (this.allowTreatAsEditsColumn) {
        treatAsEdit = col = new TableColumn(table, SWT.NONE);
        col.setResizable(false);
        col.setText(SVNUIMessages.ResourceSelectionComposite_TreatAsEdit);
        layout.addColumnData(new ColumnWeightData(12, true));
    }

    // adding comparator and selection default sorting column and direction
    this.tableViewer.setComparator(comparator);
    comparator.setColumnNumber(ResourceSelectionComposite.COLUMN_STATUS);
    this.tableViewer.getTable()
            .setSortColumn(this.tableViewer.getTable().getColumn(ResourceSelectionComposite.COLUMN_STATUS));
    this.tableViewer.getTable().setSortDirection(SWT.UP);

    this.tableViewer.setLabelProvider(new ITableLabelProvider() {
        public Image getColumnImage(Object element, int columnIndex) {
            if (columnIndex == ResourceSelectionComposite.COLUMN_NAME && element instanceof IAdaptable) {
                IWorkbenchAdapter adapter = (IWorkbenchAdapter) ((IAdaptable) element)
                        .getAdapter(IWorkbenchAdapter.class);
                if (adapter == null) {
                    return null;
                }
                ImageDescriptor descriptor = adapter.getImageDescriptor(element);
                if (descriptor == null) {
                    return null;
                }

                boolean hasWarning = false;
                boolean hasError = false;
                try {
                    IResource currentResource = (IResource) element;
                    IMarker[] markers = currentResource.findMarkers(IMarker.PROBLEM, true,
                            IResource.DEPTH_INFINITE);
                    // Errors always with highest priority. So, other severities should be ignored.
                    for (int i = 0; i < markers.length && !hasError; i++) {
                        Integer severity = markers[i] != null
                                ? (Integer) markers[i].getAttribute(IMarker.SEVERITY)
                                : null;
                        if (severity != null) {
                            hasWarning |= severity.intValue() == IMarker.SEVERITY_WARNING;
                            hasError |= severity.intValue() == IMarker.SEVERITY_ERROR;
                        }
                    }
                } catch (CoreException e) {
                    // Markers are inaccessible: do not decorate resource icon
                }

                Image image = ResourceSelectionComposite.this.images.get(descriptor);
                if (image == null) {
                    ResourceSelectionComposite.this.images.put(descriptor, image = descriptor.createImage());
                }
                OverlayedImageDescriptor desc = null;
                if (hasError) {
                    desc = new OverlayedImageDescriptor(image, ResourceSelectionComposite.ERROR_IMAGE_DESC,
                            new Point(16, 16), OverlayedImageDescriptor.BOTTOM | OverlayedImageDescriptor.LEFT);
                } else if (hasWarning) {
                    desc = new OverlayedImageDescriptor(image, ResourceSelectionComposite.WARNING_IMAGE_DESC,
                            new Point(16, 16), OverlayedImageDescriptor.BOTTOM | OverlayedImageDescriptor.LEFT);
                } else {
                    desc = new OverlayedImageDescriptor(image, ResourceSelectionComposite.EMPTY_IMAGE_DESC,
                            new Point(16, 16), OverlayedImageDescriptor.BOTTOM | OverlayedImageDescriptor.LEFT);
                }
                image = this.createImage(desc);

                if (ResourceSelectionComposite.this.externalResources.contains(element)) {
                    desc = new OverlayedImageDescriptor(image, ResourceSelectionComposite.SWITCHED_IMAGE_DESC,
                            new Point(16, 16),
                            OverlayedImageDescriptor.BOTTOM | OverlayedImageDescriptor.RIGHT);
                }
                image = this.createImage(desc);

                return image;
            }
            return null;
        }

        protected Image createImage(OverlayedImageDescriptor descriptor) {
            Image image = ResourceSelectionComposite.this.images.get(descriptor);
            if (image == null) {
                ResourceSelectionComposite.this.images.put(descriptor, image = descriptor.createImage());
            }
            return image;
        }

        public String getColumnText(Object element, int columnIndex) {
            if (columnIndex == ResourceSelectionComposite.COLUMN_CHECKBOX) {
                return ""; //$NON-NLS-1$
            }
            IResource resource = (IResource) element;
            if (columnIndex == ResourceSelectionComposite.COLUMN_NAME) {
                String path = resource.getFullPath().toString();
                return path.startsWith("/") ? path.substring(1) : path; //$NON-NLS-1$
            }
            ILocalResource local = SVNRemoteStorage.instance().asLocalResource(resource);
            if (columnIndex == ResourceSelectionComposite.COLUMN_STATUS) {
                return ResourceSelectionComposite.this.contentStatusAsString(local);
            } else if (columnIndex == ResourceSelectionComposite.COLUMN_PROPSTATUS) {
                return ResourceSelectionComposite.this.propertiesStatusAsString(local);
            }
            return ""; //$NON-NLS-1$
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public void dispose() {
        }

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

        public void removeListener(ILabelProviderListener listener) {
        }
    });

    if (this.allowTreatAsEditsColumn) {
        // the order is important otherwise the common label provider overrides this one
        TableViewerColumn cbColumn = new TableViewerColumn(this.tableViewer, treatAsEdit);
        cbColumn.setLabelProvider(new ColumnLabelProvider() {
            public void update(ViewerCell cell) {
                IResource resource = (IResource) cell.getElement();
                ILocalResource local = SVNRemoteStorage.instance().asLocalResource(resource);
                if (IStateFilter.SF_PREREPLACEDREPLACED.accept(local)) {
                    TableItem item = (TableItem) cell.getItem();
                    Button button;
                    if (ResourceSelectionComposite.this.treatAsEditButtons.containsKey(cell.getElement())) {
                        button = ResourceSelectionComposite.this.treatAsEditButtons.get(cell.getElement());
                    } else {
                        button = new Button((Composite) cell.getViewerRow().getControl(), SWT.CHECK);
                        button.setData(resource);
                        button.setSelection(ResourceSelectionComposite.this.treatAsEdit.contains(resource));
                        button.setBackground(cell.getBackground());
                        button.addSelectionListener(new SelectionAdapter() {
                            public void widgetSelected(SelectionEvent e) {
                                if (((Button) e.getSource()).getSelection()) {
                                    ResourceSelectionComposite.this.treatAsEdit
                                            .add((IResource) ((Button) e.getSource()).getData());
                                } else {
                                    ResourceSelectionComposite.this.treatAsEdit
                                            .remove((IResource) ((Button) e.getSource()).getData());
                                }
                                ResourceSelectionComposite.this.getTableViewer()
                                        .refresh(((Button) e.getSource()).getData());
                            }
                        });
                        ResourceSelectionComposite.this.treatAsEditButtons.put(resource, button);
                    }
                    TableEditor editor = new TableEditor(item.getParent());
                    editor.grabHorizontal = true;
                    editor.grabVertical = true;
                    editor.setEditor(button, item, cell.getColumnIndex());
                    editor.layout();
                }
            }
        });
    }

    this.tableViewer.setContentProvider(new ArrayStructuredContentProvider());

    this.tableViewer.setInput(this.resources);
    for (int i = 0; i < this.resources.length; i++) {
        this.tableViewer.setChecked(this.resources[i], this.isSelectableResource(this.resources[i]));
    }
    this.updateSelectedResources();

    this.tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            final IResource resource = (IResource) selection.getFirstElement();
            IResource[] resources = { resource };
            if (selection.size() == 1 && FileUtility.checkForResourcesPresence(resources,
                    IStateFilter.SF_ANY_CHANGE, IResource.DEPTH_ZERO)) {
                UIMonitorUtility.getDisplay().syncExec(new Runnable() {
                    public void run() {
                        ILocalResource local = SVNRemoteStorage.instance().asLocalResource(resource);
                        if (!IStateFilter.SF_INTERNAL_INVALID.accept(local)) {
                            IRepositoryResource remote = local.isCopied() ? SVNUtility.getCopiedFrom(resource)
                                    : SVNRemoteStorage.instance().asRepositoryResource(resource);
                            remote.setSelectedRevision(
                                    CompareResourcesOperation.getRemoteResourceRevisionForCompare(resource));
                            UIMonitorUtility.doTaskScheduledDefault(
                                    new CompareResourcesOperation(local, remote, true, true));
                        }
                    }
                });
            }
        }
    });

    if (!this.showCheckBoxesAndButtons) {
        return;
    }

    this.tableViewer.addSelectionChangedListener(this.selectionListener = new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            ResourceSelectionComposite.this.updateSelectedResources();

            ResourceSelectionComposite.this.fireResourcesSelectionChanged(
                    new ResourceSelectionChangedEvent(ResourceSelectionComposite.this.selectedResources));

            int selectedNumber = ResourceSelectionComposite.this.selectedResources.length;
            ResourceSelectionComposite.this.lblSelectedResourcesNumber
                    .setText(ResourceSelectionComposite.this.resourceNumberToString(selectedNumber));
        }
    });

    Composite tComposite = new Composite(this, SWT.RIGHT);
    GridLayout gLayout = new GridLayout();
    gLayout.numColumns = 4;
    gLayout.marginWidth = 0;
    tComposite.setLayout(gLayout);
    data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
    tComposite.setLayoutData(data);

    Button selectButton = new Button(tComposite, SWT.PUSH);
    selectButton.setText(SVNUIMessages.Button_SelectAll);
    data = new GridData();
    data.widthHint = DefaultDialog.computeButtonWidth(selectButton);
    selectButton.setLayoutData(data);
    SelectionListener listener = new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            ResourceSelectionComposite.this.tableViewer.setAllChecked(true);
            Object[] elements = ResourceSelectionComposite.this.tableViewer.getCheckedElements();
            ResourceSelectionComposite.this.selectionListener.selectionChanged(null);
            ResourceSelectionComposite.this.fireResourcesSelectionChanged(new ResourceSelectionChangedEvent(
                    Arrays.asList(elements).toArray(new IResource[elements.length])));
        }
    };
    selectButton.addSelectionListener(listener);

    Button deselectButton = new Button(tComposite, SWT.PUSH);
    deselectButton.setText(SVNUIMessages.Button_ClearSelection);
    data = new GridData();
    data.widthHint = DefaultDialog.computeButtonWidth(deselectButton);
    deselectButton.setLayoutData(data);
    listener = new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            TableItem[] items = ResourceSelectionComposite.this.tableViewer.getTable().getSelection();
            for (TableItem item : items) {
                ResourceSelectionComposite.this.tableViewer.setChecked(item.getData(), false);
            }
            ResourceSelectionComposite.this.selectionListener.selectionChanged(null);
            ResourceSelectionComposite.this
                    .fireResourcesSelectionChanged(new ResourceSelectionChangedEvent(new IResource[0]));
        }
    };
    deselectButton.addSelectionListener(listener);

    deselectButton = new Button(tComposite, SWT.PUSH);
    deselectButton.setText(SVNUIMessages.Button_ClearAll);
    data = new GridData();
    data.widthHint = DefaultDialog.computeButtonWidth(deselectButton);
    deselectButton.setLayoutData(data);
    listener = new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            ResourceSelectionComposite.this.tableViewer.setAllChecked(false);
            ResourceSelectionComposite.this.selectionListener.selectionChanged(null);
            ResourceSelectionComposite.this
                    .fireResourcesSelectionChanged(new ResourceSelectionChangedEvent(new IResource[0]));
        }
    };
    deselectButton.addSelectionListener(listener);

    Composite lComposite = new Composite(tComposite, SWT.NONE);
    GridLayout lLayout = new GridLayout();
    lLayout.horizontalSpacing = 0;
    lLayout.marginWidth = 0;
    lComposite.setLayout(lLayout);
    data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
    lComposite.setLayoutData(data);

    this.lblSelectedResourcesNumber = new Label(lComposite, SWT.RIGHT);
    this.lblSelectedResourcesNumber.setText(this.resourceNumberToString(this.selectedResources.length));
    data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
    this.lblSelectedResourcesNumber.setLayoutData(data);
}

From source file:org.eclipse.team.svn.ui.lock.LockResourceSelectionComposite.java

License:Open Source License

protected void createControls() {
    GridLayout gridLayout = null;
    GridData data = null;//from   w w  w . java 2s .  c  o m

    gridLayout = new GridLayout();
    gridLayout.marginHeight = gridLayout.marginWidth = 0;
    this.setLayout(gridLayout);

    int style = SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI;
    if (this.hasBorder) {
        style |= SWT.BORDER;
    }
    Table table = new Table(this, this.showCheckBoxesAndButtons ? style | SWT.CHECK : style);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    TableLayout layout = new TableLayout();
    table.setLayout(layout);

    this.tableViewer = new CheckboxTableViewer(table);
    data = new GridData(GridData.FILL_BOTH);
    this.tableViewer.getTable().setLayoutData(data);

    LockResourcesTableComparator tableComparator = new LockResourcesTableComparator(this.tableViewer);

    if (this.showCheckBoxesAndButtons) {
        //0.checkbox
        TableColumn col = new TableColumn(table, SWT.NONE);
        col.setResizable(false);
        layout.addColumnData(new ColumnPixelData(20, false));
    } else {
        //0.image
        TableColumn col = new TableColumn(table, SWT.NONE);
        col.setText(""); //$NON-NLS-1$
        col.setResizable(false);
        col.setAlignment(SWT.CENTER);
        layout.addColumnData(new ColumnPixelData(20, false));
    }

    //1.name
    TableColumn col = new TableColumn(table, SWT.NONE);
    col.setText(SVNUIMessages.LocksComposite_Name);
    col.addSelectionListener(tableComparator);
    layout.addColumnData(new ColumnWeightData(20, true));

    //2.path
    col = new TableColumn(table, SWT.NONE);
    col.setText(SVNUIMessages.LocksComposite_Path);
    col.addSelectionListener(tableComparator);
    layout.addColumnData(new ColumnWeightData(30, true));

    //3.state
    col = new TableColumn(table, SWT.NONE);
    col.setText(SVNUIMessages.LocksComposite_State);
    col.addSelectionListener(tableComparator);
    layout.addColumnData(new ColumnWeightData(20, true));

    //4.owner
    col = new TableColumn(table, SWT.NONE);
    col.setText(SVNUIMessages.LocksComposite_Owner);
    col.addSelectionListener(tableComparator);
    layout.addColumnData(new ColumnWeightData(20, true));

    //5.date
    col = new TableColumn(table, SWT.NONE);
    col.setText(SVNUIMessages.LocksComposite_CreationDate);
    col.addSelectionListener(tableComparator);
    layout.addColumnData(new ColumnWeightData(10, true));

    tableComparator.setReversed(false);
    tableComparator.setColumnNumber(LockResourceSelectionComposite.COLUMN_PATH);
    this.tableViewer.setComparator(tableComparator);
    this.tableViewer.getTable()
            .setSortColumn(this.tableViewer.getTable().getColumn(LockResourceSelectionComposite.COLUMN_PATH));
    this.tableViewer.getTable().setSortDirection(SWT.UP);

    this.tableViewer.setContentProvider(new ArrayStructuredContentProvider());
    this.tableViewer.setLabelProvider(new LockResourcesTableLabelProvider(this.showCheckBoxesAndButtons));

    this.tableViewer.addSelectionChangedListener(this.selectionListener = new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (LockResourceSelectionComposite.this.showCheckBoxesAndButtons) {
                LockResourceSelectionComposite.this.updateSelectedResources();
                int selectedNumber = LockResourceSelectionComposite.this.selectedResources.length;
                LockResourceSelectionComposite.this.lblSelectedResourcesNumber
                        .setText(LockResourceSelectionComposite.this.resourceNumberToString(selectedNumber));
            }
            LockResourceSelectionComposite.this.fireResourcesSelectionChanged(
                    new LockResourceSelectionChangedEvent(LockResourceSelectionComposite.this.selectedResources,
                            event != null ? event.getSelection() : null));
        }
    });

    if (!this.showCheckBoxesAndButtons) {
        return;
    }

    Composite tComposite = new Composite(this, SWT.RIGHT);
    GridLayout gLayout = new GridLayout();
    gLayout.numColumns = 3;
    gLayout.marginWidth = 0;
    tComposite.setLayout(gLayout);
    data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
    tComposite.setLayoutData(data);

    Button selectButton = new Button(tComposite, SWT.PUSH);
    selectButton.setText(SVNUIMessages.Button_SelectAll);
    data = new GridData();
    data.widthHint = DefaultDialog.computeButtonWidth(selectButton);
    selectButton.setLayoutData(data);
    SelectionListener listener = new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            LockResourceSelectionComposite.this.tableViewer.setAllChecked(true);
            Object[] elements = LockResourceSelectionComposite.this.tableViewer.getCheckedElements();
            LockResourceSelectionComposite.this.selectionListener.selectionChanged(null);
            LockResourceSelectionComposite.this
                    .fireResourcesSelectionChanged(new LockResourceSelectionChangedEvent(
                            Arrays.asList(elements).toArray(new LockResource[elements.length]), null));
        }
    };
    selectButton.addSelectionListener(listener);

    Button deselectButton = new Button(tComposite, SWT.PUSH);
    deselectButton.setText(SVNUIMessages.Button_ClearSelection);
    data = new GridData();
    data.widthHint = DefaultDialog.computeButtonWidth(deselectButton);
    deselectButton.setLayoutData(data);
    listener = new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            LockResourceSelectionComposite.this.tableViewer.setAllChecked(false);
            LockResourceSelectionComposite.this.selectionListener.selectionChanged(null);
            LockResourceSelectionComposite.this.fireResourcesSelectionChanged(
                    new LockResourceSelectionChangedEvent(new LockResource[0], null));
        }
    };
    deselectButton.addSelectionListener(listener);

    Composite lComposite = new Composite(tComposite, SWT.NONE);
    GridLayout lLayout = new GridLayout();
    lLayout.horizontalSpacing = 0;
    lLayout.marginWidth = 0;
    lComposite.setLayout(lLayout);
    data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
    lComposite.setLayoutData(data);

    this.lblSelectedResourcesNumber = new Label(lComposite, SWT.RIGHT);
    this.lblSelectedResourcesNumber.setText(this.resourceNumberToString(this.selectedResources.length));
    data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
    this.lblSelectedResourcesNumber.setLayoutData(data);
}

From source file:org.eclipse.team.svn.ui.panel.ListSelectionPanel.java

License:Open Source License

protected CheckboxTableViewer createViewer(Composite parent) {
    if (!this.multipleColumns) {
        return CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
    }/*from   w  w w.ja  v  a2 s  .  com*/
    Table table = new Table(parent, SWT.CHECK | SWT.BORDER);
    table.setLinesVisible(true);
    GridData data = new GridData(GridData.FILL_BOTH);
    table.setLayoutData(data);

    TableLayout layout = new TableLayout();
    table.setLayout(layout);

    // resource name
    TableColumn col = new TableColumn(table, SWT.NONE);
    col.setResizable(true);
    col.setText(SVNUIMessages.ListSelectionPanel_Resource);
    layout.addColumnData(new ColumnWeightData(60, true));

    // local presentation
    col = new TableColumn(table, SWT.NONE);
    col.setResizable(true);
    col.setText(SVNUIMessages.ListSelectionPanel_LocalPresentation);
    layout.addColumnData(new ColumnWeightData(40, true));

    return new CheckboxTableViewer(table);
}

From source file:org.eclipse.team.svn.ui.wizard.checkoutas.ProjectsSelectionPage.java

License:Open Source License

protected CheckboxTableViewer createViewer(Composite parent) {
    Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.CHECK | SWT.BORDER);
    TableLayout layout = new TableLayout();
    GridData data = new GridData(GridData.FILL_BOTH);
    table.setLayoutData(data);/*from   w  ww. j a v  a  2s .c  o m*/
    table.setLayout(layout);
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    CheckboxTableViewer viewer = new CheckboxTableViewer(table);

    TableColumn col = new TableColumn(table, SWT.NONE);
    col.setResizable(false);
    layout.addColumnData(new ColumnPixelData(20, false));

    col = new TableColumn(table, SWT.NONE);
    col.setResizable(true);
    col.setText(SVNUIMessages.ProjectsSelectionPage_RepositoryURL);
    layout.addColumnData(new ColumnPixelData(270, true));

    col = new TableColumn(table, SWT.NONE);
    col.setResizable(true);
    col.setText(SVNUIMessages.ProjectsSelectionPage_ProjectName);
    layout.addColumnData(new ColumnPixelData(150, true));

    col = new TableColumn(table, SWT.NONE);
    col.setResizable(true);
    col.setText(SVNUIMessages.ProjectsSelectionPage_ProjectType);
    layout.addColumnData(new ColumnPixelData(100, true));

    return viewer;
}

From source file:org.eclipse.thym.ui.plugins.internal.PluginRestorePage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(2).applyTo(composite);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(composite);

    Label tableLbl = new Label(composite, SWT.NULL);
    tableLbl.setText(//from w w w.  j  av a2s.  c o m
            "Discovered the following Cordova plug-ins on config.xml and will attempt to restore the selected plug-in(s)");
    GridDataFactory.generate(tableLbl, 2, 1);

    final Table table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true)
            .minSize(new Point(TABLE_WIDTH, TABLE_HEIGHT)).applyTo(table);

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableColumn col = new TableColumn(table, SWT.NONE);

    col.setWidth(TABLE_WIDTH / 2);
    col.setText("ID");

    col = new TableColumn(table, SWT.NULL);
    col.setText("Version");
    col.setWidth(getMinColumnWidth(table, "Version"));

    col = new TableColumn(table, SWT.NULL);
    col.setText("Source");
    col.setWidth(getMinColumnWidth(table, "registry"));

    col = new TableColumn(table, SWT.NULL);
    col.setText("Info");
    col.setWidth(TABLE_WIDTH / 2);

    restorableList = new CheckboxTableViewer(table);
    restorableList.setContentProvider(new RestorablePluginsContentProvider());
    restorableList.setLabelProvider(new RestorablePluginLabelProvider());

    setControl(composite);
}

From source file:org.eclipse.ui.activities.ActivityCategoryPreferencePage.java

License:Open Source License

/**
 * @param parent/*from  ww  w.  java2  s.co m*/
 */
private void createCategoryArea(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = layout.marginWidth = 0;
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    composite.setLayout(layout);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.widthHint = 200;
    composite.setLayoutData(data);
    Label label = new Label(composite, SWT.NONE);
    label.setText(strings.getProperty(CATEGORY_NAME, ActivityMessages.ActivityEnabler_categories) + ':');
    Table table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.SINGLE);
    table.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        public void widgetSelected(SelectionEvent e) {
            if (e.detail == SWT.CHECK) {
                TableItem tableItem = (TableItem) e.item;

                ICategory category = (ICategory) tableItem.getData();
                if (isLocked(category)) {
                    tableItem.setChecked(true);
                    e.doit = false; // veto the check
                    return;
                }
                Set activitySet = WorkbenchActivityHelper.getActivityIdsForCategory(category);
                if (tableItem.getChecked()) {
                    activitySet.addAll(workingCopy.getEnabledActivityIds());
                } else {
                    HashSet newSet = new HashSet(workingCopy.getEnabledActivityIds());
                    newSet.removeAll(activitySet);
                    activitySet = newSet;
                }

                workingCopy.setEnabledActivityIds(activitySet);
                updateCategoryCheckState(); // even though we're reacting to
                // a check change we may need to
                // refresh a greying change.
                // Just process the whole thing.
            }
        }
    });
    categoryViewer = new CheckboxTableViewer(table);
    categoryViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
    categoryViewer.setContentProvider(new CategoryContentProvider());
    CategoryLabelProvider categoryLabelProvider = new CategoryLabelProvider(true);
    workingCopy.addActivityManagerListener(categoryLabelProvider);
    categoryViewer.setLabelProvider(categoryLabelProvider);
    categoryViewer.setComparator(new ViewerComparator());
    categoryViewer.addFilter(new EmptyCategoryFilter());

    categoryViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
         */
        public void selectionChanged(SelectionChangedEvent event) {
            ICategory element = (ICategory) ((IStructuredSelection) event.getSelection()).getFirstElement();
            setDetails(element);
        }
    });
    categoryViewer.setInput(workingCopy.getDefinedCategoryIds());

    updateCategoryCheckState();
}

From source file:org.eclipse.ui.ide.examples.projectsnapshot.ProjectRefreshSnapshotExportWizardPage.java

License:Open Source License

/**
 * Creates the checkbox tree and list for selecting resources.
 * //from  w w w.jav a 2 s .c o  m
 * @param parent
 *            the parent control
 */
private final void createResourcesGroup(Composite parent) {
    Composite resourcesGroup = new Composite(parent, SWT.NONE);
    resourcesGroup.setLayout(new GridLayout());
    resourcesGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
    resourcesGroup.setFont(parent.getFont());

    new Label(resourcesGroup, SWT.NONE).setText(Messages.ProjectRefreshSnapshotExportWizardPage_selectProjects);
    Table table = new Table(resourcesGroup, SWT.CHECK | SWT.BORDER);
    table.setLayoutData(new GridData(GridData.FILL_BOTH));
    fProjectViewer = new CheckboxTableViewer(table);
    fProjectViewer.setContentProvider(new IStructuredContentProvider() {
        List fContents;

        public Object[] getElements(Object input) {
            if (fContents != null && fContents == input)
                return fContents.toArray();
            return new Object[0];
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            if (newInput instanceof List)
                fContents = (List) newInput;
            else
                fContents = null;
            // we use a fixed set.
        }

        public void dispose() {
        }

    });
    fProjectViewer.setLabelProvider(new WorkbenchLabelProvider());
    ICheckStateListener checkListener = new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            updateWidgetEnablements();
        }
    };
    fProjectViewer.addCheckStateListener(checkListener);

    // top level group
    Composite buttonComposite = new Composite(resourcesGroup, SWT.NONE);
    buttonComposite.setFont(parent.getFont());

    GridLayout layout = new GridLayout(2, true);
    layout.marginHeight = layout.marginWidth = 0;
    buttonComposite.setLayout(layout);
    buttonComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL));

    Button selectButton = createButton(buttonComposite, IDialogConstants.SELECT_ALL_ID,
            Messages.ProjectRefreshSnapshotExportWizardPage_selectAll, false);

    SelectionAdapter listener = new SelectionAdapter() {
        // @Override
        public void widgetSelected(SelectionEvent e) {
            fProjectViewer.setAllChecked(true);
            updateWidgetEnablements();
        }
    };
    selectButton.addSelectionListener(listener);

    Button deselectButton = createButton(buttonComposite, IDialogConstants.DESELECT_ALL_ID,
            Messages.ProjectRefreshSnapshotExportWizardPage_deselectAll, false);

    listener = new SelectionAdapter() {
        // @Override
        public void widgetSelected(SelectionEvent e) {
            fProjectViewer.setAllChecked(false);
            updateWidgetEnablements();
        }
    };
    deselectButton.addSelectionListener(listener);

    initProjects();
}

From source file:org.eclipse.ui.internal.browser.WebBrowserPreferencePage.java

License:Open Source License

/**
 * Create the preference options./*from w w  w . j a  v  a  2  s . c  o  m*/
 * 
 * @param parent
 *            org.eclipse.swt.widgets.Composite
 * @return org.eclipse.swt.widgets.Control
 */
protected Control createContents(Composite parent) {
    initializeDialogUnits(parent);
    PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, ContextIds.PREF_BROWSER);

    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(4);
    layout.verticalSpacing = convertVerticalDLUsToPixels(3);
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    composite.setLayout(layout);
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, false);
    composite.setLayoutData(data);

    Label label = new Label(composite, SWT.WRAP);
    label.setText(Messages.preferenceWebBrowserDescription);
    data = new GridData(SWT.FILL, SWT.NONE, false, false);
    data.horizontalSpan = 2;
    data.widthHint = 275;
    label.setLayoutData(data);

    internal = new Button(composite, SWT.RADIO);
    internal.setText(Messages.prefInternalBrowser);
    data = new GridData(SWT.FILL, SWT.NONE, true, false);
    data.horizontalSpan = 2;
    internal.setLayoutData(data);

    if (!WebBrowserUtil.canUseInternalWebBrowser())
        internal.setEnabled(false);

    external = new Button(composite, SWT.RADIO);
    external.setText(Messages.prefExternalBrowser);
    data = new GridData(SWT.FILL, SWT.NONE, true, false);
    data.horizontalSpan = 2;
    external.setLayoutData(data);

    label = new Label(composite, SWT.NONE);
    label.setText(Messages.browserList);
    data = new GridData(SWT.FILL, SWT.CENTER, true, false);
    data.horizontalSpan = 2;
    label.setLayoutData(data);

    table = new Table(composite,
            SWT.CHECK | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    table.setLayoutData(data);
    table.setHeaderVisible(false);
    table.setLinesVisible(false);

    TableLayout tableLayout = new TableLayout();
    new TableColumn(table, SWT.NONE);
    tableLayout.addColumnData(new ColumnWeightData(100));
    table.setLayout(tableLayout);

    tableViewer = new CheckboxTableViewer(table);
    tableViewer.setContentProvider(new BrowserContentProvider());
    tableViewer.setLabelProvider(new BrowserTableLabelProvider());
    tableViewer.setInput("root"); //$NON-NLS-1$

    // uncheck any other elements that might be checked and leave only the
    // element checked to remain checked since one can only chose one
    // brower at a time to be current.
    tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent e) {
            checkNewDefaultBrowser(e.getElement());
            checkedBrowser = (IBrowserDescriptor) e.getElement();

            // if no other browsers are checked, don't allow the single one
            // currently checked to become unchecked, and lose a current
            // browser. That is, don't permit unchecking if no other item
            // is checked which is supposed to be the case.
            Object[] obj = tableViewer.getCheckedElements();
            if (obj.length == 0)
                tableViewer.setChecked(e.getElement(), true);
        }
    });

    // set a default, checked browser based on the current browser. If there
    // is not a current browser, but the first item exists, use that instead.
    // This will work currently until workbench shutdown, because current
    // browser is not yet persisted.
    checkedBrowser = BrowserManager.getInstance().getCurrentWebBrowser();
    if (checkedBrowser != null)
        tableViewer.setChecked(checkedBrowser, true);
    else {
        Object obj = tableViewer.getElementAt(0);
        if (obj != null)
            tableViewer.setChecked(obj, true);
    }

    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection sele = ((IStructuredSelection) tableViewer.getSelection());
            boolean sel = sele.getFirstElement() != null
                    && !(sele.getFirstElement() instanceof SystemBrowserDescriptor);
            remove.setEnabled(sel);
            edit.setEnabled(sel);
        }
    });

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection());
            Object firstElem = sel.getFirstElement();
            if (firstElem != null && !(firstElem instanceof SystemBrowserDescriptor)) {
                IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement();
                IBrowserDescriptorWorkingCopy wc = browser2.getWorkingCopy();
                BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(getShell(), wc);
                if (dialog.open() != Window.CANCEL) {
                    try {
                        tableViewer.refresh(wc.save());
                    } catch (Exception ex) {
                        // ignore
                    }
                }
            }
        }
    });

    table.addKeyListener(new KeyListener() {
        public void keyPressed(KeyEvent e) {
            if (e.character == SWT.DEL) {
                IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection());
                if (sel.getFirstElement() != null) {
                    IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement();
                    try {
                        browser2.delete();
                        tableViewer.remove(browser2);

                        // need here to ensure that if the item deleted was
                        // checked, ie. was
                        // the current browser, that the new current browser
                        // will be the first in the
                        // list, typically, the internal browser, which
                        // cannot be
                        // deleted, and be current
                        BrowserManager manager = BrowserManager.getInstance();
                        if (browser2 == checkedBrowser) {
                            if (manager.browsers.size() > 0) {
                                checkedBrowser = manager.browsers.get(0);
                                tableViewer.setChecked(checkedBrowser, true);
                            }
                        }
                    } catch (Exception ex) {
                        // ignore
                    }
                }
            }
        }

        public void keyReleased(KeyEvent e) {
            // ignore
        }
    });

    Composite buttonComp = new Composite(composite, SWT.NONE);
    layout = new GridLayout();
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = convertVerticalDLUsToPixels(3);
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    layout.numColumns = 1;
    buttonComp.setLayout(layout);
    data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
    buttonComp.setLayoutData(data);

    final Button add = SWTUtil.createButton(buttonComp, Messages.add);
    add.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(getShell());
            if (dialog.open() == Window.CANCEL)
                return;
            tableViewer.refresh();
            if (checkedBrowser != null)
                tableViewer.setChecked(checkedBrowser, true);
        }
    });

    edit = SWTUtil.createButton(buttonComp, Messages.edit);
    edit.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection());
            IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement();
            IBrowserDescriptorWorkingCopy wc = browser2.getWorkingCopy();
            BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(getShell(), wc);
            if (dialog.open() != Window.CANCEL) {
                try {
                    tableViewer.refresh(wc.save());
                } catch (Exception ex) {
                    // ignore
                }
            }
        }
    });

    remove = SWTUtil.createButton(buttonComp, Messages.remove);
    remove.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection());
            IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement();
            try {
                browser2.delete();
                tableViewer.remove(browser2);

                // need here to ensure that if the item deleted was checked,
                // ie. was
                // the current browser, that the new current browser will be
                // the first in the
                // list, typically, the internal browser, which cannot be
                // deleted, and be current
                BrowserManager manager = BrowserManager.getInstance();
                if (browser2 == checkedBrowser) {
                    if (manager.browsers.size() > 0) {
                        checkedBrowser = manager.browsers.get(0);
                        tableViewer.setChecked(checkedBrowser, true);
                    }
                }
            } catch (Exception ex) {
                // ignore
            }
        }
    });

    search = SWTUtil.createButton(buttonComp, Messages.search);
    data = (GridData) search.getLayoutData();
    data.verticalIndent = 9;
    search.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            final List<IBrowserDescriptorWorkingCopy> foundBrowsers = new ArrayList<IBrowserDescriptorWorkingCopy>();
            final List<String> existingPaths = WebBrowserUtil.getExternalBrowserPaths();

            // select a target directory for the search
            DirectoryDialog dialog = new DirectoryDialog(getShell());
            dialog.setMessage(Messages.selectDirectory);
            dialog.setText(Messages.directoryDialogTitle);

            String path = dialog.open();
            if (path == null)
                return;

            final File rootDir = new File(path);
            ProgressMonitorDialog pm = new ProgressMonitorDialog(getShell());

            IRunnableWithProgress r = new IRunnableWithProgress() {
                public void run(IProgressMonitor monitor) {
                    monitor.beginTask(Messages.searchingTaskName, IProgressMonitor.UNKNOWN);
                    search(rootDir, existingPaths, foundBrowsers, new HashSet<String>(), monitor);
                    monitor.done();
                }
            };

            try {
                pm.run(true, true, r);
            } catch (InvocationTargetException ex) {
                Trace.trace(Trace.SEVERE, "Invocation Exception occured running monitor: " //$NON-NLS-1$
                        + ex);
            } catch (InterruptedException ex) {
                Trace.trace(Trace.SEVERE, "Interrupted exception occured running monitor: " //$NON-NLS-1$
                        + ex);
                return;
            }

            if (pm.getProgressMonitor().isCanceled())
                return;

            List<IBrowserDescriptorWorkingCopy> browsersToCreate = foundBrowsers;

            if (browsersToCreate.isEmpty()) { // no browsers found
                WebBrowserUtil.openMessage(Messages.searchingNoneFound);
                return;
            }

            Iterator<IBrowserDescriptorWorkingCopy> iterator = browsersToCreate.iterator();
            while (iterator.hasNext()) {
                IBrowserDescriptorWorkingCopy browser2 = iterator.next();
                browser2.save();
            }
            tableViewer.refresh();

            if (checkedBrowser != null)
                tableViewer.setChecked(checkedBrowser, true);
        }
    });

    tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent e) {
            checkNewDefaultBrowser(e.getElement());
            checkedBrowser = (IBrowserDescriptor) e.getElement();
        }
    });

    /*external.addSelectionListener(new SelectionListener() {
       public void widgetSelected(SelectionEvent e) {
    boolean sel = !tableViewer.getSelection().isEmpty();
    edit.setEnabled(sel);
    remove.setEnabled(sel);
       }
            
       public void widgetDefaultSelected(SelectionEvent e) {
    // ignore
       }
    });*/
    internal.setSelection(WebBrowserPreference.getBrowserChoice() == WebBrowserPreference.INTERNAL);
    external.setSelection(WebBrowserPreference.getBrowserChoice() == WebBrowserPreference.EXTERNAL);

    //boolean sel = !tableViewer.getSelection().isEmpty();
    IStructuredSelection sele = ((IStructuredSelection) tableViewer.getSelection());
    boolean sel = sele.getFirstElement() != null
            && !(sele.getFirstElement() instanceof SystemBrowserDescriptor);
    edit.setEnabled(sel);
    remove.setEnabled(sel);

    Dialog.applyDialogFont(composite);

    return composite;
}