Example usage for org.eclipse.jface.viewers TableViewer getElementAt

List of usage examples for org.eclipse.jface.viewers TableViewer getElementAt

Introduction

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

Prototype

public Object getElementAt(int index) 

Source Link

Document

Returns the element with the given index from this table viewer.

Usage

From source file:org.eclipse.mylyn.gerrit.dashboard.ui.internal.model.ReviewTableSorter.java

License:Open Source License

private int defaultCompare(Viewer aViewer, Object aE1, Object aE2) {

    if (aViewer instanceof TableViewer) {

        // We are in a table
        TableViewer tv = (TableViewer) aViewer;
        tv.getTable().setSortColumn(tv.getTable().getColumn(columnIndex));

        // Lookup aE1 and aE2
        int idx1 = -1, idx2 = -1;
        for (int i = 0; i < tv.getTable().getItemCount(); i++) {
            Object obj = tv.getElementAt(i);
            if (obj.equals(aE1)) {
                idx1 = i;/*from ww  w  . ja va2  s . co m*/
            } else if (obj.equals(aE2)) {
                idx2 = i;
            }
            if (idx1 != -1 && idx2 != -1) {
                break;
            }
        }

        // Compare the respective fields
        int order = 0;

        if (idx1 > -1 && idx2 > -1) {
            String str1 = tv.getTable().getItems()[idx1].getText(this.columnIndex);
            String str2 = tv.getTable().getItems()[idx2].getText(this.columnIndex);
            order = str1.compareTo(str2);
        }
        return order;
    }

    else if (aViewer instanceof TreeViewer) {

        TreeViewer tv = (TreeViewer) aViewer;
        tv.getTree().setSortColumn(tv.getTree().getColumn(columnIndex));
        int idx1 = -1, idx2 = -1;

        Object[] listObj = tv.getTree().getItems();

        for (int i = 0; i < listObj.length; i++) {
            Object obj = null;
            if (listObj[i] instanceof TreeItem) {

                obj = ((TreeItem) listObj[i]).getData();
                ((TreeItem) listObj[i]).setExpanded(true);

            } else {
            }

            if (obj != null) {
                if (obj.equals(aE1)) {
                    idx1 = i;
                } else if (obj.equals(aE2)) {
                    idx2 = i;
                }
                if (idx1 > 0 && idx2 > 0) {
                    break;
                }
            }
        }

        int order = 0;
        if (idx1 > -1 && idx2 > -1) {
            String str1 = tv.getTree().getItems()[idx1].getText(this.columnIndex);
            String str2 = tv.getTree().getItems()[idx2].getText(this.columnIndex);
            order = str1.compareTo(str2);
        }
        return order;
    }
    return 0;
}

From source file:org.eclipse.mylyn.reviews.r4e.ui.internal.sorters.FindUsersTableViewerSorter.java

License:Open Source License

/**
 * Method compare./* w w w  . j  av a  2 s. c  o m*/
 * 
 * @param aViewer
 *            Viewer
 * @param aObj1
 *            Object
 * @param aObj2
 *            Object
 * @return int
 */
@Override
public int compare(Viewer aViewer, Object aObj1, Object aObj2) {
    if (aViewer instanceof TableViewer) {

        final TableViewer tv = (TableViewer) aViewer;
        tv.getTable().setSortColumn(tv.getTable().getColumn(fColumnIndex));
        int idx1 = -1, idx2 = -1;
        final int numItems = tv.getTable().getItemCount();
        Object obj = null;
        for (int i = 0; i < numItems; i++) {
            obj = tv.getElementAt(i);
            if (obj.equals(aObj1)) {
                idx1 = i;
            } else if (obj.equals(aObj2)) {
                idx2 = i;
            }
            if (idx1 > 0 && idx2 > 0) {
                break;
            }
        }

        int order = 0;
        if (idx1 > -1 && idx2 > -1) {
            final String str1 = tv.getTable().getItems()[idx1].getText(fColumnIndex);
            final String str2 = tv.getTable().getItems()[idx2].getText(fColumnIndex);
            order = str1.compareTo(str2);
            if (tv.getTable().getSortDirection() != SWT.UP) {
                order *= -1;
            }
        }
        return order;
    } else if (aViewer instanceof TreeViewer) {
        final TreeViewer tv = (TreeViewer) aViewer;
        tv.getTree().setSortColumn(tv.getTree().getColumn(fColumnIndex));
        int idx1 = -1, idx2 = -1;

        final Object[] listObj = tv.getTree().getItems();
        Object obj = null;
        for (int i = 0; i < listObj.length; i++) {
            if (listObj[i] instanceof TreeItem) {
                obj = ((TreeItem) listObj[i]).getData();
                ((TreeItem) listObj[i]).setExpanded(true);
            }
            if (null != obj) {
                if (obj.equals(aObj1)) {
                    idx1 = i;
                } else if (obj.equals(aObj2)) {
                    idx2 = i;
                }
                if (idx1 > 0 && idx2 > 0) {
                    break;
                }
            }
        }
        int order = 0;
        if (idx1 > -1 && idx2 > -1) {
            final String str1 = tv.getTree().getItems()[idx1].getText(fColumnIndex);
            final String str2 = tv.getTree().getItems()[idx2].getText(fColumnIndex);
            order = str1.compareTo(str2);
            if (tv.getTree().getSortDirection() != SWT.UP) {
                order *= -1;
            }
        }
        return order;
    }
    return 0;
}

