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

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

Introduction

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

Prototype

public static CheckboxTableViewer newCheckList(Composite parent, int style) 

Source Link

Document

Creates a table viewer on a newly-created table control under the given parent.

Usage

From source file:org.eclipse.ui.ide.markers.compatibility.internal.FiltersConfigurationDialog.java

License:Open Source License

/**
 * Create the area for selecting the filters and enabling/disabling them.
 * /*w  w w.j av  a 2s  . c om*/
 * @param top
 */
private void createFilterSelectionArea(Composite top) {

    Composite filtersComposite = new Composite(top, SWT.NONE);
    filtersComposite.setLayout(new GridLayout(2, false));
    filtersComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    Label title = new Label(filtersComposite, SWT.NONE);
    title.setText(MarkerMessages.filtersDialog_entriesTitle);
    GridData titleData = new GridData();
    titleData.horizontalSpan = 2;
    title.setLayoutData(titleData);

    filtersList = CheckboxTableViewer.newCheckList(filtersComposite, SWT.BORDER);
    filtersList.setContentProvider(new IStructuredContentProvider() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IContentProvider#dispose()
         */
        public void dispose() {
            // Do nothing
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
         */
        public Object[] getElements(Object inputElement) {
            return filterGroups.toArray();
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
         *      java.lang.Object, java.lang.Object)
         */
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // Do nothing
        }
    });

    filtersList.setLabelProvider(new LabelProvider() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
         */
        public String getText(Object element) {
            return ((MarkerFieldFilterGroup) element).getName();
        }
    });

    if (selectedFilterGroup != null)
        filtersList.setSelection(new StructuredSelection(selectedFilterGroup));

    filtersList.addSelectionChangedListener(new ISelectionChangedListener() {

        /*
        * (non-Javadoc)
        * 
        * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
        */
        public void selectionChanged(SelectionChangedEvent event) {
            setSelectedFilter(
                    (MarkerFieldFilterGroup) ((IStructuredSelection) event.getSelection()).getFirstElement());

        }
    });

    filtersList.setInput(this);

    Iterator filterIterator = filterGroups.iterator();
    while (filterIterator.hasNext()) {
        MarkerFieldFilterGroup group = (MarkerFieldFilterGroup) filterIterator.next();
        filtersList.setChecked(group, group.isEnabled());
    }

    GridData listData = new GridData(SWT.FILL, SWT.FILL, true, true);
    listData.widthHint = convertHorizontalDLUsToPixels(100);
    filtersList.getControl().setLayoutData(listData);

    Composite buttons = new Composite(filtersComposite, SWT.NONE);
    GridLayout buttonLayout = new GridLayout();
    buttonLayout.marginWidth = 0;
    buttons.setLayout(buttonLayout);
    GridData buttonsData = new GridData();
    buttonsData.verticalAlignment = GridData.BEGINNING;
    buttons.setLayoutData(buttonsData);

    Button addNew = new Button(buttons, SWT.PUSH);
    addNew.setText(MarkerMessages.MarkerFilter_addFilterName);
    addNew.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            InputDialog newDialog = new InputDialog(getShell(), MarkerMessages.MarkerFilterDialog_title,
                    MarkerMessages.MarkerFilterDialog_message, MarkerMessages.MarkerFilter_newFilterName,
                    new IInputValidator() {
                        /*
                         * (non-Javadoc)
                         * 
                         * @see org.eclipse.jface.dialogs.IInputValidator#isValid(java.lang.String)
                         */
                        public String isValid(String newText) {
                            if (newText.length() == 0)
                                return MarkerMessages.MarkerFilterDialog_emptyMessage;
                            Iterator filterIterator = filterGroups.iterator();
                            while (filterIterator.hasNext()) {
                                if (((MarkerFieldFilterGroup) filterIterator.next()).getName().equals(newText))
                                    return NLS.bind(MarkerMessages.filtersDialog_conflictingName, newText);
                            }

                            return null;
                        }
                    });
            if (Window.OK == newDialog.open()) {
                String newName = newDialog.getValue();
                if (newName != null) {
                    createNewFilter(newName);
                }
            }
        }
    });
    setButtonLayoutData(addNew);

    removeButton = new Button(buttons, SWT.PUSH);
    removeButton.setText(MarkerMessages.MarkerFilter_deleteSelectedName);
    removeButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            removeFilters(filtersList.getSelection());
        }
    });
    setButtonLayoutData(removeButton);

    Button andButton = new Button(filtersComposite, SWT.RADIO);
    GridData data = new GridData(GridData.FILL_HORIZONTAL, SWT.NONE, true, false);
    data.horizontalSpan = 2;
    andButton.setLayoutData(data);
    andButton.setText(MarkerMessages.AND_Title);
    andButton.setSelection(andFilters);
    andButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        public void widgetSelected(SelectionEvent e) {
            andFilters = true;
        }
    });

    Button orButton = new Button(filtersComposite, SWT.RADIO);
    data = new GridData(GridData.FILL_HORIZONTAL, SWT.NONE, true, false);
    data.horizontalSpan = 2;
    orButton.setLayoutData(data);
    orButton.setText(MarkerMessages.OR_Title);
    orButton.setSelection(!andFilters);
    orButton.addSelectionListener(new SelectionAdapter() {

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        public void widgetSelected(SelectionEvent e) {
            andFilters = false;
        }
    });
}

