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

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

Introduction

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

Prototype

@Override
    public Object getFirstElement() 

Source Link

Usage

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

License:Open Source License

@Override
public boolean performDrop(final Object dropData) {

    boolean returnValue = false;

    /*//from   w  ww .  ja  v a 2  s  .  c  o m
     * 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.tag.ActionMenuSetTagStructure.java

License:Open Source License

/**
 * get expand type from the selected tag
 * /*w  w w  . ja  v a 2  s.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.tag.ActionRenameTag.java

License:Open Source License

/**
 * Rename selected tag/category//from   ww  w  .  j  a  v a2  s  .  co  m
 */
@Override
public void run() {

    final StructuredSelection selection = (StructuredSelection) fTourViewer.getViewer().getSelection();
    final Object firstElement = selection.getFirstElement();

    String name = UI.EMPTY_STRING;
    String dlgTitle = UI.EMPTY_STRING;
    String dlgMessage = UI.EMPTY_STRING;

    if (firstElement instanceof TVITagViewTag) {

        name = ((TVITagViewTag) firstElement).getName();
        dlgTitle = Messages.action_tag_dlg_rename_title;
        dlgMessage = Messages.action_tag_dlg_rename_message;

    } else if (firstElement instanceof TVITagViewTagCategory) {

        name = ((TVITagViewTagCategory) firstElement).getName();
        dlgTitle = Messages.action_tagcategory_dlg_rename_title;
        dlgMessage = Messages.action_tagcategory_dlg_rename_message;
    } else {
        return;
    }

    final InputDialog inputDialog = new InputDialog(Display.getCurrent().getActiveShell(), dlgTitle, dlgMessage,
            name, null);

    inputDialog.open();

    if (inputDialog.getReturnCode() != Window.OK) {
        return;
    }

    final String newName = inputDialog.getValue().trim();
    if (name.equals(newName)) {
        // name was not changed
        return;
    }

    BusyIndicator.showWhile(Display.getCurrent(), new Runnable() {
        public void run() {

            if (firstElement instanceof TVITagViewTag) {

                // save tag

                final TVITagViewTag tourTagItem = ((TVITagViewTag) firstElement);

                // update model
                updateTag(tourTagItem.getTagId(), newName);

                // update view
                fTourViewer.getViewer().update(tourTagItem, null);

            } else if (firstElement instanceof TVITagViewTagCategory) {

                // save category

                final TVITagViewTagCategory tourCategoryItem = ((TVITagViewTagCategory) firstElement);

                // update model
                updateCategory(tourCategoryItem.getCategoryId(), newName);

                // update view
                fTourViewer.getViewer().update(tourCategoryItem, null);

            }

            // remove old tags from internal list
            TourDatabase.clearTourTags();
            TagMenuManager.updateRecentTagNames();

            TourManager.getInstance().clearTourDataCache();

            // fire modify event
            TourManager.fireEvent(TourEventId.TAG_STRUCTURE_CHANGED);
        }
    });
}

From source file:net.tourbook.tour.DialogMarker.java

License:Open Source License

private Composite createUI_42_MarkerViewer(final Composite parent) {

    final Composite layoutContainer = new Composite(parent, SWT.NONE);
    GridDataFactory.fillDefaults()//
            .grab(true, true).applyTo(layoutContainer);

    final TableColumnLayout tableLayout = new TableColumnLayout();
    layoutContainer.setLayout(tableLayout);

    /*/*from   w  w  w  . j a v a  2 s.  com*/
     * create table
     */
    final Table table = new Table(layoutContainer, //
            SWT.FULL_SELECTION //
                    //                  | SWT.BORDER
                    | SWT.CHECK);

    table.setLayout(new TableLayout());
    table.setHeaderVisible(true);
    //      table.setLinesVisible(true);

    table.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(final KeyEvent e) {

            if (e.character == ' ') {
                toggleMarkerVisibility();
            }
        }
    });

    //      /*
    //       * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly. Therefore, it is
    //       * critical for performance that these methods be as efficient as possible.
    //       */
    //      final Listener paintListener = new Listener() {
    //         @Override
    //         public void handleEvent(final Event event) {
    //
    //            if (event.index == _signImageColumn //
    //                  && (event.type == SWT.MeasureItem || event.type == SWT.PaintItem)) {
    //
    //               onViewerPaint(event);
    //            }
    //         }
    //      };
    //      table.addListener(SWT.MeasureItem, paintListener);
    //      table.addListener(SWT.PaintItem, paintListener);
    //
    //      ROW_DEFAULT_HEIGHT = table.getItemHeight();

    _markerViewer = new TableViewer(table);

    /*
     * create columns
     */
    defineColumn_1stHidden(tableLayout);//            // 0
    defineColumn_Distance(tableLayout);//            // 1
    defineColumn_IsVisible(tableLayout);//            // 2
    //      _tcSignImage = defineColumn_Image(tableLayout);//   // 3
    defineColumn_Marker(tableLayout);//               // 4
    defineColumn_Description(tableLayout);//         // 5
    defineColumn_Url(tableLayout);//               // 6
    defineColumn_OffsetX(tableLayout);//            // 7
    defineColumn_OffsetY(tableLayout);//            // 8

    //      _signImageColumn = 3;

    /*
     * create table viewer
     */
    _markerViewer.setContentProvider(new MarkerViewerContentProvider());
    _markerViewer.setSorter(new MarkerViewerSorter());

    _markerViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            final StructuredSelection selection = (StructuredSelection) event.getSelection();
            if (selection != null) {
                onSelectMarker((TourMarker) selection.getFirstElement());
            }
        }
    });

    _markerViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {
            _comboMarkerName.setFocus();
        }
    });

    return layoutContainer;
}

