private void hookListener(final ColumnViewer viewer) { Listener listener = new Listener() { @Override public void handleEvent(Event event) { if ((event.detail & SWT.SELECTED) > 0) { ViewerCell focusCell = getFocusCell(); ViewerRow row = focusCell.getViewerRow(); Assert.isNotNull(row, "Internal structure invalid. Item without associated row is not possible."); //$NON-NLS-1$ ViewerCell cell = row.getCell(event.index); if (focusCell == null || !cell.equals(focusCell)) { removeSelectionInformation(event, cell); } else { markFocusedCell(event, cell); } } } }; viewer.getControl().addListener(SWT.EraseItem, listener); }
public void editElement(Object element, int column) { if (element instanceof TreePath) { setSelection(new TreeSelection((TreePath) element)); GalleryItem[] items = gallery.getSelection(); if (items.length == 1) { ViewerRow row = getViewerRowFromItem(items[0]); if (row != null) { ViewerCell cell = row.getCell(column); if (cell != null) { getControl().setRedraw(false); triggerEditorActivationEvent(new ColumnViewerEditorActivationEvent(cell)); getControl().setRedraw(true); } } } } else { super.editElement(element, column); } }
/** * Create a new ViewerRow at rowIndex * * @param parent * the parent row * @param style * the style bits to use for the new row * @param rowIndex * the index at which the new row should be created under the parent * @return ViewerRow * the new row */ private ViewerRow createNewRowPart(ViewerRow parent, int style, int rowIndex) { if (parent == null) { if (rowIndex >= 0) { return getViewerRowFromItem(new GridItem(grid, style, rowIndex)); } return getViewerRowFromItem(new GridItem(grid, style)); } if (rowIndex >= 0) { return getViewerRowFromItem(new GridItem((GridItem) parent .getItem(), SWT.NONE, rowIndex)); } return getViewerRowFromItem(new GridItem((GridItem) parent.getItem(), SWT.NONE)); }
/** * {@inheritDoc} */ public void editElement(Object element, int column) { try { getControl().setRedraw(false); Widget item = findItem(element); if (item != null) { ViewerRow row = getViewerRowFromItem(item); if (row != null) { ViewerCell cell = row.getCell(column); if (cell != null) { triggerEditorActivationEvent(new ColumnViewerEditorActivationEvent( cell)); } } } } finally { getControl().setRedraw(true); } // } }
/** * FIXME * {@inheritDoc} */ public ViewerCell getFocusCell() { Grid grid = (Grid)getViewer().getControl(); if( grid.getCellSelectionEnabled() ) { Point p = grid.getFocusCell(); if( p.x >= 0 && p.y >= 0 ) { GridItem item = grid.getItem(p.y); if( item != null ) { ViewerRow row = getViewerRowFromItem(item); return row.getCell(p.x); } } } return null; }
/** * {@inheritDoc} */ protected ViewerRow internalCreateNewRowPart(int style, int rowIndex) { TableItem item; if (rowIndex >= 0) { item = new TableItem(tableCombo.getTable(), style, rowIndex); } else { item = new TableItem(tableCombo.getTable(), style); } return getViewerRowFromItem(item); }
/** * {@inheritDoc} */ protected ViewerRow getViewerRowFromItem(Widget item) { if (cachedRow == null) { cachedRow = new TableComboViewerRow((TableItem) item); } else { cachedRow.setItem((TableItem) item); } return cachedRow; }
private boolean isNodeExpanded(final ViewerCell cell) { if (overSteerNodeItemExpandedForTest != null) { return overSteerNodeItemExpandedForTest; } ViewerRow viewerRow = cell.getViewerRow(); TreeItem item = (TreeItem) viewerRow.getItem(); return item.getExpanded(); }
protected ViewerRow getViewerRowFromItem(Widget item) { if (cachedRow == null) { cachedRow = new GalleryViewerRow((GalleryItem) item); } else { cachedRow.setItem((GalleryItem) item); } return cachedRow; }
/** * Create a new ViewerRow at rowIndex * * @param parent * @param style * @param rowIndex * @return ViewerRow */ private ViewerRow createNewRowPart(ViewerRow parent, int style, int rowIndex) { if (parent == null) { if (rowIndex >= 0) { return getViewerRowFromItem(new GalleryItem(gallery, style, rowIndex)); } return getViewerRowFromItem(new GalleryItem(gallery, style)); } if (rowIndex >= 0) { return getViewerRowFromItem(new GalleryItem((GalleryItem) parent.getItem(), SWT.NONE, rowIndex)); } return getViewerRowFromItem(new GalleryItem((GalleryItem) parent.getItem(), SWT.NONE)); }
public ViewerRow getNeighbor(int direction, boolean sameLevel) { if (direction == ViewerRow.ABOVE) { // TODO: handle grouping return getRowAbove(); } else if (direction == ViewerRow.BELOW) { // TODO: handle grouping return getRowBelow(); } else { throw new IllegalArgumentException("Illegal value of direction argument."); //$NON-NLS-1$ } }
/** * {@inheritDoc} */ public ViewerRow getNeighbor(int direction, boolean sameLevel) { if( direction == ViewerRow.ABOVE ) { return getRowAbove(); } else if( direction == ViewerRow.BELOW ) { return getRowBelow(); } else { throw new IllegalArgumentException("Illegal value of direction argument."); //$NON-NLS-1$ } }
private ViewerRow getRowAbove() { int index = item.getParent().indexOf(item) - 1; if( index >= 0 ) { return new TableComboViewerRow(item.getParent().getItem(index)); } return null; }
private ViewerRow getRowBelow() { int index = item.getParent().indexOf(item) + 1; if( index < item.getParent().getItemCount() ) { TableItem tmp = item.getParent().getItem(index); //TODO NULL can happen in case of VIRTUAL => How do we deal with that if( tmp != null ) { return new TableComboViewerRow(tmp); } } return null; }
private void hookListener(final ColumnViewer viewer) { Listener listener = new Listener() { public void handleEvent(Event event) { if ((event.detail & SWT.SELECTED) > 0) { ViewerCell focusCell = getFocusCell(); try { Method m = viewer.getClass().getDeclaredMethod("getViewerRowFromItem", Widget.class); boolean access = m.isAccessible(); if (!access) { m.setAccessible(true); } ViewerRow row = (ViewerRow) m.invoke(viewer, event.item); m.setAccessible(access); Assert.isNotNull(row, "Internal structure invalid. Item without associated row is not possible."); //$NON-NLS-1$ ViewerCell cell = row.getCell(event.index); if (focusCell != null && cell.equals(focusCell)) { markFocusedCell(event, cell); } } catch (Exception e) { LOGGER.error(e.getLocalizedMessage(), e); } } } }; viewer.getControl().addListener(SWT.EraseItem, listener); }
/** * Column: Distance delta km/mi */ private void defineColumn_Motion_DistanceDelta() { final ColumnDefinition colDef = TableColumnFactory.MOTION_DISTANCE_DELTA.createColumn(_columnManager, _pc); colDef.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final TourMarker tourMarker = (TourMarker) cell.getElement(); final float markerDistance = tourMarker.getDistance(); if (markerDistance == -1) { cell.setText(UI.EMPTY_STRING); } else { float prevDistance = 0; final ViewerRow lastRow = cell.getViewerRow().getNeighbor(ViewerRow.ABOVE, false); if (null != lastRow) { final TourMarker element = (TourMarker) lastRow.getElement(); if (element instanceof TourMarker) { prevDistance = element.getDistance(); } prevDistance = prevDistance < 0 ? 0 : prevDistance; } cell.setText(_nf3.format((markerDistance - prevDistance) / 1000 / net.tourbook.ui.UI.UNIT_VALUE_DISTANCE)); } } }); }
/** * Column: Time */ private void defineColumn_Time_TimeDelta() { final ColumnDefinition colDef = TableColumnFactory.MARKER_TIME_DELTA.createColumn(_columnManager, _pc); colDef.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ViewerRow lastRow = cell.getViewerRow().getNeighbor(ViewerRow.ABOVE, false); int lastTime = 0; if (null != lastRow) { final Object element = lastRow.getElement(); if (element instanceof TourMarker) { lastTime = ((TourMarker) element).getTime(); } } cell.setText(net.tourbook.common.UI.format_hh_mm_ss(((TourMarker) cell.getElement()).getTime() - lastTime)); final String text = ((TourMarker) cell.getElement()).getLabel(); /* * Show text in red/bold when the text ends with a !, this hidden feature was * introduced by helmling */ if (text.endsWith(UI.SYMBOL_EXCLAMATION_POINT)) { final Display display = Display.getCurrent(); if (null != display) { cell.setForeground(display.getSystemColor(SWT.COLOR_RED)); } cell.setFont(_boldFont); } } }); }
private ViewerRow getRowAbove() { int index = item.getParent().indexOf(item) - 1; if( index >= 0 ) { return new GridViewerRow(item.getParent().getItem(index)); } return null; }
private ViewerRow getRowBelow() { int index = item.getParent().indexOf(item) + 1; if( index < item.getParent().getItemCount() ) { GridItem tmp = item.getParent().getItem(index); if( tmp != null ) { return new GridViewerRow(tmp); } } return null; }
/** {@inheritDoc} */ protected ViewerRow getViewerRowFromItem(Widget item) { if (cachedRow == null) { cachedRow = new GridViewerRow((GridItem) item); } else { cachedRow.setItem((GridItem) item); } return cachedRow; }
private ViewerRow getViewerRowFromItem(GridItem item) { if( getViewer() instanceof GridTableViewer ) { return ((GridTableViewer)getViewer()).getViewerRowFromItem(item); } else { return ((GridTreeViewer)getViewer()).getViewerRowFromItem(item); } }
/** * {@inheritDoc} */ public ViewerRow getNeighbor(int direction, boolean sameLevel) { if (direction == ViewerRow.ABOVE) { return getRowAbove(); } else if (direction == ViewerRow.BELOW) { return getRowBelow(); } else { throw new IllegalArgumentException("Illegal value of direction argument."); //$NON-NLS-1$ } }
private ViewerRow getRowAbove() { int index = item.getParent().indexOf(item) - 1; if (index >= 0) { return new TableComboViewerRow(item.getParent().getItem(index)); } return null; }
private ViewerRow getRowBelow() { int index = item.getParent().indexOf(item) + 1; if (index < item.getParent().getItemCount()) { TableItem tmp = item.getParent().getItem(index); // TODO NULL can happen in case of VIRTUAL => How do we deal with that if (tmp != null) { return new TableComboViewerRow(tmp); } } return null; }