From source file:org.eclipse.ui.ide.markers.compatibility.internal.QuickFixPage.java

License:Open Source License

/**
 * Create the table that shows the markers.
 * //from   w ww .ja v  a  2 s .co m
 * @param control
 */
private void createMarkerTable(Composite control) {
    markersTable = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.V_SCROLL | SWT.SINGLE);

    createTableColumns();

    markersTable.setContentProvider(new IStructuredContentProvider() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IContentProvider#dispose()
         */
        public void dispose() {

        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
         */
        public Object[] getElements(Object inputElement) {
            IMarkerResolution selected = getSelectedResolution();
            if (selected == null) {
                return new Object[0];
            }

            if (resolutions.containsKey(selected)) {
                return ((Collection) resolutions.get(selected)).toArray();
            }
            return MarkerSupportInternalUtilities.EMPTY_MARKER_ARRAY;
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
         *      java.lang.Object, java.lang.Object)
         */
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

        }
    });

    markersTable.setLabelProvider(new ITableLabelProvider() {

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
         *      int)
         */
        public Image getColumnImage(Object element, int columnIndex) {
            if (columnIndex == 0)
                return Util.getImage(((IMarker) element).getAttribute(IMarker.SEVERITY, -1));
            return null;
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
         *      int)
         */
        public String getColumnText(Object element, int columnIndex) {
            if (columnIndex == 0)
                return Util.getResourceName((IMarker) element);
            int line = ((IMarker) element).getAttribute(IMarker.LINE_NUMBER, -1);
            if (line < 0) {
                return MarkerMessages.Unknown;
            }
            return NLS.bind(MarkerMessages.label_lineNumber, Integer.toString(line));
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
         */
        public void addListener(ILabelProviderListener listener) {
            // do nothing

        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
         */
        public void dispose() {
            // do nothing

        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
         *      java.lang.String)
         */
        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
         */
        public void removeListener(ILabelProviderListener listener) {
            // do nothing

        }
    });

    markersTable.addCheckStateListener(new ICheckStateListener() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
         */
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getChecked() == true) {
                setPageComplete(true);
            } else {
                setPageComplete(markersTable.getCheckedElements().length > 0);
            }

        }
    });

    markersTable.addSelectionChangedListener(new ISelectionChangedListener() {
        /*
        * (non-Javadoc)
        * 
        * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
        */
        public void selectionChanged(SelectionChangedEvent event) {

            if (event.getSelection().isEmpty())
                return;
            IMarker marker = (IMarker) ((IStructuredSelection) event.getSelection()).getFirstElement();
            ExtendedMarkersView.openMarkerInEditor(marker, site.getPage());

        }
    });
    markersTable.setInput(this);
}

