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

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

Introduction

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

Prototype

public ViewerComparator() 

Source Link

Document

Creates a new ViewerComparator , which uses the default comparator to sort strings.

Usage

From source file:com.aptana.editor.common.outline.CommonOutlinePage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    fMainControl = new Composite(parent, SWT.NONE);
    fMainControl.setLayout(GridLayoutFactory.fillDefaults().spacing(0, 2).create());
    fMainControl.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    fSearchBox = new Text(fMainControl, SWT.SINGLE | SWT.BORDER | SWT.SEARCH);
    fSearchBox.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(0, 3).create());
    fSearchBox.setText(INITIAL_FILTER_TEXT);
    fSearchBox.setForeground(fSearchBox.getDisplay().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND));
    fSearchBox.addModifyListener(fSearchModifyListener);
    fSearchBox.addFocusListener(new FocusListener() {

        public void focusLost(FocusEvent e) {
            if (fSearchBox.getText().length() == 0) {
                fSearchBox.removeModifyListener(fSearchModifyListener);
                fSearchBox.setText(INITIAL_FILTER_TEXT);
                fSearchBox.addModifyListener(fSearchModifyListener);
            }/* www  .  j av  a  2s. c o m*/
            fSearchBox
                    .setForeground(fSearchBox.getDisplay().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND));
        }

        public void focusGained(FocusEvent e) {
            if (fSearchBox.getText().equals(INITIAL_FILTER_TEXT)) {
                fSearchBox.removeModifyListener(fSearchModifyListener);
                fSearchBox.setText(StringUtil.EMPTY);
                fSearchBox.addModifyListener(fSearchModifyListener);
            }
            fSearchBox.setForeground(null);
        }
    });

    fTreeViewer = new TreeViewer(fMainControl, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    fTreeViewer.addSelectionChangedListener(this);
    fTreeViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    ((IContextService) getSite().getService(IContextService.class)).activateContext(OUTLINE_CONTEXT);

    final TreeViewer viewer = getTreeViewer();
    viewer.setUseHashlookup(true);
    viewer.setContentProvider(fContentProvider);
    viewer.setLabelProvider(fLabelProvider);
    fInput = new CommonOutlinePageInput(fEditor.getAST());
    // Note: the input remains the same (we change its internal contents with a new ast and call refresh,
    // so that the outline structure is maintained).
    viewer.setInput(fInput);
    viewer.setComparator(isSortingEnabled() ? new ViewerComparator() : null);
    fFilter = new PatternFilter() {

        @Override
        protected boolean isLeafMatch(Viewer viewer, Object element) {
            String label = null;
            if (element instanceof CommonOutlineItem) {
                label = ((CommonOutlineItem) element).getLabel();
            } else if (element instanceof IParseNode) {
                label = ((IParseNode) element).getText();
            }

            if (label == null) {
                return true;
            }
            return wordMatches(label);
        }
    };
    fFilter.setIncludeLeadingWildcard(true);
    viewer.addFilter(fFilter);
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            // expands the selection one level if applicable
            viewer.expandToLevel(selection.getFirstElement(), 1);
            // selects the corresponding text in editor
            if (!isLinkedWithEditor()) {
                setEditorSelection(selection, true);
            }
        }
    });
    viewer.getTree().addKeyListener(new KeyListener() {

        public void keyPressed(KeyEvent e) {
        }

        public void keyReleased(KeyEvent e) {
            if (e.keyCode == '\r' && isLinkedWithEditor()) {
                ISelection selection = viewer.getSelection();
                if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
                    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
                    if (page != null) {
                        // brings editor to focus
                        page.activate(fEditor);
                        // deselects the current selection but keeps the cursor position
                        Object widget = fEditor.getAdapter(Control.class);
                        if (widget instanceof StyledText)
                            fEditor.selectAndReveal(((StyledText) widget).getCaretOffset(), 0);
                    }
                }
            }
        }
    });

    hookToThemes();

    IActionBars actionBars = getSite().getActionBars();
    registerActions(actionBars);
    actionBars.updateActionBars();

    fPrefs.addPropertyChangeListener(this);
    fFilterRefreshJob = new WorkbenchJob("Refresh Filter") //$NON-NLS-1$
    {

        @Override
        public IStatus runInUIThread(IProgressMonitor monitor) {
            if (isDisposed()) {
                return Status.CANCEL_STATUS;
            }

            fTreeViewer.refresh();
            String text = fSearchBox.getText();
            if (!StringUtil.isEmpty(text) && !INITIAL_FILTER_TEXT.equals(text)) {
                fTreeViewer.expandAll();
            }
            return Status.OK_STATUS;
        }
    };
    EclipseUtil.setSystemForJob(fFilterRefreshJob);
}

