Example usage for org.eclipse.jface.viewers OwnerDrawLabelProvider OwnerDrawLabelProvider

List of usage examples for org.eclipse.jface.viewers OwnerDrawLabelProvider OwnerDrawLabelProvider

Introduction

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

Prototype

public OwnerDrawLabelProvider() 

Source Link

Document

Create a new instance of the receiver based on a column viewer.

Usage

From source file:au.gov.ga.earthsci.application.parts.retrieve.RetrievePart.java

License:Apache License

private void createColumns() {
    TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("URL");
    column.getColumn().setWidth(300);/*from w w  w.j  a v a2s. co m*/
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            IRetrieval retrieval = (IRetrieval) element;
            return retrieval.getURL().toString();
        }
    });

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Caller(s)");
    column.getColumn().setWidth(200);
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            IRetrieval retrieval = (IRetrieval) element;
            StringBuilder sb = new StringBuilder();
            for (Object caller : retrieval.getCallers()) {
                sb.append(", " + caller.toString()); //$NON-NLS-1$
            }
            if (sb.length() == 0) {
                return sb.toString();
            }
            return sb.substring(2);
        }
    });

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Progress");
    column.getColumn().setWidth(150);
    column.setLabelProvider(new OwnerDrawLabelProvider() {
        @Override
        protected void paint(Event event, Object element) {
            GC gc = event.gc;
            Color foreground = gc.getForeground();
            Color background = gc.getBackground();

            IRetrieval retrieval = (IRetrieval) element;
            float percentage = Math.max(0, retrieval.getPercentage());
            String text = positionString(retrieval);

            Rectangle bounds = ((TableItem) event.item).getBounds(event.index);
            int width = (int) ((bounds.width - 1) * percentage);
            gc.setBackground(downloadBackgroundColor);
            gc.fillRectangle(event.x, event.y, width, event.height);

            Point size = event.gc.textExtent(text);
            int offset = Math.max(0, (event.height - size.y) / 2);
            gc.setForeground(event.display.getSystemColor(SWT.COLOR_LIST_FOREGROUND));
            gc.drawText(text, event.x + 2, event.y + offset, true);

            gc.setForeground(background);
            gc.setBackground(foreground);
        }

        @Override
        protected void measure(Event event, Object element) {
        }
    });
}

From source file:au.gov.ga.earthsci.retrieve.part.RetrievePart.java

License:Apache License

private void createColumns() {
    TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("URL");
    column.getColumn().setWidth(300);/*from   www  .j av a 2s .c  o m*/
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            IRetrieval retrieval = (IRetrieval) element;
            return retrieval.getURL().toString();
        }
    });

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Caller(s)");
    column.getColumn().setWidth(200);
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            IRetrieval retrieval = (IRetrieval) element;
            StringBuilder sb = new StringBuilder();
            for (Object caller : retrieval.getCallers()) {
                sb.append(", " + caller.toString()); //$NON-NLS-1$
            }
            if (sb.length() == 0) {
                return sb.toString();
            }
            return sb.substring(2);
        }
    });

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Progress");
    column.getColumn().setWidth(150);
    column.setLabelProvider(new OwnerDrawLabelProvider() {
        @Override
        protected void paint(Event event, Object element) {
            GC gc = event.gc;
            Color foreground = gc.getForeground();
            Color background = gc.getBackground();

            IRetrieval retrieval = (IRetrieval) element;
            float percentage = Math.max(0, retrieval.getPercentage());
            String text = positionString(retrieval);

            Rectangle bounds = ((TableItem) event.item).getBounds(event.index);
            int width = (int) ((bounds.width - 1) * percentage);
            gc.setBackground(DOWNLOAD_BACKGROUND_COLOR);
            gc.fillRectangle(event.x, event.y, width, event.height);

            Point size = event.gc.textExtent(text);
            int offset = Math.max(0, (event.height - size.y) / 2);
            gc.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_FOREGROUND));
            gc.drawText(text, event.x + 2, event.y + offset, true);

            gc.setForeground(background);
            gc.setBackground(foreground);
        }

        @Override
        protected void measure(Event event, Object element) {
        }
    });
}

From source file:com.mountainminds.eclemma.internal.ui.coverageview.CoverageView.java

License:Open Source License

