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

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

Introduction

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

Prototype

@Override
    public Iterator iterator() 

Source Link

Usage

From source file:net.sf.colorer.eclipse.EscapedWriter.java

License:LGPL

public void run(IAction action) {
    ISelectionProvider selectionProvider = workbenchPart.getSite().getSelectionProvider();
    ISelection isel = selectionProvider.getSelection();
    if (!(isel instanceof StructuredSelection)) {
        return;/*from w w  w.j ava  2 s  . c  o  m*/
    }
    StructuredSelection selection = (StructuredSelection) selectionProvider.getSelection();

    //        StringBuffer fileNames = new StringBuffer();
    //        String lastFileName = "";
    //        String filePath = "./";
    //        int num = 0;

    GeneratorDialog gd = new GeneratorDialog();

    Vector fileList = new Vector();
    Iterator iterator = selection.iterator();
    while (iterator.hasNext()) {
        Object obj = iterator.next();
        IResource adapted = null;

        if (obj instanceof IAdaptable) {
            adapted = (IResource) ((IAdaptable) obj).getAdapter(IResource.class);
        }
        if (adapted == null)
            continue;

        addElement(adapted, fileList);

    }
    gd.setFileList(fileList);

    final ParserFactory pf = ColorerPlugin.getDefaultPF();
    Vector hrdSchemas = new Vector();
    for (Enumeration hrds = pf.enumerateHRDInstances("rgb"); hrds.hasMoreElements();) {
        final String hrd_name = (String) hrds.nextElement();
        final String hrd_descr = pf.getHRDescription("rgb", hrd_name);
        hrdSchemas.addElement(hrd_descr);
        hrdSchemas.addElement(hrd_name);
    }

    gd.setHRDSchema(hrdSchemas);

    IPreferenceStore ps = ColorerPlugin.getDefault().getPreferenceStore();
    gd.setPrefix(ps.getString("g.Prefix"));
    gd.setSuffix(ps.getString("g.Suffix"));
    gd.setHRDSchema(ps.getString("g.HRDSchema"));
    gd.setHtmlHeaderFooter(ps.getBoolean("g.HtmlHeaderFooter"));
    gd.setInfoHeader(ps.getBoolean("g.InfoHeader"));
    gd.setUseLineNumbers(ps.getBoolean("g.UseLineNumbers"));
    gd.setOutputEncoding(ps.getString("g.OutputEncoding"));
    gd.setTargetDirectory(ps.getString("g.TargetDirectory"));
    gd.setLinkSource(ps.getString("g.LinkSource"));

    gd.run(new Generator());
}

From source file:net.sf.smbt.touchosc.ui.touchoscgui.diagram.sheet.TouchoscguiPropertySectionOLD.java

License:LGPL

public void setInput(IWorkbenchPart part, ISelection selection) {
    if (selection.isEmpty() || false == selection instanceof StructuredSelection) {
        setInput2(part, selection);/*from  w w w  .  ja va  2 s. c  o m*/
        return;
    }
    final StructuredSelection structuredSelection = ((StructuredSelection) selection);
    ArrayList transformedSelection = new ArrayList(structuredSelection.size());
    for (Iterator it = structuredSelection.iterator(); it.hasNext();) {
        Object r = transformSelection(it.next());
        if (r != null) {
            transformedSelection.add(r);
        }
    }
    setInput2(part, new StructuredSelection(transformedSelection));
}

From source file:net.sourceforge.docfetcher.view.ScopeGroup.java

License:Open Source License

/**
 * Returns the currently selected <tt>RootScope</tt>s. Shows a warning
 * message if some of them don't exist anymore.
 */// w w w . jav  a 2  s. c  o m