From source file:org.eclipse.mylyn.reviews.r4e_gerrit.ui.internal.model.ReviewTableSorter.java

License:Open Source License

private int defaultCompare(Viewer aViewer, Object aE1, Object aE2) {

    if (aViewer instanceof TableViewer) {

        // We are in a table
        TableViewer tv = (TableViewer) aViewer;
        tv.getTable().setSortColumn(tv.getTable().getColumn(columnIndex));

        // Lookup aE1 and aE2
        int idx1 = -1, idx2 = -1;
        for (int i = 0; i < tv.getTable().getItemCount(); i++) {
            Object obj = tv.getElementAt(i);
            if (obj.equals(aE1)) {
                idx1 = i;/*from   www  . j av  a  2s  .c o m*/
            } else if (obj.equals(aE2)) {
                idx2 = i;
            }
            if (idx1 != -1 && idx2 != -1) {
                break;
            }
        }

        // Compare the respective fields
        int order = 0;

        if (idx1 > -1 && idx2 > -1) {
            String str1 = tv.getTable().getItems()[idx1].getText(this.columnIndex);
            String str2 = tv.getTable().getItems()[idx2].getText(this.columnIndex);
            order = str1.compareTo(str2);
        }
        if (tv.getTable().getSortDirection() != SWT.UP) {
            order *= -1;
        }
        return order;
    }

    else if (aViewer instanceof TreeViewer) {

        TreeViewer tv = (TreeViewer) aViewer;
        tv.getTree().setSortColumn(tv.getTree().getColumn(columnIndex));
        int idx1 = -1, idx2 = -1;

        Object[] listObj = tv.getTree().getItems();

        for (int i = 0; i < listObj.length; i++) {
            Object obj = null;
            if (listObj[i] instanceof TreeItem) {

                obj = ((TreeItem) listObj[i]).getData();
                ((TreeItem) listObj[i]).setExpanded(true);

            } else {
            }

            if (obj != null) {
                if (obj.equals(aE1)) {
                    idx1 = i;
                } else if (obj.equals(aE2)) {
                    idx2 = i;
                }
                if (idx1 > 0 && idx2 > 0) {
                    break;
                }
            }
        }

        int order = 0;
        if (idx1 > -1 && idx2 > -1) {
            String str1 = tv.getTree().getItems()[idx1].getText(this.columnIndex);
            String str2 = tv.getTree().getItems()[idx2].getText(this.columnIndex);
            order = str1.compareTo(str2);
            if (tv.getTree().getSortDirection() != SWT.UP) {
                order *= -1;
            }
        }
        return order;
    }
    return 0;
}

From source file:org.eclipse.rcptt.ctx.parameters.ui.ParametersContextEditor.java

License:Open Source License