From source file:com.aptana.editor.common.outline.CommonOutlinePage.java

License:Open Source License

public void propertyChange(PropertyChangeEvent event) {
    String property = event.getProperty();

    if (property.equals(IPreferenceConstants.LINK_OUTLINE_WITH_EDITOR)) {
        boolean isLinked = Boolean.parseBoolean(StringUtil.getStringValue(event.getNewValue()));

        fToggleLinkingAction.setChecked(isLinked);
        TreeViewer viewer = getTreeViewer();
        if (isLinked) {
            setEditorSelection((IStructuredSelection) viewer.getSelection(), false);
        }//from  ww w  .j  ava  2s .  c o m
    } else if (property.equals(IPreferenceConstants.SORT_OUTLINE_ALPHABETIC)) {
        boolean sort = Boolean.parseBoolean(StringUtil.getStringValue(event.getNewValue()));
        getTreeViewer().setComparator(sort ? new ViewerComparator() : null);
    }
}

From source file:com.aptana.editor.common.outline.CommonQuickOutlinePage.java

License:Open Source License

/**
 * Contributes actions to quick outline menu.
 * //from  www. j a va  2  s.c om
 * @param manager
 *            - menu manager.
 */
void contributeToQuickOutlineMenu(IMenuManager manager) {
    // add sort action
    Action sortAction = new Action(Messages.CommonQuickOutlinePage_SortAlphabetically, Action.AS_CHECK_BOX) {
        public void run() {
            // Hide tree control during redraw
            getTreeViewer().getControl().setVisible(false);

            // Set the sorting according to whether this Action is checked/unchecked
            // TODO Store this persistently across quick outlines per-language?
            if (this.isChecked()) {
                getTreeViewer().setComparator(new ViewerComparator());
            } else {
                getTreeViewer().setComparator(null);
            }

            // Show the tree control
            getTreeViewer().getControl().setVisible(true);
        }
    };
    sortAction.setImageDescriptor(UIUtils.getImageDescriptor(CommonEditorPlugin.PLUGIN_ID, "icons/sort.gif")); //$NON-NLS-1$
    sortAction.setToolTipText(Messages.CommonQuickOutlinePage_SortAlphabetically);
    // this._sortItem = new ActionContributionItem(sortAction);
    manager.add(new ActionContributionItem(sortAction));

    // add Collapse All action
    Action collapseAction = new Action(Messages.CommonQuickOutlinePage_CollapseAll, Action.AS_PUSH_BUTTON) {
        public void run() {
            getTreeViewer().collapseAll();
        }
    };
    collapseAction.setImageDescriptor(
            PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ELCL_COLLAPSEALL));
    collapseAction.setToolTipText(Messages.CommonQuickOutlinePage_CollapseAll);
    manager.add(new ActionContributionItem(collapseAction));

    // Expand All action
    Action expandAction = new Action(Messages.CommonQuickOutlinePage_ExpandAll) {
        public void run() {
            getTreeViewer().expandAll();
        }
    };
    expandAction.setImageDescriptor(
            UIUtils.getImageDescriptor(CommonEditorPlugin.PLUGIN_ID, "icons/expandall.gif")); //$NON-NLS-1$
    expandAction.setToolTipText(Messages.CommonQuickOutlinePage_ExpandAll);
    manager.add(new ActionContributionItem(expandAction));
}

