Search in sources :

Example 36 with Item

use of org.eclipse.swt.widgets.Item in project linuxtools by eclipse.

the class AbstractPercentageDrawerField method handleEvent.

/**
 * Percentage drawer.
 */
@Override
public void handleEvent(Event event) {
    Item item = (Item) event.item;
    Display display = event.widget.getDisplay();
    int index = event.index;
    int widthcol = 0;
    if (event.widget instanceof Tree) {
        Tree tree = (Tree) event.widget;
        widthcol = tree.getColumn(index).getWidth();
    } else {
        // event.widget instanceof Table
        Table table = (Table) event.widget;
        widthcol = table.getColumn(index).getWidth();
    }
    float d = getPercentage(item.getData());
    int percent = (int) (d + 0.5);
    GC gc = event.gc;
    // --Define the size of the Progress bar.
    // This makes it grow/shrink dynamically.
    int totalProgBarLength = (int) (widthcol * 0.3);
    if (totalProgBarLength > 0) {
        // ------------------------------------------------------
        // ------------------- Draw Progress bar
        // ------------------------------------------------------
        // ---- Shared elements
        int totalProgBarHeight = (int) (event.height * 0.5);
        // --- Draw Green (covered) part
        gc.setBackground(display.getSystemColor(SWT.COLOR_DARK_GREEN));
        int progBarGreenWidth = (int) (totalProgBarLength * (percent * 0.01));
        int progBarGreenHorizontalPos = event.x;
        int progBarGreenHeight = (int) (event.height * 0.5);
        int progBarGreenVerticalPos = event.y + (totalProgBarHeight / 2) + 1;
        gc.fillRectangle(progBarGreenHorizontalPos, progBarGreenVerticalPos, progBarGreenWidth, progBarGreenHeight);
        // --- Draw Red (uncovered) Part
        gc.setBackground(display.getSystemColor(SWT.COLOR_DARK_RED));
        int progBarRedWidth = totalProgBarLength - progBarGreenWidth;
        int progBarRedHorizontalPos = progBarGreenHorizontalPos + progBarGreenWidth;
        int progBarRedHeight = progBarGreenHeight;
        int progBarRedVerticalPos = progBarGreenVerticalPos;
        gc.fillRectangle(progBarRedHorizontalPos, progBarRedVerticalPos, progBarRedWidth, progBarRedHeight);
    }
    // ------------------------------------------------------
    // ------------------- Draw text next to Progress bar
    // ------------------------------------------------------
    // ------- Define the 'text' format.  % text     e.g 94.0%
    String text = "%";
    text = (isSettedNumberFormat() ? getNumberFormat().format(d) : d) + text;
    Point size = gc.textExtent(text);
    int offset = Math.max(0, (event.height - size.y) / 2);
    // ------- Position the text
    Color foreground = gc.getForeground();
    gc.setForeground(display.getSystemColor(SWT.COLOR_LIST_FOREGROUND));
    // add offset of progress bar. (so that the text is to the right of the progress bar).
    // (prog bar size) + (20th of column widht)
    int progBarOffset = totalProgBarLength + (widthcol / 20);
    gc.drawText(text, event.x + progBarOffset, event.y + offset, true);
    gc.setForeground(foreground);
}
Also used : Item(org.eclipse.swt.widgets.Item) Table(org.eclipse.swt.widgets.Table) Color(org.eclipse.swt.graphics.Color) Tree(org.eclipse.swt.widgets.Tree) Point(org.eclipse.swt.graphics.Point) GC(org.eclipse.swt.graphics.GC) Point(org.eclipse.swt.graphics.Point) Display(org.eclipse.swt.widgets.Display)

Example 37 with Item

use of org.eclipse.swt.widgets.Item in project linuxtools by eclipse.

the class STDataViewersCSVExporter method collectViewerParameters.