private TableViewer createTable(Composite parent, FormToolkit toolkit) {
    table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    GridDataFactory.fillDefaults().grab(true, true).hint(100, 50).applyTo(table);
    table.setHeaderVisible(true);// www .  j  a v a 2s  .com
    toolkit.adapt(table);
    table.setLinesVisible(true);

    nameColumn = new TableColumn(table, SWT.LEFT);
    nameColumn.setText("Name");
    nameColumn.setWidth(200);
    nameColumn.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortBy(nameColumn);
        }
    });

    valueColumn = new TableColumn(table, SWT.LEFT);
    valueColumn.setText("Value");
    valueColumn.setWidth(350);
    valueColumn.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortBy(valueColumn);
        }
    });

    table.addKeyListener(new KeyAdapter() {

        public void keyPressed(KeyEvent e) {
            switch (e.keyCode) {
            case SWT.DEL:
            case SWT.BS:
                removeSelected();
                break;
            case SWT.INSERT:
                addNew();
                break;
            case SWT.CR:
            case SWT.F2:
                lastNewName = "";
                Object el = ((StructuredSelection) viewer.getSelection()).getFirstElement();
                if (el != null)
                    viewer.editElement(el, 0);
                else
                    viewer.editElement(newParameterItem, 0);
                break;
            }
        }
    });

    final TableViewer viewer = new TableViewer(table);
    viewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {
            // do nothing
        }

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

        public Object[] getElements(Object inputElement) {
            ParametersContext ctx = (ParametersContext) inputElement;

            List<Parameter> elements = new ArrayList<Parameter>();
            elements.addAll(ctx.getParameters());
            elements.add(newParameterItem);

            return elements.toArray();
        }

    });

    // --

    TableViewerColumn nameViewerColumn = new TableViewerColumn(viewer, nameColumn);
    nameViewerColumn.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            Parameter p = (Parameter) element;
            return p.getName();
        }

        public Image getImage(Object element) {
            return element == newParameterItem
                    ? Images.getImageDescriptor(ISharedImages.IMG_OBJ_ADD).createImage()
                    : Images.getImage(Images.PARAMETER);
        }

        public Font getFont(Object element) {
            if (element == newParameterItem) {
                Font tableFont = table.getFont();
                FontData fd = tableFont.getFontData()[0];
                fd.setStyle(fd.getStyle() | SWT.ITALIC);

                return new Font(tableFont.getDevice(), fd);
            } else
                return null;
        }
    });

    nameViewerColumn.setEditingSupport(new EditingSupport(viewer) {

        protected CellEditor getCellEditor(final Object element) {
            final TextCellEditor editor = new TextCellEditor(table);
            editor.getControl().addTraverseListener(new TraverseListener() {

                public void keyTraversed(TraverseEvent e) {
                    Text text = (Text) editor.getControl();

                    switch (e.detail) {
                    case SWT.TRAVERSE_TAB_NEXT:
                        if (validateName(element, text.getText()))
                            viewer.editElement(element, 1);
                        e.detail = SWT.TRAVERSE_NONE;
                        e.doit = false;
                        break;
                    case SWT.TRAVERSE_ARROW_NEXT:
                        if (e.keyCode == SWT.ARROW_DOWN) {
                            if (table.getItemCount() > table.getSelectionIndex() + 1
                                    && (isNewAndBlank(element, text.getText())
                                            || validateName(element, text.getText())))
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() + 1), 0);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    case SWT.TRAVERSE_ARROW_PREVIOUS:
                        if (e.keyCode == SWT.ARROW_UP) {
                            if (table.getSelectionIndex() > 0 && (isNewAndBlank(element, text.getText())
                                    || validateName(element, text.getText())))
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() - 1), 0);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    }
                }

            });
            return editor;
        }

        protected boolean canEdit(Object element) {
            return true;
        }

        protected Object getValue(Object element) {
            if (lastNewName.length() > 0)
                return lastNewName;
            else if (element == newParameterItem)
                return "";
            else {
                Parameter p = (Parameter) element;
                return p.getName();
            }
        }

        protected void setValue(final Object element, Object value) {
            String name = (String) value;
            Parameter param = (Parameter) element;
            ParametersContext ctx = getContextElement();

            if (isNewAndBlank(element, name)) {
                lastNewName = "";
                return;
            }

            if (!validateName(element, name)) {
                table.getDisplay().asyncExec(new Runnable() {

                    public void run() {
                        if (!table.isDisposed())
                            viewer.editElement(element, 0);
                    }
                });

                return;
            }

            if (param != newParameterItem) {
                if (!param.getName().equals(name)) {
                    Integer index = nameToIndex.get(param.getName());
                    nameToIndex.remove(param.getName());
                    nameToIndex.put(name, index);

                    param.setName(name);
                    viewer.update(element, NAME_PROPERTIES);
                }
            } else {
                final Parameter newParam = ParametersFactory.eINSTANCE.createParameter();
                newParam.setName(name);
                newParam.setValue("");

                nameToIndex.put(name, table.getItemCount() - 1);

                ctx.getParameters().add(newParam);
                viewer.add(newParam);

                viewer.setSelection(new StructuredSelection(newParam), true);
                table.getDisplay().asyncExec(new Runnable() {

                    public void run() {
                        viewer.editElement(newParam, 1);
                    }
                });
            }
        }

    });

    // --

    TableViewerColumn valueViewerColumn = new TableViewerColumn(viewer, valueColumn);
    valueViewerColumn.setLabelProvider(new ColumnLabelProvider() {
        public String getText(Object element) {
            Parameter p = (Parameter) element;
            return p.getValue();
        }
    });

    valueViewerColumn.setEditingSupport(new EditingSupport(viewer) {

        protected CellEditor getCellEditor(final Object element) {
            final TextCellEditor editor = new TextCellEditor(table);
            editor.getControl().addTraverseListener(new TraverseListener() {

                public void keyTraversed(TraverseEvent e) {
                    Text text = (Text) editor.getControl();

                    switch (e.detail) {
                    case SWT.TRAVERSE_TAB_PREVIOUS:
                        if (validateName(element, text.getText()))
                            viewer.editElement(element, 0);
                        e.detail = SWT.TRAVERSE_NONE;
                        e.doit = false;
                        break;
                    case SWT.TRAVERSE_ARROW_NEXT:
                        if (e.keyCode == SWT.ARROW_DOWN) {
                            if (table.getItemCount() > table.getSelectionIndex() + 1)
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() + 1), 1);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    case SWT.TRAVERSE_ARROW_PREVIOUS:
                        if (e.keyCode == SWT.ARROW_UP) {
                            if (table.getSelectionIndex() > 0)
                                viewer.editElement(viewer.getElementAt(table.getSelectionIndex() - 1), 1);
                            e.detail = SWT.TRAVERSE_NONE;
                            e.doit = false;
                        }
                        break;
                    }
                }

            });
            return editor;
        }

        protected boolean canEdit(Object element) {
            return element != newParameterItem;
        }

        protected Object getValue(Object element) {
            Parameter p = (Parameter) element;
            return p.getValue();
        }

        protected void setValue(Object element, Object value) {
            Parameter p = (Parameter) element;
            String v = (String) value;
            if (!p.getValue().equals(v)) {
                p.setValue((String) value);
                viewer.update(element, VALUE_PROPERTIES);
            }
        }

    });

    // --

    updateIndexes();
    viewer.setComparator(new Comparator());

    // --

    viewer.setInput(getContextElement());

    return viewer;
}

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

