package bluej.groupwork.ui;

import javafx.application.Platform;
import javafx.scene.control.ButtonType;
import javafx.scene.control.ProgressBar;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.scene.text.TextFlow;
import javafx.stage.Window;

import bluej.Config;
import bluej.groupwork.TeamSettings;
import bluej.groupwork.TeamworkCommandResult;
import bluej.groupwork.TeamworkProvider;
import bluej.utility.javafx.FXCustomizedDialog;
import bluej.utility.javafx.JavaFXUtil;

import threadchecker.OnThread;
import threadchecker.Tag;


| A dialog which displays an activity indicator while connection settings are | being verified | | @author Davin McCall | @author Amjad Altadmri | @OnThread(Tag.FXPlatform) public class CheckConnectionDialog extends FXCustomizedDialog<Void>{ private ProgressBar activityIndicator; private Text connLabel; private TeamSettings settings; private TeamworkProvider provider; public CheckConnectionDialog(Window owner, TeamworkProvider provider, TeamSettings settings) { super(owner, "team.settings.checkConnection", "team-test-connection"); this.provider = provider; this.settings = settings; buildUI(); } private void buildUI() { VBox contentPane = new VBox(); contentPane.setMinHeight(120.0); JavaFXUtil.addStyleClass(contentPane, "pane"); getDialogPane().setContent(contentPane); getDialogPane().getButtonTypes().setAll(ButtonType.CLOSE); connLabel = new Text(Config.getString("team.checkconn.checking")); contentPane.getChildren().add(new TextFlow(connLabel)); activityIndicator = new ProgressBar(); contentPane.getChildren().add(activityIndicator); activityIndicator.setMaxWidth(9999.0); contentPane.setFillWidth(true); } public void showAndCheck() { new Thread(new Runnable() { @Override @OnThread(Tag.Worker) public void run() { final TeamworkCommandResult res = provider.checkConnection(settings); Platform.runLater(() -> { if (!res.isError()) { connLabel.setText(Config.getString("team.checkconn.ok")); } else { connLabel.setText(Config.getString("team.checkconn.bad") + System.getProperty("line.separator") + System.getProperty("line.separator") + res.getErrorMessage()); } activityIndicator.setProgress(1.0); }); } }).start(); showAndWait(); } }

.   CheckConnectionDialog
.   buildUI
.   showAndCheck
.   run




92 neLoCode + 4 LoComm