From source file:com.aptana.editor.common.preferences.ContentAssistPreferencePage.java

License:Open Source License

/**
 * createUserAgentTable//from w  w  w. j  a v  a2 s  . c om
 * 
 * @param parent
 */
protected void createUserAgentTable(Composite parent) {
    Label label = new Label(parent, SWT.WRAP);
    label.setText(Messages.UserAgentPreferencePage_Select_User_Agents);
    label.setLayoutData(GridDataFactory.fillDefaults().span(2, 0).grab(true, true).create());

    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(GridLayoutFactory.fillDefaults().create());
    composite.setLayoutData(GridDataFactory.fillDefaults().span(2, 0).hint(400, 120).grab(true, true).create());

    Table table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.SINGLE);
    table.setFont(parent.getFont());

    categoryViewer = new CheckboxTableViewer(table);
    categoryViewer.getControl().setFont(parent.getFont());
    categoryViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
    categoryViewer.setContentProvider(ArrayContentProvider.getInstance());

    CategoryLabelProvider categoryLabelProvider = new CategoryLabelProvider(true);
    categoryViewer.setLabelProvider(categoryLabelProvider);
    categoryViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            if (e1 instanceof IUserAgent && e2 instanceof IUserAgent) {
                IUserAgent ua1 = (IUserAgent) e1;
                IUserAgent ua2 = (IUserAgent) e2;

                String uaName1 = StringUtil.getStringValue(ua1.getName());
                String uaName2 = StringUtil.getStringValue(ua2.getName());

                return uaName1.compareToIgnoreCase(uaName2);
            }

            return super.compare(viewer, e1, e2);
        }
    });

    categoryViewer.setInput(UserAgentManager.getInstance().getAllUserAgents());
}

From source file:com.aptana.editor.common.preferences.TasksPreferencePage.java

License:Open Source License

/**
 * @param parent//  ww w  .j a  va  2s . c om
 */
private void createTaskTableArea(Composite parent) {
    fTasksTableViewer = new TableViewer(parent, SWT.BORDER | SWT.SINGLE);
    Table table = fTasksTableViewer.getTable();
    table.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    table.setFont(parent.getFont());

    TableColumn tagNameColumn = new TableColumn(table, SWT.NONE);
    tagNameColumn.setText(Messages.TasksPreferencePage_TagNameColumnHeader);
    tagNameColumn.setWidth(100);
    TableColumn tagPriorityColumn = new TableColumn(table, SWT.NONE);
    tagPriorityColumn.setText(Messages.TasksPreferencePage_PriorityColumnHeader);
    tagPriorityColumn.setWidth(100);

    fTasksTableViewer.setContentProvider(ArrayContentProvider.getInstance());
    fTasksTableViewer.setLabelProvider(new TaskLabelProvider());
    fTasksTableViewer.setComparator(new ViewerComparator());
    fTasksTableViewer.setInput(getTaskTags());

    fTasksTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            // Enable/disable buttons
            updateButtonStates();
        }
    });

    createTaskButtons(parent);
}

From source file:com.aptana.editor.php.internal.ui.preferences.BuildPathEditingComposite.java

License:Open Source License

