List of usage examples for org.eclipse.jface.viewers ViewerCell getNeighbor
public ViewerCell getNeighbor(int directionMask, boolean sameLevel)
null
if no neighbor exists in the given direction. From source file:com.maccasoft.composer.internal.TextEditingSupport.java
License:Open Source License
@Override protected CellEditor getCellEditor(Object element) { if (cellEditor == null) { cellEditor = new TextCellEditor((Composite) getViewer().getControl(), SWT.CENTER) { @Override/*www . j ava 2 s. c om*/ protected void keyReleaseOccured(KeyEvent e) { if (e.keyCode == SWT.ARROW_UP) { fireApplyEditorValue(); deactivate(); ViewerCell cell = getViewer().getColumnViewerEditor().getFocusCell(); if (cell != null) { final ViewerCell nextCell = cell.getNeighbor(ViewerCell.ABOVE, false); if (nextCell != null) { getViewer().getControl().getDisplay().asyncExec(new Runnable() { @Override public void run() { GridTableViewer viewer = (GridTableViewer) getViewer(); Grid grid = (Grid) viewer.getControl(); if (!grid.isDisposed()) { viewer.editElement(nextCell.getElement(), nextCell.getColumnIndex()); } } }); } } e.doit = false; } else if (e.keyCode == SWT.ARROW_DOWN) { fireApplyEditorValue(); deactivate(); ViewerCell cell = getViewer().getColumnViewerEditor().getFocusCell(); if (cell != null) { final ViewerCell nextCell = cell.getNeighbor(ViewerCell.BELOW, false); if (nextCell != null) { getViewer().getControl().getDisplay().asyncExec(new Runnable() { @Override public void run() { GridTableViewer viewer = (GridTableViewer) getViewer(); Grid grid = (Grid) viewer.getControl(); if (!grid.isDisposed()) { viewer.editElement(nextCell.getElement(), nextCell.getColumnIndex()); } } }); } } e.doit = false; } super.keyReleaseOccured(e); } }; } return cellEditor; }
From source file:com.maccasoft.composer.NoteKeyListener.java
License:Open Source License
@Override public void keyPressed(KeyEvent e) { IStructuredSelection selection = viewer.getStructuredSelection(); if (selection.isEmpty()) { return;/* w ww . jav a2 s . c o m*/ } SongRow model = (SongRow) selection.getFirstElement(); final ViewerCell cell = viewer.getColumnViewerEditor().getFocusCell(); int channel = cell.getColumnIndex() / 4; int columnIndex = cell.getColumnIndex() % 4; if (columnIndex == 0) { String s = noteMap.get(e.character); if (s != null) { model.setNote(channel, s + String.valueOf(getOctave())); if ("".equals(model.getInstrument(channel))) { model.setInstrument(channel, getInstrument()); } viewer.update(model, null); final ViewerCell nextCell = cell.getNeighbor(ViewerCell.BELOW, false); if (nextCell != null) { final Event event1 = new Event(); event1.type = SWT.KeyDown; event1.keyCode = SWT.ARROW_DOWN; event1.widget = e.widget; final Event event2 = new Event(); event2.type = SWT.KeyUp; event2.keyCode = SWT.ARROW_DOWN; event2.widget = e.widget; final Display display = e.display; display.asyncExec(new Runnable() { @Override public void run() { if (event1.widget.isDisposed()) { return; } display.post(event1); display.post(event2); } }); } e.doit = false; return; } } if (e.character == SWT.DEL) { if ((e.stateMask & SWT.MOD2) != 0) { removeEntryAndShiftUp(channel, model); viewer.refresh(); e.doit = false; return; } switch (columnIndex) { case 0: model.setNote(channel, ""); break; case 1: model.setInstrument(channel, ""); break; case 2: model.setFx1(channel, ""); break; case 3: model.setFx2(channel, ""); break; } viewer.update(model, null); e.doit = false; return; } if (e.keyCode == SWT.INSERT) { insertBlankAndShiftDown(channel, model); viewer.refresh(); e.doit = false; return; } if (e.character >= 0x20 && e.character <= 0x7F) { e.doit = false; return; } }
From source file:org.bonitasoft.studio.contract.ui.property.AddRowOnEnterCellNavigationStrategy.java
License:Open Source License
protected ViewerCell removeRow(final ViewerCell currentSelectedCell) { final ViewerCell aboveCell = currentSelectedCell.getNeighbor(ViewerCell.ABOVE, false); controller.remove(viewer);//from w w w .ja v a 2 s .c o m updateSelection(aboveCell); return aboveCell; }
From source file:org.bonitasoft.studio.contract.ui.property.AddRowOnEnterCellNavigationStrategy.java
License:Open Source License
protected ViewerCell addNewRow(final ViewerCell currentSelectedCell, final Event event) { if (isContractInputNameColumn(currentSelectedCell)) { ViewerCell nextCell = currentSelectedCell.getNeighbor(ViewerCell.BELOW, false); if (nextCell == null) { setCancelEvent(true);// w w w .j ava 2s.c o m controller.add(viewer); nextCell = currentSelectedCell.getNeighbor(ViewerCell.BELOW, false); updateSelection(nextCell); return nextCell; } } return null; }
From source file:org.eclipse.linuxtools.dataviewers.findreplace.STTableFindReplaceTarget.java
License:Open Source License
private ViewerCell searchInRow(ViewerRow row, int index, String findString, boolean searchForward, boolean caseSensitive, boolean wholeWord, int dirCell, boolean regExSearch) { Pattern pattern = null;/*from w w w . ja v a 2s . c om*/ if (regExSearch) { pattern = Pattern.compile(findString); } ISTDataViewersField[] fields = getAllFields(); ViewerCell cell = row.getCell(index); do { String text = ""; ISTDataViewersField field = fields[cell.getColumnIndex()]; if (field.getSpecialDrawer(cell.getElement()) != null) { ISpecialDrawerListener hfield = (ISpecialDrawerListener) field; text = hfield.getValue(cell.getElement()).trim(); } else text = cell.getText().trim(); boolean ok = false; if (regExSearch) { Matcher matcher = pattern.matcher(text); ok = matcher.find(); } else { if (wholeWord) { if (caseSensitive) ok = text.equals(findString); else ok = text.equalsIgnoreCase(findString); } else { ok = text.contains(findString); if (ok && caseSensitive) { text.indexOf(findString); } } } if (ok) { _viewer.reveal(cell.getElement()); if (((TableViewer) _viewer).getTable().getSelectionCount() > 0) { TableViewer tv = (TableViewer) _viewer; Table table = tv.getTable(); table.deselect(table.indexOf((TableItem) row.getItem())); } return cell; } cell = cell.getNeighbor(dirCell, true); } while (cell != null); return null; }
From source file:org.eclipse.linuxtools.dataviewers.findreplace.STTreeFindReplaceTarget.java
License:Open Source License
private ViewerCell searchInRow(ViewerRow row, int index, String findString, boolean searchForward, boolean caseSensitive, boolean wholeWord, int dirCell, boolean regExSearch) { Pattern pattern = null;/* w ww . ja v a 2 s .c o m*/ if (regExSearch) { pattern = Pattern.compile(findString); } ISTDataViewersField[] fields = getAllFields(); ViewerCell cell = row.getCell(index); do { String text = ""; ISTDataViewersField field = fields[cell.getColumnIndex()]; if (field.getSpecialDrawer(cell.getElement()) != null) { ISpecialDrawerListener hfield = (ISpecialDrawerListener) field; text = hfield.getValue(cell.getElement()).trim(); } else text = cell.getText().trim(); boolean ok = false; if (regExSearch) { Matcher matcher = pattern.matcher(text); ok = matcher.find(); } else { if (wholeWord) { if (caseSensitive) ok = text.equals(findString); else ok = text.equalsIgnoreCase(findString); } else { ok = text.contains(findString); if (ok && caseSensitive) { text.indexOf(findString); } } } if (ok) { _viewer.reveal(cell.getElement()); if (fSelections != null && fSelections.indexOf(row.getItem()) != -1) _viewer.getTree().deselectAll(); return cell; } cell = cell.getNeighbor(dirCell, true); } while (cell != null); return null; }