public void createPartControl(Composite parent) {
    ContextHelp.setHelp(parent, ContextHelp.COVERAGE_VIEW);
    Tree tree = new Tree(parent, SWT.MULTI);
    tree.setHeaderVisible(true);/*  w  w w .  j a  v a  2 s  .  c  o  m*/
    tree.setLinesVisible(true);

    viewer = new TreeViewer(tree);
    final TreeViewerColumn column0 = new TreeViewerColumn(viewer, SWT.LEFT);
    column0.setLabelProvider(new CellLabelProvider() {

        private final ILabelProvider delegate = new WorkbenchLabelProvider();

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() == LOADING_ELEMENT) {
                cell.setText(UIMessages.CoverageView_loadingMessage);
                cell.setImage(null);
            } else {
                cell.setText(cellTextConverter.getElementName(cell.getElement()));
                cell.setImage(delegate.getImage(cell.getElement()));
            }
        }
    });
    sorter.addColumn(column0, COLUMN_ELEMENT);

    final TreeViewerColumn column1 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column1.setLabelProvider(new OwnerDrawLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() == LOADING_ELEMENT) {
                cell.setText(""); //$NON-NLS-1$
            } else {
                cell.setText(cellTextConverter.getRatio(cell.getElement()));
            }
        }

        @Override
        protected void erase(Event event, Object element) {
        }

        @Override
        protected void measure(Event event, Object element) {
        }

        @Override
        protected void paint(Event event, Object element) {
            if (element != LOADING_ELEMENT) {
                ICounter counter = CoverageTools.getCoverageInfo(element).getCounter(settings.getCounters());
                RedGreenBar.draw(event, column1.getColumn().getWidth(), counter,
                        maxTotalCache.getMaxTotal(element));
            }
        }
    });
    sorter.addColumn(column1, COLUMN_RATIO);

    final TreeViewerColumn column2 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column2.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() == LOADING_ELEMENT) {
                cell.setText(""); //$NON-NLS-1$
            } else {
                cell.setText(cellTextConverter.getCovered(cell.getElement()));
            }
        }
    });
    sorter.addColumn(column2, COLUMN_COVERED);

    final TreeViewerColumn column3 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column3.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() == LOADING_ELEMENT) {
                cell.setText(""); //$NON-NLS-1$
            } else {
                cell.setText(cellTextConverter.getMissed(cell.getElement()));
            }
        }
    });
    sorter.addColumn(column3, COLUMN_MISSED);

    final TreeViewerColumn column4 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column4.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() == LOADING_ELEMENT) {
                cell.setText(""); //$NON-NLS-1$
            } else {
                cell.setText(cellTextConverter.getTotal(cell.getElement()));
            }
        }
    });
    sorter.addColumn(column4, COLUMN_TOTAL);

    viewer.addFilter(new ViewerFilter() {
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element == LOADING_ELEMENT) {
                return true;
            } else {
                final ICoverageNode c = CoverageTools.getCoverageInfo(element);
                if (c == null) {
                    return false;
                }
                final ICounter instructions = c.getInstructionCounter();
                if (instructions.getTotalCount() == 0) {
                    return false;
                }
                if (settings.getHideUnusedElements() && instructions.getCoveredCount() == 0) {
                    return false;
                }
                return true;
            }
        }
    });
    settings.updateColumnHeaders(viewer);
    settings.restoreColumnWidth(viewer);
    viewer.setComparator(sorter);
    viewer.setContentProvider(new CoveredElementsContentProvider(settings));
    viewer.setInput(CoverageTools.getJavaModelCoverage());
    getSite().setSelectionProvider(viewer);

    selectiontracker = new SelectionTracker(this, viewer);

    createHandlers();
    createActions();

    viewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            openAction.run((IStructuredSelection) event.getSelection());
        }
    });

    MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
    menuMgr.setRemoveAllWhenShown(true);
    tree.setMenu(menuMgr.createContextMenu(tree));
    getSite().registerContextMenu(menuMgr, viewer);

    CoverageTools.getSessionManager().addSessionListener(descriptionUpdater);
    CoverageTools.addJavaCoverageListener(coverageListener);
}

From source file:com.mountainminds.eclemma.internal.ui.dialogs.CoveragePropertyPage.java

License:Open Source License

private Control createTable(Composite parent) {
    final Table table = new Table(parent, SWT.BORDER);
    initializeDialogUnits(table);/*from  ww w. j a  v a2  s .c  o m*/
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    TableViewer viewer = new TableViewer(table);
    createColumn(viewer, SWT.LEFT, 20, UIMessages.CoveragePropertyPageColumnCounter_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(line.label);
                }
            });
    createColumn(viewer, SWT.RIGHT, 20, UIMessages.CoveragePropertyPageColumnCoverage_label,
            new OwnerDrawLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COVERAGE_VALUE.format(line.counter.getCoveredRatio()));
                }

                @Override
                protected void paint(Event event, Object element) {
                    final Line line = (Line) element;
                    RedGreenBar.draw(event, table.getColumn(1).getWidth(), line.counter);
                }

                @Override
                protected void erase(Event event, Object element) {
                }

                @Override
                protected void measure(Event event, Object element) {
                }
            });
    createColumn(viewer, SWT.RIGHT, 16, UIMessages.CoveragePropertyPageColumnCovered_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COUNTER_VALUE.format(line.counter.getCoveredCount()));
                }
            });
    createColumn(viewer, SWT.RIGHT, 16, UIMessages.CoveragePropertyPageColumnMissed_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COUNTER_VALUE.format(line.counter.getMissedCount()));
                }
            });
    createColumn(viewer, SWT.RIGHT, 16, UIMessages.CoveragePropertyPageColumnTotal_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COUNTER_VALUE.format(line.counter.getTotalCount()));
                }
            });
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.addFilter(new ViewerFilter() {
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return ((Line) element).counter.getTotalCount() != 0;
        }
    });
    viewer.setInput(getLines());
    return table;
}

From source file:edu.washington.cs.cupid.editor.preferences.CupidRulerPreferencePage.java

License:Open Source License

@Override
protected Control createContents(final Composite parent) {
    List<RulerPreference> current = Activator.getDefault().getRulerPreferences();

    Composite composite = new Composite(parent, SWT.NONE);

    GridLayout layout = new GridLayout();
    final int margin = 5;
    layout.numColumns = 1;//w ww  . jav a 2 s  .co m
    layout.marginRight = margin;
    layout.marginTop = margin;
    layout.marginWidth = 0;
    composite.setLayout(layout);

    GridData data = new GridData(GridData.FILL_BOTH);
    composite.setLayoutData(data);

    Label label = new Label(composite, SWT.NONE);
    label.setText("Active Capabilities:");

    viewer = new TableViewer(composite);
    final Table table = viewer.getTable();
    viewer.setContentProvider(new ArrayContentProvider());
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    data = new GridData(GridData.FILL_BOTH);
    table.setLayoutData(data);

    table.addListener(SWT.MeasureItem, new Listener() {
        public void handleEvent(Event event) {
            // height cannot be per row so simply set
            event.height = 20;
        }
    });

    TableColumn column = new TableColumn(table, SWT.NONE);
    column.setText("Capability");
    column.setWidth(100);
    TableViewerColumn capabilityColumn = new TableViewerColumn(viewer, column);
    capabilityColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object elt) {
            return ((RulerPreference) elt).capability;
        }
    });

    column = new TableColumn(table, SWT.NONE);
    column.setText("Output");
    column.setWidth(100);
    TableViewerColumn outputColumn = new TableViewerColumn(viewer, column);
    outputColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object elt) {
            return ((RulerPreference) elt).output;
        }
    });

    column = new TableColumn(table, SWT.NONE);
    column.setText("Color");
    column.setWidth(100);
    TableViewerColumn actionsNameCol = new TableViewerColumn(viewer, column);

    actionsNameCol.setLabelProvider(new OwnerDrawLabelProvider() {
        @Override
        protected void measure(Event event, Object element) {
            event.setBounds(new Rectangle(event.x, event.y, 100, event.height));
        }

        @Override
        protected void paint(Event event, Object element) {
            TableItem item = (TableItem) event.item;
            RulerPreference pref = (RulerPreference) item.getData();

            if (pref.color != null) {
                event.gc.setBackground(
                        new Color(CupidRulerPreferencePage.this.getShell().getDisplay(), pref.color));
                event.gc.fillRectangle(new Rectangle(event.x, event.y, 200, event.height));
            }
        }
    });
    actionsNameCol.setEditingSupport(new ColorEditingSupport(viewer));

    column = new TableColumn(table, SWT.NONE);
    column.setText("Enabled?");
    column.setWidth(60);
    TableViewerColumn enabledColumn = new TableViewerColumn(viewer, column);
    enabledColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object elt) {
            return ((RulerPreference) elt).enabled ? "Enabled" : "Disabled";
        }
    });
    enabledColumn.setEditingSupport(new EnabledEditingSupport(viewer));

    providers = RulerUtil.allLineProviders(current, false);
    for (LineProvider provider : providers) {
        RulerPreference pref = RulerUtil.getPreference(provider, current);

        if (pref != null) {
            model.add(pref);
        } else {
            model.add(new RulerPreference(provider.getCapability().getName(), provider.getOutput().getName(),
                    provider.getColor(), true));
        }
    }

    viewer.setInput(model);
    viewer.getTable().layout(true);
    return composite;
}

From source file:no.resheim.elibrarium.epub.ui.reader.TOCOutlinePage.java

License:Open Source License

private void installLabelProvider(final TableViewerColumn column) {
    final PrettyTime pt = new PrettyTime();
    column.setLabelProvider(new OwnerDrawLabelProvider() {

        @Override/*ww w .j  a  va 2 s .  c om*/
        protected void paint(Event event, Object element) {
            GC gc = event.gc;
            Display display = column.getViewer().getControl().getDisplay();
            Bookmark bookmark = (Bookmark) element;
            String date = pt.format(bookmark.getTimestamp());
            int width = column.getColumn().getWidth();
            // Calculate the size of the date string
            Point size = event.gc.textExtent(date, SWT.DRAW_DELIMITER | SWT.DRAW_TAB);
            int halfHeight = size.y / 2;
            int height = size.y;
            // if ((event.detail & SWT.SELECTED) != 0) {
            // Region region = new Region();
            // gc.getClipping(region);
            // region.translate(10, 10);
            // // region.add(event.x, event.y - halfHeight, width,
            // // event.height - halfHeight);
            // gc.setClipping(region);
            // region.dispose();
            //
            // Rectangle rect = event.getBounds();
            // Color foreground = gc.getForeground();
            // Color background = gc.getBackground();
            // gc.setForeground(display.getSystemColor(SWT.COLOR_LIST_SELECTION));
            // gc.setBackground(display.getSystemColor(SWT.COLOR_LIST_BACKGROUND));
            // gc.fillGradientRectangle(0, rect.y, 500, rect.height, false);
            // // restore colors for subsequent drawing
            // gc.setForeground(foreground);
            // gc.setBackground(background);
            // event.detail &= ~SWT.SELECTED;
            // }

            // Draw the date
            gc.setFont(getFont(DATE_FONT));
            gc.setForeground(JFaceResources.getColorRegistry().get(JFacePreferences.QUALIFIER_COLOR));
            gc.drawText(date, width - size.x, event.y + size.y, true);
            // Paint the page number of the bookmark
            int pageNumber = bookmark.getPage();
            String page = Integer.toString(pageNumber);
            Point pageSize = event.gc.textExtent(page, SWT.DRAW_DELIMITER | SWT.DRAW_TAB);
            gc.drawText(page, width - 16 - pageSize.x, event.y, true);
            // Draw icon
            if (bookmark instanceof TextAnnotation) {
            } else {
                int x = width - 9;
                gc.drawImage(EpubUiPlugin.getDefault().getImageRegistry().get(EpubUiPlugin.IMG_BOOKMARK), x,
                        event.y + 1);
            }
            // Draw title
            gc.setFont(getFont(TITLE_FONT));
            gc.setForeground(display.getSystemColor(SWT.COLOR_LIST_FOREGROUND));
            // Make sure text does not span to far
            Region region = new Region();
            gc.getClipping(region);
            region.subtract(width - 32 - pageSize.x, event.y, width, height);
            gc.setClipping(region);
            region.dispose();
            String text = bookmark.getText();
            if (text == null) {
                text = "<missing text>";
            }
            if (bookmark instanceof TextAnnotation) {
                if ((event.detail & SWT.SELECTED) == 0) {
                    gc.setBackground(display.getSystemColor(SWT.COLOR_YELLOW));
                    gc.drawText(text, event.x + 1, event.y, false);
                } else {
                    gc.drawText(text, event.x + 1, event.y, true);
                }
            } else {
                gc.drawText(text, event.x + 1, event.y, true);
            }
            // Draw separator
            drawUnderline(event, gc, width, size, halfHeight);
        }

        public Font getFont(String fontName) {
            IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
            ITheme currentTheme = themeManager.getCurrentTheme();

            FontRegistry fontRegistry = currentTheme.getFontRegistry();
            Font font = fontRegistry.get(fontName);
            return font;
        }

        /**
         * Draws a separator between the rows.
         */
        public void drawUnderline(Event event, GC gc, int width, Point size, int halfHeight) {
            int y = (event.y + size.y * 2) + halfHeight - 2;
            int center = (width / 2);
            gc.setForeground(JFaceResources.getColorRegistry().get(JFacePreferences.QUALIFIER_COLOR));
            gc.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
            gc.fillGradientRectangle(center, y, center, 1, false);
            gc.setBackground(JFaceResources.getColorRegistry().get(JFacePreferences.QUALIFIER_COLOR));
            gc.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
            gc.fillGradientRectangle(0, y, center, 1, false);
        }

        @Override
        protected void measure(Event event, Object element) {
            String text = "A";
            Point size = event.gc.textExtent(text, SWT.DRAW_DELIMITER | SWT.DRAW_TAB);
            event.width = bookmarks.getTable().getColumn(event.index).getWidth();
            // we need two lines of text and some space
            int halfHeight = size.y / 2;
            event.height = size.y * 2 + halfHeight;
        }
    });
}

