in application/org.openjdk.jmc.joverflow.ui/src/main/java/org/openjdk/jmc/joverflow/ui/viewers/MemoryStatisticsTable.java [59:144]
public MemoryStatisticsTable(final Runnable updateCallback) {
setRowFactory(new Callback<TableView<T>, TableRow<T>>() {
@Override
public TableRow<T> call(TableView<T> param) {
final TableRow<T> row = new TableRow<T>() {
@Override
protected void updateItem(T item, boolean empty) {
super.updateItem(item, empty);
// FIXME: Change this when javafx RT-32518 is implemented
getStyleClass().remove(HIGHLIGHT);
if (item == selectedItem) {
getStyleClass().add(HIGHLIGHT);
}
};
};
row.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent me) {
if (getItems().size() > row.getIndex()) {
switch (me.getButton()) {
case PRIMARY:
case SECONDARY:
selectedItem = getItems().get(row.getIndex());
updateCallback.run();
break;
case NONE:
case MIDDLE:
}
}
me.consume();
}
});
return row;
}
});
TableColumn<T, String> name = new TableColumn<T, String>("Object Selection");
name.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<T, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<T, String> param) {
return new SimpleObjectProperty<String>(param.getValue().getName());
}
});
name.setPrefWidth(230);
final TableColumn<T, Number> memory = new TableColumn<T, Number>("Memory KB");
memory.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<T, Number>, ObservableValue<Number>>() {
@Override
public ObservableValue<Number> call(CellDataFeatures<T, Number> param) {
return param.getValue().memoryProperty();
}
});
memory.setCellFactory(CellFactories.<T, Number> getMemoryCellFactory());
memory.setPrefWidth(100);
memory.setSortType(SortType.DESCENDING);
final TableColumn<T, Number> ovhd = new TableColumn<T, Number>("Overhead KB");
ovhd.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<T, Number>, ObservableValue<Number>>() {
@Override
public ObservableValue<Number> call(CellDataFeatures<T, Number> param) {
return param.getValue().ovhdProperty();
}
});
ovhd.setCellFactory(CellFactories.<T, Number> getOvhdCellFactory());
ovhd.setPrefWidth(100);
final TableColumn<T, Number> size = new TableColumn<T, Number>("Objects");
size.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<T, Number>, ObservableValue<Number>>() {
@Override
public ObservableValue<Number> call(CellDataFeatures<T, Number> param) {
return param.getValue().sizeProperty();
}
});
size.setCellFactory(CellFactories.<T, Number> getSizeCellFactory());
size.setPrefWidth(75);
getSortOrder().add(memory);
getColumns().setAll(name, memory, ovhd, size);
}