Search in sources :

Example 6 with IColumn

use of de.jaret.util.ui.table.model.IColumn in project translationstudio8 by heartsome.

the class TableHierarchicalExample method initDND.

/**
     * Init a simple drag and drop operation for moving rows in the table.
     * 
     * @param table
     * @param parent
     */
private void initDND(final JaretTable table, Composite parent) {
    // support move only
    int operations = DND.DROP_MOVE;
    final DragSource source = new DragSource(table, operations);
    // Provide data in Text format
    Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
    source.setTransfer(types);
    source.addDragListener(new DragSourceListener() {

        public void dragStart(DragSourceEvent event) {
            // check whether drag occured on the hierarchy column
            IColumn column = table.colForX(event.x);
            if (column != null && table.isHierarchyColumn(column)) {
                // TODO check whether a resize may have
                // higher priority
                // possible row drag
                IRow row = table.rowForY(event.y);
                if (row != null) {
                    // row hit, start row drag
                    _draggedRow = row;
                    // capture the data for internal use
                    // row drag: use row at starting position
                    _parentTableNode = getParent(table.getHierarchicalModel().getRootNode(), (ITableNode) row);
                } else {
                    event.doit = false;
                }
            }
        }

        public void dragSetData(DragSourceEvent event) {
            // Provide the data of the requested type.
            if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
                if (_draggedRow != null) {
                    event.data = "row: " + _draggedRow.getId();
                }
            }
        }

        public void dragFinished(DragSourceEvent event) {
            // for this simple case we do all the manipulations in the drop
            // target
            // this is more of a hack ...
            _draggedRow = null;
        }
    });
    // ////////////////////
    // Drop target
    // moved to the drop target
    operations = DND.DROP_MOVE;
    final DropTarget target = new DropTarget(table, operations);
    // Receive data in Text
    final TextTransfer textTransfer = TextTransfer.getInstance();
    types = new Transfer[] { textTransfer };
    target.setTransfer(types);
    target.addDropListener(new DropTargetListener() {

        public void dragEnter(DropTargetEvent event) {
        }

        public void dragOver(DropTargetEvent event) {
            if (_draggedRow != null) {
            // no drag over effect right now
            }
        }

        public void dragOperationChanged(DropTargetEvent event) {
        }

        public void dragLeave(DropTargetEvent event) {
        }

        public void dropAccept(DropTargetEvent event) {
        }

        public void drop(DropTargetEvent event) {
            // this is kind of a hack ...
            if (textTransfer.isSupportedType(event.currentDataType)) {
                String text = (String) event.data;
                System.out.println("DROP: " + text);
                if (_draggedRow != null) {
                    int destY = Display.getCurrent().map(null, table, event.x, event.y).y;
                    int destX = Display.getCurrent().map(null, table, event.x, event.y).x;
                    IRow overRow = table.rowForY(destY);
                    if (overRow != null) {
                        System.out.println("over row " + overRow.getId());
                        // this is an action from the drag source listener
                        // ...
                        // this has to be done right here because otherwise
                        // the node would be at two places
                        // at the same time causing some redraw trouble ...
                        _parentTableNode.remNode((ITableNode) _draggedRow);
                        ITableNode node = (ITableNode) overRow;
                        node.addNode((ITableNode) _draggedRow);
                    }
                }
            }
        }
    });
    // Dispose listener on parent of timebar viewer to dispose the
    // dragsource and dragtarget BEFORE the timebar
    // viewer
    // this prevents an exception beeing thrown by SWT
    parent.addDisposeListener(new DisposeListener() {

        public void widgetDisposed(DisposeEvent e) {
            source.dispose();
            target.dispose();
        }
    });
}
Also used : DisposeListener(org.eclipse.swt.events.DisposeListener) DropTargetEvent(org.eclipse.swt.dnd.DropTargetEvent) DragSource(org.eclipse.swt.dnd.DragSource) DragSourceListener(org.eclipse.swt.dnd.DragSourceListener) DisposeEvent(org.eclipse.swt.events.DisposeEvent) DragSourceEvent(org.eclipse.swt.dnd.DragSourceEvent) IRow(de.jaret.util.ui.table.model.IRow) DropTargetListener(org.eclipse.swt.dnd.DropTargetListener) IColumn(de.jaret.util.ui.table.model.IColumn) TextTransfer(org.eclipse.swt.dnd.TextTransfer) Transfer(org.eclipse.swt.dnd.Transfer) DropTarget(org.eclipse.swt.dnd.DropTarget) ITableNode(de.jaret.util.ui.table.model.ITableNode) TextTransfer(org.eclipse.swt.dnd.TextTransfer)

Example 7 with IColumn

use of de.jaret.util.ui.table.model.IColumn in project translationstudio8 by heartsome.

the class JaretTable method setUpAutoFilter.

/**
     * Setup the autofilter components.
     * 
     * @param gc GC
     */
private void setUpAutoFilter(GC gc) {
    if (_autoFilterEnabled) {
        for (IColumn column : _cols) {
            IAutoFilter af = _autoFilterMap.get(column);
            ColInfo cInfo = getColInfo(column);
            if (af != null && cInfo == null) {
                af.getControl().setVisible(false);
            } else {
                if (af != null) {
                    af.getControl().setVisible(true);
                    af.getControl().setBounds(cInfo.x, _autoFilterRect.y, cInfo.width, _autoFilterRect.height);
                }
            }
        }
    } else {
        for (IColumn column : _cols) {
            IAutoFilter af = _autoFilterMap.get(column);
            if (af != null) {
                af.getControl().setVisible(false);
            }
        }
    }
}
Also used : IColumn(de.jaret.util.ui.table.model.IColumn) IAutoFilter(de.jaret.util.ui.table.filter.IAutoFilter)

Example 8 with IColumn

use of de.jaret.util.ui.table.model.IColumn in project translationstudio8 by heartsome.

the class SimpleModelExample method createControls.

/**
     * Create the controls that compose the console test.
     * 
     */
protected void createControls() {
    GridLayout gl = new GridLayout();
    gl.numColumns = 1;
    _shell.setLayout(gl);
    GridData gd = new GridData(GridData.FILL_BOTH);
    _jt = new JaretTable(_shell, SWT.V_SCROLL | SWT.H_SCROLL);
    _jt.setLayoutData(gd);
    if (_tableModel == null) {
        SimpleJaretTableModel model = new SimpleJaretTableModel();
        for (int x = 0; x <= NUMCOLS; x++) {
            model.setHeaderLabel(x, "" + x);
            for (int y = 0; y <= NUMROWS; y++) {
                model.setValueAt(x, y, x + "/" + y);
            }
        }
        _tableModel = model;
    }
    _jt.setTableModel(_tableModel);
    // set rowheight mode to variable .. optimal would be quite expensive on each col resize
    _jt.getTableViewState().setRowHeightMode(ITableViewState.RowHeightMode.VARIABLE);
    for (int i = 0; i < NUMCOLS; i++) {
        IColumn col = _tableModel.getColumn(i);
        _jt.getTableViewState().setColumnWidth(col, 40);
    }
    JaretTableActionFactory af = new JaretTableActionFactory();
    MenuManager mm = new MenuManager();
    mm.add(af.createStdAction(_jt, JaretTableActionFactory.ACTION_CONFIGURECOLUMNS));
    _jt.setHeaderContextMenu(mm.createContextMenu(_jt));
    MenuManager rm = new MenuManager();
    rm.add(af.createStdAction(_jt, JaretTableActionFactory.ACTION_OPTROWHEIGHT));
    rm.add(af.createStdAction(_jt, JaretTableActionFactory.ACTION_OPTALLROWHEIGHTS));
    _jt.setRowContextMenu(rm.createContextMenu(_jt));
    TableControlPanel ctrlPanel = new TableControlPanel(_shell, SWT.NULL, _jt);
}
Also used : GridLayout(org.eclipse.swt.layout.GridLayout) IColumn(de.jaret.util.ui.table.model.IColumn) JaretTable(de.jaret.util.ui.table.JaretTable) GridData(org.eclipse.swt.layout.GridData) MenuManager(org.eclipse.jface.action.MenuManager) SimpleJaretTableModel(de.jaret.util.ui.table.model.simple.SimpleJaretTableModel) JaretTableActionFactory(de.jaret.util.ui.table.util.action.JaretTableActionFactory)

Example 9 with IColumn

use of de.jaret.util.ui.table.model.IColumn in project translationstudio8 by heartsome.

the class TableControlPanel method createControls.

/**
     * @param panel
     */
private void createControls() {
    RowLayout rl = new RowLayout();
    rl.type = SWT.HORIZONTAL;
    this.setLayout(rl);
    Composite col1 = new Composite(this, SWT.NULL);
    rl = new RowLayout();
    rl.type = SWT.VERTICAL;
    col1.setLayout(rl);
    Composite col2 = new Composite(this, SWT.NULL);
    rl = new RowLayout();
    rl.type = SWT.VERTICAL;
    col2.setLayout(rl);
    Composite col3 = new Composite(this, SWT.NULL);
    rl = new RowLayout();
    rl.type = SWT.VERTICAL;
    col3.setLayout(rl);
    final Button autoFilterCheck = new Button(col1, SWT.CHECK);
    autoFilterCheck.setText("AutoFilter");
    autoFilterCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.setAutoFilterEnable(autoFilterCheck.getSelection());
        }
    });
    final Button drawHeaderCheck = new Button(col1, SWT.CHECK);
    drawHeaderCheck.setSelection(_table.getDrawHeader());
    drawHeaderCheck.setText("Draw header");
    drawHeaderCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.setDrawHeader(drawHeaderCheck.getSelection());
        }
    });
    final Button fillDragCheck = new Button(col1, SWT.CHECK);
    fillDragCheck.setSelection(_table.isSupportFillDragging());
    fillDragCheck.setText("Support fill dragging");
    fillDragCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.setSupportFillDragging(fillDragCheck.getSelection());
        }
    });
    Button b = new Button(col2, SWT.PUSH);
    b.setText("Print");
    b.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            print();
        }
    });
    final Scale headerRotationScale = new Scale(col2, SWT.HORIZONTAL);
    headerRotationScale.setMaximum(90);
    headerRotationScale.setMinimum(0);
    headerRotationScale.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent ev) {
            int val = headerRotationScale.getSelection();
            ((DefaultTableHeaderRenderer) _table.getHeaderRenderer()).setRotation(val);
            if (val > 0) {
                _table.setHeaderHeight(50);
            } else {
                _table.setHeaderHeight(18);
            }
            _table.redraw();
        }
    });
    final Button allowHeaderResizeCheck = new Button(col1, SWT.CHECK);
    allowHeaderResizeCheck.setSelection(_table.getDrawHeader());
    allowHeaderResizeCheck.setText("Allow header resize");
    allowHeaderResizeCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.setHeaderResizeAllowed(allowHeaderResizeCheck.getSelection());
        }
    });
    final Button allowRowResizeCheck = new Button(col1, SWT.CHECK);
    allowRowResizeCheck.setSelection(_table.getDrawHeader());
    allowRowResizeCheck.setText("Allow row resize");
    allowRowResizeCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.setRowResizeAllowed(allowRowResizeCheck.getSelection());
        }
    });
    final Button allowColResizeCheck = new Button(col1, SWT.CHECK);
    allowColResizeCheck.setSelection(_table.getDrawHeader());
    allowColResizeCheck.setText("Allow column resize");
    allowColResizeCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.setColumnResizeAllowed(allowColResizeCheck.getSelection());
        }
    });
    Label l = new Label(col2, SWT.NULL);
    l.setText("Fixed columns");
    final Combo fixedColCombo = new Combo(col2, SWT.BORDER | SWT.READ_ONLY);
    fixedColCombo.setItems(new String[] { "0", "1", "2", "3", "4" });
    fixedColCombo.select(0);
    fixedColCombo.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.setFixedColumns(fixedColCombo.getSelectionIndex());
        }
    });
    l = new Label(col2, SWT.NULL);
    l.setText("Fixed rows");
    final Combo fixedRowCombo = new Combo(col2, SWT.BORDER | SWT.READ_ONLY);
    fixedRowCombo.setItems(new String[] { "0", "1", "2", "3", "4" });
    fixedRowCombo.select(0);
    fixedRowCombo.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.setFixedRows(fixedRowCombo.getSelectionIndex());
        }
    });
    final Button resizeRestrictionCheck = new Button(col1, SWT.CHECK);
    resizeRestrictionCheck.setSelection(_table.getResizeRestriction());
    resizeRestrictionCheck.setText("Restrict resizing to headers/row headers");
    resizeRestrictionCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.setResizeRestriction(resizeRestrictionCheck.getSelection());
        }
    });
    final Button excludeFixedRowsCheck = new Button(col1, SWT.CHECK);
    excludeFixedRowsCheck.setSelection(_table.getExcludeFixedRowsFromSorting());
    excludeFixedRowsCheck.setText("Exclude fixed rows from sorting");
    excludeFixedRowsCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.setExcludeFixedRowsFromSorting(excludeFixedRowsCheck.getSelection());
        }
    });
    final Button rowFilterCheck = new Button(col1, SWT.CHECK);
    rowFilterCheck.setSelection(false);
    rowFilterCheck.setText("Set rowfilter (even char count on col2)");
    rowFilterCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            boolean sel = rowFilterCheck.getSelection();
            if (sel) {
                _table.setRowFilter(new AbstractRowFilter() {

                    public boolean isInResult(IRow row) {
                        return ((DummyRow) row).getT2() != null && ((DummyRow) row).getT2().length() % 2 == 0;
                    }
                });
            } else {
                _table.setRowFilter(null);
            }
        }
    });
    final Button rowSorterCheck = new Button(col1, SWT.CHECK);
    rowSorterCheck.setSelection(false);
    rowSorterCheck.setText("Set rowsorter (char count on col3)");
    rowSorterCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            boolean sel = rowSorterCheck.getSelection();
            if (sel) {
                _table.setRowSorter(new AbstractRowSorter() {

                    public int compare(IRow o1, IRow o2) {
                        int c1 = ((DummyRow) o1).getT3() != null ? ((DummyRow) o1).getT3().length() : 0;
                        int c2 = ((DummyRow) o2).getT3() != null ? ((DummyRow) o2).getT3().length() : 0;
                        return c1 - c2;
                    }
                });
            } else {
                _table.setRowSorter(null);
            }
        }
    });
    final Button onlyRowSelectionCheck = new Button(col1, SWT.CHECK);
    onlyRowSelectionCheck.setSelection(false);
    onlyRowSelectionCheck.setText("Only row selection allowed");
    onlyRowSelectionCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            boolean sel = onlyRowSelectionCheck.getSelection();
            _table.getSelectionModel().setOnlyRowSelectionAllowed(sel);
            _table.getSelectionModel().clearSelection();
        }
    });
    final Button optimizeScrollingCheck = new Button(col1, SWT.CHECK);
    optimizeScrollingCheck.setSelection(_table.getOptimizeScrolling());
    optimizeScrollingCheck.setText("Optimize scrolling");
    optimizeScrollingCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            boolean sel = optimizeScrollingCheck.getSelection();
            _table.setOptimizeScrolling(sel);
        }
    });
    /**
         * Style strategy coloring the background of odd row indizes. The implementation is brute force creating
         * tons of objects underway ... so be careful.
         */
    final IStyleStrategy _styleStrategy = new IStyleStrategy() {

        public ICellStyle getCellStyle(IRow row, IColumn column, ICellStyle incomingStyle, ICellStyle defaultCellStyle) {
            if (_table.getInternalRowIndex(row) % 2 == 0) {
                return incomingStyle;
            } else {
                ICellStyle s = incomingStyle.copy();
                s.setBackgroundColor(new RGB(230, 230, 230));
                return s;
            }
        }
    };
    final Button bgColoringCheck = new Button(col1, SWT.CHECK);
    bgColoringCheck.setSelection(_table.getTableViewState().getCellStyleProvider().getStyleStrategy() != null);
    bgColoringCheck.setText("BG coloring (IStyleStrategy)");
    bgColoringCheck.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            boolean sel = bgColoringCheck.getSelection();
            if (!sel) {
                _table.getTableViewState().getCellStyleProvider().setStyleStrategy(null);
                _table.redraw();
            } else {
                _table.getTableViewState().getCellStyleProvider().setStyleStrategy(_styleStrategy);
                _table.redraw();
            }
        }
    });
    Button b2 = new Button(col2, SWT.PUSH);
    b2.setText("Spawn new window");
    b2.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            // hack
            if (_table.getHierarchicalModel() == null) {
                if (_table.getTableModel() instanceof SimpleJaretTableModel) {
                    new SimpleModelExample(_table.getTableModel());
                } else {
                    new TableExample(_table.getTableModel());
                }
            } else {
                new TableHierarchicalExample(_table.getHierarchicalModel());
            }
        }
    });
    b2 = new Button(col2, SWT.PUSH);
    b2.setText("Start changing bars");
    b2.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            for (int i = 0; i < _table.getTableModel().getRowCount(); i++) {
                Runnable r = new Changer(_table.getTableModel(), i);
                Thread t = new Thread(r);
                t.start();
            }
        }
    });
    b2 = new Button(col3, SWT.PUSH);
    b2.setText("Set heightmode OPTIMAL");
    b2.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.getTableViewState().setRowHeightMode(ITableViewState.RowHeightMode.OPTIMAL);
        }
    });
    b2 = new Button(col3, SWT.PUSH);
    b2.setText("Set heightmode OPTANDVAR");
    b2.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.getTableViewState().setRowHeightMode(ITableViewState.RowHeightMode.OPTANDVAR);
        }
    });
    b2 = new Button(col3, SWT.PUSH);
    b2.setText("Set heightmode VARIABLE");
    b2.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.getTableViewState().setRowHeightMode(ITableViewState.RowHeightMode.VARIABLE);
        }
    });
    b2 = new Button(col3, SWT.PUSH);
    b2.setText("Set heightmode FIXED");
    b2.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            _table.getTableViewState().setRowHeightMode(ITableViewState.RowHeightMode.FIXED);
        }
    });
    l = new Label(col3, SWT.NULL);
    l.setText("Column resize mode");
    final Combo colModeCombo = new Combo(col3, SWT.BORDER | SWT.READ_ONLY);
    colModeCombo.setItems(new String[] { "NONE", "SUBSEQUENT", "ALLSUBSEQUENT", "ALL" });
    colModeCombo.select(0);
    colModeCombo.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            String sel = colModeCombo.getText();
            _table.getTableViewState().setColumnResizeMode(ITableViewState.ColumnResizeMode.valueOf(sel));
        }
    });
    b2 = new Button(col3, SWT.PUSH);
    b2.setText("Clipboard info");
    b2.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            Clipboard cb = new Clipboard(Display.getCurrent());
            System.out.println("Clipboard info");
            TextTransfer textTransfer = TextTransfer.getInstance();
            Object content = cb.getContents(textTransfer);
            if (content != null) {
                System.out.println("TEXT: " + content.getClass() + ":" + content.toString());
            }
            RTFTransfer rtfTransfer = RTFTransfer.getInstance();
            content = cb.getContents(rtfTransfer);
            if (content != null) {
                System.out.println("RTF: " + content.getClass() + ":" + content.toString());
            }
            HTMLTransfer htmlTransfer = HTMLTransfer.getInstance();
            content = cb.getContents(htmlTransfer);
            if (content != null) {
                System.out.println("HTML: " + content.getClass() + ":" + content.toString());
            }
        }
    });
    final Button includeColHeadingsWhenCopying = new Button(col3, SWT.CHECK);
    includeColHeadingsWhenCopying.setText("Include col header when copying");
    if (_table.getCcpStrategy() instanceof DefaultCCPStrategy) {
        DefaultCCPStrategy stategy = (DefaultCCPStrategy) _table.getCcpStrategy();
        includeColHeadingsWhenCopying.setSelection(stategy.getIncludeHeadersInCopy());
        includeColHeadingsWhenCopying.addSelectionListener(new SelectionAdapter() {

            public void widgetSelected(SelectionEvent arg0) {
                boolean sel = includeColHeadingsWhenCopying.getSelection();
                DefaultCCPStrategy stategy = (DefaultCCPStrategy) _table.getCcpStrategy();
                stategy.setIncludeHeadersInCopy(sel);
            }
        });
    } else {
        includeColHeadingsWhenCopying.setEnabled(false);
    }
}
Also used : ICellStyle(de.jaret.util.ui.table.renderer.ICellStyle) Label(org.eclipse.swt.widgets.Label) Combo(org.eclipse.swt.widgets.Combo) SimpleJaretTableModel(de.jaret.util.ui.table.model.simple.SimpleJaretTableModel) DefaultCCPStrategy(de.jaret.util.ui.table.strategies.DefaultCCPStrategy) RTFTransfer(org.eclipse.swt.dnd.RTFTransfer) IStyleStrategy(de.jaret.util.ui.table.renderer.IStyleStrategy) AbstractRowSorter(de.jaret.util.ui.table.model.AbstractRowSorter) Button(org.eclipse.swt.widgets.Button) RowLayout(org.eclipse.swt.layout.RowLayout) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Scale(org.eclipse.swt.widgets.Scale) HTMLTransfer(org.eclipse.swt.dnd.HTMLTransfer) RGB(org.eclipse.swt.graphics.RGB) IRow(de.jaret.util.ui.table.model.IRow) IColumn(de.jaret.util.ui.table.model.IColumn) AbstractRowFilter(de.jaret.util.ui.table.model.AbstractRowFilter) Clipboard(org.eclipse.swt.dnd.Clipboard) TextTransfer(org.eclipse.swt.dnd.TextTransfer)