From source file:org.bbaw.pdr.ae.view.network.views.RelationTableView.java

License:Open Source License

private void createViewer(Composite parent, Vector<OrderingHead> arrangedAspects, String[] columntitles) {

    // Define the TableViewer
    viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);

    // Create the columns
    createColumns(parent, columntitles);

    // Make lines and make header visible
    final Table table = viewer.getTable();
    table.setHeaderVisible(true);/* www .  ja  v a  2  s. c o  m*/
    table.setLinesVisible(true);

    // Set the ContentProvider
    viewer.setContentProvider(new PersonAspectRelationContentProvider());
    viewer.setLabelProvider(new OwnerDrawLabelProvider() {

        @Override
        protected void measure(Event event, Object element) {

            event.height = 26 + 18 * _maxRows;

        }

        @Override
        protected void paint(Event event, Object element) {
            Image img = null;
            if (event.index == 0) {
                img = _imageReg.get(IconsInternal.PERSON);
                Rectangle bounds = ((TableItem) event.item).getBounds(event.index);
                Rectangle imgBounds = img.getBounds();

                bounds.height /= 2;
                bounds.height -= imgBounds.height / 2;

                int y = bounds.height > 0 ? bounds.y + bounds.height : bounds.y;

                event.gc.drawImage(img, 0, y);
                event.gc.drawText(getFirstColumnText(element, event.index), imgBounds.width + 2, y, true);
            } else {

            }

        }

        public String getFirstColumnText(Object element, int columnIndex) {
            if (element instanceof String) {
                return ((String) element);
            } else if (element instanceof Object[]) {
                if (columnIndex == 0) {
                    return ((String) ((Object[]) element)[0]);
                }
            }
            return null;
        }
    });

    // Get the content for the Viewer,
    // setInput will call getElements in the ContentProvider
    if (arrangedAspects != null)
        viewer.setInput(arrangedAspects);

    TableItem[] items = table.getItems();
    TableItem item;
    SelectionListener selectionListener = new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            Control l = (Control) e.widget;
            PdrId id = (PdrId) l.getData("id");
            PdrId subj;
            PdrId obj;
            Aspect a;
            if (id != null) {
                a = _facade.getAspect(id);
            } else {
                subj = (PdrId) l.getData("sub");
                obj = (PdrId) l.getData("obj");
                if (_facade.getLastAspects() != null && !_facade.getLastAspects().isEmpty()) {
                    a = _pdrObjectBuilder.buildSimilarAspect(subj, obj, _facade.getLastAspects().lastElement());
                } else {
                    a = _pdrObjectBuilder.buildSimilarAspect(subj, obj, null);
                }
            }

            _facade.setCurrentAspect(a);
            IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench()
                    .getService(IHandlerService.class);
            try {
                handlerService.executeCommand("org.bbaw.pdr.ae.view.main.commands.CallAspectEditor", //$NON-NLS-1$
                        new Event());
            } catch (ExecutionException ex) {
                ex.printStackTrace();
            } catch (NotDefinedException ex) {
                ex.printStackTrace();
            } catch (NotEnabledException ex) {
                ex.printStackTrace();
            } catch (NotHandledException ex) {
                ex.printStackTrace();
            }

        }

    };
    Relation relation;
    for (int i = 0; i < items.length; i++) {
        TableEditor editor = new TableEditor(table);
        GridLayout gl = new GridLayout(2, false);
        gl.marginHeight = 0;
        gl.marginWidth = 0;
        PdrId subject = new PdrId(arrangedAspects.get(i).getValue());
        item = items[i];
        int rows = 0;
        if (item.getData() != null) {
            Object[] objs = (Object[]) item.getData();
            if (objs.length > 1) {
                for (int j = 1; j < objs.length; j++) {
                    Object o = objs[j];
                    PdrId objectId = new PdrId(arrangedAspects.get(j - 1).getValue());
                    boolean empty = true;
                    editor = new TableEditor(table);
                    Composite composite = new Composite(table, SWT.NONE);
                    // composite.setText("Text");
                    composite.setLayout(gl);
                    composite.setBackground(AEVIEWConstants.VIEW_BACKGROUND_DESELECTED_COLOR);
                    editor.grabHorizontal = true;
                    if (o != null && o instanceof Vector<?>) {
                        Vector<Aspect> aspects = (Vector<Aspect>) o;
                        if (!aspects.isEmpty()) {

                            RelationStm relationSm;
                            String relationString = null;
                            for (Aspect a : aspects) {
                                rows = 0;
                                if (a.getRelationDim() != null
                                        && !a.getRelationDim().getRelationStms().isEmpty()) {
                                    for (int k = 0; k < a.getRelationDim().getRelationStms().size(); k++) {
                                        relationSm = a.getRelationDim().getRelationStms().get(k);
                                        if (relationSm.getSubject() != null
                                                && relationSm.getSubject().equals(subject)
                                                && relationSm.getRelations() != null
                                                && !relationSm.getRelations().isEmpty()) {
                                            for (int l = 0; l < relationSm.getRelations().size(); l++) {
                                                relation = relationSm.getRelations().get(l);
                                                if (relation.getObject().equals(objectId)
                                                        && relation.getContext() != null) {
                                                    empty = false;
                                                    rows++;
                                                    relationString = PDRConfigProvider.getLabelOfRelation(
                                                            relation.getProvider(), relation.getContext(),
                                                            relation.getRClass(), relation.getRelation());
                                                    Label label = new Label(composite, SWT.NONE);
                                                    label.setImage(_imageReg.get(IconsInternal.RELATION));
                                                    label.setBackground(
                                                            AEVIEWConstants.VIEW_BACKGROUND_DESELECTED_COLOR);

                                                    Link link = new Link(composite, SWT.None);
                                                    link.setText("<a>" + relationString + ": "
                                                            + a.getDisplayNameWithID() + "</a>");
                                                    link.setBackground(
                                                            AEVIEWConstants.VIEW_BACKGROUND_DESELECTED_COLOR);

                                                    link.setData("id", a.getPdrId());

                                                    final AspectPresentationTooltip aspectTooltip = new AspectPresentationTooltip(
                                                            link, a);
                                                    aspectTooltip.setPopupDelay(1);
                                                    aspectTooltip.setHideDelay(0);
                                                    aspectTooltip.setHideOnMouseDown(false);
                                                    aspectTooltip.activate();
                                                    link.addSelectionListener(selectionListener);
                                                    link.pack();
                                                }
                                            }

                                        }
                                    }
                                }
                                if (rows > _maxRows) {
                                    _maxRows = rows;
                                }
                            }

                        }
                    }
                    if (arrangedAspects.size() < 12 && empty && i != j - 1) {
                        Button newAspect = new Button(composite, SWT.PUSH);
                        newAspect.setImage(_imageReg.get(IconsInternal.ASPECT_ADD_SAME_PERSON));
                        newAspect.setBackground(AEVIEWConstants.VIEW_BACKGROUND_DESELECTED_COLOR);

                        newAspect.setData("sub", subject.clone());
                        newAspect.setData("obj", objectId.clone());
                        newAspect.addSelectionListener(selectionListener);
                        newAspect.pack();
                    }
                    composite.pack();
                    composite.layout();
                    editor.setEditor(composite, items[i], j);
                    editor.minimumHeight = 20;
                }
            }
        }

    }

    // // Make the selection available to other Views
    getSite().setSelectionProvider(viewer);

    // Layout the viewer
    GridData gridData = new GridData();
    gridData.verticalAlignment = GridData.FILL;
    gridData.horizontalSpan = 2;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalAlignment = GridData.FILL;
    viewer.getControl().setLayoutData(gridData);

    // Set the sorter for the table
    // viewer.setComparator(comparator);
}