private RootScope[] getExistingRootSelection() {
    // Get selected RootScopes
    StructuredSelection sel = (StructuredSelection) viewer.getSelection();
    List<RootScope> selRootScopes = new ArrayList<RootScope>(sel.size());
    Iterator<?> it = sel.iterator();
    while (it.hasNext()) {
        Object item = it.next();
        if (item instanceof RootScope) // Only enable action for RootScopes (not for other Scopes)
            selRootScopes.add((RootScope) item);
    }

    // Separate existing and missing RootScopes
    if (selRootScopes.size() == 0)
        return new RootScope[0];
    List<RootScope> existing = new ArrayList<RootScope>(selRootScopes.size());
    List<RootScope> missing = new ArrayList<RootScope>(selRootScopes.size());
    for (RootScope scope : selRootScopes) {
        if (scope.getFile().exists())
            existing.add(scope);
        else
            missing.add(scope);
    }

    // Show warning message for missing RootScopes
    if (!missing.isEmpty()) {
        String items = "\n" + UtilList.toString("\n", missing); //$NON-NLS-1$ //$NON-NLS-2$
        UtilGUI.showWarningMsg(Msg.folders_not_found.value() + items);
    }

    return existing.toArray(new RootScope[existing.size()]);
}

From source file:net.sourceforge.docfetcher.view.ViewerMenuManager.java

License:Open Source License

public ViewerMenuManager(Viewer viewer) {
    contextMenu = new MenuManager();
    viewer.getControl().setMenu(contextMenu.createContextMenu(viewer.getControl()));

    // Update enabled state of actions according to current selection
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            StructuredSelection selection = (StructuredSelection) event.getSelection();

            setEnabled(nonEmptyActions, !selection.isEmpty());
            setEnabled(singleElementActions, selection.size() == 1);

            if (rootChecker != null) {
                List<Object> rootSelection = new ArrayList<Object>(selection.size());
                Iterator<?> it = selection.iterator();
                while (it.hasNext()) {
                    Object item = it.next();
                    if (rootChecker.isRoot(item)) // Only enable action for RootScopes (not for other Scopes)
                        rootSelection.add(item);
                }/*from  ww w  . jav  a  2s .com*/
                setEnabled(rootActions, rootSelection.size() > 0);
            }
        }

        private void setEnabled(List<Action> actions, boolean enabled) {
            for (Action action : actions)
                action.setEnabled(enabled);
        }
    });

    // Activate context menu entries through keyboard shortcuts
    viewer.getControl().addKeyListener(new KeyAdapter() {
        public void keyReleased(KeyEvent e) {
            Key key = Key.getKey(e.stateMask, e.keyCode);
            if (key == null)
                return;
            Action action = keyActionMap.get(key);
            if (action != null && action.isEnabled())
                action.run();
        }
    });
}

From source file:net.tourbook.ui.views.rawData.RawDataView.java

License:Open Source License