private void createLibraryPart(TabItem item) {
    TabFolder parent2 = item.getParent();
    Composite projectPart = new Composite(parent2, SWT.NONE);
    projectPart.setLayout(new GridLayout(2, false));
    customLibsButton = new Button(projectPart, SWT.CHECK);
    GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
    layoutData.horizontalSpan = 2;/* w w  w .jav  a2s  .co  m*/
    customLibsButton.setLayoutData(layoutData);
    customLibsButton.setText(Messages.BuildPathEditingComposite_projectSpecific);
    libraryViewer = CheckboxTableViewer.newCheckList(projectPart, SWT.BORDER);
    libraryViewer.setContentProvider(new ArrayContentProvider());
    IPHPLibrary[] allLibraries = LibraryManager.getInstance().getAllLibraries();
    libraryViewer.setInput(allLibraries);
    libraryViewer.setComparator(new ViewerComparator());
    final Map<URL, Image> images = new HashMap<URL, Image>();
    libraryViewer.setLabelProvider(new LibraryLabelProvider(images));
    final Composite buttons = new Composite(projectPart, SWT.NONE);
    projectPart.addDisposeListener(new DisposeListener() {
        public void widgetDisposed(DisposeEvent e) {
            for (Image m : images.values()) {
                m.dispose();
            }
        }
    });
    libraryViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
    GridLayout layout = new GridLayout(1, false);
    layout.marginHeight = 0;
    buttons.setLayout(layout);
    select = new Button(buttons, SWT.NONE);
    select.setText(Messages.LibrariesPage_selectAll);
    select.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    deselect = new Button(buttons, SWT.NONE);
    deselect.setText(Messages.LibrariesPage_deselectAll);
    deselect.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    buttons.setLayoutData(new GridData(GridData.FILL_VERTICAL));
    customLibsButton.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent e) {
        }

        public void widgetSelected(SelectionEvent e) {
            boolean selection = customLibsButton.getSelection();
            libraryViewer.getControl().setEnabled(selection);
            select.setEnabled(selection);
            deselect.setEnabled(selection);
        }
    });
    select.addSelectionListener(new SelectAction(true));
    deselect.addSelectionListener(new SelectAction(false));
    item.setControl(projectPart);

}

From source file:com.aptana.editor.php.internal.ui.preferences.PHPLibrariesPreferencePage.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {
    Composite body = new Composite(parent, SWT.NONE);

    body.setLayout(new GridLayout(1, false));
    Label label = new Label(body, SWT.NONE | SWT.WRAP);
    label.setText(Messages.PHPLibrariesPreferencePage_librariesTitle);
    final Map<URL, Image> images = new HashMap<URL, Image>();
    Composite tableAndButton = new Composite(body, SWT.NONE);
    tableAndButton.setLayout(new GridLayout(2, false));
    newCheckList = CheckboxTableViewer.newCheckList(tableAndButton, SWT.BORDER);
    newCheckList.setContentProvider(new ArrayContentProvider());
    newCheckList.setInput(LibraryManager.getInstance().getAllLibraries());
    Composite buttons = new Composite(tableAndButton, SWT.NONE);
    buttons.setLayout(new GridLayout(1, false));
    newCheckList.setComparator(new ViewerComparator());
    newCheckList.setLabelProvider(new LibraryLabelProvider(images));
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.minimumHeight = 400;/*w w  w . j  a va2s . co  m*/
    newCheckList.getControl().setLayoutData(layoutData);
    body.addDisposeListener(new DisposeListener() {

        public void widgetDisposed(DisposeEvent e) {
            for (Image m : images.values()) {
                m.dispose();
            }
        }

    });
    layoutData = new GridData();
    layoutData.heightHint = 400;
    body.setLayoutData(layoutData);
    for (IPHPLibrary l : LibraryManager.getInstance().getAllLibraries()) {
        newCheckList.setChecked(l, l.isTurnedOn());
    }

    buttons.setLayoutData(new GridData(GridData.FILL_VERTICAL));
    Button add = new Button(buttons, SWT.PUSH);
    add.setText(Messages.PHPLibrariesPreferencePage_newUserLibrary);
    add.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    add.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent e) {

        }

        public void widgetSelected(SelectionEvent e) {
            PHPLibraryDialog libraryDialog = new PHPLibraryDialog(Display.getCurrent().getActiveShell(), null,
                    getContent());
            if (libraryDialog.open() == Dialog.OK) {
                UserLibrary result = libraryDialog.getResult();
                newCheckList.add(result);
                newCheckList.setChecked(result, true);
            }
        }

    });
    final Button edit = new Button(buttons, SWT.PUSH);
    edit.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent e) {
            // empty
        }

        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection ss = (IStructuredSelection) newCheckList.getSelection();
            UserLibrary firstElement = (UserLibrary) ss.getFirstElement();
            PHPLibraryDialog libraryDialog = new PHPLibraryDialog(Display.getCurrent().getActiveShell(),
                    firstElement, getContent());
            if (libraryDialog.open() == Dialog.OK) {
                newCheckList.remove(firstElement);
                newCheckList.add(libraryDialog.getResult());
            }
        }

    });
    edit.setText(Messages.PHPLibrariesPreferencePage_editLibrary);
    edit.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    final Button remove = new Button(buttons, SWT.PUSH);
    remove.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent e) {

        }

        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection ss = (IStructuredSelection) newCheckList.getSelection();
            for (Object o : ss.toArray()) {
                newCheckList.remove(o);
            }
        }

    });
    remove.setText(Messages.PHPLibrariesPreferencePage_removeLibrary);
    tableAndButton.setLayoutData(new GridData(GridData.FILL_BOTH));
    remove.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    newCheckList.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection ss = (IStructuredSelection) event.getSelection();
            if (ss.isEmpty() || ss.getFirstElement() instanceof PHPLibrary) {
                edit.setEnabled(false);
                remove.setEnabled(false);
                return;
            }
            edit.setEnabled(true);
            remove.setEnabled(true);
        }

    });
    Button selectAll = new Button(buttons, SWT.PUSH);
    selectAll.setText(Messages.LibrariesPage_selectAll);
    selectAll.addSelectionListener(new SelectAction(true));
    Button deselectAll = new Button(buttons, SWT.PUSH);
    deselectAll.setText(Messages.LibrariesPage_deselectAll);
    selectAll.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    deselectAll.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    deselectAll.addSelectionListener(new SelectAction(false));
    edit.setEnabled(false);
    remove.setEnabled(false);
    return body;
}