From source file:org.dafoe.corpuslevel.ui.views.Snippet006TableMultiLineCells.java

License:Open Source License

public void createPartControl(Composite parent) {
    viewer = new TableViewer(parent, SWT.FULL_SELECTION);

    viewer.setContentProvider(new IStructuredContentProvider() {
        /*//from w ww .j  ava2  s. com
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IContentProvider#dispose()
         */
        public void dispose() {
        };

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
         */
        public Object[] getElements(Object inputElement) {
            return entries;
        };

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
         *      java.lang.Object, java.lang.Object)
         */
        public void inputChanged(org.eclipse.jface.viewers.Viewer viewer, Object oldInput, Object newInput) {
        }

    });
    createColumns();

    viewer.setLabelProvider(new OwnerDrawLabelProvider() {

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#measure(org.eclipse.swt.widgets.Event, java.lang.Object)
         */
        protected void measure(Event event, Object element) {
            LineEntry line = (LineEntry) element;
            Point size = event.gc.textExtent(line.line);
            event.width = viewer.getTable().getColumn(event.index).getWidth();
            int lines = size.x / Math.max(1, event.width) + 1;
            event.height = size.y * lines;

        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#paint(org.eclipse.swt.widgets.Event,
         *      java.lang.Object)
         */
        protected void paint(Event event, Object element) {

            LineEntry entry = (LineEntry) element;
            event.gc.drawText(entry.line, event.x, event.y, true);
        }
    });
    viewer.setInput(this);

    GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);

    viewer.getControl().setLayoutData(data);
    OwnerDrawLabelProvider.setUpOwnerDraw(viewer);

    viewer.setSelection(new StructuredSelection(entries[1]));
}

