Skip to content
Snippets Groups Projects
Commit c1de5665 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#235 - added modals for download and starting

parent 8eee12c2
Branches
Tags
No related merge requests found
Showing
with 93 additions and 35 deletions
...@@ -133,6 +133,8 @@ public class Controller extends BaseController ...@@ -133,6 +133,8 @@ public class Controller extends BaseController
} }
public void shutdown() public void shutdown()
{
if(settings.getServerType().equals(ServerType.LOCAL))
{ {
Logger.debug("Stopping local BudgetMasterServer..."); Logger.debug("Stopping local BudgetMasterServer...");
try try
...@@ -144,7 +146,7 @@ public class Controller extends BaseController ...@@ -144,7 +146,7 @@ public class Controller extends BaseController
{ {
Logger.error(e); Logger.error(e);
} }
}
Worker.shutdown(); Worker.shutdown();
System.exit(0); System.exit(0);
} }
...@@ -293,10 +295,6 @@ public class Controller extends BaseController ...@@ -293,10 +295,6 @@ public class Controller extends BaseController
AlertGenerator.showAlert(AlertType.INFORMATION, Localization.getString(Strings.TITLE_INFO), "", Localization.getString(Strings.INFO_FIRST_START), icon, getStage(), null, false); AlertGenerator.showAlert(AlertType.INFORMATION, Localization.getString(Strings.TITLE_INFO), "", Localization.getString(Strings.INFO_FIRST_START), icon, getStage(), null, false);
}); });
} }
else
{
refresh(filterSettings);
}
} }
public void loadSettingsTab() public void loadSettingsTab()
......
...@@ -66,6 +66,9 @@ public class LocalServerSettingsController extends SettingsController ...@@ -66,6 +66,9 @@ public class LocalServerSettingsController extends SettingsController
private LanguageType previousLanguage; private LanguageType previousLanguage;
private final int MILLIS_UNTIL_NEXT_RETRY = 2000;
private final int MAX_NUMBER_OF_RETRIES = 5;
@Override @Override
public void init(Controller controller) public void init(Controller controller)
{ {
...@@ -140,9 +143,6 @@ public class LocalServerSettingsController extends SettingsController ...@@ -140,9 +143,6 @@ public class LocalServerSettingsController extends SettingsController
case ACTIVE: case ACTIVE:
labelLocalServerStatus.setText(Localization.getString(Strings.LOCAL_SERVER_STATUS_OK)); labelLocalServerStatus.setText(Localization.getString(Strings.LOCAL_SERVER_STATUS_OK));
buttonLocalServerAction.setVisible(false); buttonLocalServerAction.setVisible(false);
RestartHandler restartHandler = new RestartHandler(controller);
restartHandler.handleRestart(controller.getSettings().getLanguage());
refreshLabelsUpdate(); refreshLabelsUpdate();
save(); save();
break; break;
...@@ -156,22 +156,39 @@ public class LocalServerSettingsController extends SettingsController ...@@ -156,22 +156,39 @@ public class LocalServerSettingsController extends SettingsController
Logger.debug("Starting local Server..."); Logger.debug("Starting local Server...");
serverHandler.createServerSettingsIfNotExists(); serverHandler.createServerSettingsIfNotExists();
serverHandler.startServer(); serverHandler.startServer();
try
Logger.debug("Trying to connect to local server...");
Platform.runLater(()->{LoadingModal.setMessage(Localization.getString(Strings.LOAD_LOCAL_SERVER_CONNECT));});
int retryCount = 1;
while(retryCount <= MAX_NUMBER_OF_RETRIES)
{ {
//DEBUG magic number final int retries = retryCount;
//TODO retry reconnecting boolean isActive = serverHandler.getServerStatus().equals(LocalServerStatus.ACTIVE);
System.out.println("Start sleep"); if(isActive)
Thread.sleep(2000);
System.out.println("End sleep");
}
catch(InterruptedException e)
{ {
Logger.debug("Connected to local server");
break;
} }
if(!serverHandler.getServerStatus().equals(LocalServerStatus.ACTIVE)) if(retryCount == MAX_NUMBER_OF_RETRIES)
{ {
Logger.debug("Couldn't connect to local server. Giving up after " + retryCount + " retries.");
throw new LocalServerException(""); throw new LocalServerException("");
} }
else
{
Logger.debug("Couldn't connect to local server. Retry " + retryCount + "/" + MAX_NUMBER_OF_RETRIES + ". Next Retry in " + MILLIS_UNTIL_NEXT_RETRY/1000 + " Seconds...");
Platform.runLater(()->{LoadingModal.setMessage(Localization.getString(Strings.LOAD_LOCAL_SERVER_RETRY, retries, MAX_NUMBER_OF_RETRIES));});
retryCount++;
try
{
Thread.sleep(MILLIS_UNTIL_NEXT_RETRY);
}
catch(InterruptedException e)
{
}
}
}
} }
catch(IOException e) catch(IOException e)
{ {
...@@ -180,7 +197,9 @@ public class LocalServerSettingsController extends SettingsController ...@@ -180,7 +197,9 @@ public class LocalServerSettingsController extends SettingsController
Platform.runLater(()->{ Platform.runLater(()->{
LoadingModal.closeModal(); LoadingModal.closeModal();
AlertGenerator.showAlert(AlertType.ERROR, Localization.getString(Strings.TITLE_ERROR), "", Localization.getString(Strings.ERROR_LOCAL_SERVER_START, e.getMessage()), controller.getIcon(), controller.getStage(), null, false); AlertGenerator.showAlert(AlertType.ERROR, Localization.getString(Strings.TITLE_ERROR), "", Localization.getString(Strings.ERROR_LOCAL_SERVER_START, e.getMessage()), controller.getIcon(), controller.getStage(), null, false);
controller.refresh(controller.getFilterSettings());
}); });
return;
} }
catch(LocalServerException ex) catch(LocalServerException ex)
{ {
...@@ -188,8 +207,19 @@ public class LocalServerSettingsController extends SettingsController ...@@ -188,8 +207,19 @@ public class LocalServerSettingsController extends SettingsController
Platform.runLater(()->{ Platform.runLater(()->{
LoadingModal.closeModal(); LoadingModal.closeModal();
AlertGenerator.showAlert(AlertType.ERROR, Localization.getString(Strings.TITLE_ERROR), "", Localization.getString(Strings.ERROR_LOCAL_SERVER_START, ""), controller.getIcon(), controller.getStage(), null, false); AlertGenerator.showAlert(AlertType.ERROR, Localization.getString(Strings.TITLE_ERROR), "", Localization.getString(Strings.ERROR_LOCAL_SERVER_START, ""), controller.getIcon(), controller.getStage(), null, false);
controller.refresh(controller.getFilterSettings());
buttonLocalServerAction.setText(Localization.getString(Strings.LOCAL_SERVER_ACTION_NOT_STARTED));
buttonLocalServerAction.setVisible(true);
buttonLocalServerAction.setDisable(false);
buttonLocalServerAction.setOnAction((event) -> {
buttonLocalServerAction.setDisable(true);
checkServerStatus();
});
}); });
return;
} }
Platform.runLater(()->{ Platform.runLater(()->{
checkServerStatus(); checkServerStatus();
LoadingModal.closeModal(); LoadingModal.closeModal();
...@@ -204,7 +234,7 @@ public class LocalServerSettingsController extends SettingsController ...@@ -204,7 +234,7 @@ public class LocalServerSettingsController extends SettingsController
buttonLocalServerAction.setOnAction((event) -> { buttonLocalServerAction.setOnAction((event) -> {
buttonLocalServerAction.setDisable(true); buttonLocalServerAction.setDisable(true);
LoadingModal.showModal(Localization.getString(Strings.TITLE_MODAL), Localization.getString(Strings.LOAD_LOCAL_SERVER), controller.getStage(), controller.getIcon()); LoadingModal.showModal(Localization.getString(Strings.TITLE_MODAL), Localization.getString(Strings.LOAD_DOWNLOAD_LOCAL_SERVER), controller.getStage(), controller.getIcon());
Worker.runLater(() -> { Worker.runLater(() -> {
try try
......
...@@ -15,4 +15,9 @@ public class ModalController ...@@ -15,4 +15,9 @@ public class ModalController
e.consume(); e.consume();
}); });
} }
public void setMessage(String message)
{
labelMessage.setText(message);
}
} }
\ No newline at end of file
...@@ -103,6 +103,8 @@ public class OnlineServerSettingsController extends SettingsController ...@@ -103,6 +103,8 @@ public class OnlineServerSettingsController extends SettingsController
hboxSettings.prefWidthProperty().bind(scrollPane.widthProperty().subtract(25)); hboxSettings.prefWidthProperty().bind(scrollPane.widthProperty().subtract(25));
refreshLabelsUpdate(); refreshLabelsUpdate();
controller.refresh(controller.getFilterSettings());
} }
@Override @Override
......
...@@ -16,6 +16,7 @@ import tools.Localization; ...@@ -16,6 +16,7 @@ import tools.Localization;
public class LoadingModal public class LoadingModal
{ {
private static Stage modalStage; private static Stage modalStage;
private static ModalController modalController;
public static void showModal(String title, String message, Stage owner, Image icon) public static void showModal(String title, String message, Stage owner, Image icon)
{ {
...@@ -23,13 +24,21 @@ public class LoadingModal ...@@ -23,13 +24,21 @@ public class LoadingModal
modalStage = createModal(title, message, owner, icon); modalStage = createModal(title, message, owner, icon);
} }
public static void setMessage(String message)
{
if(modalController != null)
{
modalController.setMessage(message);
}
}
public static void closeModal() public static void closeModal()
{ {
System.out.println(Thread.currentThread().getStackTrace()[2]);
if(modalStage != null) if(modalStage != null)
{ {
modalStage.close(); modalStage.close();
modalStage = null; modalStage = null;
modalController = null;
} }
} }
...@@ -52,8 +61,9 @@ public class LoadingModal ...@@ -52,8 +61,9 @@ public class LoadingModal
newStage.setScene(new Scene(root)); newStage.setScene(new Scene(root));
newStage.getIcons().add(icon); newStage.getIcons().add(icon);
newStage.setResizable(false); newStage.setResizable(false);
ModalController newController = fxmlLoader.getController(); newStage.setAlwaysOnTop(true);
newController.init(newStage, message); modalController = fxmlLoader.getController();
modalController.init(newStage, message);
newStage.show(); newStage.show();
return newStage; return newStage;
......
...@@ -49,6 +49,8 @@ load.update=Update wird heruntergeladen, bitte warten... ...@@ -49,6 +49,8 @@ load.update=Update wird heruntergeladen, bitte warten...
load.search=Buchungen werden gesucht, bitte warten... load.search=Buchungen werden gesucht, bitte warten...
load.local.server=Der lokale Server wird gestartet, bitte warten... load.local.server=Der lokale Server wird gestartet, bitte warten...
load.download.local.server=Der lokale Server wird heruntergeladen, bitte warten... load.download.local.server=Der lokale Server wird heruntergeladen, bitte warten...
load.local.server.connect=Verbinde mit lokalem Server, bitte warten...
load.local.server.retry=Verbinde mit lokalem Server... (Versuch {0}/{1})
# MISC # MISC
category.none=Keine Kategorie category.none=Keine Kategorie
...@@ -71,6 +73,7 @@ tagfield.placeholder=Neuen Tag hier eingeben ...@@ -71,6 +73,7 @@ tagfield.placeholder=Neuen Tag hier eingeben
shortcut.dev.console=F12 shortcut.dev.console=F12
local.server.status.ok=Server ist gestartet. local.server.status.ok=Server ist gestartet.
local.server.status.not.started=Server konnte nicht gestartet werden. local.server.status.not.started=Server konnte nicht gestartet werden.
local.server.action.not.started=Starten
local.server.status.not.present=Server nicht gefunden. local.server.status.not.present=Server nicht gefunden.
local.server.action.not.present=Herunterladen local.server.action.not.present=Herunterladen
......
...@@ -49,6 +49,8 @@ load.update=Please wait while the update is being downloaded... ...@@ -49,6 +49,8 @@ load.update=Please wait while the update is being downloaded...
load.search=Please wait while payments are being searched... load.search=Please wait while payments are being searched...
load.local.server=Please wait while the local server is being started... load.local.server=Please wait while the local server is being started...
load.download.local.server=Please wait while the local server is being downloaded... load.download.local.server=Please wait while the local server is being downloaded...
load.local.server.connect=Connecting to local server...
load.local.server.retry=Connecting to local server... (Retry {0}/{1})
# MISC # MISC
category.none=No Category category.none=No Category
...@@ -71,6 +73,7 @@ tagfield.placeholder=Enter new Tag here ...@@ -71,6 +73,7 @@ tagfield.placeholder=Enter new Tag here
shortcut.dev.console=F12 shortcut.dev.console=F12
local.server.status.ok=Server is running. local.server.status.ok=Server is running.
local.server.status.not.started=Server couldn't be started. local.server.status.not.started=Server couldn't be started.
local.server.action.not.started=Start
local.server.status.not.present=Server not found. local.server.status.not.present=Server not found.
local.server.action.not.present=Download local.server.action.not.present=Download
......
...@@ -90,6 +90,9 @@ ...@@ -90,6 +90,9 @@
<HBox.margin> <HBox.margin>
<Insets right="25.0" /> <Insets right="25.0" />
</HBox.margin> </HBox.margin>
<padding>
<Insets top="3.0" />
</padding>
</VBox> </VBox>
<VBox alignment="CENTER_LEFT" prefHeight="200.0" prefWidth="100.0" spacing="15.0" HBox.hgrow="ALWAYS"> <VBox alignment="CENTER_LEFT" prefHeight="200.0" prefWidth="100.0" spacing="15.0" HBox.hgrow="ALWAYS">
<children> <children>
......
...@@ -51,6 +51,9 @@ public class Strings ...@@ -51,6 +51,9 @@ public class Strings
public static final String LOAD_SEARCH = "load.search"; public static final String LOAD_SEARCH = "load.search";
public static final String LOAD_LOCAL_SERVER = "load.local.server"; public static final String LOAD_LOCAL_SERVER = "load.local.server";
public static final String LOAD_DOWNLOAD_LOCAL_SERVER = "load.download.local.server"; public static final String LOAD_DOWNLOAD_LOCAL_SERVER = "load.download.local.server";
public static final String LOAD_LOCAL_SERVER_CONNECT = "load.local.server.connect";
public static final String LOAD_LOCAL_SERVER_RETRY = "load.local.server.retry";
//MISC //MISC
public static final String CATEGORY_NONE = "category.none"; public static final String CATEGORY_NONE = "category.none";
...@@ -74,6 +77,7 @@ public class Strings ...@@ -74,6 +77,7 @@ public class Strings
public static final String SHORTCUT_DEV_CONSOLE = "shortcut.dev.console"; public static final String SHORTCUT_DEV_CONSOLE = "shortcut.dev.console";
public static final String LOCAL_SERVER_STATUS_OK = "local.server.status.ok"; public static final String LOCAL_SERVER_STATUS_OK = "local.server.status.ok";
public static final String LOCAL_SERVER_STATUS_NOT_STARTED = "local.server.status.not.started"; public static final String LOCAL_SERVER_STATUS_NOT_STARTED = "local.server.status.not.started";
public static final String LOCAL_SERVER_ACTION_NOT_STARTED = "local.server.action.not.started";
public static final String LOCAL_SERVER_STATUS_NOT_PRESENT = "local.server.status.not.present"; public static final String LOCAL_SERVER_STATUS_NOT_PRESENT = "local.server.status.not.present";
public static final String LOCAL_SERVER_ACTION_NOT_PRESENT = "local.server.action.not.present"; public static final String LOCAL_SERVER_ACTION_NOT_PRESENT = "local.server.action.not.present";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment