Example usage for org.eclipse.jface.viewers ViewerCell setBackground

List of usage examples for org.eclipse.jface.viewers ViewerCell setBackground

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ViewerCell setBackground.

Prototype

public void setBackground(Color background) 

Source Link

Document

Set the background color of the cell.

Usage

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;
        }
    });
}