var processing = {
overlay: null, spinner: null, description: null,
processingImage: null, errorImage: null,
initOverlay: function() {
processing.overlay = loadFXML("dialog/overlay/processing/processing.fxml");
// Lookup nodes
processing.spinner = processing.overlay.lookup("#spinner");
processing.description = processing.overlay.lookup("#description");
// Set images
processing.processingImage = new javafx.scene.image.Image(
Launcher.getResourceURL("dialog/overlay/processing/spinner.gif").toString());
processing.errorImage = new javafx.scene.image.Image(
Launcher.getResourceURL("dialog/overlay/processing/error.png").toString());
},
resetOverlay: function() {
processing.spinner.setImage(processing.processingImage);
processing.description.getStyleClass().remove("error");
processing.description.setText("...");
},
setError: function(e) {
LogHelper.error(e);
processing.description.textProperty().unbind();
processing.spinner.setImage(processing.errorImage);
processing.description.getStyleClass().add("error");
processing.description.setText(e.toString());
},
setTaskProperties: function(task, callback, hide) {
processing.description.textProperty().bind(task.messageProperty());
task.setOnFailed(function(event) {
processing.description.textProperty().unbind();
processing.setError(task.getException());
if(hide) {
overlay.hide(2500, null);
}
});
task.setOnSucceeded(function(event) {
processing.description.textProperty().unbind();
if(callback !== null) {
callback(task.getValue());
}
});
}
};
/* Export functions */
function makeLauncherRequest(callback) {
var task = newRequestTask(new LauncherRequest());
processing.setTaskProperties(task, callback, false);
task.updateMessage("Обновление списка серверов");
startTask(task);
}
function makeAuthRequest(username, rsaPassword, callback) {
var task = newRequestTask(new AuthRequest(username, rsaPassword));
processing.setTaskProperties(task, callback, true);
task.updateMessage("Авторизация на сервере");
startTask(task);
}
function launchClient(jvmDir, jvmHDir, clientHDir, profile, params, callback) {
var task = newTask(function() ClientLauncher.launch(jvmDir, jvmHDir,
clientHDir, profile, params, LogHelper.isDebugEnabled()));
processing.setTaskProperties(task, callback, true);
task.updateMessage("Запуск выбранного клиента");
startTask(task);
}