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

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

Introduction

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

Prototype

@Override
    public int size() 

Source Link

Usage

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 .  ja  v 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  w w  w  . j  a  va  2s. c  om*/
                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.sourceforge.javahexeditor.plugin.editors.HexEditor.java

License:Open Source License

@Override
public void setSelection(ISelection selection) {
    if (selection.isEmpty()) {
        return;//from   w w w  . jav  a 2  s.c  om
    }
    StructuredSelection aSelection = (StructuredSelection) selection;
    long[] startEnd = (long[]) aSelection.getFirstElement();
    long start = startEnd[0];
    long end = start;
    if (startEnd.length > 1) {
        end = startEnd[1];
    }
    if (aSelection.size() > 1) {
        startEnd = (long[]) aSelection.toArray()[1];
        end = startEnd[0];
        if (startEnd.length > 1) {
            end = startEnd[1];
        }
    }
    getManager().setSelection(new RangeSelection(start, end));
}

From source file:net.tourbook.preferences.TagDropAdapter.java

License:Open Source License

@Override
public boolean performDrop(final Object dropData) {

    boolean returnValue = false;

    /*//from   w  w w  .j  a va 2  s .c om
     * check if drag was startet from this tree
     */
    if (LocalSelectionTransfer.getTransfer().getSelectionSetTime() != _prefPageTags.getDragStartTime()) {
        return false;
    }

    if (dropData instanceof StructuredSelection) {

        final StructuredSelection selection = (StructuredSelection) dropData;
        final Object firstElement = selection.getFirstElement();

        if (selection.size() == 1 && firstElement instanceof TVIPrefTagCategory) {

            /*
             * drop a category, to avoid confusion only one category is supported to be dragged
             * & dropped
             */

            returnValue = dropCategory((TVIPrefTagCategory) firstElement);

        } else {

            // drop all tags, categories will be ignored

            for (final Object element : selection.toList()) {
                if (element instanceof TVIPrefTag) {
                    returnValue |= dropTag((TVIPrefTag) element);
                }
            }
        }

        if (returnValue) {
            _prefPageTags.setIsModified();
        }
    }

    return returnValue;
}

From source file:net.tourbook.srtm.PrefPageSRTMColors.java

License:Open Source License

private void enableActions() {

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

    _btnRemoveProfile.setEnabled(selection.size() == 1 && _profileList.size() > 1);
}

From source file:net.tourbook.tag.ActionMenuSetTagStructure.java

License:Open Source License

/**
 * get expand type from the selected tag
 * //from  w  ww . j  a va  2s  . c  o  m
 * @return
 */
private int getSelectedExpandType() {

    int selectedExpandType = -1;
    final StructuredSelection selection = (StructuredSelection) _tourViewer.getViewer().getSelection();

    if (selection.size() == 1) {

        // set the expand type when only one tag is selected

        if (selection.getFirstElement() instanceof TVITagViewTag) {
            final TVITagViewTag itemTag = (TVITagViewTag) selection.getFirstElement();
            selectedExpandType = itemTag.getExpandType();
        }
    }
    return selectedExpandType;
}

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;/*from  w  w  w  .j  a v a2s.  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.  j av  a 2  s .  com
     * 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.ActionCheckTours.java

License:Open Source License

@Override
public void run() {

    // check all selected compared tours which are not yet stored

    final CheckboxTreeViewer viewer = fCompareResultView.getViewer();
    final StructuredSelection selection = (StructuredSelection) viewer.getSelection();
    if (selection.size() > 0) {

        for (final Object tour : selection.toArray()) {

            if (tour instanceof TVICompareResultComparedTour) {
                final TVICompareResultComparedTour comparedTour = (TVICompareResultComparedTour) tour;
                if (comparedTour.isSaved() == false) {
                    viewer.setChecked(tour, true);
                }/* w w w .j a v a2  s  . c om*/
            }
        }
    }
}

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

License:Open Source License

private void onSelectionChanged(final ISelection selection) {

    if (selection instanceof SelectionTourCatalogView) {

        final SelectionTourCatalogView tourCatalogItem = (SelectionTourCatalogView) selection;

        final TVICatalogRefTourItem refItem = tourCatalogItem.getRefItem();
        if (refItem != null) {

            // reference tour is selected

            _currentRefItem = refItem;/*from   w  ww .  j  a  v a2 s . co m*/
            updateUI_YearChart(true);

        } else {

            // show statistic for a specific year

            final TVICatalogYearItem yearItem = tourCatalogItem.getYearItem();
            if (yearItem != null) {

                _currentRefItem = yearItem.getRefItem();

                // overwrite last year
                _lastYear = yearItem.year;

                // update year data
                setYearData();

                updateUI_YearChart(false);
            }
        }

        // select tour in the statistic
        final Long compTourId = tourCatalogItem.getCompTourId();
        if (compTourId != null) {

            selectTourInYearChart(compTourId);

        } else {

            // select first tour for the youngest year
            int yearIndex = 0;
            for (final TVICatalogComparedTour tourItem : _allTours) {

                if (tourItem.tourDate.getYear() == _lastYear) {
                    break;
                }
                yearIndex++;
            }

            final int allTourSize = _allTours.size();

            if (allTourSize > 0 && yearIndex < allTourSize) {
                selectTourInYearChart(_allTours.get(yearIndex).getTourId());
            }
        }

    } else if (selection instanceof StructuredSelection) {

        final StructuredSelection structuredSelection = (StructuredSelection) selection;

        if (structuredSelection.size() > 0) {
            final Object firstElement = structuredSelection.getFirstElement();
            if (firstElement instanceof TVICatalogComparedTour) {

                final TVICatalogComparedTour compareItem = (TVICatalogComparedTour) firstElement;

                // select tour in the year chart
                final Long compTourId = compareItem.getTourId();
                if (compTourId != null) {
                    selectTourInYearChart(compTourId);
                }
            }
        }

    } else if (selection instanceof SelectionRemovedComparedTours) {

        final SelectionRemovedComparedTours removedCompTours = (SelectionRemovedComparedTours) selection;

        if (removedCompTours.removedComparedTours.size() > 0) {
            updateUI_YearChart(false);
        }
    }
}