Example 10 with IColumn

use of de.jaret.util.ui.table.model.IColumn in project translationstudio8 by heartsome.

the class JaretTable method setFocus.

/**
     * Set the focussed cell.
     * 
     * @param row row
     * @param col column
     */
private void setFocus(IRow row, IColumn col) {
    if (_focussedRow != row || _focussedColumn != col) {
        IRow oldRow = _focussedRow;
        IColumn oldCol = _focussedColumn;
        _focussedRow = row;
        _focussedColumn = col;
        if (isCompleteVisible(_focussedRow, _focussedColumn)) {
            redraw(_focussedRow, _focussedColumn);
            if (oldRow != null && oldCol != null) {
                redraw(oldRow, oldCol);
            }
        } else {
            // includes redrawing
            scrollToVisible(_focussedRow, _focussedColumn);
        }
        fireTableFocusChanged(row, col);
    }
}
Also used : IRow(de.jaret.util.ui.table.model.IRow) IColumn(de.jaret.util.ui.table.model.IColumn)

Aggregations

IColumn (de.jaret.util.ui.table.model.IColumn)33 IRow (de.jaret.util.ui.table.model.IRow)15 Point (org.eclipse.swt.graphics.Point)13 JaretTable (de.jaret.util.ui.table.JaretTable)5 ArrayList (java.util.ArrayList)5 Rectangle (org.eclipse.swt.graphics.Rectangle)5 SelectionEvent (org.eclipse.swt.events.SelectionEvent)4 Label (org.eclipse.swt.widgets.Label)4 PropCol (de.jaret.util.ui.table.model.PropCol)3 JaretTableActionFactory (de.jaret.util.ui.table.util.action.JaretTableActionFactory)3 MenuManager (org.eclipse.jface.action.MenuManager)3 GridData (org.eclipse.swt.layout.GridData)3 GridLayout (org.eclipse.swt.layout.GridLayout)3 Button (org.eclipse.swt.widgets.Button)3 Composite (org.eclipse.swt.widgets.Composite)3 IAutoFilter (de.jaret.util.ui.table.filter.IAutoFilter)2 IJaretTableCell (de.jaret.util.ui.table.model.IJaretTableCell)2 ITableNode (de.jaret.util.ui.table.model.ITableNode)2 JaretTableCellImpl (de.jaret.util.ui.table.model.JaretTableCellImpl)2 PropListeningTableModel (de.jaret.util.ui.table.model.PropListeningTableModel)2