From source file:net.tourbook.tour.filter.SlideoutTourFilter.java

License:Open Source License

private void onProfile_Select() {

    TourFilterProfile selectedProfile = null;

    // get selected profile from viewer
    final StructuredSelection selection = (StructuredSelection) _profileViewer.getSelection();
    final Object firstElement = selection.getFirstElement();
    if (firstElement != null) {
        selectedProfile = (TourFilterProfile) firstElement;
    }/*w  w  w .  j  a  v a2 s.  c om*/

    if (_selectedProfile != null && _selectedProfile == selectedProfile) {
        // a new profile is not selected
        return;
    }

    _selectedProfile = selectedProfile;

    // update model
    TourFilterManager.setSelectedProfile(_selectedProfile);

    // update UI
    if (_selectedProfile == null) {

        _txtProfileName.setText(UI.EMPTY_STRING);

    } else {

        _txtProfileName.setText(_selectedProfile.name);

        if (_selectedProfile.name.equals(Messages.Tour_Filter_Default_ProfileName)) {

            // a default profile is selected, make is easy to rename it

            _txtProfileName.selectAll();
            _txtProfileName.setFocus();
        }
    }

    createUI_410_FilterProperties();
    updateUI_Properties();

    fireModifyEvent();
}

From source file:net.tourbook.ui.action.ActionCollapseAll.java

License:Open Source License

@Override
public void run() {

    if (_tourViewer != null) {

        final ColumnViewer viewer = _tourViewer.getViewer();

        if (viewer instanceof TreeViewer) {

            final TreeViewer treeViewer = (TreeViewer) viewer;

            final Tree tree = treeViewer.getTree();

            // disable redraw that the UI in not flickering
            tree.setRedraw(false);/* ww  w  . j  a va2 s  .  c o m*/
            {
                try {
                    treeViewer.collapseAll();
                } catch (final Exception e) {
                    // this occured
                }
            }
            tree.setRedraw(true);

            try {

                final StructuredSelection selection = (StructuredSelection) treeViewer.getSelection();
                if (selection != null) {
                    final Object firstElement = selection.getFirstElement();
                    if (firstElement != null) {
                        treeViewer.reveal(firstElement);
                    }
                }

            } catch (final Exception e) {

                // this occured, ensure something is selected otherwise further NPEs occure

                final TreeItem[] selection = tree.getSelection();

                for (final TreeItem treeItem : selection) {

                    final Object itemData = treeItem.getData();

                    _tourViewer.getViewer().setSelection(new StructuredSelection(itemData), true);

                    break;
                }
            }
        }
    }
}

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.  jav  a2 s .  c  o  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.TourCatalogView.java