private void enableActions() {

    final Object[] rawData = _rawDataMgr.getImportedTours().values().toArray();
    final boolean isTourAvailable = rawData.length > 0;

    final StructuredSelection selection = (StructuredSelection) _tourViewer.getSelection();

    int savedTours = 0;
    int unsavedTours = 0;
    int selectedTours = 0;

    // contains all tours which are selected and not deleted
    int selectedNotDeleteTours = 0;

    TourData firstSavedTour = null;//  ww w. ja  va2  s. c  o m
    TourData firstValidTour = null;

    for (final Iterator<?> iter = selection.iterator(); iter.hasNext();) {
        final Object treeItem = iter.next();
        if (treeItem instanceof TourData) {

            selectedTours++;

            final TourData tourData = (TourData) treeItem;
            if (tourData.getTourPerson() == null) {

                // tour is not saved

                if (tourData.isTourDeleted == false) {

                    // tour is not deleted, deleted tours are ignored

                    unsavedTours++;
                    selectedNotDeleteTours++;
                }

            } else {

                if (savedTours == 0) {
                    firstSavedTour = tourData;
                }

                savedTours++;
                selectedNotDeleteTours++;
            }

            if (selectedNotDeleteTours == 1) {
                firstValidTour = tourData;
            }
        }
    }

    final boolean isSavedTourSelected = savedTours > 0;
    final boolean isOneSavedAndNotDeleteTour = (selectedNotDeleteTours == 1) && (savedTours == 1);

    final boolean isOneSelectedNotDeleteTour = selectedNotDeleteTours == 1;

    // action: save tour with person
    final TourPerson person = TourbookPlugin.getActivePerson();
    if (person != null) {
        _actionSaveTourWithPerson
                .setText(NLS.bind(Messages.import_data_action_save_tour_with_person, person.getName()));
        _actionSaveTourWithPerson.setPerson(person);
    }
    _actionSaveTourWithPerson.setEnabled((person != null) && (unsavedTours > 0));

    // action: save tour...
    if (selection.size() == 1) {
        _actionSaveTour.setText(Messages.import_data_action_save_tour_for_person);
    } else {
        _actionSaveTour.setText(Messages.import_data_action_save_tours_for_person);
    }
    _actionSaveTour.setEnabled(unsavedTours > 0);

    // action: merge tour ... into ...
    if (isOneSelectedNotDeleteTour) {

        final StringBuilder sb = new StringBuilder().append(UI.EMPTY_STRING)//
                .append(TourManager.getTourDateShort(firstValidTour)).append(UI.DASH_WITH_SPACE)
                .append(TourManager.getTourTimeShort(firstValidTour)).append(UI.DASH_WITH_SPACE)
                .append(firstValidTour.getDeviceName());

        _actionMergeIntoTour.setText(NLS.bind(Messages.import_data_action_assignMergedTour, sb.toString()));

    } else {
        // tour cannot be merged, display default text
        _actionMergeIntoTour.setText(Messages.import_data_action_assignMergedTour_default);
    }
    _actionMergeIntoTour.setEnabled(isOneSelectedNotDeleteTour);

    _actionMergeTour.setEnabled(isOneSavedAndNotDeleteTour && (firstSavedTour.getMergeSourceTourId() != null));
    _actionReimportSubMenu.setEnabled(selectedTours > 0);
    _actionRemoveTour.setEnabled(selectedTours > 0);
    _actionExportTour.setEnabled(selectedNotDeleteTours > 0);
    _actionJoinTours.setEnabled(selectedNotDeleteTours > 1);

    _actionEditTour.setEnabled(isOneSavedAndNotDeleteTour);
    _actionEditQuick.setEnabled(isOneSavedAndNotDeleteTour);
    _actionOpenTour.setEnabled(isOneSavedAndNotDeleteTour);
    _actionOpenMarkerDialog.setEnabled(isOneSavedAndNotDeleteTour);
    _actionOpenAdjustAltitudeDialog.setEnabled(isOneSavedAndNotDeleteTour);

    _actionDeleteTourFile.setEnabled(isTourAvailable);

    // set double click state
    _tourDoubleClickState.canEditTour = isOneSavedAndNotDeleteTour;
    _tourDoubleClickState.canQuickEditTour = isOneSavedAndNotDeleteTour;
    _tourDoubleClickState.canEditMarker = isOneSavedAndNotDeleteTour;
    _tourDoubleClickState.canAdjustAltitude = isOneSavedAndNotDeleteTour;
    _tourDoubleClickState.canOpenTour = isOneSelectedNotDeleteTour;

    final ArrayList<TourType> tourTypes = TourDatabase.getAllTourTypes();
    _actionSetTourType.setEnabled(isSavedTourSelected && (tourTypes.size() > 0));

    final ArrayList<Long> existingTagIds = new ArrayList<Long>();
    long existingTourTypeId = TourDatabase.ENTITY_IS_NOT_SAVED;
    boolean isOneTour;

    if ((firstSavedTour != null) && (savedTours == 1)) {

        // one tour is selected

        isOneTour = true;

        final TourType tourType = firstSavedTour.getTourType();
        existingTourTypeId = tourType == null ? TourDatabase.ENTITY_IS_NOT_SAVED : tourType.getTypeId();

        final Set<TourTag> existingTags = firstSavedTour.getTourTags();
        if ((existingTags != null) && (existingTags.size() > 0)) {

            // tour contains at least one tag
            for (final TourTag tourTag : existingTags) {
                existingTagIds.add(tourTag.getTagId());
            }
        }
    } else {

        // multiple tours are selected

        isOneTour = false;
    }

    // enable/disable actions for tags/tour types
    _tagMenuMgr.enableTagActions(isSavedTourSelected, isOneTour, existingTagIds);
    TourTypeMenuManager.enableRecentTourTypeActions(isSavedTourSelected, existingTourTypeId);

    /*
     * Action: Setup import
     */
    _actionSetupImport.setEnabled(!isTourAvailable);
    _actionClearView.setEnabled(isTourAvailable);
}

