Search in sources :

Example 1 with TableViewHeader

use of org.apache.pivot.wtk.TableViewHeader in project pivot by apache.

the class TerraTableViewHeaderSkin method mouseDown.

@Override
public boolean mouseDown(Component component, Mouse.Button button, int x, int y) {
    boolean consumed = super.mouseDown(component, button, x, y);
    if (button == Mouse.Button.LEFT) {
        TableViewHeader tableViewHeader = (TableViewHeader) getComponent();
        TableView tableView = tableViewHeader.getTableView();
        if (tableView != null) {
            int headerIndex = getHeaderAt(x);
            if (headerIndex != -1) {
                Bounds headerBounds = getHeaderBounds(headerIndex);
                TableView.Column column = tableView.getColumns().get(headerIndex);
                if (columnsResizable && !column.isRelative() && column.getWidth() != -1 && x > headerBounds.x + headerBounds.width - RESIZE_HANDLE_SIZE) {
                    resizeHeaderIndex = headerIndex;
                } else if (headersPressable) {
                    pressedHeaderIndex = headerIndex;
                    repaintComponent(headerBounds);
                }
            }
        }
    }
    return consumed;
}
Also used : TableViewHeader(org.apache.pivot.wtk.TableViewHeader) Bounds(org.apache.pivot.wtk.Bounds) GradientPaint(java.awt.GradientPaint) TableView(org.apache.pivot.wtk.TableView)

Example 2 with TableViewHeader

use of org.apache.pivot.wtk.TableViewHeader in project pivot by apache.

the class TerraTableViewHeaderSkin method install.

@Override
public void install(Component component) {
    super.install(component);
    TableViewHeader tableViewHeader = (TableViewHeader) component;
    tableViewHeader.getTableViewHeaderListeners().add(this);
    TableView tableView = tableViewHeader.getTableView();
    if (tableView != null) {
        tableView.getTableViewColumnListeners().add(this);
        tableView.getTableViewSortListeners().add(this);
    }
}
Also used : TableViewHeader(org.apache.pivot.wtk.TableViewHeader) TableView(org.apache.pivot.wtk.TableView)

Example 3 with TableViewHeader

use of org.apache.pivot.wtk.TableViewHeader in project pivot by apache.

the class TerraTableViewHeaderSkin method getHeaderBounds.

@Override
public Bounds getHeaderBounds(int headerIndex) {
    Bounds headerBounds = null;
    TableViewHeader tableViewHeader = (TableViewHeader) getComponent();
    TableView tableView = tableViewHeader.getTableView();
    if (tableView != null) {
        Utils.checkZeroBasedIndex(headerIndex, headerWidths.getLength());
        int cellX = 0;
        for (int i = 0; i < headerIndex; i++) {
            cellX += (headerWidths.get(i).intValue() + 1);
        }
        headerBounds = new Bounds(cellX, 0, headerWidths.get(headerIndex).intValue(), getHeight() - 1);
    }
    return headerBounds;
}
Also used : TableViewHeader(org.apache.pivot.wtk.TableViewHeader) Bounds(org.apache.pivot.wtk.Bounds) GradientPaint(java.awt.GradientPaint) TableView(org.apache.pivot.wtk.TableView)

Example 4 with TableViewHeader

use of org.apache.pivot.wtk.TableViewHeader in project pivot by apache.

the class TerraTableViewHeaderSkin method getHeaderAt.

@Override
public int getHeaderAt(int x) {
    Utils.checkNonNegative(x, "x");
    int headerIndex = -1;
    TableViewHeader tableViewHeader = (TableViewHeader) getComponent();
    TableView tableView = tableViewHeader.getTableView();
    if (tableView != null) {
        int i = 0;
        int n = tableView.getColumns().getLength();
        int headerX = 0;
        while (i < n && x > headerX) {
            headerX += (headerWidths.get(i).intValue() + 1);
            i++;
        }
        if (x <= headerX) {
            headerIndex = i - 1;
        }
    }
    return headerIndex;
}
Also used : TableViewHeader(org.apache.pivot.wtk.TableViewHeader) GradientPaint(java.awt.GradientPaint) TableView(org.apache.pivot.wtk.TableView)

Example 5 with TableViewHeader

use of org.apache.pivot.wtk.TableViewHeader in project pivot by apache.

the class TerraTableViewHeaderSkin method mouseMove.

@Override
public boolean mouseMove(Component component, int x, int y) {
    boolean consumed = super.mouseMove(component, x, y);
    TableViewHeader tableViewHeader = (TableViewHeader) getComponent();
    TableView tableView = tableViewHeader.getTableView();
    if (tableView != null) {
        if (resizeHeaderIndex != -1 && Mouse.getCapturer() != tableViewHeader) {
            Mouse.capture(tableViewHeader);
        }
        if (Mouse.getCapturer() == tableViewHeader) {
            TableView.Column column = tableView.getColumns().get(resizeHeaderIndex);
            Bounds headerBounds = getHeaderBounds(resizeHeaderIndex);
            int columnWidth = Math.max(x - headerBounds.x, MINIMUM_COLUMN_WIDTH);
            column.setWidth(columnWidth, false);
        } else {
            int headerIndex = getHeaderAt(x);
            if (headerIndex != -1 && columnsResizable) {
                Bounds headerBounds = getHeaderBounds(headerIndex);
                TableView.Column column = tableView.getColumns().get(headerIndex);
                if (!column.isRelative() && column.getWidth() != -1 && x > headerBounds.x + headerBounds.width - RESIZE_HANDLE_SIZE) {
                    tableViewHeader.setCursor(Cursor.RESIZE_EAST);
                } else {
                    tableViewHeader.setCursor((Cursor) null);
                }
            } else {
                tableViewHeader.setCursor((Cursor) null);
            }
        }
    }
    return consumed;
}
Also used : TableViewHeader(org.apache.pivot.wtk.TableViewHeader) Bounds(org.apache.pivot.wtk.Bounds) GradientPaint(java.awt.GradientPaint) TableView(org.apache.pivot.wtk.TableView)

Aggregations

TableView (org.apache.pivot.wtk.TableView)11 TableViewHeader (org.apache.pivot.wtk.TableViewHeader)11 GradientPaint (java.awt.GradientPaint)9 Bounds (org.apache.pivot.wtk.Bounds)3 SortDirection (org.apache.pivot.wtk.SortDirection)2 BasicStroke (java.awt.BasicStroke)1 Color (java.awt.Color)1 Graphics2D (java.awt.Graphics2D)1 Line2D (java.awt.geom.Line2D)1 SortMode (org.apache.pivot.wtk.TableViewHeader.SortMode)1 Image (org.apache.pivot.wtk.media.Image)1