List of usage examples for org.eclipse.jface.viewers StructuredSelection getFirstElement
@Override
public Object getFirstElement()
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; }