From source file:org.eclipse.ui.internal.activities.ws.EnablementDialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {
    Composite composite = (Composite) super.createDialogArea(parent);
    Font dialogFont = parent.getFont();
    composite.setFont(dialogFont);//w ww . j  a va 2 s. c o m
    Label text = new Label(composite, SWT.NONE);
    text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    text.setFont(dialogFont);
    IActivityManager manager = PlatformUI.getWorkbench().getActivitySupport().getActivityManager();

    if (activityIds.size() == 1) {
        String activityId = (String) activityIds.iterator().next();
        activitiesToEnable.add(activityId);
        selectedActivity = activityId;

        IActivity activity = manager.getActivity(activityId);
        String activityText;
        try {
            activityText = activity.getName();
        } catch (NotDefinedException e) {
            activityText = activity.getId();
        }
        text.setText(MessageFormat.format(RESOURCE_BUNDLE.getString("requiresSingle"), //$NON-NLS-1$
                new Object[] { activityText }));

        text = new Label(composite, SWT.NONE);
        text.setText(strings.getProperty(WorkbenchTriggerPointAdvisor.PROCEED_SINGLE,
                RESOURCE_BUNDLE.getString(WorkbenchTriggerPointAdvisor.PROCEED_SINGLE)));
        text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        text.setFont(dialogFont);
    } else {
        text.setText(RESOURCE_BUNDLE.getString("requiresMulti")); //$NON-NLS-1$
        Set activityIdsCopy = new HashSet(activityIds);
        CheckboxTableViewer viewer = CheckboxTableViewer.newCheckList(composite,
                SWT.CHECK | SWT.BORDER | SWT.SINGLE);
        viewer.setContentProvider(new ActivityContentProvider());
        viewer.setLabelProvider(new ActivityLabelProvider(manager));
        viewer.setInput(activityIdsCopy);
        viewer.setCheckedElements(activityIdsCopy.toArray());
        viewer.addCheckStateListener(new ICheckStateListener() {

            /* (non-Javadoc)
             * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
             */
            public void checkStateChanged(CheckStateChangedEvent event) {
                if (event.getChecked()) {
                    activitiesToEnable.add(event.getElement());
                } else {
                    activitiesToEnable.remove(event.getElement());
                }

                getButton(Window.OK).setEnabled(!activitiesToEnable.isEmpty());
            }
        });
        viewer.addSelectionChangedListener(new ISelectionChangedListener() {
            /* (non-Javadoc)
             * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
             */
            public void selectionChanged(SelectionChangedEvent event) {
                selectedActivity = (String) ((IStructuredSelection) event.getSelection()).getFirstElement();
                setDetails();
            }
        });
        activitiesToEnable.addAll(activityIdsCopy);

        viewer.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        viewer.getControl().setFont(dialogFont);

        text = new Label(composite, SWT.NONE);
        text.setText(strings.getProperty(WorkbenchTriggerPointAdvisor.PROCEED_MULTI,
                RESOURCE_BUNDLE.getString(WorkbenchTriggerPointAdvisor.PROCEED_MULTI)));
        text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        text.setFont(dialogFont);
    }
    Label seperator = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
    seperator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    dontAskButton = new Button(composite, SWT.CHECK);
    dontAskButton.setSelection(false);
    dontAskButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    dontAskButton.setText(strings.getProperty(WorkbenchTriggerPointAdvisor.DONT_ASK,
            RESOURCE_BUNDLE.getString(WorkbenchTriggerPointAdvisor.DONT_ASK)));
    dontAskButton.setFont(dialogFont);

    detailsComposite = new Composite(composite, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    detailsComposite.setLayout(layout);
    detailsLabel = new Label(detailsComposite, SWT.NONE);
    detailsLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    detailsLabel.setFont(dialogFont);

    detailsText = new Text(detailsComposite, SWT.WRAP | SWT.V_SCROLL | SWT.BORDER | SWT.READ_ONLY);
    detailsText.setLayoutData(new GridData(GridData.FILL_BOTH));
    detailsText.setFont(dialogFont);

    setDetails();

    GridData data = new GridData(GridData.FILL_BOTH);
    detailsComposite.setLayoutData(data);
    setDetailHints();

    return composite;
}

From source file:org.eclipse.ui.internal.dialogs.cpd.CustomizePerspectiveDialog.java

License:Open Source License

private Composite createShortCutsPage(Composite parent) {
    GridData data;// www . jav  a2 s.  c  o m

    Composite menusComposite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    menusComposite.setLayout(layout);

    // Select... label
    Label label = new Label(menusComposite, SWT.WRAP);
    label.setText(NLS.bind(WorkbenchMessages.Shortcuts_selectShortcutsLabel, perspective.getDesc().getLabel()));
    data = new GridData(SWT.FILL, SWT.CENTER, true, false);
    label.setLayoutData(data);

    Label sep = new Label(menusComposite, SWT.HORIZONTAL | SWT.SEPARATOR);
    sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    SashForm sashComposite = new SashForm(menusComposite, SWT.HORIZONTAL);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    sashComposite.setLayoutData(data);

    // Menus List
    Composite menusGroup = new Composite(sashComposite, SWT.NONE);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    menusGroup.setLayout(layout);
    menusGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    label = new Label(menusGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.Shortcuts_availableMenus);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    Combo menusCombo = new Combo(menusGroup, SWT.READ_ONLY);
    menusCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    ComboViewer menusViewer = new ComboViewer(menusCombo);
    menusViewer.setContentProvider(TreeManager.getTreeContentProvider());
    menusViewer.setLabelProvider(TreeManager.getLabelProvider());

    // Categories Tree
    label = new Label(menusGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.Shortcuts_availableCategories);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    final CheckboxTreeViewer menuCategoriesViewer = new CheckboxTreeViewer(menusGroup);
    menuCategoriesViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    menuCategoriesViewer.setLabelProvider(TreeManager.getLabelProvider());
    menuCategoriesViewer.setContentProvider(TreeManager.getTreeContentProvider());
    menuCategoriesViewer.setComparator(new WorkbenchViewerComparator());
    menuCategoriesViewer.setCheckStateProvider(new CategoryCheckProvider());
    menuCategoriesViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            Category category = (Category) event.getElement();
            category.setItemsState(event.getChecked());
            updateCategoryAndParents(menuCategoriesViewer, category);
        }
    });

    treeManager.addListener(new CheckListener() {
        @Override
        public void checkChanged(TreeItem changedItem) {
            if (changedItem instanceof Category) {
                menuCategoriesViewer.update(changedItem, null);
            } else if (changedItem instanceof ShortcutItem) {
                ShortcutItem item = (ShortcutItem) changedItem;
                if (item.getCategory() != null) {
                    item.getCategory().update();
                    updateCategoryAndParents(menuCategoriesViewer, item.getCategory());
                }
            }
        }
    });

    // Menu items list
    Composite menuItemsGroup = new Composite(sashComposite, SWT.NONE);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    menuItemsGroup.setLayout(layout);
    menuItemsGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    label = new Label(menuItemsGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.Shortcuts_allShortcuts);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    final CheckboxTableViewer menuItemsViewer = CheckboxTableViewer.newCheckList(menuItemsGroup,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    Table menuTable = menuItemsViewer.getTable();
    menuTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    menuItemsViewer.setLabelProvider(new ShortcutLabelProvider());
    menuItemsViewer.setCheckStateProvider(TreeManager.getCheckStateProvider());
    menuItemsViewer.addCheckStateListener(treeManager.getViewerCheckStateListener());
    treeManager.getCheckListener(menuItemsViewer);

    menuItemsViewer.setContentProvider(new TreeManager.TreeItemContentProvider() {
        @Override
        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof Category) {
                return ((Category) parentElement).getContributionItems().toArray();
            }
            return super.getChildren(parentElement);
        }
    });
    menuItemsViewer.setComparator(new WorkbenchViewerComparator());

    // update menuCategoriesViewer, and menuItemsViewer on a change to
    // menusViewer
    menusViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            Category category = (Category) ((IStructuredSelection) event.getSelection()).getFirstElement();
            menuCategoriesViewer.setInput(category);
            menuItemsViewer.setInput(category);
            if (category.getChildrenCount() != 0) {
                setSelectionOn(menuCategoriesViewer, category.getChildren().get(0));
            }
        }
    });

    // update menuItemsViewer on a change to menuCategoriesViewer
    menuCategoriesViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            Category category = (Category) ((IStructuredSelection) event.getSelection()).getFirstElement();
            menuItemsViewer.setInput(category);
        }
    });

    menuTable.setHeaderVisible(true);
    int[] columnWidths = new int[shortcutMenuColumnWidths.length];
    for (int i = 0; i < shortcutMenuColumnWidths.length; i++) {
        columnWidths[i] = convertHorizontalDLUsToPixels(shortcutMenuColumnWidths[i]);
    }
    for (int i = 0; i < shortcutMenuColumnHeaders.length; i++) {
        TableColumn tc = new TableColumn(menuTable, SWT.NONE, i);
        tc.setResizable(true);
        tc.setText(shortcutMenuColumnHeaders[i]);
        tc.setWidth(columnWidths[i]);
    }
    sashComposite.setWeights(new int[] { 30, 70 });

    menusViewer.setInput(shortcuts);

    if (shortcuts.getChildrenCount() > 0) {
        setSelectionOn(menusViewer, shortcuts.getChildren().get(0));
    }

    return menusComposite;
}