From source file:org.eclipse.eclemma.internal.ui.coverageview.CoverageView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    ContextHelp.setHelp(parent, ContextHelp.COVERAGE_VIEW);
    Tree tree = new Tree(parent, SWT.MULTI);
    tree.setHeaderVisible(true);//from ww w  . j  a v  a  2  s .c  o  m
    tree.setLinesVisible(true);

    viewer = new TreeViewer(tree);
    final TreeViewerColumn column0 = new TreeViewerColumn(viewer, SWT.LEFT);
    column0.setLabelProvider(new CellLabelProvider() {

        private final ILabelProvider delegate = new WorkbenchLabelProvider();

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() == LOADING_ELEMENT) {
                cell.setText(UIMessages.CoverageView_loadingMessage);
                cell.setImage(null);
            } else {
                cell.setText(cellTextConverter.getElementName(cell.getElement()));
                cell.setImage(delegate.getImage(cell.getElement()));
            }
        }
    });
    sorter.addColumn(column0, COLUMN_ELEMENT);

    final TreeViewerColumn column1 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column1.setLabelProvider(new OwnerDrawLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() == LOADING_ELEMENT) {
                cell.setText(""); //$NON-NLS-1$
            } else {
                cell.setText(cellTextConverter.getRatio(cell.getElement()));
            }
        }

        @Override
        protected void erase(Event event, Object element) {
        }

        @Override
        protected void measure(Event event, Object element) {
        }

        @Override
        protected void paint(Event event, Object element) {
            final ICoverageNode coverage = CoverageTools.getCoverageInfo(element);
            if (coverage != null) {
                final ICounter counter = coverage.getCounter(settings.getCounters());
                RedGreenBar.draw(event, column1.getColumn().getWidth(), counter,
                        maxTotalCache.getMaxTotal(element));
            }
        }
    });
    sorter.addColumn(column1, COLUMN_RATIO);

    final TreeViewerColumn column2 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column2.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() == LOADING_ELEMENT) {
                cell.setText(""); //$NON-NLS-1$
            } else {
                cell.setText(cellTextConverter.getCovered(cell.getElement()));
            }
        }
    });
    sorter.addColumn(column2, COLUMN_COVERED);

    final TreeViewerColumn column3 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column3.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() == LOADING_ELEMENT) {
                cell.setText(""); //$NON-NLS-1$
            } else {
                cell.setText(cellTextConverter.getMissed(cell.getElement()));
            }
        }
    });
    sorter.addColumn(column3, COLUMN_MISSED);

    final TreeViewerColumn column4 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column4.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() == LOADING_ELEMENT) {
                cell.setText(""); //$NON-NLS-1$
            } else {
                cell.setText(cellTextConverter.getTotal(cell.getElement()));
            }
        }
    });
    sorter.addColumn(column4, COLUMN_TOTAL);

    viewer.addFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element == LOADING_ELEMENT) {
                return true;
            } else {
                final ICoverageNode c = CoverageTools.getCoverageInfo(element);
                if (c == null) {
                    return false;
                }
                final ICounter instructions = c.getInstructionCounter();
                if (instructions.getTotalCount() == 0) {
                    return false;
                }
                if (settings.getHideUnusedElements() && instructions.getCoveredCount() == 0) {
                    return false;
                }
                return true;
            }
        }
    });
    settings.updateColumnHeaders(viewer);
    settings.restoreColumnWidth(viewer);
    viewer.setComparator(sorter);
    viewer.setContentProvider(new CoveredElementsContentProvider(settings));
    viewer.setInput(CoverageTools.getJavaModelCoverage());
    getSite().setSelectionProvider(viewer);

    selectiontracker = new SelectionTracker(this, viewer);

    createHandlers();
    createActions();

    viewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            openAction.run((IStructuredSelection) event.getSelection());
        }
    });

    MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
    menuMgr.setRemoveAllWhenShown(true);
    tree.setMenu(menuMgr.createContextMenu(tree));
    getSite().registerContextMenu(menuMgr, viewer);

    CoverageTools.getSessionManager().addSessionListener(descriptionUpdater);
    CoverageTools.addJavaCoverageListener(coverageListener);
}