private void collectViewerParameters() {
    Display.getDefault().syncExec(() -> {
        // getting columns with the right order
        Item[] unOrdColumns = stViewer.getColumns();
        Item[] columns = new Item[unOrdColumns.length];
        int[] columnOrder = stViewer.getColumnOrder();
        for (int i1 = 0; i1 < unOrdColumns.length; i1++) {
            columns[i1] = unOrdColumns[columnOrder[i1]];
        }
        // getting fields mapping
        // (before removing hidden columns)
        Map<Item, ISTDataViewersField> fieldsMap = new HashMap<>();
        for (Item column : columns) {
            fieldsMap.put(column, (ISTDataViewersField) column.getData());
        }
        // creating a GUI-thread-independent comparator
        comparator = new CSVDataComparator(stViewer.getTableSorter(), fieldsMap);
        // getting only visible columns, using the column order
        if (!showHiddenColumns) {
            int[] columnsState = stViewer.getHideShowManager().getColumnsState();
            List<Item> enabledColumns = new ArrayList<>();
            for (int i2 = 0; i2 < columnsState.length; i2++) {
                if (columnsState[columnOrder[i2]] == STDataViewersHideShowManager.STATE_SHOWN) {
                    enabledColumns.add(columns[i2]);
                }
            }
            columns = enabledColumns.toArray(new Item[enabledColumns.size()]);
        }
        // collecting fields from columns (ordered & shown)
        fields = new ISTDataViewersField[columns.length];
        for (int i3 = 0; i3 < columns.length; i3++) {
            fields[i3] = (ISTDataViewersField) columns[i3].getData();
        }
        // getting input object
        input = stViewer.getViewer().getInput();
        // getting content provider
        contentProvider = stViewer.getViewer().getContentProvider();
        // getting expanded elements if necessary
        expandedElts = new ArrayList<>();
        if (!expandAll && stViewer.getViewer() instanceof TreeViewer) {
            TreeViewer tv = (TreeViewer) stViewer.getViewer();
            expandedElts = Arrays.asList(tv.getExpandedElements());
        }
    });
}
Also used : Item(org.eclipse.swt.widgets.Item) HashMap(java.util.HashMap) TreeViewer(org.eclipse.jface.viewers.TreeViewer) ArrayList(java.util.ArrayList)

Example 38 with Item

use of org.eclipse.swt.widgets.Item in project linuxtools by eclipse.

the class STColumnSizeListener method handleEvent.

@Override
public void handleEvent(Event event) {
    if (hideshowMng != null) {
        Item column = (Item) event.widget;
        AbstractSTViewer stViewer = hideshowMng.getSTViewer();
        int width = stViewer.getColumnWidth(column);
        hideshowMng.setWidth(stViewer.getColumnIndex(column), width);
    }
}
Also used : Item(org.eclipse.swt.widgets.Item) AbstractSTViewer(org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTViewer)

Aggregations

Item (org.eclipse.swt.widgets.Item)38 TableItem (org.eclipse.swt.widgets.TableItem)20 HashMap (java.util.HashMap)16 Map (java.util.Map)14 ICellModifier (org.eclipse.jface.viewers.ICellModifier)13 CellEditor (org.eclipse.jface.viewers.CellEditor)12 TextCellEditor (org.eclipse.jface.viewers.TextCellEditor)11 GridData (org.eclipse.swt.layout.GridData)11 Tree (org.eclipse.swt.widgets.Tree)10 TreeItem (org.eclipse.swt.widgets.TreeItem)9 Point (org.eclipse.swt.graphics.Point)8 GridLayout (org.eclipse.swt.layout.GridLayout)8 Button (org.eclipse.swt.widgets.Button)8 Table (org.eclipse.swt.widgets.Table)8 ArrayList (java.util.ArrayList)7 SelectionEvent (org.eclipse.swt.events.SelectionEvent)7 Composite (org.eclipse.swt.widgets.Composite)7 Widget (org.eclipse.swt.widgets.Widget)7 LinkDescriptor (org.talend.commons.ui.swt.drawing.link.LinkDescriptor)7 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)6