List of usage examples for org.eclipse.jface.viewers ViewerCell getControl
public Control getControl()
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.AbstractIconDialogWithScopeAndFilter.java
License:Open Source License
@Override protected void rebuildViewer() { super.rebuildViewer(); getViewer().getTable().setHeaderVisible(true); ((GridData) getViewer().getTable().getLayoutData()).minimumHeight = 100; TableViewerColumn colIcon = new TableViewerColumn(getViewer(), SWT.NONE); colIcon.getColumn().setText(Messages.AbstractIconDialogWithScopeAndFilter_icon); TableViewerColumn colText = new TableViewerColumn(getViewer(), SWT.NONE); colText.getColumn().setText(Messages.AbstractIconDialogWithScopeAndFilter_details); // resize the row height using a MeasureItem listener getViewer().getTable().addListener(SWT.MeasureItem, new Listener() { @Override/*w ww .j a v a 2s . c o m*/ public void handleEvent(Event event) { // height cannot be per row so simply set event.height = maxDisplayedImageSize; } }); colIcon.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { IFile file; if (cell.getElement() instanceof ContributionData) { file = new ContributionDataFile((ContributionData) cell.getElement()); } else if (cell.getElement() instanceof Entry) { file = ((Entry) cell.getElement()).file; } else { file = (IFile) cell.getElement(); } Image img = icons.get(file); if (img == null) { InputStream in = null; try { in = file.getContents(); img = new Image(cell.getControl().getDisplay(), in); icons.put(file, img); } catch (Exception e) { // e.printStackTrace(); return; } finally { if (in != null) { try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block // e.printStackTrace(); } } } } // scale image if larger then max height // also remember max width for column resizing if (img != null) { double scale1 = ((double) maxDisplayedImageSize) / img.getImageData().height; double scale2 = ((double) maxDisplayedImageSize) / img.getImageData().width; if (scale2 < scale1) { scale1 = scale2; } if (scale1 < 1) { int width = (int) (img.getImageData().width * scale1); if (width == 0) width = 1; int height = (int) (img.getImageData().height * scale1); if (height == 0) height = 1; Image img2 = new Image(img.getDevice(), img.getImageData().scaledTo(width, height)); img.dispose(); img = img2; icons.put(file, img); } int width = AbstractIconDialogWithScopeAndFilter.this.getViewer().getTable().getColumn(0) .getWidth(); if (img.getImageData().width > width) { AbstractIconDialogWithScopeAndFilter.this.getViewer().getTable().getColumn(0) .setWidth(img.getImageData().width); } int height = img.getImageData().height; if (height > maxImageHeight) { maxImageHeight = height; } } cell.setImage(img); } }); colIcon.getColumn().setWidth(30); colText.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { IFile file; String installLocation = null; if (cell.getElement() instanceof ContributionData) { ContributionData contributionData = (ContributionData) cell.getElement(); file = new ContributionDataFile(contributionData); installLocation = contributionData.installLocation; } else if (cell.getElement() instanceof Entry) { file = ((Entry) cell.getElement()).file; installLocation = ((Entry) cell.getElement()).installLocation; } else { file = (IFile) cell.getElement(); } StyledString styledString = new StyledString(file.getProjectRelativePath().toString(), null); String bundle = FilteredContributionDialog.getBundle(file); if (bundle != null) { styledString.append(" - " + bundle, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } else if (installLocation != null) { styledString.append(" - " + installLocation, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } }); colText.getColumn().setWidth(400); getShell().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { clearImages(); } }); }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.ComponentLabelProvider.java
License:Open Source License
@Override public void update(final ViewerCell cell) { if (cell.getElement() instanceof EObject) { EObject o = (EObject) cell.getElement(); AbstractComponentEditor elementEditor = editor.getEditor(o.eClass()); if (elementEditor != null) { String label = elementEditor.getLabel(o); String detailText = elementEditor.getDetailLabel(o); Styler styler = null;//from www . ja v a 2 s . c o m if (o instanceof MUIElement) { if (!((MUIElement) o).isVisible() && !((MUIElement) o).isToBeRendered()) { label += "<" + Messages.ComponentLabelProvider_invisible + "/" //$NON-NLS-1$//$NON-NLS-2$ + Messages.ComponentLabelProvider_notrendered + ">"; //$NON-NLS-1$ styler = BOTH_STYLER; } else if (!((MUIElement) o).isVisible()) { label += "<" + Messages.ComponentLabelProvider_invisible + ">"; //$NON-NLS-1$//$NON-NLS-2$ styler = NOT_VISIBLE_STYLER; } else if (!((MUIElement) o).isToBeRendered()) { label += "<" + Messages.ComponentLabelProvider_notrendered + ">"; //$NON-NLS-1$ //$NON-NLS-2$ styler = NOT_RENDERED_STYLER; } } if (detailText == null) { StyledString styledString = new StyledString(label, styler); cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } else { StyledString styledString = new StyledString(label, styler); styledString.append(" - " + detailText, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } cell.setImage(elementEditor.getImage(o, cell.getControl().getDisplay())); } else { cell.setText(cell.getElement().toString()); } } else if (cell.getElement() instanceof VirtualEntry<?>) { String s = cell.getElement().toString(); if (font == null) { FontData[] data = cell.getControl().getFont().getFontData(); font = new Font(cell.getControl().getDisplay(), new FontData(data[0].getName(), data[0].getHeight(), SWT.ITALIC)); } cell.setFont(font); cell.setText(s); } else { cell.setText(cell.getElement().toString()); } }
From source file:org.eclipse.emf.ecp.edit.internal.swt.controls.ECPFocusCellDrawHighlighter.java
License:Open Source License
private void markFocusedCell(Event event, ViewerCell cell) { Color background = cell.getControl().isFocusControl() ? getSelectedCellBackgroundColor(cell) : getSelectedCellBackgroundColorNoFocus(cell); Color foreground = cell.getControl().isFocusControl() ? getSelectedCellForegroundColor(cell) : getSelectedCellForegroundColorNoFocus(cell); if (foreground != null || background != null || onlyTextHighlighting(cell)) { // GC gc = event.gc; if (background == null) { background = cell.getItem().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION); }// w ww . jav a 2s . c o m if (foreground == null) { foreground = cell.getItem().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT); } // gc.setBackground(background); // gc.setForeground(foreground); // // if (onlyTextHighlighting(cell)) { // Rectangle area = event.getBounds(); // Rectangle rect = cell.getTextBounds(); // if( rect != null ) { // area.x = rect.x; // } // gc.fillRectangle(area); // } else { // gc.fillRectangle(event.getBounds()); // } cell.setBackground(background); cell.setForeground(foreground); // event.detail &= ~SWT.SELECTED; } }
From source file:org.eclipse.emf.examples.library.databinding.common.FocusCellOwnerDrawHighlighter.java
License:Open Source License
private void markFocusedCell(Event event, ViewerCell cell) { Color background = (cell.getControl().isFocusControl()) ? getSelectedCellBackgroundColor(cell) : getSelectedCellBackgroundColorNoFocus(cell); Color foreground = (cell.getControl().isFocusControl()) ? getSelectedCellForegroundColor(cell) : getSelectedCellForegroundColorNoFocus(cell); if (foreground != null || background != null || onlyTextHighlighting(cell)) { GC gc = event.gc;/*from www . ja va 2 s .com*/ if (background == null) { background = cell.getItem().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION); } if (foreground == null) { foreground = cell.getItem().getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT); } gc.setBackground(background); gc.setForeground(foreground); if (onlyTextHighlighting(cell)) { Rectangle area = event.getBounds(); Rectangle rect = cell.getTextBounds(); if (rect != null) { area.x = rect.x; } gc.fillRectangle(area); } else { gc.fillRectangle(event.getBounds()); } event.detail &= ~SWT.SELECTED; } }
From source file:org.eclipse.emf.examples.library.databinding.common.FocusCellOwnerDrawHighlighter.java
License:Open Source License
protected void focusCellChanged(ViewerCell newCell, ViewerCell oldCell) { super.focusCellChanged(newCell, oldCell); // Redraw new area if (newCell != null) { Rectangle rect = newCell.getBounds(); int x = newCell.getColumnIndex() == 0 ? 0 : rect.x; int width = newCell.getColumnIndex() == 0 ? rect.x + rect.width : rect.width; // 1 is a fix for Linux-GTK newCell.getControl().redraw(x, rect.y - 1, width, rect.height + 1, true); }//w w w . j a v a 2 s . co m if (oldCell != null) { Rectangle rect = oldCell.getBounds(); int x = oldCell.getColumnIndex() == 0 ? 0 : rect.x; int width = oldCell.getColumnIndex() == 0 ? rect.x + rect.width : rect.width; // 1 is a fix for Linux-GTK oldCell.getControl().redraw(x, rect.y - 1, width, rect.height + 1, true); } }
From source file:org.eclipse.jface.snippets.viewers.FocusBorderCellHighlighter.java
License:Open Source License
@Override protected void focusCellChanged(ViewerCell cell) { super.focusCellChanged(cell); // Redraw new area if (cell != null) { Rectangle rect = cell.getBounds(); int x = cell.getColumnIndex() == 0 ? 0 : rect.x; int width = cell.getColumnIndex() == 0 ? rect.x + rect.width : rect.width; cell.getControl().redraw(x, rect.y, width, rect.height, true); }/*from ww w . ja v a 2 s . com*/ if (oldCell != null) { Rectangle rect = oldCell.getBounds(); int x = oldCell.getColumnIndex() == 0 ? 0 : rect.x; int width = oldCell.getColumnIndex() == 0 ? rect.x + rect.width : rect.width; oldCell.getControl().redraw(x, rect.y, width, rect.height, true); } this.oldCell = cell; }
From source file:org.eclipse.rcptt.ui.actions.Q7ElementLabelProvider.java
License:Open Source License
@Override public void update(ViewerCell cell) { Object element = cell.getElement(); Control ctrl = cell.getControl(); Widget item = cell.getViewerRow().getItem(); int index = 0; if (ctrl instanceof Tree) { index = ((Tree) ctrl).indexOf((TreeItem) item); } else if (ctrl instanceof Table) { index = ((Table) ctrl).indexOf((TableItem) item); }/*from w w w.j ava2s. c om*/ StyledString styled = getStyledText(element, index); cell.setText(styled.getString()); cell.setStyleRanges(styled.getStyleRanges()); cell.setImage(getImage(element)); }
From source file:org.eclipse.wazaabi.engine.swt.commons.views.collections.ColumnManager.java
License:Open Source License
protected void createViewerColumn(final org.eclipse.swt.widgets.Widget w, final AbstractColumnDescriptor columnDescriptor, final int columnIndex) { ViewerColumn viewerColumn = null;//ww w . ja v a 2 s . co m if (w instanceof org.eclipse.swt.widgets.Tree) { viewerColumn = new TreeViewerColumn((TreeViewer) collectionView.getViewer(), getSWTColumnHeaderStyle(columnDescriptor)); // TODO : not supported yet // viewerColumn.getColumn().setMoveable(true); final TreeColumn column = ((TreeViewerColumn) viewerColumn).getColumn(); column.setText(columnDescriptor.getLabel() != null ? columnDescriptor.getLabel() : "");//$NON-NLS-1$ if (getSWTWidget() instanceof org.eclipse.swt.widgets.Composite && ((org.eclipse.swt.widgets.Composite) getSWTWidget()) .getLayout() instanceof AbstractColumnLayout) { ColumnLayoutData columnLayoutData = null; if (columnDescriptor.eClass() == CoreCollectionsStylesPackage.Literals.COLUMN_DESCRIPTOR) columnLayoutData = new ColumnPixelData(((ColumnDescriptor) columnDescriptor).getWidth(), columnDescriptor.isResizable()); else if (columnDescriptor .eClass() == CoreCollectionsStylesPackage.Literals.WEIGHTED_COLUMN_DESCRIPTOR) columnLayoutData = new ColumnWeightData( ((WeightedColumnDescriptor) columnDescriptor).getWeight(), ((WeightedColumnDescriptor) columnDescriptor).getMinimumWidth(), columnDescriptor.isResizable()); ((AbstractColumnLayout) ((org.eclipse.swt.widgets.Composite) getSWTWidget()).getLayout()) .setColumnData(column, columnLayoutData); } } else if (w instanceof org.eclipse.swt.widgets.Table) { viewerColumn = new TableViewerColumn((TableViewer) collectionView.getViewer(), getSWTColumnHeaderStyle(columnDescriptor)); // TODO : not supported yet // viewerColumn.getColumn().setMoveable(true); ((TableViewerColumn) viewerColumn).getColumn() .setText(columnDescriptor.getLabel() != null ? columnDescriptor.getLabel() : "");//$NON-NLS-1$ final TableColumn column = ((TableViewerColumn) viewerColumn).getColumn(); column.setText(columnDescriptor.getLabel() != null ? columnDescriptor.getLabel() : "");//$NON-NLS-1$ if (getSWTWidget() instanceof org.eclipse.swt.widgets.Composite && ((org.eclipse.swt.widgets.Composite) getSWTWidget()) .getLayout() instanceof AbstractColumnLayout) { ColumnLayoutData columnLayoutData = null; if (columnDescriptor.eClass() == CoreCollectionsStylesPackage.Literals.COLUMN_DESCRIPTOR) columnLayoutData = new ColumnPixelData(((ColumnDescriptor) columnDescriptor).getWidth(), columnDescriptor.isResizable()); else if (columnDescriptor .eClass() == CoreCollectionsStylesPackage.Literals.WEIGHTED_COLUMN_DESCRIPTOR) columnLayoutData = new ColumnWeightData( ((WeightedColumnDescriptor) columnDescriptor).getWeight(), ((WeightedColumnDescriptor) columnDescriptor).getMinimumWidth(), columnDescriptor.isResizable()); ((AbstractColumnLayout) ((org.eclipse.swt.widgets.Composite) getSWTWidget()).getLayout()) .setColumnData(column, columnLayoutData); } } if (viewerColumn != null) { if (collectionView.getLabelProvider() instanceof PathSelectorLabelProvider) { final PathSelectorLabelProvider labelProvider = (PathSelectorLabelProvider) collectionView .getLabelProvider(); viewerColumn.setLabelProvider(new ColumnLabelProvider() { public String getText(Object element) { return labelProvider.getColumnText(element, columnIndex); } public Image getImage(Object element) { return labelProvider.getColumnImage(element, columnIndex); } }); } else if (collectionView.getLabelProvider() instanceof DynamicLabelProvider) { final DynamicLabelProvider labelProvider = (DynamicLabelProvider) collectionView.getLabelProvider(); viewerColumn.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { final Object element = cell.getElement(); final int columnIndex = cell.getColumnIndex(); final Display display = cell.getControl().getDisplay(); cell.setText(labelProvider.getColumnText(element, columnIndex)); cell.setImage(labelProvider.getColumnImage(element, columnIndex)); final Color foreground = labelProvider.getForegroundColor(element, columnIndex, display); if (foreground != null) cell.setForeground(foreground); final Color background = labelProvider.getBackgroundColor(element, columnIndex, display); if (background != null) cell.setBackground(background); final Font font = labelProvider.getFont(element, columnIndex, display, cell.getFont()); if (font != null) cell.setFont(font); super.update(cell); } }); } else viewerColumn.setLabelProvider(new ColumnLabelProvider() { public String getText(Object element) { return element != null ? element.toString() : ""; //$NON-NLS-1$ } }); if (columnDescriptor.getEditingSupport() != null) { DynamicEditingSupport dynamicEditingSupport = new DynamicEditingSupport(this, columnDescriptor); dynamicEditingSupports.put(columnDescriptor, dynamicEditingSupport); viewerColumn.setEditingSupport(dynamicEditingSupport); } } }
From source file:org.eclipsetrader.ui.internal.views.ViewItemLabelProvider.java
License:Open Source License
protected void updateBackground(ViewerCell cell) { if (cell.getControl() instanceof Table && cell.getItem() instanceof TableItem) { int rowIndex = ((Table) cell.getControl()).indexOf((TableItem) cell.getItem()); cell.setBackground((rowIndex & 1) != 0 ? oddRowsColor : evenRowsColor); IViewItem element = (IViewItem) cell.getElement(); ISessionData data = (ISessionData) element.getAdapter(ISessionData.class); if (data != null) { int[] timers = (int[]) data.getData(K_FADE_LEVELS); int columnIndex = cell.getColumnIndex(); if (timers != null && columnIndex < timers.length) { if (timers[columnIndex] > 0) { switch (timers[columnIndex]) { case 4: cell.setBackground((rowIndex & 1) != 0 ? tickOddRowsFade[0] : tickEvenRowsFade[0]); break; case 3: cell.setBackground((rowIndex & 1) != 0 ? tickOddRowsFade[1] : tickEvenRowsFade[1]); break; case 2: cell.setBackground((rowIndex & 1) != 0 ? tickOddRowsFade[2] : tickEvenRowsFade[2]); break; case 1: break; default: cell.setBackground(tickBackgroundColor); break; }//from ww w . j a v a 2s.c om } } } } else { cell.setBackground(evenRowsColor); IViewItem element = (IViewItem) cell.getElement(); ISessionData data = (ISessionData) element.getAdapter(ISessionData.class); if (data != null) { int[] timers = (int[]) data.getData(K_FADE_LEVELS); int columnIndex = cell.getColumnIndex(); if (timers != null && columnIndex < timers.length) { if (timers[columnIndex] > 0) { switch (timers[columnIndex]) { case 4: cell.setBackground(tickEvenRowsFade[0]); break; case 3: cell.setBackground(tickEvenRowsFade[1]); break; case 2: cell.setBackground(tickEvenRowsFade[2]); break; case 1: break; default: cell.setBackground(tickBackgroundColor); break; } } } } } }
From source file:org.eclipsetrader.ui.internal.views.WatchListViewCellLabelProvider.java
License:Open Source License
@Override public void update(ViewerCell cell) { WatchListViewItem element = (WatchListViewItem) cell.getElement(); IAdaptable adaptableValue = (IAdaptable) attributeMaps[0].get(element); WatchListViewCellAttribute attribute = (WatchListViewCellAttribute) attributeMaps[1].get(element); if (adaptableValue == null) { return;/* ww w.j a va 2s. c o m*/ } if (!objectEquals(adaptableValue, valueMap.get(element))) { String text = (String) adaptableValue.getAdapter(String.class); if (text == null) { text = ""; //$NON-NLS-1$ } if (!text.equals(cell.getText())) { cell.setText(text); } cell.setForeground((Color) adaptableValue.getAdapter(Color.class)); cell.setFont((Font) adaptableValue.getAdapter(Font.class)); ImageData imageData = (ImageData) adaptableValue.getAdapter(ImageData.class); if (imageData != null) { imageData.transparentPixel = imageData.palette.getPixel(new RGB(255, 255, 255)); Image newImage = new Image(Display.getDefault(), imageData); Image oldImage = cell.getImage(); cell.setImage(newImage); if (oldImage != null) { oldImage.dispose(); } } else { Image image = (Image) adaptableValue.getAdapter(Image.class); cell.setImage(image != null && image.isDisposed() ? null : image); } valueMap.put(element, adaptableValue); } if (!objectEquals(attribute, decoratorMap.get(element))) { if (ownerDrawEnabled) { cell.setBackground(null); Rectangle rect = cell.getBounds(); cell.getControl().redraw(rect.x, rect.y, rect.width, rect.height, false); } else { if (attribute == null) { cell.setBackground(null); } else { TableItem tableItem = (TableItem) cell.getViewerRow().getItem(); int rowIndex = tableItem.getParent().indexOf(tableItem); if ((rowIndex & 1) != 0) { if (attribute.oddBackground == null || !attribute.oddBackground.isDisposed()) { cell.setBackground(attribute.oddBackground); } } else { if (attribute.evenBackground == null || !attribute.evenBackground.isDisposed()) { cell.setBackground(attribute.evenBackground); } } } } decoratorMap.put(element, attribute); } }