package org.pieShare.pieShareAppFx.conrolExtensions;
import javafx.scene.Node;
import javafx.scene.control.ListCell;
import javafx.scene.layout.GridPane;
import org.pieShare.pieShareAppFx.controller.api.ITwoColumnListViewItem;
/**
*
* @author Richard
*
* Inspired by: http://www.billmann.de/2013/07/03/javafx-custom-listcell/
*/
public class TwoColumnListViewEntry extends ListCell<ITwoColumnListViewItem> {
@Override
public void updateItem(ITwoColumnListViewItem entry, boolean empty) {
super.updateItem(entry, empty);
if (empty) {
setText(null);
setGraphic(null);
} else {
setText(null);
// DO NOT CREATE INSTANCES IN THIS METHOD, THIS IS BAD!
GridPane grid = new GridPane();
grid.setHgap(10);
grid.setVgap(4);
// grid.setPadding(new Insets(0, 5, 0, 5));
int i = 0;
Node icon = entry.getFirstColumn();
if (icon != null) {
icon.getStyleClass().add("cache-list-icon");
grid.add(icon, i, 0);//, 1, 2);
i++;
}
Node name = entry.getSecondColumn();
if (name != null) {
grid.add(name, i, 0);
}
setGraphic(grid);
}
}
}