Java tutorial
/* * Copyright 2013 Sigurd Randoll. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.digiway.rapidbreeze.client.controller; import de.digiway.rapidbreeze.client.config.ClientConfiguration; import de.digiway.rapidbreeze.client.infrastructure.BusEvents; import java.net.URL; import java.text.MessageFormat; import java.util.ResourceBundle; import javafx.application.Platform; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import org.apache.commons.lang3.Validate; import org.rribbit.Listener; import org.rribbit.RRB; import org.rribbit.RequestResponseBus; /** * * @author Sigurd */ public class StatusbarController implements Initializable { private ResourceBundle resourceBundle; @FXML private Label connectionStateLabel; @FXML private ImageView connectionStateIcon; private RequestResponseBus rrb; private ClientConfiguration clientConfiguration; private Image connectedImage; private Image disconnectedImage; @Override public void initialize(URL url, ResourceBundle rb) { this.resourceBundle = rb; this.rrb = RRB.get(); this.connectedImage = new Image("images/icons/connected-26.png", 18d, 18d, true, true); this.disconnectedImage = new Image("images/icons/disconnected-26.png", 18d, 18d, true, true); setDisconnected(); } void setClientConfiguration(ClientConfiguration clientConfiguration) { this.clientConfiguration = clientConfiguration; } @Listener(hint = BusEvents.SERVER_CONNECTION_CHANGED_EVENT) public void onConnectionStateChanged(final boolean newState) { Platform.runLater(new Runnable() { @Override public void run() { if (newState) { setConnectedTo(clientConfiguration.getServerName()); } else { setDisconnected(); } } }); } private void setConnectedTo(String servername) { Validate.notEmpty(servername); String connection = resourceBundle.getString("Statusbar.Connection"); connectionStateLabel.setText(MessageFormat.format(connection, servername)); connectionStateIcon.setImage(connectedImage); } private void setDisconnected() { connectionStateLabel.setText(resourceBundle.getString("Statusbar.NotConnected")); connectionStateIcon.setImage(disconnectedImage); } }