Example usage for org.eclipse.jface.viewers ListViewer getLabelProvider

List of usage examples for org.eclipse.jface.viewers ListViewer getLabelProvider

Introduction

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

Prototype

@Override
public IBaseLabelProvider getLabelProvider() 

Source Link

Document

The list viewer implementation of this Viewer framework method returns the label provider, which in the case of list viewers will be an instance of ILabelProvider.

Usage

From source file:org.eclipse.rcptt.tesla.internal.ui.player.viewers.Viewers.java

License:Open Source License

public static boolean selectListItem(final SWTUIElement parent, final String[] parts) {
    if (parent != null && unwrapWidget(parent) instanceof org.eclipse.swt.widgets.List) {
        // Try to obtain list viewer
        final ListViewer viewer = TeslaSWTAccess
                .getListViewer((org.eclipse.swt.widgets.List) unwrapWidget(parent));
        if (viewer != null) {
            IContentProvider provider = viewer.getContentProvider();
            IBaseLabelProvider labelProvider = viewer.getLabelProvider();
            Object input = viewer.getInput();

            if (provider instanceof IStructuredContentProvider && labelProvider instanceof ILabelProvider) {
                IStructuredContentProvider listProvider = (IStructuredContentProvider) provider;
                ILabelProvider labels = (ILabelProvider) labelProvider;
                final List<Object> selection = new ArrayList<Object>();
                Object[] children = listProvider.getElements(input);
                for (String part : parts) {
                    for (Object object : children) {
                        String text = labels.getText(object);
                        if (viewerMatchs(part, text)) {
                            selection.add(object);
                            break;
                        }/*ww w  .j  a  v a2  s  .co  m*/
                    }
                }
                if (!selection.isEmpty()) {
                    parent.getPlayer().exec("setSelection", new Runnable() {
                        public void run() {
                            viewer.setSelection(new StructuredSelection(selection.toArray()));
                        }
                    });
                    return true;
                }
                return false;
            }
        }
    }
    /*
     * This case work only with non dynamic lists.
     */
    if (parent != null && unwrapWidget(parent) instanceof org.eclipse.swt.widgets.List && parts != null
            && parts.length != 0) {
        final org.eclipse.swt.widgets.List list = (org.eclipse.swt.widgets.List) unwrapWidget(parent);
        Object current = unwrapWidget(parent);
        String[] items = ((org.eclipse.swt.widgets.List) current).getItems();
        Set<Integer> selection = new HashSet<Integer>();
        if (items == null) {
            return false;

        }
        int index = -1;
        for (String item : items) {
            for (String part : parts) {
                if (item.equals(part) || safeMatches(item, part)) {
                    index = list.indexOf(item);
                    selection.add(index);
                    break;
                }
            }
        }
        if (selection.size() > 0) {
            int[] sels = new int[selection.size()];
            Integer[] values = selection.toArray(new Integer[selection.size()]);
            for (int i = 0; i < values.length; i++) {
                sels[i] = values[i].intValue();
            }
            list.deselectAll();
            list.select(sels);
        } else {
            list.deselectAll();
            list.select(index);
            list.setSelection(index);
        }
        SWTEvents player = parent.getPlayer().getEvents();

        player.sendFocus(list);
        player.sendEvent(list, SWT.MouseEnter);
        player.sendEvent(list, SWT.MouseMove);
        player.sendEvent(list, SWT.MouseDown);
        player.sendEvent(list, SWT.Selection);
        player.sendEvent(list, SWT.MouseUp, 0, 0, 1);
        if (!list.isDisposed()) { // In case of quick access dialog
            player.sendEvent(list, SWT.MouseExit);
        }
        return true;
    }
    return false;
}