package test_streamer.client.ui;
import javafx.application.Platform;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import test_streamer.client.ClientStatus;
import test_streamer.client.ClientUI;
import test_streamer.client.dto.TestSuiteResult;
/**
* @author kawasima
*/
public class PanelNotification extends AnchorPane implements ClientUI {
private ImageView logo;
private StatusBar statusBar;
private TextArea messageArea;
private VBox vBox = new VBox(5.0);
public PanelNotification() {
logo = new ImageView();
logo.setImage(new Image(getClass().getResourceAsStream("/logo.png")));
messageArea = new TextArea();
messageArea.setEditable(false);
VBox.setVgrow(messageArea, Priority.ALWAYS);
messageArea.setMaxHeight(Double.MAX_VALUE);
statusBar = new StatusBar(ClientStatus.CONNECTING);
vBox.getChildren().addAll(logo, statusBar, messageArea);
getChildren().addAll(vBox);
setStyle("-fx-padding: 10");
AnchorPane.setTopAnchor(vBox, 0.0);
AnchorPane.setBottomAnchor(vBox, 0.0);
AnchorPane.setLeftAnchor(vBox, 0.0);
AnchorPane.setRightAnchor(vBox, 0.0);
}
public void beginTest(String testName) {
Platform.runLater(() ->
messageArea.appendText("Running tests: " + testName + "\n"));
}
public void endTest(TestSuiteResult result) {
Platform.runLater(() ->
messageArea.appendText(result.toString() + "\n"));
}
public void disconnect() {
Platform.runLater(() -> {
messageArea.appendText("Disconnect from server." + "\n");
statusBar.setStatus(ClientStatus.DISCONNECTED);
});
}
public void standby() {
Platform.runLater(() -> {
statusBar.setStatus(ClientStatus.CONNECTED);
});
}
}