package de.pbauerochse.worklogviewer.fx.tablecolumns; import de.pbauerochse.worklogviewer.fx.tabs.domain.DisplayRow; import de.pbauerochse.worklogviewer.util.FormattingUtil; import javafx.beans.property.SimpleObjectProperty; import javafx.geometry.Pos; import javafx.scene.control.TreeTableCell; import javafx.scene.control.TreeTableColumn; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sun.text.resources.cldr.ga.FormatData_ga; import java.text.Format; import static de.pbauerochse.worklogviewer.fx.tablecolumns.CellStyleClasses.*; /** * @author Patrick Bauerochse * @since 08.07.15 */ public class TaskWorklogSummaryTreeTableColumn extends TreeTableColumn<DisplayRow, DisplayRow> { private static final Logger LOGGER = LoggerFactory.getLogger(TaskWorklogSummaryTreeTableColumn.class); public TaskWorklogSummaryTreeTableColumn() { super(FormattingUtil.getFormatted("view.main.summary")); setSortable(false); setCellValueFactory(param -> new SimpleObjectProperty(param.getValue().getValue())); setCellFactory(param -> { TreeTableCell<DisplayRow, DisplayRow> summaryCell = new TreeTableCell<DisplayRow, DisplayRow>() { @Override protected void updateItem(DisplayRow item, boolean empty) { super.updateItem(item, empty); getStyleClass().removeAll(ALL); if (empty) { setText(StringUtils.EMPTY); } else { setText(FormattingUtil.formatMinutes(item.getTotaltimeSpent())); if (item.isGroupContainer()) { getStyleClass().add(GROUP_COLUMN_OR_CELL_CSS_CLASS); } else { getStyleClass().add(SUMMARY_COLUMN_OR_CELL_CSS_CLASS); } } } }; summaryCell.setAlignment(Pos.CENTER_RIGHT); return summaryCell; }); setPrefWidth(120); } }