package com.digiarea.closure.model.providers;
import javafx.scene.control.Label;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.util.Callback;
import com.digiarea.closurefx.IConstants;
import com.digiarea.closurefx.build.validation.Status;
public class ConsoleCellFactory implements
Callback<ListView<Status>, ListCell<Status>> {
@Override
public ListCell<Status> call(ListView<Status> list) {
return new ConsoleListCell();
}
public class ConsoleListCell extends ListCell<Status> {
public ConsoleListCell() {
}
@Override
public void updateItem(Status item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setText(null);
setGraphic(null);
} else {
Label label = new Label(item.getMessage());
if (item.getException() != null) {
label.setText(label.getText() + "\n"
+ item.getExceptionMessage());
}
switch (item.getSeverity()) {
case CANCEL:
label.getStyleClass().add(IConstants.CSS_STATUS_OFF);
break;
case DEFAULT:
label.getStyleClass().add(IConstants.CSS_STATUS_OFF);
break;
case ERROR:
label.getStyleClass().add(IConstants.CSS_STATUS_ERROR);
break;
case INFO:
label.getStyleClass().add(IConstants.CSS_STATUS_INFO);
break;
case OFF:
label.getStyleClass().add(IConstants.CSS_STATUS_OFF);
break;
case OK:
label.getStyleClass().add(IConstants.CSS_STATUS_OFF);
break;
case WARNING:
label.getStyleClass().add(IConstants.CSS_STATUS_WARNING);
break;
case NO:
label.getStyleClass().add(IConstants.CSS_STATUS_OFF);
break;
}
setGraphic(label);
}
}
}
}