Example usage for org.eclipse.jface.viewers IStructuredSelection iterator

List of usage examples for org.eclipse.jface.viewers IStructuredSelection iterator

Introduction

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

Prototype

@Override
public Iterator iterator();

Source Link

Document

Returns an iterator over the elements of this selection.

Usage

From source file:de.quamoco.qm.editor.CustomQmEditor.java

License:Apache License

/** Get the identifiers of the selected elements. */
public List<String> getSelectedURIs() {
    List<String> elements = new ArrayList<String>();
    IStructuredSelection structuredSelection = (IStructuredSelection) getSelection();
    for (Iterator<?> i = structuredSelection.iterator(); i.hasNext();) {
        Object object = i.next();
        if (object instanceof Resource) {
            Resource resource = (Resource) object;
            elements.add(resource.getURI().toString());
        } else if (object instanceof EObject) {
            EObject element = (EObject) object;
            elements.add(EcoreUtil.getURI(element).toString());
        }/*from w w w . j a  va  2 s . c  o m*/
    }
    return elements;
}

From source file:de.tobject.findbugs.builder.ResourceUtils.java

License:Open Source License

/**
 * Collects and combines the selection which may contain sources from
 * different projects and / or multiple sources from same project.
 * <p>/*  ww  w .ja v  a  2 s  .co  m*/
 * If selection contains hierarchical data (like file and it's parent
 * directory), the only topmost element is returned (same for directories
 * from projects).
 * <p>
 * The children from selected parents are not resolved, so that the return
 * value contains the 'highest' possible hierarchical elements without
 * children.
 *
 * @param structuredSelection
 * @return a map with the project as a key and selected resources as value.
 *         If project itself was selected, then key is the same as value.
 */
public static Map<IProject, List<WorkItem>> getResourcesPerProject(IStructuredSelection structuredSelection) {
    Map<IProject, List<WorkItem>> projectsMap = new HashMap<IProject, List<WorkItem>>();
    for (Iterator<?> iter = structuredSelection.iterator(); iter.hasNext();) {
        Object element = iter.next();
        WorkItem workItem = getWorkItem(element);
        if (workItem == null) {
            IWorkingSet wset = Util.getAdapter(IWorkingSet.class, element);
            if (wset != null) {
                mapResources(wset, projectsMap);
                continue;
            }

            // Support for active changesets
            ChangeSet set = Util.getAdapter(ChangeSet.class, element);
            for (WorkItem change : getResources(set)) {
                mapResource(change, projectsMap, true);
            }
            continue;
        }
        mapResource(workItem, projectsMap, false);
    }
    return projectsMap;
}

From source file:de.tobject.findbugs.reporter.MarkerUtil.java

License:Open Source License

/**
 * Fish an IMarker out of given selection.
 *
 * @param selection/*from ww  w.  ja  va2  s  . c om*/
 *            the selection
 * @return the selected IMarker, or null if we can't find an IMarker in the
 *         selection
 */
public static Set<IMarker> getMarkerFromSelection(ISelection selection) {
    Set<IMarker> markers = new HashSet<IMarker>();
    if (!(selection instanceof IStructuredSelection)) {
        return markers;
    }
    IStructuredSelection sSelection = (IStructuredSelection) selection;
    for (Iterator<?> iter = sSelection.iterator(); iter.hasNext();) {
        Object next = iter.next();
        markers.addAll(getMarkers(next));
    }
    return markers;
}

From source file:de.tobject.findbugs.view.BugExplorerView.java

License:Open Source License

private ISelection adaptSelection(IStructuredSelection selection) {
    BugContentProvider provider = BugContentProvider.getProvider(getNavigatorContentService());
    Set<Object> accepted = new HashSet<Object>();
    Iterator<?> iter = selection.iterator();
    while (iter.hasNext()) {
        Object object = iter.next();
        Set<Object> supported = provider.getShowInTargets(object);
        accepted.addAll(supported);//  w ww. j av  a2 s. co  m
    }
    return new StructuredSelection(accepted.toArray());
}

From source file:de.tobject.findbugs.view.explorer.BugContentProvider.java

License:Open Source License

public Set<Object> getShowInTargets(Object obj) {
    Set<Object> supported = new HashSet<Object>();
    if (obj instanceof BugGroup) {
        supported.add(obj);//from w w w. j  a va2  s .c  o m
    } else if (obj instanceof IMarker) {
        supported.add(obj);
    } else if (obj instanceof IJavaProject) {
        return getShowInTargets(((IJavaProject) obj).getProject());
    } else if (obj instanceof IClassFile) {
        return getShowInTargets(((IClassFile) obj).getType());
    } else if (obj instanceof IFile) {
        IJavaElement javaElement = JavaCore.create((IFile) obj);
        return getShowInTargets(javaElement);
    } else if (obj instanceof IFolder) {
        IJavaElement javaElement = JavaCore.create((IFolder) obj);
        return getShowInTargets(javaElement);
    } else if (obj instanceof IStructuredSelection) {
        IStructuredSelection selection = (IStructuredSelection) obj;
        Iterator<?> iter = selection.iterator();
        while (iter.hasNext()) {
            Object object = iter.next();
            supported.add(getShowInTargets(object));
        }
    } else {
        // TODO think how improve performance for project/package objects?
        Set<IMarker> markers = MarkerUtil.getMarkers(obj);
        boolean found = false;
        main: for (IMarker marker : markers) {
            BugGroup group = findParent(marker);
            if (group == null) {
                continue;
            }
            List<BugGroup> selfAndParents = getSelfAndParents(group);
            for (BugGroup bugGroup : selfAndParents) {
                if (obj.equals(bugGroup.getData())) {
                    supported.add(bugGroup);
                    found = true;
                    break main;
                }
            }
        }
        if (!found) {
            supported.addAll(markers);
        }
    }
    return supported;
}

From source file:de.tobject.findbugs.view.properties.BugGroupSection.java

License:Open Source License

private String getSummary(IStructuredSelection selection) {
    Iterator<?> iter = selection.iterator();
    Set<BugGroup> groups = new HashSet<BugGroup>();
    Set<IMarker> markers = new HashSet<IMarker>();
    while (iter.hasNext()) {
        Object object = iter.next();
        if (!(object instanceof BugGroup)) {
            continue;
        }/*from w  w  w .  j a v  a2  s.com*/
        BugGroup group = (BugGroup) object;
        if (!groups.contains(group)) {
            markers.addAll(group.getAllMarkers());
            groups.add(group);
        }
    }
    Set<String> names = new TreeSet<String>();
    for (BugGroup bugGroup : groups) {
        String description = bugGroup.getShortDescription() + " (" + bugGroup.getMarkersCount() + ")";
        names.add(description);
    }
    StringBuilder sb = new StringBuilder();
    int maxLength = 0;
    for (String name : names) {
        sb.append(name).append("\n");
        if (name.length() > maxLength) {
            maxLength = name.length();
        }
    }
    char[] separator = new char[maxLength];
    Arrays.fill(separator, '=');
    sb.append(separator);
    String description = sb.toString() + "\nOverall bugs count: " + markers.size();
    return description;
}

From source file:de.topicmapslab.kuria.swtgenerator.edit.widgets.TableSelectionWidget.java

License:Apache License

private void hookButtonListener() {
    if (addButton != null) {
        addButton.addSelectionListener(new SelectionAdapter() {
            @Override//from  w ww.jav a2  s .  co  m
            public void widgetSelected(SelectionEvent e) {
                SelectionDialog dlg = new SelectionDialog(((Control) e.widget).getShell(),
                        getBindingContainer(), getContentProvider(), getPropertyBinding().getFieldName(),
                        getModel());

                if (dlg.open() == Dialog.OK) {
                    Object[] oldList = getSelection();

                    Set<Object> set = new HashSet<Object>();
                    for (Object o : dlg.getSelection()) {
                        set.add(o);
                    }
                    if (oldList != null) {
                        for (Object o : oldList) {
                            set.add(o);
                        }
                    }
                    setSelection(set.toArray());
                    updateView();
                }
            }
        });
    }
    if (newButton != null) {
        newButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent arg0) {
                createNewObject();
            }
        });
    }
    if (removeButton != null) {
        removeButton.addSelectionListener(new SelectionAdapter() {
            @SuppressWarnings("unchecked")
            @Override
            public void widgetSelected(SelectionEvent e) {
                IStructuredSelection sel = (IStructuredSelection) viewer.getSelection();
                if (sel.isEmpty())
                    setSelection(new Object[0]);
                else {
                    List<Object> list = new ArrayList<Object>(Arrays.asList(getSelection()));
                    Iterator<Object> it = sel.iterator();
                    while (it.hasNext()) {
                        Object o = it.next();
                        list.remove(o);
                    }
                    setSelection(list.toArray());
                }
                updateView();
            }
        });
    }
}

From source file:de.topicmapslab.kuria.swtgenerator.widgets.MasterDetailWidget.java

License:Apache License

private void hookButtonListeners() {
    addButton.addSelectionListener(new SelectionAdapter() {
        /**/*  w w  w . j a v a  2  s  . c  o m*/
         * {@inheritDoc}
         */
        @Override
        public void widgetSelected(SelectionEvent e) {
            currSelection = null;
            try {
                inputMask.setModel(getClazz().getConstructor().newInstance());
                updateButtons();
            } catch (Exception e1) {
                // TODO logme
            }
        }
    });

    removeButton.addSelectionListener(new SelectionAdapter() {
        /**
         * {@inheritDoc}
         */
        @SuppressWarnings("unchecked")
        @Override
        public void widgetSelected(SelectionEvent e) {
            if (tableViewer.getSelection().isEmpty())
                return;

            IStructuredSelection sel = (IStructuredSelection) tableViewer.getSelection();
            List<T> list = new ArrayList<T>();
            Iterator<T> it = sel.iterator();
            while (it.hasNext()) {
                list.add((T) it.next());
            }

            DeleteEvent<T> event = new DeleteEvent<T>(list);

            notifyDelete(event);
            if (event.commit) {
                if (tableViewer.getInput() instanceof List<?>) {
                    input.removeAll(list);
                    tableViewer.refresh();
                }
            }
            updateButtons();
        }
    });

    saveButton.addSelectionListener(new SelectionAdapter() {
        /**
         * {@inheritDoc}
         */
        @SuppressWarnings("unchecked")
        @Override
        public void widgetSelected(SelectionEvent e) {
            inputMask.persist();
            T modifiedModel = (T) inputMask.getModel();
            PersistEvent<T> event = new PersistEvent<T>(currSelection, modifiedModel);

            notifyPersist(event);

            if (event.commit) {

                if (currSelection == null) {
                    if (tableViewer.getInput() instanceof List<?>) {
                        input.add(modifiedModel);
                        tableViewer.refresh();
                    }
                } else {
                    try {
                        copyFieldValues(modifiedModel, currSelection);
                        tableViewer.refresh(currSelection);
                    } catch (Exception e1) {
                        e1.printStackTrace();
                    }
                }
                inputMask.setModel(null);
                updateButtons();
            }

        }
    });

    cancelButton.addSelectionListener(new SelectionAdapter() {
        /**
         * {@inheritDoc}
         */
        @Override
        public void widgetSelected(SelectionEvent e) {
            currSelection = null;
            inputMask.setModel(null);
            updateButtons();
        }
    });

}

From source file:de.topicmapslab.onotoa.search.dialogs.AbstractTopicTypeSearchAdvancedPart.java

License:Open Source License

/**
 * Add actual selected TopicType(s) from the list of available TopicTypes
 * (left table) to the list of selected TopicTypes (right table)
 */// w w  w.  ja v  a  2s.  c om

private void addSelection() {

    IStructuredSelection sel = (IStructuredSelection) availableTopicList.getSelection();

    // iterate over all selected types (multi selection is allowed!)
    for (Iterator it = sel.iterator(); it.hasNext();) {
        selectedTopics.add((TopicType) it.next());
    }
    Collections.sort(selectedTopics, comparator);
    availableTopicList.refresh();
    selectedTopicList.refresh();

}

From source file:de.topicmapslab.onotoa.search.dialogs.AbstractTopicTypeSearchAdvancedPart.java

License:Open Source License

/**
 * Remove actual selected TopicType(s) from the list selected TopicTypes
 * (right table)//from   w  w  w. ja  va  2  s. c o  m
 */

private void removeSelection() {

    IStructuredSelection sel = (IStructuredSelection) selectedTopicList.getSelection();

    // iterate over all selected types (multi selection is allowed!)
    for (Iterator it = sel.iterator(); it.hasNext();) {
        selectedTopics.remove((TopicType) it.next());
    }
    availableTopicList.refresh();
    selectedTopicList.refresh();

}