From source file:com.aptana.editor.php.internal.ui.preferences.PHPLibraryDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite body = new Composite(parent, SWT.NONE);
    body.setLayout(new GridLayout(2, false));
    body.setLayoutData(new GridData(GridData.FILL_BOTH));
    Label label = new Label(body, SWT.NONE);
    label.setText(Messages.PHPLibraryDialog_libraryName);
    nameText = new Text(body, SWT.BORDER);
    nameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    if (library != null) {
        nameText.setText(library.getName());
    }//from  w  ww .  java  2 s  .c  o m
    nameText.addModifyListener(new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            validate();
        }

    });
    Group pComp = new Group(body, SWT.NONE);
    pComp.setText(Messages.PHPLibraryDialog_libraryContent);
    pComp.setLayout(new GridLayout(2, false));
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.horizontalSpan = 2;
    layoutData.minimumHeight = 200;
    pComp.setLayoutData(layoutData);
    viewer = new TableViewer(pComp, SWT.BORDER);
    viewer.setComparator(new ViewerComparator());
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new LabelProvider() {

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

        }

        public Image getImage(Object element) {
            return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
        }
    });
    Composite buttons = new Composite(pComp, SWT.NONE);
    GridLayout layout = new GridLayout(1, false);
    layout.marginHeight = 0;
    if (library != null) {
        viewer.setInput(library.getDirectories().toArray());
    } else {
        viewer.setInput(new String[0]); // $codepro.audit.disable reusableImmutables
    }
    buttons.setLayout(layout);
    Button add = new Button(buttons, SWT.NONE);
    add.setText(Messages.PHPLibraryDialog_addFolder);
    add.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent e) {

        }

        public void widgetSelected(SelectionEvent e) {
            DirectoryDialog directoryDialog = new DirectoryDialog(Display.getCurrent().getActiveShell());
            directoryDialog.setText(Messages.PHPLibraryDialog_selectFolder);
            String open = directoryDialog.open();
            viewer.add(open);
        }

    });
    add.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    Button remove = new Button(buttons, SWT.NONE);
    remove.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent e) {

        }

        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
            for (Object o : selection.toArray()) {
                viewer.remove(o);
            }
        }

    });
    remove.setText(Messages.PHPLibraryDialog_removeSelected);
    remove.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    buttons.setLayoutData(new GridData(GridData.FILL_VERTICAL));
    viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
    Control createDialogArea = super.createDialogArea(parent);
    setMessage(Messages.PHPLibraryDialog_libraryConfigureMessage);
    setTitleImage(titleImage);
    setTitle(Messages.PHPLibraryDialog_libraryConfigureTitle);
    buttons.setLayoutData(new GridData(GridData.FILL_VERTICAL));

    return createDialogArea;
}