From source file:net.tourbook.ui.views.tagging.TaggingView.java

License:Open Source License

private void enableActions() {

    final StructuredSelection selection = (StructuredSelection) _tagViewer.getSelection();
    final int treeItems = _tagViewer.getTree().getItemCount();

    /*//from w w  w.  ja  v a 2 s.co  m
     * count number of selected items
     */
    int tourItems = 0;
    int tagItems = 0;
    int categoryItems = 0;
    int items = 0;
    int otherItems = 0;
    TVITagViewTour firstTour = null;

    for (final Iterator<?> iter = selection.iterator(); iter.hasNext();) {
        final Object treeItem = iter.next();
        if (treeItem instanceof TVITagViewTour) {
            if (tourItems == 0) {
                firstTour = (TVITagViewTour) treeItem;
            }
            tourItems++;
        } else if (treeItem instanceof TVITagViewTag) {
            tagItems++;
        } else if (treeItem instanceof TVITagViewTagCategory) {
            categoryItems++;
        } else {
            otherItems++;
        }
        items++;
    }

    final boolean isTourSelected = tourItems > 0;
    final boolean isTagSelected = tagItems > 0 && tourItems == 0 && categoryItems == 0 && otherItems == 0;
    final boolean isCategorySelected = categoryItems > 0 && tourItems == 0 && tagItems == 0 && otherItems == 0;
    final boolean isOneTour = tourItems == 1;
    final boolean isItemsAvailable = treeItems > 0;

    final int selectedItems = selection.size();
    final TVITagViewItem firstElement = (TVITagViewItem) selection.getFirstElement();
    final boolean firstElementHasChildren = firstElement == null ? false : firstElement.hasChildren();

    _tourDoubleClickState.canEditTour = isOneTour;
    _tourDoubleClickState.canOpenTour = isOneTour;
    _tourDoubleClickState.canQuickEditTour = isOneTour;
    _tourDoubleClickState.canEditMarker = isOneTour;
    _tourDoubleClickState.canAdjustAltitude = isOneTour;

    _actionEditTour.setEnabled(isOneTour);
    _actionOpenTour.setEnabled(isOneTour);
    _actionEditQuick.setEnabled(isOneTour);

    // action: set tour type
    final ArrayList<TourType> tourTypes = TourDatabase.getAllTourTypes();
    _actionSetTourType.setEnabled(isTourSelected && tourTypes.size() > 0);

    // enable rename action
    if (selectedItems == 1) {
        if (isTagSelected) {
            _actionRenameTag.setText(Messages.action_tag_rename_tag);
            _actionRenameTag.setEnabled(true);
        } else if (isCategorySelected) {
            _actionRenameTag.setText(Messages.action_tag_rename_tag_category);
            _actionRenameTag.setEnabled(true);

        } else {
            _actionRenameTag.setEnabled(false);
        }
    } else {
        _actionRenameTag.setEnabled(false);
    }

    /*
     * tree expand type can be set if only tags are selected or when an item is selected which
     * is not a category
     */
    _actionSetTagStructure.setEnabled(isTagSelected || (items == 1 && categoryItems == 0));
    _actionSetAllTagStructures.setEnabled(isItemsAvailable);

    _actionExpandSelection.setEnabled(firstElement == null ? false : //
            selectedItems == 1 ? firstElementHasChildren : //
                    true);

    _actionCollapseOthers.setEnabled(selectedItems == 1 && firstElementHasChildren);
    _actionCollapseAll.setEnabled(isItemsAvailable);

    _tagMenuMgr.enableTagActions(isTourSelected, isOneTour, firstTour == null ? null : firstTour.tagIds);

    TourTypeMenuManager.enableRecentTourTypeActions(isTourSelected,
            isOneTour ? firstTour.tourTypeId : TourDatabase.ENTITY_IS_NOT_SAVED);
}