License:Open Source License

private void addPostSelectionListener() {

    // this view part is a selection listener
    _postSelectionListener = new ISelectionListener() {

        @Override//w w  w. ja v a  2 s.c om
        public void selectionChanged(final IWorkbenchPart part, final ISelection selection) {

            // update the view when a new tour reference was created
            if (selection instanceof SelectionPersistedCompareResults) {

                final SelectionPersistedCompareResults selectionPersisted = (SelectionPersistedCompareResults) selection;

                final ArrayList<TVICompareResultComparedTour> persistedCompareResults = selectionPersisted.persistedCompareResults;

                if (persistedCompareResults.size() > 0) {
                    updateTourViewer(persistedCompareResults);
                }

            } else if (selection instanceof SelectionNewRefTours) {

                reloadViewer();

            } else if (selection instanceof SelectionRemovedComparedTours) {

                final SelectionRemovedComparedTours removedCompTours = (SelectionRemovedComparedTours) selection;

                /*
                 * find/remove the removed compared tours in the viewer
                 */

                final ArrayList<TVICatalogComparedTour> comparedTours = new ArrayList<TVICatalogComparedTour>();

                getComparedTours(comparedTours, _rootItem, removedCompTours.removedComparedTours);

                // remove compared tour from the data model
                for (final TVICatalogComparedTour comparedTour : comparedTours) {
                    comparedTour.remove();
                }

                // remove compared tour from the tree viewer
                _tourViewer.remove(comparedTours.toArray());
                reloadViewer();

            } else if (selection instanceof StructuredSelection) {

                final StructuredSelection structuredSelection = (StructuredSelection) selection;

                final Object firstElement = structuredSelection.getFirstElement();

                if (firstElement instanceof TVICatalogComparedTour) {

                    // select the compared tour in the tour viewer

                    final TVICatalogComparedTour linkedTour = (TVICatalogComparedTour) firstElement;

                    // check if the linked tour is already set, prevent recursion
                    if (_linkedTour != linkedTour) {
                        _linkedTour = linkedTour;
                        selectLinkedTour();
                    }
                }
            }
        }
    };

    // register selection listener in the page
    getSite().getPage().addPostSelectionListener(_postSelectionListener);
}

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 w w  . j  a v a 2 s. c  om
            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);
        }
    }
}

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

License:Open Source License

/**
 * Creates a new marker/*from  w w w . j a  v  a  2  s . co  m*/
 * 
 * @param tourData
 * @return
 */
private TourMarker createTourMarker(final TourData tourData) {

    final StructuredSelection selection = (StructuredSelection) _tourDataEditor.getSliceViewer().getSelection();
    final Object firstElement = selection.getFirstElement();

    if (firstElement instanceof TimeSlice && tourData.timeSerie != null) {

        // create a new marker
        final int serieIndex = ((TimeSlice) firstElement).serieIndex;
        final int relativeTourTime = tourData.timeSerie[serieIndex];
        final float[] altitudeSerie = tourData.altitudeSerie;
        final float[] distSerie = tourData.getMetricDistanceSerie();
        final double[] latitudeSerie = tourData.latitudeSerie;
        final double[] longitudeSerie = tourData.longitudeSerie;

        final TourMarker tourMarker = new TourMarker(tourData, ChartLabel.MARKER_TYPE_CUSTOM);
        tourMarker.setSerieIndex(serieIndex);
        tourMarker.setLabel(Messages.TourData_Label_new_marker);
        tourMarker.setTime(relativeTourTime, tourData.getTourStartTimeMS() + (relativeTourTime * 1000));

        if (altitudeSerie != null) {
            tourMarker.setAltitude(altitudeSerie[serieIndex]);
        }

        if (distSerie != null) {
            tourMarker.setDistance(distSerie[serieIndex]);
        }

        if (latitudeSerie != null) {
            tourMarker.setGeoPosition(latitudeSerie[serieIndex], longitudeSerie[serieIndex]);
        }

        return tourMarker;
    }

    return null;
}