License:Open Source License

/**
 * Creates the page used to allow users to choose menu items to hide.
 *//* w ww .j  a  va  2  s .c om*/
private Composite createMenuVisibilityPage(Composite parent) {
    GridData data;

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

    // Label for entire tab
    Label label = new Label(hideMenuItemsComposite, SWT.WRAP);
    label.setText(WorkbenchMessages.HideMenuItems_chooseMenuItemsLabel);
    data = new GridData(SWT.FILL, SWT.CENTER, true, false);
    label.setLayoutData(data);

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

    // Main contents of tab
    final PageBook book = new PageBook(hideMenuItemsComposite, SWT.NONE);
    data = new GridData(GridData.FILL_BOTH);
    book.setLayoutData(data);

    // Simple view: just the menu structure
    final Composite simpleComposite = createItemStructureGroup(book,
            WorkbenchMessages.HideMenuItems_menuStructure);
    menuStructureViewer1 = initStructureViewer(simpleComposite, new TreeManager.ViewerCheckStateListener(),
            null);

    // Update the viewer when the model changes
    treeManager.getCheckListener(menuStructureViewer1); // To update ctv on
    // model changes

    // Simply grab the checkstate out of the model
    menuStructureViewer1.setCheckStateProvider(TreeManager.getCheckStateProvider());

    // Init with input
    menuStructureViewer1.setInput(menuItems);

    // Advanced view: action set with filtered menu structure
    final SashForm advancedComposite = new SashForm(book, SWT.HORIZONTAL);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    advancedComposite.setLayoutData(data);

    // Action set list
    final TableViewer actionSetViewer = initActionSetViewer(createActionSetGroup(advancedComposite));

    // Filter to only show action sets which have useful menu items
    actionSetViewer.addFilter(new ShowUsedActionSetsFilter(menuItems));

    // Init with input
    actionSetViewer.setInput(actionSets.toArray());

    // Filter to only show items in the current action set
    final ActionSetFilter menuStructureFilterByActionSet = new ActionSetFilter();

    final Composite menuStructureComposite = createItemStructureGroup(advancedComposite,
            WorkbenchMessages.HideMenuItems_menuStructure);
    final ICheckStateListener menuStructureFilter = new FilteredViewerCheckListener(
            TreeManager.getTreeContentProvider(), menuStructureFilterByActionSet);
    menuStructureViewer2 = initStructureViewer(menuStructureComposite, menuStructureFilter,
            menuStructureFilterByActionSet);

    treeManager
            .addListener(new FilteredModelCheckListener(menuStructureFilterByActionSet, menuStructureViewer2));

    menuStructureViewer2.addFilter(menuStructureFilterByActionSet);

    // Update filter when a new action set is selected
    actionSetViewer.addSelectionChangedListener(
            new ActionSetSelectionChangedListener(menuStructureViewer2, menuStructureFilterByActionSet));

    // Check state provider to emulate standard SWT
    // behaviour on visual tree
    menuStructureViewer2.setCheckStateProvider(new FilteredTreeCheckProvider(
            TreeManager.getTreeContentProvider(), menuStructureFilterByActionSet));

    // Init input
    menuStructureViewer2.setInput(menuItems);

    // Override any attempts to set an item to visible
    // which exists in an unavailable action set
    treeManager.addListener(new CheckListener() {
        @Override
        public void checkChanged(TreeItem changedItem) {
            if (!(changedItem instanceof DisplayItem)) {
                return;
            }
            if (!changedItem.getState()) {
                return;
            }
            if (isAvailable((DisplayItem) changedItem)) {
                return;
            }
            changedItem.setCheckState(false);
        }
    });

    final Button showCommandGroupFilterButton = new Button(hideMenuItemsComposite, SWT.CHECK);
    showCommandGroupFilterButton.setText(WorkbenchMessages.HideItems_turnOnActionSets);
    showCommandGroupFilterButton.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }

        @Override
        public void widgetSelected(SelectionEvent e) {
            if (showCommandGroupFilterButton.getSelection()) {
                Object o = ((StructuredSelection) menuStructureViewer1.getSelection()).getFirstElement();
                ActionSet initSelectAS = null;
                DisplayItem initSelectCI = null;
                if (o instanceof DisplayItem) {
                    initSelectCI = ((DisplayItem) o);
                    initSelectAS = initSelectCI.getActionSet();
                }
                if (initSelectAS == null) {
                    initSelectAS = (ActionSet) actionSetViewer.getElementAt(0);
                }
                if (initSelectAS != null) {
                    setSelectionOn(actionSetViewer, initSelectAS);
                    actionSetViewer.reveal(initSelectAS);
                }
                if (initSelectCI != null) {
                    setSelectionOn(menuStructureViewer2, initSelectCI);
                    menuStructureViewer2.reveal(initSelectCI);
                }
                book.showPage(advancedComposite);
            } else {
                book.showPage(simpleComposite);
            }
        }
    });

    book.showPage(simpleComposite);
    advancedComposite.setWeights(new int[] { 30, 70 });

    return hideMenuItemsComposite;
}

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