From source file:net.tourbook.ui.views.tourCatalog.TourCompareResultView.java

License:Open Source License

/**
 * Remove compared tour from the database
 *//* w  w  w . j a va 2  s .  c om*/
void removeComparedTourFromDb() {

    final StructuredSelection selection = (StructuredSelection) _tourViewer.getSelection();
    final SelectionRemovedComparedTours selectionRemovedCompareTours = new SelectionRemovedComparedTours();
    final ArrayList<Long> removedComparedTours = selectionRemovedCompareTours.removedComparedTours;

    for (final Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {

        final Object selectedElement = iterator.next();

        if (selectedElement instanceof TVICompareResultComparedTour) {
            final TVICompareResultComparedTour compareItem = (TVICompareResultComparedTour) selectedElement;

            if (TourCompareManager.removeComparedTourFromDb(compareItem.compId)) {
                removedComparedTours.add(compareItem.compId);
            }
        }
    }

    if (removedComparedTours.size() > 0) {

        _postSelectionProvider.setSelection(selectionRemovedCompareTours);

        removeComparedToursFromViewer(selectionRemovedCompareTours);
    }
}

From source file:net.tourbook.ui.views.tourDataEditor.TourDataEditorView.java

License:Open Source License

/**
 * enable actions//from  w  ww.j a v a  2 s  .  c  om
 */
private void enableSliceActions() {

    final StructuredSelection sliceSelection = (StructuredSelection) _sliceViewer.getSelection();

    final int numberOfSelectedSlices = sliceSelection.size();

    final boolean isSliceSelected = numberOfSelectedSlices > 0;
    final boolean isOneSliceSelected = numberOfSelectedSlices == 1;
    final boolean isTourInDb = isTourInDb();

    // check if a marker can be created
    boolean canCreateMarker = false;
    if (isOneSliceSelected) {
        final TimeSlice oneTimeSlice = (TimeSlice) sliceSelection.getFirstElement();
        canCreateMarker = _markerMap.containsKey(oneTimeSlice.serieIndex) == false;
    }
    // get selected Marker
    TourMarker selectedMarker = null;
    for (final Iterator<?> iterator = sliceSelection.iterator(); iterator.hasNext();) {
        final TimeSlice timeSlice = (TimeSlice) iterator.next();
        if (_markerMap.containsKey(timeSlice.serieIndex)) {
            selectedMarker = _markerMap.get(timeSlice.serieIndex);
            break;
        }
    }

    _actionCreateTourMarker.setEnabled(_isEditMode && isTourInDb && isOneSliceSelected && canCreateMarker);
    _actionOpenMarkerDialog.setEnabled(_isEditMode && isTourInDb);

    // select marker
    _actionOpenMarkerDialog.setTourMarker(selectedMarker);

    _actionDeleteTimeSlicesRemoveTime.setEnabled(_isEditMode && isTourInDb && isSliceSelected);
    _actionDeleteTimeSlicesKeepTime.setEnabled(_isEditMode && isTourInDb && isSliceSelected);

    _actionExportTour.setEnabled(true);
    _actionCsvTimeSliceExport.setEnabled(isSliceSelected);

    _actionSplitTour.setEnabled(isOneSliceSelected);
    _actionExtractTour.setEnabled(numberOfSelectedSlices >= 2);

    // set start/end position into the actions
    if (isSliceSelected) {

        final Object[] selectedSliceArray = sliceSelection.toArray();
        final int lastSliceIndex = selectedSliceArray.length - 1;

        final TimeSlice firstSelectedTimeSlice = (TimeSlice) selectedSliceArray[0];
        final TimeSlice lastSelectedTimeSlice = (TimeSlice) selectedSliceArray[lastSliceIndex];

        final int firstSelectedSerieIndex = firstSelectedTimeSlice.serieIndex;
        final int lastSelectedSerieIndex = lastSelectedTimeSlice.serieIndex;

        _actionExportTour.setTourRange(firstSelectedSerieIndex, lastSelectedSerieIndex);

        _actionSplitTour.setTourRange(firstSelectedSerieIndex);
        _actionExtractTour.setTourRange(firstSelectedSerieIndex, lastSelectedSerieIndex);

        /*
         * prevent that the first and last slice is selected for the split which causes errors
         */
        final int numberOfAllSlices = _sliceViewerItems.length;

        final boolean isSplitValid = firstSelectedSerieIndex > 0
                && firstSelectedSerieIndex < numberOfAllSlices - 1;

        _actionSplitTour.setEnabled(isOneSliceSelected && isSplitValid);
    }
}

From source file:net.tourbook.ui.views.tourMarker.TourMarkerAllView.java

License:Open Source License

private void fireSelection(final StructuredSelection selection) {

    // get unique tour id's
    final HashSet<Long> tourIds = new HashSet<Long>();
    for (final Iterator<?> selectedItem = selection.iterator(); selectedItem.hasNext();) {
        tourIds.add(((TourMarkerItem) selectedItem.next()).tourId);
    }//from  ww w.j  a v a 2  s.com

    final SelectionTourIds selectionTourIds = new SelectionTourIds(new ArrayList<>(tourIds));

    final int uniqueTourIds = tourIds.size();

    if (uniqueTourIds == 1) {

        // only one unique tour is selected, fire a marker selection

        final TourMarkerItem firstMarkerItem = (TourMarkerItem) selection.getFirstElement();

        // get tour by id
        final TourData tourData = TourManager.getInstance().getTourData(firstMarkerItem.tourId);
        if (tourData == null) {
            return;
        }

        final ArrayList<TourMarker> selectedTourMarkers = new ArrayList<TourMarker>();

        for (final Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {

            final long selectedMarkerId = ((TourMarkerItem) iterator.next()).markerId;

            // get marker by id
            for (final TourMarker tourMarker : tourData.getTourMarkers()) {
                if (tourMarker.getMarkerId() == selectedMarkerId) {
                    selectedTourMarkers.add(tourMarker);
                    break;
                }
            }
        }

        _isInUpdate = true;
        {
            /*
             * Set selection in the selection provider that the part selection provider is in
             * sync with the marker selection, otherwise a selection listener, e.g. tour editor
             * can display the wrong tour. This happened !!!
             */
            _postSelectionProvider.setSelectionNoFireEvent(selectionTourIds);

            TourManager.fireEventWithCustomData(//
                    TourEventId.MARKER_SELECTION, new SelectionTourMarker(tourData, selectedTourMarkers),
                    getSite().getPart());
        }
        _isInUpdate = false;

    } else if (uniqueTourIds > 1) {

        // multiple tours are selected, fire a part selection

        _isInUpdate = true;
        {
            _postSelectionProvider.setSelection(selectionTourIds);
        }
        _isInUpdate = false;
    }
}

From source file:net.tourbook.ui.views.tourMarker.TourMarkerAllView.java

License:Open Source License

@Override
public ArrayList<TourData> getSelectedTours() {

    final ArrayList<TourData> selectedTours = new ArrayList<TourData>();

    final StructuredSelection selection = getViewerSelection();

    for (final Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {

        final Object element = iterator.next();

        if (element instanceof TourMarkerItem) {

            // get TourData from the tour marker item

            final TourMarkerItem tourMarkerItem = (TourMarkerItem) element;

            // get tour by id
            final TourData tourData = TourManager.getInstance().getTourData(tourMarkerItem.tourId);

            if (tourData != null) {
                selectedTours.add(tourData);
            }//from  ww w.j  av a  2  s.  co  m
        }
    }

    return selectedTours;
}