From source file:org.eclipse.ui.internal.dialogs.cpd.CustomizePerspectiveDialog.java

License:Open Source License

private Composite createActionSetAvailabilityPage(Composite parent) {
    GridData data;/*w w  w  . ja v a 2s .c om*/

    Composite actionSetsComposite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    actionSetsComposite.setLayout(layout);

    // Select... label
    Label label = new Label(actionSetsComposite, SWT.WRAP);
    label.setText(NLS.bind(WorkbenchMessages.ActionSetSelection_selectActionSetsLabel,
            perspective.getDesc().getLabel()));
    data = new GridData(SWT.FILL, SWT.CENTER, true, false);
    label.setLayoutData(data);

    Label sep = new Label(actionSetsComposite, SWT.HORIZONTAL | SWT.SEPARATOR);
    sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    SashForm sashComposite = new SashForm(actionSetsComposite, SWT.HORIZONTAL);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    sashComposite.setLayoutData(data);

    // Action Set List Composite
    Composite actionSetGroup = new Composite(sashComposite, SWT.NONE);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    actionSetGroup.setLayout(layout);
    actionSetGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    label = new Label(actionSetGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.ActionSetSelection_availableActionSets);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    final CheckboxTableViewer actionSetsViewer = CheckboxTableViewer.newCheckList(actionSetGroup,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    actionSetAvailabilityTable = actionSetsViewer;
    actionSetsViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    actionSetsViewer.setContentProvider(new ArrayContentProvider());
    actionSetsViewer.setComparator(new WorkbenchViewerComparator());
    actionSetsViewer.setCheckStateProvider(new ICheckStateProvider() {
        @Override
        public boolean isChecked(Object element) {
            return ((ActionSet) element).isActive();
        }

        @Override
        public boolean isGrayed(Object element) {
            return false;
        }
    });
    actionSetsViewer.setInput(actionSets.toArray());

    Table table = actionSetsViewer.getTable();
    new TableToolTip(table);

    final ActionSet[] selectedActionSet = { null };

    // Filter to show only branches necessary for the selected action set.
    final ViewerFilter setFilter = new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (selectedActionSet[0] == null) {
                return false;
            }
            return includeInSetStructure((DisplayItem) element, selectedActionSet[0]);
        }
    };

    // Updates the check state of action sets
    actionSetsViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            final ActionSet actionSet = (ActionSet) event.getElement();
            if (event.getChecked()) {
                actionSet.setActive(true);
                for (DisplayItem item : actionSet.contributionItems) {
                    item.setCheckState(true);
                }
            } else {
                actionSet.setActive(false);
            }
        }
    });

    // Menu and toolbar composite
    Composite actionGroup = new Composite(sashComposite, SWT.NONE);
    layout = new GridLayout();
    layout.numColumns = 2;
    layout.makeColumnsEqualWidth = true;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    layout.horizontalSpacing = 0;
    actionGroup.setLayout(layout);
    actionGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    Composite menubarGroup = new Composite(actionGroup, SWT.NONE);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    menubarGroup.setLayout(layout);
    menubarGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    label = new Label(menubarGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.ActionSetSelection_menubarActions);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    actionSetMenuViewer = new TreeViewer(menubarGroup);
    actionSetMenuViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
    actionSetMenuViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    actionSetMenuViewer.setUseHashlookup(true);
    actionSetMenuViewer.setContentProvider(TreeManager.getTreeContentProvider());
    actionSetMenuViewer.setLabelProvider(new GrayOutUnavailableLabelProvider(null));
    actionSetMenuViewer.addFilter(setFilter);
    actionSetMenuViewer.setInput(menuItems);

    Tree tree = actionSetMenuViewer.getTree();
    new ItemDetailToolTip(this, actionSetMenuViewer, tree, false, true, setFilter);

    Composite toolbarGroup = new Composite(actionGroup, SWT.NONE);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    toolbarGroup.setLayout(layout);
    toolbarGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    label = new Label(toolbarGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.ActionSetSelection_toolbarActions);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    actionSetToolbarViewer = new TreeViewer(toolbarGroup);
    actionSetToolbarViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
    actionSetToolbarViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    actionSetToolbarViewer.setContentProvider(TreeManager.getTreeContentProvider());
    actionSetToolbarViewer.setLabelProvider(new GrayOutUnavailableLabelProvider(null));
    actionSetToolbarViewer.addFilter(setFilter);
    actionSetToolbarViewer.setInput(toolBarItems);

    tree = actionSetToolbarViewer.getTree();
    new ItemDetailToolTip(this, actionSetToolbarViewer, tree, false, true, setFilter);

    // Updates the menu item and toolbar items tree viewers when the
    // selection changes
    actionSetsViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            selectedActionSet[0] = (ActionSet) ((IStructuredSelection) event.getSelection()).getFirstElement();
            actionSetMenuViewer.setInput(menuItems);
            actionSetToolbarViewer.setInput(toolBarItems);
        }
    });

    sashComposite.setWeights(new int[] { 30, 70 });

    return actionSetsComposite;
}

