List of usage examples for org.eclipse.jface.viewers ViewerCell setBackground
public void setBackground(Color background)
From source file:org.eclipse.scada.da.ui.summary.explorer.NameLabelProviderImpl.java
License:Open Source License
@Override public void update(final ViewerCell cell) { final Object element = cell.getElement(); if (element instanceof TreeNode) { final TreeNode node = (TreeNode) element; cell.setText(node.getName());/*from w ww . ja va2 s . c om*/ final CurrentStyle style = node.getStyle(); cell.setImage(style.image); cell.setFont(style.font); cell.setForeground(style.foreground); cell.setBackground(style.background); } }
From source file:org.eclipse.scada.da.ui.widgets.realtime.ItemCellLabelProvider.java
License:Open Source License
private void updateListEntry(final ListEntry listEntry, final ViewerCell cell) { cell.setFont(listEntry.getFont());/* w ww.j ava 2s . com*/ cell.setForeground(listEntry.getForeground()); cell.setBackground(listEntry.getBackground()); switch (cell.getColumnIndex()) { case 0: cell.setImage(listEntry.getImage()); cell.setText(listEntry.getDataItem().getItem().getId()); break; case 1: if (listEntry.getSubscriptionError() != null) { cell.setText(String.format("%s (%s)", listEntry.getSubscriptionState(), //$NON-NLS-1$ listEntry.getSubscriptionError().getMessage())); } else { cell.setText(listEntry.getSubscriptionState().name()); } break; case 2: if (listEntry.getValue() != null) { cell.setText(listEntry.getValue().getType().name()); } break; case 3: if (listEntry.getValue() != null) { cell.setText(listEntry.getValue().asString("<null>")); //$NON-NLS-1$ } break; case 4: if (listEntry.getItemValue() != null) { final Calendar timestamp = listEntry.getItemValue().getTimestamp(); if (timestamp != null) { cell.setText(formatTimestamp(timestamp)); } else { cell.setText(null); } } break; default: break; } }
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;/*w ww . j av a2 s. c o 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 www . j a va2s.c o m } } } } 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;//from w ww. jav a2s .co 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); } }
From source file:org.eclipsetrader.ui.trading.OrdersLabelProviderWrapper.java
License:Open Source License
@Override public void update(ViewerCell cell) { Object element = cell.getElement(); cell.setText(labelProvider.getText(element)); cell.setImage(labelProvider.getImage(element)); cell.setBackground(labelProvider.getBackground(element)); Color color = labelProvider.getForeground(element); cell.setForeground(color != null ? color : getForeground(element)); cell.setFont(labelProvider.getFont(element)); }
From source file:org.emftrace.quarc.ui.views.PropertiesView.java
License:Open Source License
/** * fills the TableViewer with ratings//from w w w. j a v a2 s .c o m * @param tableViewer a TableViewer * @param builder the AbstractElementGraphBuilder * @param builder the AbstractElementGraphBuilder * @param heatmapCheckbox the heatmap checkbox * @param symbolsCheckbox the symbols checkbox * @grlSymbolsCheckbox the GRL symbols checkbox * @param attributeExplorerCheckbox the attribute explorer checkbox * @param thresholdSpinner the threshold Spinner * @param thresholdScale the threshold Scale * @param thresholdCombo the threshold Combo * @param showRatingsToGoals show Ratings to Goals (true) of Priniplies (false) */ private void fillTable(final TableViewer tableViewer, final AbstractElementGraphBuilder builder, final Button heatmapCheckbox, final Button symbolsCheckbox, final Button grlSymbolsCheckbox, final Button attributeExplorerCheckbox, final Spinner thresholdSpinner, final Scale thresholdScale, final Combo thresholdCombo, final boolean showRatingsToGoals) { TableViewerColumn indexColumn = new TableViewerColumn(tableViewer, SWT.NONE); TableViewerColumn nameColumn = new TableViewerColumn(tableViewer, SWT.NONE); indexColumn.getColumn().setText("rank"); indexColumn.getColumn().setWidth(75); indexColumn.getColumn().setToolTipText("the rank of the alternative element"); nameColumn.getColumn().setText("name"); nameColumn.getColumn().setWidth(250); nameColumn.getColumn().setToolTipText("the name of the alternative element"); heatmapCheckbox.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { tableViewer.refresh(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); thresholdSpinner.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { tableViewer.refresh(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); thresholdScale.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { tableViewer.refresh(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); attributeExplorerCheckbox.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { tableViewer.refresh(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); thresholdCombo.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { tableViewer.refresh(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); symbolsCheckbox.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { tableViewer.refresh(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); grlSymbolsCheckbox.addSelectionListener(new SelectionListener() { @Override public void widgetSelected(SelectionEvent e) { tableViewer.refresh(); } @Override public void widgetDefaultSelected(SelectionEvent e) { } }); nameColumn.setLabelProvider(new CellLabelProvider() { public void update(ViewerCell cell) { cell.setText(((Element) cell.getElement()).getName()); } }); indexColumn.setLabelProvider(new CellLabelProvider() { public void update(ViewerCell cell) { cell.setText(String.valueOf(tableViewer.getTable().indexOf((TableItem) cell.getItem()) + 1)); // +1 due to index // starts with 0 } }); new ColumnViewerSorter(tableViewer, nameColumn) { protected int doCompare(Viewer viewer, Object e1, Object e2) { return ((Element) e1).getName().compareTo(((Element) e2).getName()); } }; final HashMap<TableColumn, Element> elementColumnMap = new HashMap<TableColumn, Element>(); /////add an ExpandListener to all nodes final IExpandListener expandListener = new IExpandListener() { @Override public void expanded() { tableViewer.refresh(); } @Override public void collapsed() { tableViewer.refresh(); } }; for (Object node : builder.getZestGraph().getNodes()) { if (node instanceof GSSElementGraphNode) { ((GSSElementGraphNode) node).getElementFigure().addExpandListener(expandListener); } } /////remove the ExpandListener after dispose tableViewer.getTable().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { for (Object node : builder.getZestGraph().getNodes()) { if (node instanceof GSSElementGraphNode) { ((GSSElementGraphNode) node).getElementFigure().removeExpandListener(expandListener); } } } }); //the content provider ///show elements of visible nodes only tableViewer.setContentProvider(new ArrayContentProvider() { @Override public Object[] getElements(Object inputElement) { @SuppressWarnings("unchecked") //TODO suppresswarning! List<Element> inputList = (List<Element>) inputElement; List<Element> result = new ArrayList<Element>(); for (Element e : inputList) { if (builder.getNodeForElement(e).isVisbile()) result.add(e); } Element[] output = new Element[result.size()]; int i = 0; for (Element e : result) { output[i] = e; i++; } return output; } }); final List<Element> leafElements = new ArrayList<Element>(); final List<Element> markedLeafElements = new ArrayList<Element>(); boolean hasMarkedElements = !builder.getSelectedElements().isEmpty(); if (showRatingsToGoals) { leafElements.addAll(builder.getCacheManager().getLeafApplicableElementElements(GSSLayer.layer1)); if (hasMarkedElements) markedLeafElements.addAll(builder.getMarkedLeafGoals()); } else { leafElements.addAll(builder.getCacheManager().getLeafApplicableElementElements(GSSLayer.layer3)); if (hasMarkedElements) markedLeafElements.addAll(builder.getMarkedLeafPrinciples()); } boolean weightsIncluded = false; if (showRatingsToGoals) weightsIncluded = !builder.getCacheManager().getSelectedGoals().isEmpty(); else weightsIncluded = !builder.getCacheManager().getSelectedPrinciples().isEmpty(); for (final Object leafElement : leafElements) { // if (leafElement instanceof GSS.Goal) { if (weightsIncluded) { final TableViewerColumn weightedImpactViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE); elementColumnMap.put(weightedImpactViewerColumn.getColumn(), (Element) leafElement); Float priority = null; if (leafElement instanceof Goal) { priority = builder.getCacheManager().getSelectedGoalPriority((Goal) leafElement); } else if (leafElement instanceof Principle) { priority = builder.getCacheManager().getSelectedPrinciplePriority((Principle) leafElement); } if (priority == null) priority = 0.0f; weightedImpactViewerColumn.getColumn() .setText(String.format("%s (%.2f)", ((Element) leafElement).getName(), priority)); weightedImpactViewerColumn.getColumn() .setToolTipText("the weighted rating to " + ((Element) leafElement).getName()); weightedImpactViewerColumn.getColumn().setWidth(100); weightedImpactViewerColumn.getColumn().setMoveable(true); weightedImpactViewerColumn.getColumn().setResizable(true); new ColumnViewerSorter(tableViewer, weightedImpactViewerColumn) { protected int doCompare(Viewer viewer, Object e1, Object e2) { Element element = elementColumnMap.get(tableViewer.getTable().getSortColumn()); Float v1 = calcWeightedImpact(builder, element, (Element) e1); Float v2 = calcWeightedImpact(builder, element, (Element) e2); return v1.compareTo(v2); } }; weightedImpactViewerColumn.setLabelProvider(new CellLabelProvider() { public void update(ViewerCell cell) { String weightString = calcWeightedImpactString(builder, (Element) leafElement, (Element) cell.getElement()); float impact = calcWeightedImpact(builder, (Element) leafElement, (Element) cell.getElement()); Color backgroundColor = null; Color foregroundColor = null; if (symbolsCheckbox.getSelection()) { setSymbol(cell, impact); } else if (grlSymbolsCheckbox.getSelection()) { setGRLSymbol(cell, impact); } else { cell.setFont(Display.getDefault().getSystemFont()); cell.setText(weightString); } if (attributeExplorerCheckbox.getSelection()) { if (impact >= thresholdSpinner.getSelection()) { backgroundColor = new Color(null, 255, 255, 0); foregroundColor = new Color(null, 0, 0, 0); } else { backgroundColor = new Color(null, 255, 255, 255); foregroundColor = new Color(null, 0, 0, 0); } } else if (heatmapCheckbox.getSelection()) { backgroundColor = DefaultColors.getBackgroundColor(impact); foregroundColor = DefaultColors.getForegroundColor(impact); } else { backgroundColor = new Color(null, 255, 255, 255); foregroundColor = new Color(null, 0, 0, 0); } cell.setBackground(backgroundColor); cell.setForeground(foregroundColor); } }); } final TableViewerColumn unweightedImpactViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE); elementColumnMap.put(unweightedImpactViewerColumn.getColumn(), (Element) leafElement); unweightedImpactViewerColumn.getColumn() .setText(String.format("%s", ((Element) leafElement).getName())); unweightedImpactViewerColumn.getColumn() .setToolTipText("the rating to " + ((Element) leafElement).getName()); unweightedImpactViewerColumn.getColumn().setWidth(100); unweightedImpactViewerColumn.getColumn().setMoveable(true); unweightedImpactViewerColumn.getColumn().setResizable(true); new ColumnViewerSorter(tableViewer, unweightedImpactViewerColumn) { protected int doCompare(Viewer viewer, Object e1, Object e2) { Element element = elementColumnMap.get(tableViewer.getTable().getSortColumn()); Float v1 = getRating(builder, element, (Element) e1); Float v2 = getRating(builder, element, (Element) e2); return v1.compareTo(v2); } }; unweightedImpactViewerColumn.setLabelProvider(new CellLabelProvider() { public void update(ViewerCell cell) { String weightString = getRatingString(builder, (Element) leafElement, (Element) cell.getElement()); float impact = getRating(builder, (Element) leafElement, (Element) cell.getElement()); Color backgroundColor = null; Color foregroundColor = null; if (symbolsCheckbox.getSelection()) { setSymbol(cell, impact); } else if (grlSymbolsCheckbox.getSelection()) { setGRLSymbol(cell, impact); } else { cell.setFont(Display.getDefault().getSystemFont()); cell.setText(weightString); } if (attributeExplorerCheckbox.getSelection()) { if (impact >= thresholdSpinner.getSelection()) { backgroundColor = new Color(null, 255, 255, 0); foregroundColor = new Color(null, 0, 0, 0); } else { backgroundColor = new Color(null, 255, 255, 255); foregroundColor = new Color(null, 0, 0, 0); } } else if (heatmapCheckbox.getSelection()) { backgroundColor = DefaultColors.getBackgroundColor(impact); foregroundColor = DefaultColors.getForegroundColor(impact); } else { backgroundColor = new Color(null, 255, 255, 255); foregroundColor = new Color(null, 0, 0, 0); } cell.setBackground(backgroundColor); cell.setForeground(foregroundColor); } }); // } } setCalculators(leafElements, builder, tableViewer, symbolsCheckbox, grlSymbolsCheckbox, heatmapCheckbox, attributeExplorerCheckbox, thresholdSpinner, weightsIncluded, "[global]", "of all seleted goals"); if (hasMarkedElements) setCalculators(markedLeafElements, builder, tableViewer, symbolsCheckbox, grlSymbolsCheckbox, heatmapCheckbox, attributeExplorerCheckbox, thresholdSpinner, weightsIncluded, "[selection]", "of the currently selection of the seleted goals only"); }
From source file:org.emftrace.quarc.ui.views.PropertiesView.java
License:Open Source License
private void setCalculators(List<Element> leafElements, AbstractElementGraphBuilder builder, final TableViewer tableViewer, final Button symbolsCheckbox, final Button grlSymbolsCheckbox, final Button heatmapCheckbox, final Button filterEnabledCheckbox, final Spinner thresholdSpinner, boolean weightsIncluded, String decoratorString, String tooltipDecoratorString) { HashMap<String, AbstractCalculator> calculators = new HashMap<String, AbstractCalculator>(); decoratorString = " " + decoratorString; final HashMap<TableColumn, AbstractCalculator> calculatorsColumnMap = new HashMap<TableColumn, AbstractCalculator>(); calculators.put("max", new MaxCalculator(leafElements, builder.getCacheManager())); calculators.put("min", new MinCalculator(leafElements, builder.getCacheManager())); calculators.put("avg", new AvgCalculator(leafElements, builder.getCacheManager())); if (weightsIncluded) { calculators.put("weighted max", new WeightedMaxCalculator(leafElements, builder.getCacheManager())); calculators.put("weighted min", new WeightedMinCalculator(leafElements, builder.getCacheManager())); calculators.put("weighted avg", new WeightedAvgCalculator(leafElements, builder.getCacheManager())); }//w ww . j av a 2s .co m for (Entry<String, AbstractCalculator> entry : calculators.entrySet()) { final AbstractCalculator calculator = entry.getValue(); String caption = entry.getKey(); final TableViewerColumn viewerColumn = new TableViewerColumn(tableViewer, SWT.NONE); TableColumn tableColumn = viewerColumn.getColumn(); calculatorsColumnMap.put(tableColumn, calculator); tableColumn.setText(caption + decoratorString); tableColumn.setToolTipText(caption + " " + tooltipDecoratorString); tableColumn.setWidth(100); tableColumn.setMoveable(true); tableColumn.setResizable(true); viewerColumn.setLabelProvider(new CellLabelProvider() { public void update(ViewerCell cell) { Float weight = calculator.calcAggregation((ConstrainedElement) cell.getElement()); setCellTooltip(cell, weight); if (symbolsCheckbox.getSelection()) { setSymbol(cell, weight); } else if (grlSymbolsCheckbox.getSelection()) { setGRLSymbol(cell, weight); } else { String texString = calculator .calcAggregationAsString((ConstrainedElement) cell.getElement()); cell.setFont(Display.getDefault().getSystemFont()); cell.setText(texString); } Color backgroundColor = null; Color foregroundColor = null; if (filterEnabledCheckbox.getSelection()) { if (weight >= thresholdSpinner.getSelection()) { backgroundColor = new Color(null, 255, 255, 0); foregroundColor = new Color(null, 0, 0, 0); } else { backgroundColor = new Color(null, 255, 255, 255); foregroundColor = new Color(null, 0, 0, 0); } } else if (heatmapCheckbox.getSelection()) { backgroundColor = DefaultColors.getBackgroundColor(weight); foregroundColor = DefaultColors.getForegroundColor(weight); } else { backgroundColor = new Color(null, 255, 255, 255); foregroundColor = new Color(null, 0, 0, 0); } cell.setBackground(backgroundColor); cell.setForeground(foregroundColor); } }); new ColumnViewerSorter(tableViewer, viewerColumn) { protected int doCompare(Viewer viewer, Object e1, Object e2) { AbstractCalculator calculator = calculatorsColumnMap .get(tableViewer.getTable().getSortColumn()); Float v1 = calculator.calcAggregation((ConstrainedElement) e1); Float v2 = calculator.calcAggregation((ConstrainedElement) e2); return v1.compareTo(v2); } }; } }
From source file:org.jkiss.dbeaver.tools.transfer.database.ColumnsMappingDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { DBPDataSource targetDataSource = settings.getTargetDataSource(mapping); getShell().setText("Map columns of " + mapping.getTargetName()); boldFont = UIUtils.makeBoldFont(parent.getFont()); Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout(1, false)); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); new Label(composite, SWT.NONE).setText("Source entity: " + DBUtils.getObjectFullName(mapping.getSource()) + " [" + mapping.getSource().getDataSource().getContainer().getName() + "]"); new Label(composite, SWT.NONE).setText("Target entity: " + mapping.getTargetName() + " [" + (targetDataSource == null ? "?" : targetDataSource.getContainer().getName()) + "]"); mappingViewer = new TableViewer(composite, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); GridData gd = new GridData(GridData.FILL_BOTH); gd.widthHint = 600;//from w w w .j a v a 2 s. com gd.heightHint = 300; mappingViewer.getTable().setLayoutData(gd); mappingViewer.getTable().setLinesVisible(true); mappingViewer.getTable().setHeaderVisible(true); mappingViewer.setContentProvider(new ListContentProvider()); mappingViewer.getTable().addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { if (e.character == SWT.DEL) { for (TableItem item : mappingViewer.getTable().getSelection()) { DatabaseMappingAttribute attribute = (DatabaseMappingAttribute) item.getData(); attribute.setMappingType(DatabaseMappingType.skip); } updateStatus(Status.OK_STATUS); mappingViewer.refresh(); } else if (e.character == SWT.SPACE) { for (TableItem item : mappingViewer.getTable().getSelection()) { DatabaseMappingAttribute attribute = (DatabaseMappingAttribute) item.getData(); attribute.setMappingType(DatabaseMappingType.existing); try { attribute.updateMappingType(VoidProgressMonitor.INSTANCE); } catch (DBException e1) { updateStatus(GeneralUtils.makeExceptionStatus(e1)); } } mappingViewer.refresh(); } } }); { TableViewerColumn columnSource = new TableViewerColumn(mappingViewer, SWT.LEFT); columnSource.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { DatabaseMappingAttribute attrMapping = (DatabaseMappingAttribute) cell.getElement(); cell.setText(DBUtils.getObjectFullName(attrMapping.getSource())); if (attrMapping.getIcon() != null) { cell.setImage(DBeaverIcons.getImage(attrMapping.getIcon())); } } }); columnSource.getColumn().setText("Source Column"); columnSource.getColumn().setWidth(170); } { TableViewerColumn columnSourceType = new TableViewerColumn(mappingViewer, SWT.LEFT); columnSourceType.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { cell.setText(((DatabaseMappingAttribute) cell.getElement()).getSourceType()); } }); columnSourceType.getColumn().setText("Source Type"); columnSourceType.getColumn().setWidth(100); } { TableViewerColumn columnTarget = new TableViewerColumn(mappingViewer, SWT.LEFT); columnTarget.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { DatabaseMappingAttribute mapping = (DatabaseMappingAttribute) cell.getElement(); cell.setText(mapping.getTargetName()); if (mapping.mappingType == DatabaseMappingType.unspecified) { cell.setBackground( DBeaverUI.getSharedTextColors().getColor(SharedTextColors.COLOR_WARNING)); } else { cell.setBackground(null); } cell.setFont(boldFont); } }); columnTarget.getColumn().setText("Target Column"); columnTarget.getColumn().setWidth(170); columnTarget.setEditingSupport(new EditingSupport(mappingViewer) { @Override protected CellEditor getCellEditor(Object element) { try { java.util.List<String> items = new ArrayList<>(); DatabaseMappingAttribute mapping = (DatabaseMappingAttribute) element; if (mapping.getParent().getMappingType() == DatabaseMappingType.existing && mapping.getParent().getTarget() instanceof DBSEntity) { DBSEntity parentEntity = (DBSEntity) mapping.getParent().getTarget(); for (DBSEntityAttribute attr : CommonUtils .safeCollection(parentEntity.getAttributes(VoidProgressMonitor.INSTANCE))) { items.add(attr.getName()); } } items.add(DatabaseMappingAttribute.TARGET_NAME_SKIP); CustomComboBoxCellEditor editor = new CustomComboBoxCellEditor(mappingViewer.getTable(), items.toArray(new String[items.size()]), SWT.DROP_DOWN); updateStatus(Status.OK_STATUS); return editor; } catch (DBException e) { updateStatus(GeneralUtils.makeExceptionStatus(e)); return null; } } @Override protected boolean canEdit(Object element) { return true; } @Override protected Object getValue(Object element) { return ((DatabaseMappingAttribute) element).getTargetName(); } @Override protected void setValue(Object element, Object value) { try { String name = CommonUtils.toString(value); DatabaseMappingAttribute attrMapping = (DatabaseMappingAttribute) element; if (DatabaseMappingAttribute.TARGET_NAME_SKIP.equals(name)) { attrMapping.setMappingType(DatabaseMappingType.skip); } else { if (attrMapping.getParent().getMappingType() == DatabaseMappingType.existing && attrMapping.getParent().getTarget() instanceof DBSEntity) { DBSEntity parentEntity = (DBSEntity) attrMapping.getParent().getTarget(); for (DBSEntityAttribute attr : CommonUtils .safeCollection(parentEntity.getAttributes(VoidProgressMonitor.INSTANCE))) { if (name.equalsIgnoreCase(attr.getName())) { attrMapping.setTarget(attr); attrMapping.setMappingType(DatabaseMappingType.existing); return; } } } attrMapping.setMappingType(DatabaseMappingType.create); attrMapping.setTargetName(name); } updateStatus(Status.OK_STATUS); } catch (DBException e) { updateStatus(GeneralUtils.makeExceptionStatus(e)); } finally { mappingViewer.refresh(); } } }); } { TableViewerColumn columnTargetType = new TableViewerColumn(mappingViewer, SWT.LEFT); columnTargetType.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { DatabaseMappingAttribute attrMapping = (DatabaseMappingAttribute) cell.getElement(); DBPDataSource dataSource = settings.getTargetDataSource(attrMapping); cell.setText(attrMapping.getTargetType(dataSource)); cell.setFont(boldFont); } }); columnTargetType.getColumn().setText("Target Type"); columnTargetType.getColumn().setWidth(100); columnTargetType.setEditingSupport(new EditingSupport(mappingViewer) { @Override protected CellEditor getCellEditor(Object element) { DatabaseMappingAttribute attrMapping = (DatabaseMappingAttribute) element; Set<String> types = new LinkedHashSet<>(); DBPDataSource dataSource = settings.getTargetDataSource(attrMapping); if (dataSource instanceof DBPDataTypeProvider) { for (DBSDataType type : ((DBPDataTypeProvider) dataSource).getLocalDataTypes()) { types.add(type.getName()); } } types.add(attrMapping.getTargetType(dataSource)); return new CustomComboBoxCellEditor(mappingViewer.getTable(), types.toArray(new String[types.size()]), SWT.BORDER); } @Override protected boolean canEdit(Object element) { return true; } @Override protected Object getValue(Object element) { DatabaseMappingAttribute attrMapping = (DatabaseMappingAttribute) element; return attrMapping.getTargetType(settings.getTargetDataSource(attrMapping)); } @Override protected void setValue(Object element, Object value) { DatabaseMappingAttribute attrMapping = (DatabaseMappingAttribute) element; attrMapping.setTargetType(CommonUtils.toString(value)); mappingViewer.refresh(element); } }); } { TableViewerColumn columnType = new TableViewerColumn(mappingViewer, SWT.LEFT); columnType.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { DatabaseMappingAttribute mapping = (DatabaseMappingAttribute) cell.getElement(); String text = ""; switch (mapping.getMappingType()) { case unspecified: text = "?"; break; case existing: text = "existing"; break; case create: text = "new"; break; case skip: text = "skip"; break; } cell.setText(text); } }); columnType.getColumn().setText("Mapping"); columnType.getColumn().setWidth(60); } mappingViewer.setInput(attributeMappings); return parent; }
From source file:org.jkiss.dbeaver.tools.transfer.database.DatabaseConsumerPageMapping.java
License:Open Source License
private void createMappingsTree(Composite composite) { // Mapping table mappingViewer = new TreeViewer(composite, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); mappingViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); mappingViewer.getTree().setLinesVisible(true); mappingViewer.getTree().setHeaderVisible(true); TreeViewerColumn columnSource = new TreeViewerColumn(mappingViewer, SWT.LEFT); columnSource.setLabelProvider(new MappingLabelProvider() { @Override//w ww. j a v a2 s. c o m public void update(ViewerCell cell) { DatabaseMappingObject mapping = (DatabaseMappingObject) cell.getElement(); cell.setText(DBUtils.getObjectFullName(mapping.getSource())); if (mapping.getIcon() != null) { cell.setImage(DBeaverIcons.getImage(mapping.getIcon())); } super.update(cell); } }); columnSource.getColumn().setText("Source"); TreeViewerColumn columnTarget = new TreeViewerColumn(mappingViewer, SWT.LEFT); columnTarget.setLabelProvider(new MappingLabelProvider() { @Override public void update(ViewerCell cell) { DatabaseMappingObject mapping = (DatabaseMappingObject) cell.getElement(); cell.setText(mapping.getTargetName()); if (mapping.getMappingType() == DatabaseMappingType.unspecified) { cell.setBackground(DBeaverUI.getSharedTextColors().getColor(SharedTextColors.COLOR_WARNING)); } else { cell.setBackground(null); } super.update(cell); } }); columnTarget.getColumn().setText("Target"); columnTarget.setEditingSupport(new EditingSupport(mappingViewer) { @Override protected CellEditor getCellEditor(Object element) { try { CellEditor targetEditor = createTargetEditor(element); setErrorMessage(null); return targetEditor; } catch (DBException e) { setErrorMessage(e.getMessage()); return null; } } @Override protected boolean canEdit(Object element) { return true; } @Override protected Object getValue(Object element) { DatabaseMappingObject mapping = (DatabaseMappingObject) element; if (mapping.getMappingType() == DatabaseMappingType.unspecified) { return mapping.getSource().getName(); } if (mapping instanceof DatabaseMappingContainer) { if (mapping.getMappingType() == DatabaseMappingType.existing) { return ((DatabaseMappingContainer) mapping).getTarget(); } return mapping.getTargetName(); } else { if (mapping.getMappingType() == DatabaseMappingType.existing) { return ((DatabaseMappingAttribute) mapping).getTarget(); } return mapping.getTargetName(); } } @Override protected void setValue(Object element, Object value) { try { final DatabaseConsumerSettings settings = getWizard() .getPageSettings(DatabaseConsumerPageMapping.this, DatabaseConsumerSettings.class); String name = CommonUtils.toString(value); DBPDataSource dataSource = settings.getTargetDataSource((DatabaseMappingObject) element); if (!name.equals(DatabaseMappingAttribute.TARGET_NAME_SKIP) && !name.equals(TARGET_NAME_BROWSE) && dataSource != null) { name = DBObjectNameCaseTransformer.transformName(dataSource, name); } setMappingTarget((DatabaseMappingObject) element, name); mappingViewer.refresh(); mappingViewer.setSelection(mappingViewer.getSelection()); updatePageCompletion(); setErrorMessage(null); } catch (DBException e) { setErrorMessage(e.getMessage()); } } }); //TreeViewerEditor.create(mappingViewer, new TreeViewerFocusCellManager(), ColumnViewerEditor.TABBING_CYCLE_IN_ROW); TreeViewerColumn columnMapping = new TreeViewerColumn(mappingViewer, SWT.LEFT); columnMapping.setLabelProvider(new MappingLabelProvider() { @Override public void update(ViewerCell cell) { DatabaseMappingObject mapping = (DatabaseMappingObject) cell.getElement(); String text = ""; switch (mapping.getMappingType()) { case unspecified: text = "?"; break; case existing: text = "existing"; break; case create: text = "new"; break; case skip: text = "skip"; break; } cell.setText(text); super.update(cell); } }); columnMapping.getColumn().setText("Mapping"); mappingViewer.setContentProvider(new TreeContentProvider() { @Override public boolean hasChildren(Object element) { return element instanceof DatabaseMappingContainer; } @Override public Object[] getChildren(Object parentElement) { if (parentElement instanceof DatabaseMappingContainer) { return ((DatabaseMappingContainer) parentElement).getAttributeMappings(getContainer()) .toArray(); } return null; } }); }