package test_streamer.client.ui; import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.input.MouseEvent; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import test_streamer.client.ClientStatus; import test_streamer.client.event.ConnectEvent; /** * @author kawasima */ public class StatusBar extends HBox { private Label statusText; private Button reconnectBtn; private ClientStatus status; public StatusBar(ClientStatus status) { statusText = new Label("Connecting..."); HBox.setHgrow(statusText, Priority.ALWAYS); statusText.setMaxWidth(Double.MAX_VALUE); reconnectBtn = new Button("Reconnect"); reconnectBtn.getStyleClass().add("btn-reconnect"); reconnectBtn.addEventHandler(MouseEvent.MOUSE_CLICKED, e -> { getParent().fireEvent(new ConnectEvent()); }); setAlignment(Pos.CENTER_LEFT); getStyleClass().add("status-bar"); setHeight(50.0); getChildren().addAll(statusText, reconnectBtn); setStatus(status); } public void setStatus(ClientStatus status) { this.status = status; statusText.setText(status.getLabel()); statusText.setStyle(status.getStyle()); reconnectBtn.setVisible(status == ClientStatus.DISCONNECTED); } public ClientStatus getStatus() { return status; } }