From source file:org.eclipse.ui.internal.dialogs.CustomizePerspectiveDialog.java

License:Open Source License

private Composite createShortCutsPage(Composite parent) {
    GridData data;//from   www .  j a va2 s . c om

    Composite menusComposite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    menusComposite.setLayout(layout);

    // Select... label
    Label label = new Label(menusComposite, SWT.WRAP);
    label.setText(NLS.bind(WorkbenchMessages.Shortcuts_selectShortcutsLabel, perspective.getDesc().getLabel()));
    data = new GridData(SWT.FILL, SWT.CENTER, true, false);
    label.setLayoutData(data);

    Label sep = new Label(menusComposite, SWT.HORIZONTAL | SWT.SEPARATOR);
    sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    SashForm sashComposite = new SashForm(menusComposite, SWT.HORIZONTAL);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    sashComposite.setLayoutData(data);

    // Menus List
    Composite menusGroup = new Composite(sashComposite, SWT.NONE);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    menusGroup.setLayout(layout);
    menusGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    label = new Label(menusGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.Shortcuts_availableMenus);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    Combo menusCombo = new Combo(menusGroup, SWT.READ_ONLY);
    menusCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    ComboViewer menusViewer = new ComboViewer(menusCombo);
    menusViewer.setContentProvider(TreeManager.getTreeContentProvider());
    menusViewer.setLabelProvider(TreeManager.getLabelProvider());

    // Categories Tree
    label = new Label(menusGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.Shortcuts_availableCategories);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    final CheckboxTreeViewer menuCategoriesViewer = new CheckboxTreeViewer(menusGroup);
    menuCategoriesViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    menuCategoriesViewer.setLabelProvider(TreeManager.getLabelProvider());
    menuCategoriesViewer.setContentProvider(TreeManager.getTreeContentProvider());
    menuCategoriesViewer.setComparator(new WorkbenchViewerComparator());
    menuCategoriesViewer.setCheckStateProvider(new CategoryCheckProvider());
    menuCategoriesViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            Category category = (Category) event.getElement();
            category.setItemsState(event.getChecked());
            updateCategoryAndParents(menuCategoriesViewer, category);
        }
    });

    treeManager.addListener(new CheckListener() {
        public void checkChanged(TreeItem changedItem) {
            if (changedItem instanceof Category) {
                menuCategoriesViewer.update(changedItem, null);
            } else if (changedItem instanceof ShortcutItem) {
                ShortcutItem item = (ShortcutItem) changedItem;
                if (item.getCategory() != null) {
                    item.getCategory().update();
                    updateCategoryAndParents(menuCategoriesViewer, item.getCategory());
                }
            }
        }
    });

    // Menu items list
    Composite menuItemsGroup = new Composite(sashComposite, SWT.NONE);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    menuItemsGroup.setLayout(layout);
    menuItemsGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    label = new Label(menuItemsGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.Shortcuts_allShortcuts);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    final CheckboxTableViewer menuItemsViewer = CheckboxTableViewer.newCheckList(menuItemsGroup,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    Table menuTable = menuItemsViewer.getTable();
    menuTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    menuItemsViewer.setLabelProvider(new ShortcutLabelProvider());
    menuItemsViewer.setCheckStateProvider(TreeManager.getCheckStateProvider());
    menuItemsViewer.addCheckStateListener(treeManager.getViewerCheckStateListener());
    treeManager.getCheckListener(menuItemsViewer);

    menuItemsViewer.setContentProvider(new TreeManager.TreeItemContentProvider() {
        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof Category)
                return ((Category) parentElement).getContributionItems().toArray();
            return super.getChildren(parentElement);
        }
    });
    menuItemsViewer.setComparator(new WorkbenchViewerComparator());

    // update menuCategoriesViewer, and menuItemsViewer on a change to
    // menusViewer
    menusViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            Category category = (Category) ((IStructuredSelection) event.getSelection()).getFirstElement();
            menuCategoriesViewer.setInput(category);
            menuItemsViewer.setInput(category);
            if (category.getChildren().size() != 0) {
                setSelectionOn(menuCategoriesViewer, category.getChildren().get(0));
            }
        }
    });

    // update menuItemsViewer on a change to menuCategoriesViewer
    menuCategoriesViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            Category category = (Category) ((IStructuredSelection) event.getSelection()).getFirstElement();
            menuItemsViewer.setInput(category);
        }
    });

    menuTable.setHeaderVisible(true);
    int[] columnWidths = new int[shortcutMenuColumnWidths.length];
    for (int i = 0; i < shortcutMenuColumnWidths.length; i++) {
        columnWidths[i] = convertHorizontalDLUsToPixels(shortcutMenuColumnWidths[i]);
    }
    for (int i = 0; i < shortcutMenuColumnHeaders.length; i++) {
        TableColumn tc = new TableColumn(menuTable, SWT.NONE, i);
        tc.setResizable(true);
        tc.setText(shortcutMenuColumnHeaders[i]);
        tc.setWidth(columnWidths[i]);
    }
    sashComposite.setWeights(new int[] { 30, 70 });

    menusViewer.setInput(shortcuts);

    if (shortcuts.getChildren().size() > 0) {
        setSelectionOn(menusViewer, shortcuts.getChildren().get(0));
    }

    return menusComposite;
}