From source file:com.aptana.formatter.ui.preferences.AddRemoveList.java

License:Open Source License

/**
 * Creates the contents of this list./*from   w  ww  .j a  v  a2 s  . co m*/
 */
protected void createContents(Composite parent) {
    control = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    control.setLayout(layout);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.grabExcessVerticalSpace = true;
    control.setLayoutData(data);

    listViewer = new CListViewer(control, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL);
    listViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtonsState();
        }
    });
    contentProvider = new ListContentProvider();
    listViewer.setContentProvider(contentProvider);
    listViewer.setComparator(new ViewerComparator());

    data = new GridData(GridData.FILL_BOTH);
    data.heightHint = 300;
    listViewer.getControl().setLayoutData(data);

    Composite groupComponent = new Composite(control, SWT.NULL);
    GridLayout groupLayout = new GridLayout();
    groupLayout.marginWidth = 0;
    groupLayout.marginHeight = 0;
    groupComponent.setLayout(groupLayout);
    data = new GridData();
    data.verticalAlignment = GridData.FILL;
    data.horizontalAlignment = GridData.FILL;
    groupComponent.setLayoutData(data);

    addButton = new Button(groupComponent, SWT.PUSH);
    addButton.setText(Messages.AddRemoveList_add);
    addButton.addListener(SWT.Selection, this);
    addButton.setLayoutData(data);
    setButtonLayoutData(addButton);

    removeButton = new Button(groupComponent, SWT.PUSH);
    removeButton.setText(Messages.AddRemoveList_remove);
    removeButton.addListener(SWT.Selection, this);
    setButtonLayoutData(removeButton);

    // Spacer
    Label label = new Label(control, SWT.LEFT);
    data = new GridData();
    data.horizontalAlignment = GridData.FILL;
    data.horizontalSpan = 2;
    label.setLayoutData(data);

    updateButtonsState();
}

From source file:com.aptana.ide.ui.io.preferences.RemotePreferencePage.java

License:Open Source License

private Composite createCloakingComposite(Composite parent) {
    Composite main = new Composite(parent, SWT.NONE);
    main.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());

    Button addButton = new Button(main, SWT.PUSH);
    addButton.setImage(IOUIPlugin.getImage(ADD_ICON));
    addButton.addSelectionListener(new SelectionAdapter() {

        @Override//from  w  ww.j a va  2 s  .co  m
        public void widgetSelected(SelectionEvent e) {
            add();
        }
    });

    removeButton = new Button(main, SWT.PUSH);
    removeButton.setImage(IOUIPlugin.getImage(REMOVE_ICON));
    removeButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            remove();
        }
    });

    tableViewer = new TableViewer(main, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
    Table table = tableViewer.getTable();
    table.setLayoutData(GridDataFactory.fillDefaults().span(2, 1).grab(true, true).create());
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());
    tableViewer.setLabelProvider(new LabelProvider());
    tableViewer.setInput(expressions);
    tableViewer.setComparator(new ViewerComparator());
    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            updateButtonState();
        }
    });

    updateButtonState();

    return main;
}