List of usage examples for org.eclipse.jface.viewers ViewerCell getColumnIndex
public int getColumnIndex()
From source file:com.rcpcompany.uibindings.internal.utils.UIHandlerUtils.java
License:Open Source License
/** * Moves the specified element in the viewer of the binding. * /*from ww w . j a v a2s .c om*/ * @param vb the viewer binding * @param element the element to move * @param delta the amount to move * @param testOnly <code>true</code> if the move should only be tested for, but not performed * @return <code>true</code> if the element could be moved */ public static boolean moveElement(IViewerBinding vb, EObject element, int delta, boolean testOnly) { if (Activator.getDefault().TRACE_NAVIGATION_VIEWER) { LogUtils.debug(vb, "delta=" + delta + ", testOnly=" + testOnly + ", element=" + element); } Assert.isNotNull(vb); if (element == null) return false; final ColumnViewer viewer = vb.getViewer(); /* * Don't move if there are any sorter or filters installed as these negates the visual * effect. */ if (viewer.getComparator() != null || viewer.getFilters().length > 0) return false; // The list of objects final IObservableList list = vb.getList(); // Old position final int oldPosition = list.indexOf(element); if (oldPosition == -1) return false; // New position int newPosition = oldPosition + delta; if (newPosition < 0) { newPosition = 0; } if (newPosition >= list.size()) { newPosition = list.size() - 1; } // Can not be moved? if (oldPosition == newPosition) return false; // Move it if (!testOnly) { final ColumnViewerEditor editor = viewer.getColumnViewerEditor(); final ViewerCell oldFocusCell = editor.getFocusCell(); list.move(newPosition, oldPosition); vb.setFocus(oldFocusCell.getColumnIndex(), element); // ((Table) viewer.getControl()).setSelection(newPosition); } return true; }
From source file:com.rcpcompany.uibindings.internal.ViewerBindingImpl.java
License:Open Source License
@Override public void updateSourceProviderState(ISourceProviderStateContext context) { final ColumnViewer viewer = getViewer(); context.putSourceValue(Constants.SOURCES_ACTIVE_CONTAINER_BINDING, this); context.putSourceValue(Constants.SOURCES_ACTIVE_CONTAINER_BINDING_NO_CAF, (viewer.getComparator() == null && viewer.getFilters().length == 0)); context.putSourceValue(Constants.SOURCES_ACTIVE_VIEWER_ELEMENT_TYPE, getModelType()); EObject element = null;/*from w w w . ja v a 2 s.c o m*/ int columnIndex = -1; ContainerCellType type = null; ViewerCell cell; /* * If no specific position is specified in the event (x,y) = (0,0), then try using the * current focus cell. This is needed when navigating in the table. * * Also do this if the widget of the event is not this viewers control. That happens when * extra widgets are mapped to this binding with IBinding.registerWidget() */ final Event event = context.getEvent(); final Point point = context.getLocation(); if (event.x == 0 && event.y == 0 || event.widget != getControl()) { cell = viewer.getColumnViewerEditor().getFocusCell(); } else { cell = viewer.getCell(point); } if (cell != null) { element = (EObject) cell.getElement(); columnIndex = cell.getColumnIndex(); type = ContainerCellType.DATA; } else { final Control c = viewer.getControl(); if (c instanceof Table) { final Table t = (Table) c; final TableItem item = t.getItem(point); if (item != null) { element = (EObject) item.getData(); type = ContainerCellType.ROW_TRAILER; } else { /* * Below or above the table? */ if (point.y < 0) { type = ContainerCellType.COLUMN_HEADER; } else { type = ContainerCellType.COLUMN_TRAILER; } } } if (c instanceof Tree) { final Tree t = (Tree) c; final TreeItem item = t.getItem(point); if (item != null) { element = (EObject) item.getData(); type = ContainerCellType.ROW_TRAILER; } else { /* * Below or above the tree? */ if (point.y < 0) { type = ContainerCellType.COLUMN_HEADER; } else { type = ContainerCellType.COLUMN_TRAILER; } } } } if (type != null) { context.putSourceValue(Constants.SOURCES_ACTIVE_CONTAINER_CELL_TYPE, type.toString()); } if (element != null) { context.putSourceValue(Constants.SOURCES_ACTIVE_VIEWER_ELEMENT, element); context.putSourceValue(Constants.SOURCES_ACTIVE_VIEWER_ELEMENT_MOVE_UP, UIHandlerUtils.moveElement(this, element, -1, true)); context.putSourceValue(Constants.SOURCES_ACTIVE_VIEWER_ELEMENT_MOVE_DOWN, UIHandlerUtils.moveElement(this, element, 1, true)); } if (columnIndex >= getFirstTableColumnOffset() && element != null) { final IColumnBindingCellInformation ci = getCell(columnIndex - getFirstTableColumnOffset(), element); final IObservableValue objectValue = ci.getObjectValue(); final Object value = objectValue.getValue(); final IValueBinding labelBinding = ci.getLabelBinding(); context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING, labelBinding); context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_RO, !ci.isChangeable()); context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_VALUE, value); context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_TYPE, ""); //$NON-NLS-1$ if (labelBinding != null) { context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_MODEL_OBJECT, labelBinding.getModelObject()); context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_FEATURE, labelBinding.getModelFeature()); context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_UNSETTABLE, labelBinding.getDataType().isUnsettable()); context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_IS_SET, isSet(labelBinding)); } context.putSourceValue(Constants.SOURCES_ACTIVE_BINDING_VALUE_DISPLAY, ci.getDisplayText()); context.addObservedValue(ci.getLabelUIAttribute().getCurrentValue()); } context.setSelectionProvider(getViewer()); }
From source file:com.rcpcompany.uibindings.internal.ViewerBindingImpl.java
License:Open Source License
@Override public IContainerDropContext getDropContext(final DropTargetEvent event) { final Control control = getControl(); final Point point = control.toControl(new Point(event.x, event.y)); final ViewerCell vcell = getViewer().getCell(point); if (vcell == null) // return null; final IColumnBindingCellInformation cell = getCell(vcell.getColumnIndex() - getFirstTableColumnOffset(), vcell.getElement());/* ww w . j a v a 2 s.c om*/ return new IContainerDropContext() { @Override public EObject getDropTargetObject() { final IObservableValue valueOV = cell.getSourceValue(); if (valueOV == null) return null; final Object value = valueOV.getValue(); if (value instanceof EObject) return (EObject) value; return null; // final Widget item = event.item; // if (item == null) return null; // if (item.getData() instanceof EObject) return (EObject) item.getData(); // return null; } @Override public float getDropLocation() { final Control control = getControl(); final Point point = control.toControl(new Point(event.x, event.y)); final Rectangle bounds; if (event.item instanceof TreeItem) { bounds = ((TreeItem) event.item).getBounds(); } else if (event.item instanceof TableItem) { bounds = ((TableItem) event.item).getBounds(0); } else return 0.0F; return (float) (point.y - bounds.y) / (float) bounds.height; } @Override public IValueBindingCell getDropCell() { return cell; } @Override public List<IChildCreationSpecification> getPossibleChildObjects(EObject parent, EObject sibling) { return ViewerBindingImpl.this.getPossibleChildObjects(parent, sibling); } }; }
From source file:com.starterkit.todo.Tracker.TableColumnTracker.java
License:Open Source License
@Override public void handleEvent(Event event) { Table table = fTableViewer.getTable(); Point point = Display.getDefault().map(null, table, new Point(event.x, event.y)); Rectangle clientArea = table.getClientArea(); fHeaderArea = (clientArea.y <= point.y) && (point.y < (clientArea.y + table.getHeaderHeight())); ViewerCell cell = fTableViewer.getCell(point); if (cell != null) fSelectedColumnIndex = cell.getColumnIndex(); else {//from w w w . ja va 2s. c om // no cell detected, click on header int xOffset = point.x; int columnIndex = 0; int[] order = table.getColumnOrder(); while ((columnIndex < table.getColumnCount()) && (xOffset > table.getColumn(order[columnIndex]).getWidth())) { xOffset -= table.getColumn(order[columnIndex]).getWidth(); columnIndex++; } fSelectedColumnIndex = (columnIndex < table.getColumnCount()) ? order[columnIndex] : NO_COLUMN; } }
From source file:com.vectrace.MercurialEclipse.ui.AbstractHighlightableTable.java
License:Open Source License
public AbstractHighlightableTable(Composite parent, final HighlightingLabelProvider<E> labelProvider) { super(parent, SWT.NONE); setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); TableColumnLayout tableColumnLayout = new TableColumnLayout(); setLayout(tableColumnLayout);/* w w w . ja va 2 s .c o m*/ viewer = new TableViewer(this, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(labelProvider); List<TableViewerColumn> cols = createColumns(viewer, tableColumnLayout); CellLabelProvider clp = new CellLabelProvider() { @Override public void update(ViewerCell cell) { E patch = (E) cell.getElement(); HighlightingLabelProvider<E> lp = (HighlightingLabelProvider<E>) viewer.getLabelProvider(); cell.setText(labelProvider.getColumnText(patch, cell.getColumnIndex())); cell.setImage(labelProvider.getColumnImage(patch, cell.getColumnIndex())); if (lp.isHighlighted(patch)) { cell.setFont(APPLIED_FONT); } else { cell.setFont(null); } } }; for (Iterator<TableViewerColumn> it = cols.iterator(); it.hasNext();) { it.next().setLabelProvider(clp); } Table table = viewer.getTable(); table.setLinesVisible(true); table.setHeaderVisible(true); }
From source file:de.instanttouch.ui.scaffolding.swt.viewer.lazy.SnakeLazyTableViewer.java
License:Open Source License
private String handleTextOrImage(final ViewerCell cell, SnakeType dataItem, final TableViewerColumn viewerColumn) { ColumnInfo info = presenter.getVisibleColumns().get(cell.getColumnIndex()); String urlStr = dataItem.toString(); Image image = SnakeSwtUtils.createImage(urlStr); if (image != null) { cell.setImage(image);//from w w w. j a va 2 s . c o m } String converted = layoutText(cell, dataItem, viewerColumn); final SnakeType resizeCell = dataItem; viewerColumn.getColumn().addControlListener(new ControlListener() { @Override public void controlResized(ControlEvent e) { layoutText(cell, resizeCell, viewerColumn); } @Override public void controlMoved(ControlEvent e) { } }); return converted; }
From source file:de.walware.ecommons.ui.util.ViewerUtil.java
License:Open Source License
public static void installDefaultEditBehaviour(final TableViewer tableViewer) { final CellNavigationStrategy naviStrat = new CellNavigationStrategy() { @Override/* w w w.ja v a 2 s .c o m*/ public ViewerCell findSelectedCell(final ColumnViewer viewer, final ViewerCell currentSelectedCell, final Event event) { final ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event); if (cell != null) { tableViewer.getTable().showColumn(tableViewer.getTable().getColumn(cell.getColumnIndex())); } return cell; } }; final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tableViewer, new FocusCellOwnerDrawHighlighter(tableViewer), naviStrat); TableViewerEditor.create(tableViewer, focusCellManager, createActivationStrategy(tableViewer), ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.KEYBOARD_ACTIVATION); }
From source file:de.walware.ecommons.ui.util.ViewerUtil.java
License:Open Source License
public static void installDefaultEditBehaviour(final TreeViewer treeViewer) { final CellNavigationStrategy naviStrat = new CellNavigationStrategy() { @Override//from w w w . j av a2 s . co m public ViewerCell findSelectedCell(final ColumnViewer viewer, final ViewerCell currentSelectedCell, final Event event) { final ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event); if (cell != null) { treeViewer.getTree().showColumn(treeViewer.getTree().getColumn(cell.getColumnIndex())); } return cell; } }; final TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(treeViewer, new FocusCellOwnerDrawHighlighter(treeViewer), naviStrat); TreeViewerEditor.create(treeViewer, focusCellManager, createActivationStrategy(treeViewer), ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.KEYBOARD_ACTIVATION); }
From source file:edu.cmu.sei.alisa.editor.utils.AlisaLabelProvider.java
License:Apache License
/** * @see org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell) *//*from w ww .java2 s .com*/ @Override public void update(ViewerCell cell) { int index = cell.getColumnIndex(); String text = "N/A"; if (cell.getElement() instanceof Stakeholder) { Stakeholder stakeholder = (Stakeholder) cell.getElement(); switch (index) { case 0: text = stakeholder.getName(); break; case 1: text = stakeholder.getTitle(); break; case 2: text = stakeholder.getDescription(); break; case 3: text = stakeholder.getRole(); break; } } if (cell.getElement() instanceof VerificationActivity) { VerificationActivity va = (VerificationActivity) cell.getElement(); switch (index) { case 0: text = va.getName(); break; case 1: text = va.getTitle(); break; case 2: text = va.getDescription(); break; case 3: text = va.getMethod(); break; case 4: text = Utils.getStakeholderListAsString(va.getAssignedTo()); break; } } if (cell.getElement() instanceof Goal) { Goal goal = (Goal) cell.getElement(); switch (index) { case 0: text = goal.getName(); break; case 2: text = goal.getTitle(); break; case 3: text = goal.getDescription(); break; case 4: text = goal.getAssert(); break; case 5: text = goal.getRationale(); break; case 6: text = Utils.getStringListAsString(goal.getIssue()); break; case 7: text = Utils.getStakeholderListAsString(goal.getStakeholderReference()); break; } } if (cell.getElement() instanceof Requirement) { Requirement req = (Requirement) cell.getElement(); Requirements reqs = (Requirements) req.eContainer(); String target; switch (index) { case 0: text = Utils.getCategoryListAsString(req.getCategory()); break; case 1: text = reqs.getName() + "." + req.getName(); break; case 2: NamedElement cl = reqs.getTarget(); target = req.getTarget(); text = cl.getName() + (target != null ? "." + target : ""); break; case 3: text = req.getTitle(); break; case 4: text = req.getDescription(); break; case 5: text = req.getAssert(); break; case 6: text = req.getRationale(); break; case 7: text = Utils.getStringListAsString(req.getIssue()); break; } } if (cell.getElement() instanceof ExternalDocument) { ExternalDocument extdoc = (ExternalDocument) cell.getElement(); switch (index) { case 0: text = extdoc.getName(); break; case 1: text = extdoc.getExternalReference(); break; } } cell.setText(text); super.update(cell); }
From source file:es.cv.gvcase.fefem.common.widgets.FilteredLoadResourceDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { // If the EditingDomain is available then the dialog shows current loaded resources if (this.domain != null) { Group resContainer = new Group(parent, SWT.BORDER); resContainer.setText(Messages.FilteredLoadResourceDialog_LoadedResources); FillLayout rescontainerLayout = new FillLayout(); rescontainerLayout.type = SWT.VERTICAL; rescontainerLayout.marginHeight = 5; rescontainerLayout.marginWidth = 5; rescontainerLayout.spacing = 5;//from w w w . j a v a2 s . c o m resContainer.setLayout(rescontainerLayout); resContainer.setLayoutData(new GridData(GridData.FILL_BOTH)); Table table = new Table(resContainer, SWT.BORDER | SWT.FULL_SELECTION | SWT.SINGLE); String[] columnNames = { Messages.FilteredLoadResourceDialog_ResourceLocation }; TableViewer tableViewer = new TableViewer(table); tableViewer.setContentProvider(new ArrayContentProvider()); tableViewer.setInput(this.domain.getResourceSet().getResources()); tableViewer.setColumnProperties(columnNames); tableViewer.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { cell.setText(((Resource) cell.getElement()).getURI().toString()); } }); TableColumn tc0 = new TableColumn(table, SWT.LEFT); tc0.setText(columnNames[0]); tc0.setWidth(150); table.setHeaderVisible(true); table.setLinesVisible(true); } Group container = new Group(parent, SWT.BORDER); container.setText(Messages.FilteredLoadResourceDialog_ResourcePatterns); FillLayout containerLayout = new FillLayout(); containerLayout.type = SWT.VERTICAL; containerLayout.marginHeight = 5; containerLayout.marginWidth = 5; containerLayout.spacing = 5; container.setLayout(containerLayout); container.setLayoutData(new GridData(GridData.FILL_BOTH)); Table table = new Table(container, SWT.CHECK | SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI); String[] columnNames = { Messages.FilteredLoadResourceDialog_ResourcePattern, Messages.FilteredLoadResourceDialog_ResourcePatternDescription }; TableColumn tc0 = new TableColumn(table, SWT.LEFT); tc0.setText(columnNames[0]); tc0.setWidth(100); TableColumn tc1 = new TableColumn(table, SWT.LEFT); tc1.setText(columnNames[1]); tc1.setWidth(140); CheckboxTableViewer tableViewer = new CheckboxTableViewer(table); tableViewer.setContentProvider(new ArrayContentProvider()); tableViewer.setInput(resourcePatterns); tableViewer.setColumnProperties(columnNames); tableViewer.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { if (cell.getColumnIndex() == 0) cell.setText(((ResourceFilePattern) cell.getElement()).getPattern()); else if (cell.getColumnIndex() == 1) cell.setText(((ResourceFilePattern) cell.getElement()).getDescription()); } }); tableViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent e) { ResourceFilePattern r = (ResourceFilePattern) e.getElement(); if (!filter.isRegisteredExtensionPattern(r.getPattern())) { filter.registerExtensionPattern(r.getPattern()); } else filter.unregisterExtensionPattern(r.getPattern()); } }); tableViewer.setAllChecked(true); table.setHeaderVisible(true); table.setLinesVisible(true); return super.createDialogArea(parent); }