From source file:org.eclipse.ui.internal.dialogs.CustomizePerspectiveDialog.java

License:Open Source License

private Composite createActionSetAvailabilityPage(Composite parent) {
    GridData data;//from  ww w.j a v a2s.  c o  m

    Composite actionSetsComposite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    actionSetsComposite.setLayout(layout);

    // Select... label
    Label label = new Label(actionSetsComposite, SWT.WRAP);
    label.setText(NLS.bind(WorkbenchMessages.ActionSetSelection_selectActionSetsLabel,
            perspective.getDesc().getLabel()));
    data = new GridData(SWT.FILL, SWT.CENTER, true, false);
    label.setLayoutData(data);

    Label sep = new Label(actionSetsComposite, SWT.HORIZONTAL | SWT.SEPARATOR);
    sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    SashForm sashComposite = new SashForm(actionSetsComposite, SWT.HORIZONTAL);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    sashComposite.setLayoutData(data);

    // Action Set List Composite
    Composite actionSetGroup = new Composite(sashComposite, SWT.NONE);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    actionSetGroup.setLayout(layout);
    actionSetGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    label = new Label(actionSetGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.ActionSetSelection_availableActionSets);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    final CheckboxTableViewer actionSetsViewer = CheckboxTableViewer.newCheckList(actionSetGroup,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    actionSetAvailabilityTable = actionSetsViewer;
    actionSetsViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    actionSetsViewer.setLabelProvider(new LabelProvider());
    actionSetsViewer.setContentProvider(new ArrayContentProvider());
    actionSetsViewer.setComparator(new WorkbenchViewerComparator());
    actionSetsViewer.setCheckStateProvider(new ICheckStateProvider() {
        public boolean isChecked(Object element) {
            return ((ActionSet) element).isActive();
        }

        public boolean isGrayed(Object element) {
            return false;
        }
    });
    actionSetsViewer.setInput(actionSets.toArray());

    Table table = actionSetsViewer.getTable();
    new TableToolTip(table);

    final ActionSet[] selectedActionSet = { null };

    // Filter to show only branches necessary for the selected action set.
    final ViewerFilter setFilter = new ViewerFilter() {
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (selectedActionSet[0] == null)
                return false;
            return includeInSetStructure((DisplayItem) element, selectedActionSet[0]);
        }
    };

    // Updates the check state of action sets
    actionSetsViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            final ActionSet actionSet = (ActionSet) event.getElement();
            if (event.getChecked()) {
                actionSet.setActive(true);
                for (Iterator i = actionSet.contributionItems.iterator(); i.hasNext();) {
                    DisplayItem item = (DisplayItem) i.next();
                    item.setCheckState(true);
                }
            } else {
                actionSet.setActive(false);
            }
        }
    });

    // Menu and toolbar composite
    Composite actionGroup = new Composite(sashComposite, SWT.NONE);
    layout = new GridLayout();
    layout.numColumns = 2;
    layout.makeColumnsEqualWidth = true;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    layout.horizontalSpacing = 0;
    actionGroup.setLayout(layout);
    actionGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    Composite menubarGroup = new Composite(actionGroup, SWT.NONE);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    menubarGroup.setLayout(layout);
    menubarGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    label = new Label(menubarGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.ActionSetSelection_menubarActions);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    final TreeViewer actionSetMenuViewer = new TreeViewer(menubarGroup);
    actionSetMenuViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
    actionSetMenuViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    actionSetMenuViewer.setUseHashlookup(true);
    actionSetMenuViewer.setContentProvider(TreeManager.getTreeContentProvider());
    actionSetMenuViewer.setLabelProvider(TreeManager.getLabelProvider());
    actionSetMenuViewer.addFilter(setFilter);
    actionSetMenuViewer.setInput(menuItems);

    Tree tree = actionSetMenuViewer.getTree();
    new ItemDetailToolTip(actionSetMenuViewer, tree, false, true, setFilter);

    Composite toolbarGroup = new Composite(actionGroup, SWT.NONE);
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    toolbarGroup.setLayout(layout);
    toolbarGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    label = new Label(toolbarGroup, SWT.WRAP);
    label.setText(WorkbenchMessages.ActionSetSelection_toolbarActions);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    final TreeViewer actionSetToolbarViewer = new TreeViewer(toolbarGroup);
    actionSetToolbarViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
    actionSetToolbarViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    actionSetToolbarViewer.setContentProvider(TreeManager.getTreeContentProvider());
    actionSetToolbarViewer.setLabelProvider(TreeManager.getLabelProvider());
    actionSetToolbarViewer.addFilter(setFilter);
    actionSetToolbarViewer.setInput(toolBarItems);

    tree = actionSetToolbarViewer.getTree();
    new ItemDetailToolTip(actionSetToolbarViewer, tree, false, true, setFilter);

    // Updates the menu item and toolbar items tree viewers when the
    // selection changes
    actionSetsViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            selectedActionSet[0] = (ActionSet) ((IStructuredSelection) event.getSelection()).getFirstElement();
            actionSetMenuViewer.setInput(menuItems);
            actionSetToolbarViewer.setInput(toolBarItems);
        }
    });

    sashComposite.setWeights(new int[] { 30, 70 });

    return actionSetsComposite;
}

