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