License:Open Source License

/**
 * Creates the page used to allow users to choose menu items to hide.
 *///w  w  w . j  a v  a  2  s .  c o m
private Composite createToolBarVisibilityPage(Composite parent) {
    GridData data;

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

    // Label for entire tab
    Label label = new Label(hideToolbarItemsComposite, SWT.WRAP);
    label.setText(WorkbenchMessages.HideToolBarItems_chooseToolBarItemsLabel);
    data = new GridData(SWT.FILL, SWT.CENTER, true, false);
    label.setLayoutData(data);

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

    // Main contents of tab
    final PageBook book = new PageBook(hideToolbarItemsComposite, SWT.NONE);
    data = new GridData(GridData.FILL_BOTH);
    book.setLayoutData(data);

    // Simple view: just the toolbar structure
    final Composite simpleComposite = createItemStructureGroup(book,
            WorkbenchMessages.HideToolBarItems_toolBarStructure);
    toolbarStructureViewer1 = initStructureViewer(simpleComposite, new TreeManager.ViewerCheckStateListener(),
            null);

    // Update the viewer when the model changes
    treeManager.getCheckListener(toolbarStructureViewer1); // To update ctv
    // on model
    // changes

    // Simply grab the check state out of the model
    toolbarStructureViewer1.setCheckStateProvider(TreeManager.getCheckStateProvider());

    // Init with input
    toolbarStructureViewer1.setInput(toolBarItems);

    // Advanced view: action set with filtered toolbar structure
    final SashForm advancedComposite = new SashForm(book, SWT.HORIZONTAL);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    advancedComposite.setLayoutData(data);

    // Action set list
    final TableViewer actionSetViewer = initActionSetViewer(createActionSetGroup(advancedComposite));

    // Filter to only show action sets which have useful toolbar items
    actionSetViewer.addFilter(new ShowUsedActionSetsFilter(toolBarItems));

    // Init with input
    actionSetViewer.setInput(actionSets.toArray());

    // Filter to only show items in the current action set
    final ActionSetFilter toolbarStructureFilterByActionSet = new ActionSetFilter();

    final Composite toolbarStructureComposite = createItemStructureGroup(advancedComposite,
            WorkbenchMessages.HideToolBarItems_toolBarStructure);
    final ICheckStateListener toolbarStructureFilter = new FilteredViewerCheckListener(
            TreeManager.getTreeContentProvider(), toolbarStructureFilterByActionSet);
    toolbarStructureViewer2 = initStructureViewer(toolbarStructureComposite, toolbarStructureFilter,
            toolbarStructureFilterByActionSet);

    toolbarStructureViewer2.addFilter(toolbarStructureFilterByActionSet);

    treeManager.addListener(
            new FilteredModelCheckListener(toolbarStructureFilterByActionSet, toolbarStructureViewer2));

    // Update filter when a new action set is selected
    actionSetViewer.addSelectionChangedListener(
            new ActionSetSelectionChangedListener(toolbarStructureViewer2, toolbarStructureFilterByActionSet));

    // Check state provider to emulate standard SWT
    // behaviour on visual tree
    toolbarStructureViewer2.setCheckStateProvider(new FilteredTreeCheckProvider(
            TreeManager.getTreeContentProvider(), toolbarStructureFilterByActionSet));

    // Init input
    toolbarStructureViewer2.setInput(toolBarItems);

    // Override any attempts to set an item to visible
    // which exists in an unavailable action set
    treeManager.addListener(new CheckListener() {
        @Override
        public void checkChanged(TreeItem changedItem) {
            if (!(changedItem instanceof DisplayItem)) {
                return;
            }
            if (!changedItem.getState()) {
                return;
            }
            if (isAvailable((DisplayItem) changedItem)) {
                return;
            }
            changedItem.setCheckState(false);
        }
    });

    final Button showCommandGroupFilterButton = new Button(hideToolbarItemsComposite, SWT.CHECK);
    showCommandGroupFilterButton.setText(WorkbenchMessages.HideItems_turnOnActionSets);
    showCommandGroupFilterButton.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }

        @Override
        public void widgetSelected(SelectionEvent e) {
            if (showCommandGroupFilterButton.getSelection()) {
                Object o = ((StructuredSelection) toolbarStructureViewer1.getSelection()).getFirstElement();
                ActionSet initSelectAS = null;
                DisplayItem initSelectCI = null;
                if (o instanceof DisplayItem) {
                    initSelectCI = ((DisplayItem) o);
                    initSelectAS = initSelectCI.getActionSet();
                }
                if (initSelectAS == null) {
                    initSelectAS = (ActionSet) actionSetViewer.getElementAt(0);
                }
                if (initSelectAS != null) {
                    setSelectionOn(actionSetViewer, initSelectAS);
                    actionSetViewer.reveal(initSelectAS);
                }
                if (initSelectCI != null) {
                    setSelectionOn(toolbarStructureViewer2, initSelectCI);
                    toolbarStructureViewer2.reveal(initSelectCI);
                }
                book.showPage(advancedComposite);
            } else {
                book.showPage(simpleComposite);
            }
        }
    });

    book.showPage(simpleComposite);
    advancedComposite.setWeights(new int[] { 30, 70 });

    return hideToolbarItemsComposite;
}

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

License:Open Source License

/**
 * Creates the page used to allow users to choose menu items to hide.
 *//*from w w  w .j av a 2s .co  m*/
private Composite createMenuVisibilityPage(Composite parent) {
    GridData data;

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

    // Label for entire tab
    Label label = new Label(hideMenuItemsComposite, SWT.WRAP);
    label.setText(WorkbenchMessages.HideMenuItems_chooseMenuItemsLabel);
    data = new GridData(SWT.FILL, SWT.CENTER, true, false);
    label.setLayoutData(data);

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

    // Main contents of tab
    final PageBook book = new PageBook(hideMenuItemsComposite, SWT.NONE);
    data = new GridData(GridData.FILL_BOTH);
    book.setLayoutData(data);

    // Simple view: just the menu structure
    final Composite simpleComposite = createItemStructureGroup(book,
            WorkbenchMessages.HideMenuItems_menuStructure);
    menuStructureViewer1 = initStructureViewer(simpleComposite, new TreeManager.ViewerCheckStateListener(),
            null);

    // Update the viewer when the model changes
    treeManager.getCheckListener(menuStructureViewer1); // To update ctv on
    // model changes

    // Simply grab the checkstate out of the model
    menuStructureViewer1.setCheckStateProvider(TreeManager.getCheckStateProvider());

    // Init with input
    menuStructureViewer1.setInput(menuItems);

    // Advanced view: action set with filtered menu structure
    final SashForm advancedComposite = new SashForm(book, SWT.HORIZONTAL);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    advancedComposite.setLayoutData(data);

    // Action set list
    final TableViewer actionSetViewer = initActionSetViewer(createActionSetGroup(advancedComposite));

    // Filter to only show action sets which have useful menu items
    actionSetViewer.addFilter(new ShowUsedActionSetsFilter(menuItems));

    // Init with input
    actionSetViewer.setInput(actionSets.toArray());

    // Filter to only show items in the current action set
    final ActionSetFilter menuStructureFilterByActionSet = new ActionSetFilter();

    final Composite menuStructureComposite = createItemStructureGroup(advancedComposite,
            WorkbenchMessages.HideMenuItems_menuStructure);
    final ICheckStateListener menuStructureFilter = new FilteredViewerCheckListener(
            TreeManager.getTreeContentProvider(), menuStructureFilterByActionSet);
    menuStructureViewer2 = initStructureViewer(menuStructureComposite, menuStructureFilter,
            menuStructureFilterByActionSet);

    treeManager
            .addListener(new FilteredModelCheckListener(menuStructureFilterByActionSet, menuStructureViewer2));

    menuStructureViewer2.addFilter(menuStructureFilterByActionSet);

    // Update filter when a new action set is selected
    actionSetViewer.addSelectionChangedListener(
            new ActionSetSelectionChangedListener(menuStructureViewer2, menuStructureFilterByActionSet));

    // Check state provider to emulate standard SWT
    // behaviour on visual tree
    menuStructureViewer2.setCheckStateProvider(new FilteredTreeCheckProvider(
            TreeManager.getTreeContentProvider(), menuStructureFilterByActionSet));

    // Init input
    menuStructureViewer2.setInput(menuItems);

    // Override any attempts to set an item to visible
    // which exists in an unavailable action set
    treeManager.addListener(new CheckListener() {
        public void checkChanged(TreeItem changedItem) {
            if (!(changedItem instanceof DisplayItem))
                return;
            if (!changedItem.getState())
                return;
            if (isAvailable((DisplayItem) changedItem))
                return;
            changedItem.setCheckState(false);
        }
    });

    final Button showCommandGroupFilterButton = new Button(hideMenuItemsComposite, SWT.CHECK);
    showCommandGroupFilterButton.setText(WorkbenchMessages.HideItems_turnOnActionSets);
    showCommandGroupFilterButton.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent e) {
        }

        public void widgetSelected(SelectionEvent e) {
            if (showCommandGroupFilterButton.getSelection()) {
                Object o = ((StructuredSelection) menuStructureViewer1.getSelection()).getFirstElement();
                ActionSet initSelectAS = null;
                DisplayItem initSelectCI = null;
                if (o instanceof DisplayItem) {
                    initSelectCI = ((DisplayItem) o);
                    initSelectAS = initSelectCI.getActionSet();
                }
                if (initSelectAS == null) {
                    initSelectAS = (ActionSet) actionSetViewer.getElementAt(0);
                }
                setSelectionOn(actionSetViewer, initSelectAS);
                actionSetViewer.reveal(initSelectAS);
                if (initSelectCI != null) {
                    setSelectionOn(menuStructureViewer2, initSelectCI);
                    menuStructureViewer2.reveal(initSelectCI);
                }
                book.showPage(advancedComposite);
            } else {
                book.showPage(simpleComposite);
            }
        }
    });

    book.showPage(simpleComposite);
    advancedComposite.setWeights(new int[] { 30, 70 });

    return hideMenuItemsComposite;
}

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

License:Open Source License

/**
 * Creates the page used to allow users to choose menu items to hide.
 *///  w  w w  .j  a  v a2s . c  o m
private Composite createToolBarVisibilityPage(Composite parent) {
    GridData data;

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

    // Label for entire tab
    Label label = new Label(hideToolbarItemsComposite, SWT.WRAP);
    label.setText(WorkbenchMessages.HideToolBarItems_chooseToolBarItemsLabel);
    data = new GridData(SWT.FILL, SWT.CENTER, true, false);
    label.setLayoutData(data);

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

    // Main contents of tab
    final PageBook book = new PageBook(hideToolbarItemsComposite, SWT.NONE);
    data = new GridData(GridData.FILL_BOTH);
    book.setLayoutData(data);

    // Simple view: just the toolbar structure
    final Composite simpleComposite = createItemStructureGroup(book,
            WorkbenchMessages.HideToolBarItems_toolBarStructure);
    toolbarStructureViewer1 = initStructureViewer(simpleComposite, new TreeManager.ViewerCheckStateListener(),
            null);

    // Update the viewer when the model changes
    treeManager.getCheckListener(toolbarStructureViewer1); // To update ctv
    // on model
    // changes

    // Simply grab the check state out of the model
    toolbarStructureViewer1.setCheckStateProvider(TreeManager.getCheckStateProvider());

    // Init with input
    toolbarStructureViewer1.setInput(toolBarItems);

    // Advanced view: action set with filtered toolbar structure
    final SashForm advancedComposite = new SashForm(book, SWT.HORIZONTAL);
    data = new GridData(SWT.FILL, SWT.FILL, true, true);
    advancedComposite.setLayoutData(data);

    // Action set list
    final TableViewer actionSetViewer = initActionSetViewer(createActionSetGroup(advancedComposite));

    // Filter to only show action sets which have useful toolbar items
    actionSetViewer.addFilter(new ShowUsedActionSetsFilter(toolBarItems));

    // Init with input
    actionSetViewer.setInput(actionSets.toArray());

    // Filter to only show items in the current action set
    final ActionSetFilter toolbarStructureFilterByActionSet = new ActionSetFilter();

    final Composite toolbarStructureComposite = createItemStructureGroup(advancedComposite,
            WorkbenchMessages.HideToolBarItems_toolBarStructure);
    final ICheckStateListener toolbarStructureFilter = new FilteredViewerCheckListener(
            TreeManager.getTreeContentProvider(), toolbarStructureFilterByActionSet);
    toolbarStructureViewer2 = initStructureViewer(toolbarStructureComposite, toolbarStructureFilter,
            toolbarStructureFilterByActionSet);

    toolbarStructureViewer2.addFilter(toolbarStructureFilterByActionSet);

    treeManager.addListener(
            new FilteredModelCheckListener(toolbarStructureFilterByActionSet, toolbarStructureViewer2));

    // Update filter when a new action set is selected
    actionSetViewer.addSelectionChangedListener(
            new ActionSetSelectionChangedListener(toolbarStructureViewer2, toolbarStructureFilterByActionSet));

    // Check state provider to emulate standard SWT
    // behaviour on visual tree
    toolbarStructureViewer2.setCheckStateProvider(new FilteredTreeCheckProvider(
            TreeManager.getTreeContentProvider(), toolbarStructureFilterByActionSet));

    // Init input
    toolbarStructureViewer2.setInput(toolBarItems);

    // Override any attempts to set an item to visible
    // which exists in an unavailable action set
    treeManager.addListener(new CheckListener() {
        public void checkChanged(TreeItem changedItem) {
            if (!(changedItem instanceof DisplayItem))
                return;
            if (!changedItem.getState())
                return;
            if (isAvailable((DisplayItem) changedItem))
                return;
            changedItem.setCheckState(false);
        }
    });

    final Button showCommandGroupFilterButton = new Button(hideToolbarItemsComposite, SWT.CHECK);
    showCommandGroupFilterButton.setText(WorkbenchMessages.HideItems_turnOnActionSets);
    showCommandGroupFilterButton.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent e) {
        }

        public void widgetSelected(SelectionEvent e) {
            if (showCommandGroupFilterButton.getSelection()) {
                Object o = ((StructuredSelection) toolbarStructureViewer1.getSelection()).getFirstElement();
                ActionSet initSelectAS = null;
                DisplayItem initSelectCI = null;
                if (o instanceof DisplayItem) {
                    initSelectCI = ((DisplayItem) o);
                    initSelectAS = initSelectCI.getActionSet();
                }
                if (initSelectAS == null) {
                    initSelectAS = (ActionSet) actionSetViewer.getElementAt(0);
                }
                setSelectionOn(actionSetViewer, initSelectAS);
                actionSetViewer.reveal(initSelectAS);
                if (initSelectCI != null) {
                    setSelectionOn(toolbarStructureViewer2, initSelectCI);
                    toolbarStructureViewer2.reveal(initSelectCI);
                }
                book.showPage(advancedComposite);
            } else {
                book.showPage(simpleComposite);
            }
        }
    });

    book.showPage(simpleComposite);
    advancedComposite.setWeights(new int[] { 30, 70 });

    return hideToolbarItemsComposite;
}