From source file:org.eclipse.eclemma.internal.ui.dialogs.CoveragePropertyPage.java

License:Open Source License

private Control createTable(Composite parent) {
    final Table table = new Table(parent, SWT.BORDER);
    initializeDialogUnits(table);//from   w w w .j  a  va2 s  .  com
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    TableViewer viewer = new TableViewer(table);
    createColumn(viewer, SWT.LEFT, 20, UIMessages.CoveragePropertyPageColumnCounter_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(line.label);
                }
            });
    createColumn(viewer, SWT.RIGHT, 20, UIMessages.CoveragePropertyPageColumnCoverage_label,
            new OwnerDrawLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COVERAGE_VALUE.format(line.counter.getCoveredRatio()));
                }

                @Override
                protected void paint(Event event, Object element) {
                    final Line line = (Line) element;
                    RedGreenBar.draw(event, table.getColumn(1).getWidth(), line.counter);
                }

                @Override
                protected void erase(Event event, Object element) {
                }

                @Override
                protected void measure(Event event, Object element) {
                }
            });
    createColumn(viewer, SWT.RIGHT, 16, UIMessages.CoveragePropertyPageColumnCovered_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COUNTER_VALUE.format(line.counter.getCoveredCount()));
                }
            });
    createColumn(viewer, SWT.RIGHT, 16, UIMessages.CoveragePropertyPageColumnMissed_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COUNTER_VALUE.format(line.counter.getMissedCount()));
                }
            });
    createColumn(viewer, SWT.RIGHT, 16, UIMessages.CoveragePropertyPageColumnTotal_label,
            new CellLabelProvider() {
                @Override
                public void update(ViewerCell cell) {
                    final Line line = (Line) cell.getElement();
                    cell.setText(COUNTER_VALUE.format(line.counter.getTotalCount()));
                }
            });
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.addFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return ((Line) element).counter.getTotalCount() != 0;
        }
    });
    viewer.setInput(getLines());
    return table;
}