package com.faforever.client.fx;
import javafx.geometry.Pos;
import javafx.scene.control.TableCell;
import java.util.function.Function;
public class StringCell<S, T> extends TableCell<S, T> {
private Function<T, String> function;
private Pos alignment;
private String[] cssClasses;
public StringCell(Function<T, String> function) {
this(function, Pos.CENTER_LEFT);
}
public StringCell(Function<T, String> function, Pos alignment, String... cssClasses) {
this.function = function;
this.alignment = alignment;
this.cssClasses = cssClasses;
}
@Override
protected void updateItem(T item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
setGraphic(null);
} else {
setText(function.apply(item));
setAlignment(alignment);
getStyleClass().addAll(cssClasses);
}
}
}