From source file:org.eclipse.ui.internal.dialogs.DecoratorsPreferencePage.java

License:Open Source License

/** 
 * Creates the widgets for the list of decorators.
 *///  w  w  w . j  a va  2 s. co  m
private void createDecoratorsArea(Composite mainComposite) {

    Font mainFont = mainComposite.getFont();
    Composite decoratorsComposite = new Composite(mainComposite, SWT.NONE);
    decoratorsComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
    GridLayout decoratorsLayout = new GridLayout();
    decoratorsLayout.marginWidth = 0;
    decoratorsLayout.marginHeight = 0;
    decoratorsComposite.setLayout(decoratorsLayout);
    decoratorsComposite.setFont(mainFont);

    Label decoratorsLabel = new Label(decoratorsComposite, SWT.NONE);
    decoratorsLabel.setText(WorkbenchMessages.DecoratorsPreferencePage_decoratorsLabel);
    decoratorsLabel.setFont(mainFont);

    // Checkbox table viewer of decorators
    checkboxViewer = CheckboxTableViewer.newCheckList(decoratorsComposite, SWT.SINGLE | SWT.TOP | SWT.BORDER);
    checkboxViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    checkboxViewer.getTable().setFont(decoratorsComposite.getFont());
    checkboxViewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            return ((DecoratorDefinition) element).getName();
        }
    });
    checkboxViewer.getTable().setFont(mainFont);

    checkboxViewer.setContentProvider(new IStructuredContentProvider() {
        private final Comparator comparer = new Comparator() {
            private Collator collator = Collator.getInstance();

            public int compare(Object arg0, Object arg1) {
                String s1 = ((DecoratorDefinition) arg0).getName();
                String s2 = ((DecoratorDefinition) arg1).getName();
                return collator.compare(s1, s2);
            }
        };

        public void dispose() {
            //Nothing to do on dispose
        }

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

        public Object[] getElements(Object inputElement) {
            //Make an entry for each decorator definition
            Object[] elements = (Object[]) inputElement;
            Object[] results = new Object[elements.length];
            System.arraycopy(elements, 0, results, 0, elements.length);
            Collections.sort(Arrays.asList(results), comparer);
            return results;
        }

    });

    checkboxViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (event.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection sel = (IStructuredSelection) event.getSelection();
                DecoratorDefinition definition = (DecoratorDefinition) sel.getFirstElement();
                if (definition == null) {
                    clearDescription();
                } else {
                    showDescription(definition);
                }
            }
        }
    });

    checkboxViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            checkboxViewer.setSelection(new StructuredSelection(event.getElement()));
        }
    });
}