From source file:org.eclipse.xtext.ui.search.XtextEObjectSearchDialog.java

License:Open Source License

@Override
protected Label createMessageArea(Composite composite) {
    Label label = super.createMessageArea(composite);
    searchControl = new Text(composite, SWT.BORDER | SWT.SEARCH | SWT.ICON_CANCEL);
    setDefaultGridData(searchControl);/*from  ww w  .  ja v  a2  s .  c o  m*/
    Label typePatternLabel = new Label(composite, SWT.NONE);
    typePatternLabel.setText(Messages.XtextEObjectSearchDialog_TypeSearchLabel);
    setDefaultGridData(typePatternLabel);
    typeSearchControl = new Text(composite, SWT.BORDER | SWT.SEARCH | SWT.ICON_CANCEL);
    setDefaultGridData(typeSearchControl);

    Composite labelComposite = new Composite(composite, SWT.NONE);
    setDefaultGridData(labelComposite);
    GridLayout labelCompositeLayout = new GridLayout(2, true);
    labelCompositeLayout.marginWidth = 0;
    labelComposite.setLayout(labelCompositeLayout);
    matchingElementsLabel = new Label(labelComposite, SWT.NONE);
    matchingElementsLabel.setText(Messages.XtextEObjectSearchDialog_MatchingElementsLabel);
    matchingElementsLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
    searchStatusLabel = new Label(labelComposite, SWT.RIGHT);
    searchStatusLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));

    ModifyListener textModifyListener = new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            applyFilter();
        }
    };
    searchControl.addModifyListener(textModifyListener);
    typeSearchControl.addModifyListener(textModifyListener);

    searchControl.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.ARROW_DOWN) {
                typeSearchControl.setFocus();
            }
        }
    });

    if (initialPatternText != null) {
        searchControl.setText(initialPatternText);
        searchControl.selectAll();
    }

    typeSearchControl.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.ARROW_DOWN) {
                TableViewer tableViewer = getTableViewer();
                tableViewer.getTable().setFocus();
                if (tableViewer.getSelection().isEmpty()) {
                    Object firstElement = tableViewer.getElementAt(0);
                    if (firstElement != null) {
                        tableViewer.setSelection(new StructuredSelection(firstElement));
                    }
                }
            }
        }
    });

    if (initialTypeText != null)
        typeSearchControl.setText(initialTypeText);

    typeSearchControl.setEditable(editableTypePattern);

    return label;
}

From source file:org.eclipse.xtext.ui.wizard.template.NewProjectWizardTemplateSelectionPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite main = new Composite(parent, SWT.NONE);
    main.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    main.setLayout(new GridLayout(1, false));

    Label availableTemplatesLabel = new Label(main, SWT.NONE);
    availableTemplatesLabel.setText(Messages.NewProjectWizardTemplateSelectionPage_available_templates);
    availableTemplatesLabel.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, true, false));

    SashForm sash = new SashForm(main, SWT.HORIZONTAL);
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.widthHint = 400;/*  w w  w  . jav a 2s.c o m*/
    sash.setLayoutData(data);

    TableViewer templateTable = new TableViewer(sash, SWT.BORDER);
    templateTable.setContentProvider(new ArrayContentProvider());
    templateTable.setLabelProvider(labelProvider);
    templateTable.setInput(loadTemplatesFromExtensionPoint());

    FormText text = new FormText(sash, SWT.BORDER);
    text.setText("", false, false); //$NON-NLS-1$
    text.setBackground(templateTable.getTable().getBackground());

    templateTable.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();
            if (selection instanceof IStructuredSelection) {
                IStructuredSelection structuredSelection = (IStructuredSelection) selection;
                Object element = structuredSelection.getFirstElement();
                if (element instanceof AbstractProjectTemplate) {
                    selectedTemplate = (AbstractProjectTemplate) element;
                    setPageComplete(true);
                    String content = "<form>" + selectedTemplate.getDescription() + "</form>"; //$NON-NLS-1$ //$NON-NLS-2$
                    try {
                        text.setText(content, true, true);
                    } catch (Exception e) {
                        text.setText(e.getMessage(), false, false);
                    }
                } else {
                    selectedTemplate = null;
                    text.setText("", false, false); //$NON-NLS-1$
                    setPageComplete(false);
                }
            } else {
                selectedTemplate = null;
                text.setText("", false, false); //$NON-NLS-1$
                setPageComplete(false);
            }
        }
    });

    templateTable.setSelection(new StructuredSelection(templateTable.getElementAt(0)));

    setControl(main);
}