From source file:org.eclipse.ui.internal.dialogs.SimpleWorkingSetSelectionDialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {
    initializeDialogUnits(parent);/*from w w w.j  a v  a 2s .  c  o  m*/

    Composite composite = (Composite) super.createDialogArea(parent);

    Composite viewerComposite = new Composite(composite, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    layout.marginHeight = layout.marginWidth = 0;
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    viewerComposite.setLayout(layout);
    viewerComposite.setLayoutData(new GridData(GridData.FILL_BOTH));

    viewer = CheckboxTableViewer.newCheckList(viewerComposite, SWT.BORDER);
    viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
    viewer.setLabelProvider(new WorkingSetLabelProvider());
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.addFilter(new WorkingSetFilter(null));
    IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
    viewer.setInput(workingSets);
    viewer.setFilters(new ViewerFilter[] { new Filter() });

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            handleSelectionChanged();
        }
    });
    viewer.setCheckedElements(initialSelection);

    GridData viewerData = new GridData(GridData.FILL_BOTH);
    viewerData.widthHint = convertWidthInCharsToPixels(50);
    viewer.getControl().setLayoutData(viewerData);

    addModifyButtons(viewerComposite);

    addSelectionButtons(composite);

    availableWorkingSetsChanged();

    Dialog.applyDialogFont(composite);

    viewerData.heightHint = viewer.getTable().getItemHeight() * Math.min(30, Math.max(10, workingSets.length));

    return composite;
}

From source file:org.eclipse.ui.internal.dialogs.WorkingSetSelectionDialog.java

License:Open Source License

/**
 * Overrides method from Dialog./*from ww w . j  av  a  2s  . co m*/
 * Create the dialog widgets.
 * 
 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(Composite)
 */
protected Control createDialogArea(Composite parent) {
    initializeDialogUnits(parent);

    Composite composite = (Composite) super.createDialogArea(parent);

    createMessageArea(composite);

    SelectionListener listener = new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            updateButtonAvailability();
        }
    };

    buttonWindowSet = new Button(composite, SWT.RADIO);
    buttonWindowSet.setText(WorkbenchMessages.WindowWorkingSets);
    buttonWindowSet.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    buttonWindowSet.addSelectionListener(listener);

    buttonNoSet = new Button(composite, SWT.RADIO);
    buttonNoSet.setText(WorkbenchMessages.NoWorkingSet);
    buttonNoSet.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    buttonNoSet.addSelectionListener(listener);

    buttonSelectedSets = new Button(composite, SWT.RADIO);
    buttonSelectedSets.setText(WorkbenchMessages.SelectedWorkingSets);
    buttonSelectedSets.addSelectionListener(listener);

    switch (getInitialRadioSelection()) {
    case 0:
        buttonWindowSet.setSelection(true);
        break;
    case 1:
        buttonNoSet.setSelection(true);
        break;
    case 2:
        buttonSelectedSets.setSelection(true);
        break;
    }
    buttonSelectedSets.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    Composite viewerComposite = new Composite(composite, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    layout.marginHeight = layout.marginWidth = 0;
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    viewerComposite.setLayout(layout);

    GridData data = new GridData(GridData.FILL_BOTH);
    data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
    data.widthHint = SIZING_SELECTION_WIDGET_WIDTH + 300; // fudge?  I like fudge.
    viewerComposite.setLayoutData(data);

    listViewer = CheckboxTableViewer.newCheckList(viewerComposite, SWT.BORDER | SWT.MULTI);
    data = new GridData(GridData.FILL_BOTH);
    data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
    data.widthHint = SIZING_SELECTION_WIDGET_WIDTH;
    listViewer.getTable().setLayoutData(data);

    listViewer.setLabelProvider(labelProvider);
    listViewer.setContentProvider(contentProvider);
    listViewer.setComparator(new WorkbenchViewerComparator());

    listViewer.addFilter(new WorkingSetFilter(getSupportedWorkingSetIds()));

    listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            handleSelectionChanged();
        }
    });
    listViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            Object obj = ((IStructuredSelection) listViewer.getSelection()).getFirstElement();
            listViewer.setCheckedElements(new Object[] { obj });
            buttonWindowSet.setSelection(false);
            buttonNoSet.setSelection(false);
            buttonSelectedSets.setSelection(true);
            okPressed();
        }
    });
    listViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            // implicitly select the third radio button
            buttonWindowSet.setSelection(false);
            buttonNoSet.setSelection(false);
            buttonSelectedSets.setSelection(true);
        }
    });

    addModifyButtons(viewerComposite);

    addSelectionButtons(composite);

    listViewer.setInput(Arrays.asList(WorkbenchPlugin.getDefault().getWorkingSetManager().getWorkingSets()));
    List initialElementSelections = getInitialElementSelections();
    if (multiSelect) {
        listViewer.setCheckedElements(initialElementSelections.toArray());
    } else if (!initialElementSelections.isEmpty()) {
        IWorkingSet set = (IWorkingSet) initialElementSelections.get(0);
        if (set instanceof AggregateWorkingSet) {
            AggregateWorkingSet aggregate = (AggregateWorkingSet) set;
            listViewer.setCheckedElements(aggregate.getComponents());
        } else {
            listViewer.setCheckedElements(initialElementSelections.toArray());
        }
    }

    availableWorkingSetsChanged();
    Dialog.applyDialogFont(composite);

    return composite;
}