From: Debayan Sutradhar Date: Fri, 09 Apr 2021 11:20:49 +0530 Subject: Optimised Client/Server Settings Sync --- Optimised Client/Server Settings Sync --- --- 'a/src/main/java/com/stream_pi/server/connection/ClientConnection.java' +++ b/src/main/java/com/stream_pi/server/connection/ClientConnection.java @@ -207,6 +207,21 @@ public class ClientConnection extends Th serverListener.clearTemp(); } + public void updateClientDetails(Message message) + { + String[] ar = message.getStringArrValue(); + + logger.info("Setting up client object ..."); + + client.setNickName(ar[4]); + client.setDisplayWidth(Double.parseDouble(ar[5])); + client.setDisplayHeight(Double.parseDouble(ar[6])); + client.setDefaultProfileID(ar[8]); + client.setDefaultThemeFullName(ar[9]); + + serverListener.getSettingsBase().getClientsSettings().loadData(); + } + public synchronized Client getClient() { return client; @@ -245,11 +260,14 @@ public class ClientConnection extends Th case "disconnect" : clientDisconnected(message); break; - case "client_details" : initAfterConnectionQueryReceive(message); + case "register_client_details" : initAfterConnectionQueryReceive(message); getProfilesFromClient(); getThemesFromClient(); break; + case "update_client_details" : updateClientDetails(message); + break; + case "client_screen_details" : onClientScreenDetailsReceived(message); break; --- 'a/src/main/java/com/stream_pi/server/connection/ServerListener.java' +++ b/src/main/java/com/stream_pi/server/connection/ServerListener.java @@ -4,6 +4,7 @@ import com.stream_pi.action_api.external import com.stream_pi.action_api.externalplugin.ToggleAction; import com.stream_pi.server.window.dashboard.ClientAndProfileSelectorPane; import com.stream_pi.server.window.dashboard.DashboardBase; +import com.stream_pi.server.window.settings.SettingsBase; import com.stream_pi.util.exception.SevereException; import javafx.stage.Stage; @@ -21,6 +22,7 @@ public interface ServerListener Stage getStage(); DashboardBase getDashboardBase(); + SettingsBase getSettingsBase(); void initLogger() throws SevereException; } --- 'a/src/main/java/com/stream_pi/server/controller/Controller.java' +++ b/src/main/java/com/stream_pi/server/controller/Controller.java @@ -18,6 +18,7 @@ import com.stream_pi.server.window.dashb import com.stream_pi.server.window.dashboard.DonatePopupContent; import com.stream_pi.server.window.dashboard.actiongridpane.ActionBox; import com.stream_pi.server.window.firsttimeuse.FirstTimeUse; +import com.stream_pi.server.window.settings.SettingsBase; import com.stream_pi.util.alert.StreamPiAlert; import com.stream_pi.util.alert.StreamPiAlertListener; import com.stream_pi.util.alert.StreamPiAlertType; @@ -86,15 +87,15 @@ public class Controller extends Base imp ExternalPlugins.getInstance().setServerConnection(this); - getDashboardPane().getPluginsPane().getSettingsButton().setOnAction(event -> { + getDashboardBase().getPluginsPane().getSettingsButton().setOnAction(event -> { openSettingsAnimation.play(); }); - getSettingsPane().getCloseButton().setOnAction(event -> { + getSettingsBase().getCloseButton().setOnAction(event -> { closeSettingsAnimation.play(); }); - getSettingsPane().getThemesSettings().setController(this); + getSettingsBase().getThemesSettings().setController(this); mainServer = new MainServer(this, this); @@ -149,34 +150,34 @@ public class Controller extends Base imp { try { - getSettingsPane().getGeneralSettings().loadDataFromConfig(); + getSettingsBase().getGeneralSettings().loadDataFromConfig(); //themes - getSettingsPane().getThemesSettings().setThemes(getThemes()); - getSettingsPane().getThemesSettings().setCurrentThemeFullName(getCurrentTheme().getFullName()); - getSettingsPane().getThemesSettings().loadThemes(); + getSettingsBase().getThemesSettings().setThemes(getThemes()); + getSettingsBase().getThemesSettings().setCurrentThemeFullName(getCurrentTheme().getFullName()); + getSettingsBase().getThemesSettings().loadThemes(); //clients - getSettingsPane().getClientsSettings().loadData(); + getSettingsBase().getClientsSettings().loadData(); try { //Plugins Platform.runLater(()->{ - getDashboardPane().getPluginsPane().clearData(); - getDashboardPane().getPluginsPane().loadOtherActions(); + getDashboardBase().getPluginsPane().clearData(); + getDashboardBase().getPluginsPane().loadOtherActions(); }); ExternalPlugins.setPluginsLocation(getConfig().getPluginsPath()); ExternalPlugins.getInstance().init(); - Platform.runLater(()->getDashboardPane().getPluginsPane().loadData()); + Platform.runLater(()->getDashboardBase().getPluginsPane().loadData()); - getSettingsPane().getPluginsSettings().loadPlugins(); + getSettingsBase().getPluginsSettings().loadPlugins(); } catch (MinorException e) { - getSettingsPane().getPluginsSettings().showPluginInitError(); + getSettingsBase().getPluginsSettings().showPluginInitError(); handleMinorException(e); } @@ -193,15 +194,10 @@ public class Controller extends Base imp }); } - @Override - public DashboardBase getDashboardBase() { - return getDashboardPane(); - } - private void setupSettingsWindowsAnimations() { - Node settingsNode = getSettingsPane(); - Node dashboardNode = getDashboardPane(); + Node settingsNode = getSettingsBase(); + Node dashboardNode = getDashboardBase(); openSettingsAnimation = createOpenSettingsAnimation(settingsNode, dashboardNode); closeSettingsAnimation = createCloseSettingsAnimation(settingsNode, dashboardNode); @@ -427,11 +423,11 @@ public class Controller extends Base imp @Override public void clearTemp() { Platform.runLater(() -> { - getDashboardPane().getClientAndProfileSelectorPane().refresh(); - getDashboardPane().getActionGridPane().clear(); - getDashboardPane().getActionGridPane().setFreshRender(true); - getDashboardPane().getActionDetailsPane().clear(); - getSettingsPane().getClientsSettings().loadData(); + getDashboardBase().getClientAndProfileSelectorPane().refresh(); + getDashboardBase().getActionGridPane().clear(); + getDashboardBase().getActionGridPane().setFreshRender(true); + getDashboardBase().getActionDetailsPane().clear(); + getSettingsBase().getClientsSettings().loadData(); }); } @@ -441,7 +437,7 @@ public class Controller extends Base imp try { ExternalPlugins.getInstance().saveServerSettings(); - getSettingsPane().getPluginsSettings().loadPlugins(); + getSettingsBase().getPluginsSettings().loadPlugins(); } catch (MinorException e) { e.printStackTrace(); handleMinorException(e); @@ -480,10 +476,10 @@ public class Controller extends Base imp if(getDashboardBase().getActionDetailsPane().getAction() != null) { // This block is executed when no Action is selected. - if(getDashboardPane().getActionDetailsPane().getAction().getID().equals(actionID)) + if(getDashboardBase().getActionDetailsPane().getAction().getID().equals(actionID)) { - getDashboardPane().getActionDetailsPane().setAction(action); - getDashboardPane().getActionDetailsPane().refresh(); + getDashboardBase().getActionDetailsPane().setAction(action); + getDashboardBase().getActionDetailsPane().refresh(); } } @@ -695,16 +691,16 @@ public class Controller extends Base imp @Override protected Void call() { try { - getSettingsPane().getClientsSettings().loadData(); + getSettingsBase().getClientsSettings().loadData(); - getSettingsPane().getGeneralSettings().loadDataFromConfig(); - getSettingsPane().getPluginsSettings().loadPlugins(); + getSettingsBase().getGeneralSettings().loadDataFromConfig(); + getSettingsBase().getPluginsSettings().loadPlugins(); - getSettingsPane().getThemesSettings().setThemes(getThemes()); - getSettingsPane().getThemesSettings().setCurrentThemeFullName(getCurrentTheme().getFullName()); - getSettingsPane().getThemesSettings().loadThemes(); + getSettingsBase().getThemesSettings().setThemes(getThemes()); + getSettingsBase().getThemesSettings().setCurrentThemeFullName(getCurrentTheme().getFullName()); + getSettingsBase().getThemesSettings().loadThemes(); - getSettingsPane().setDefaultTabToGeneral(); + getSettingsBase().setDefaultTabToGeneral(); } catch (SevereException e) { --- 'a/src/main/java/com/stream_pi/server/window/Base.java' +++ b/src/main/java/com/stream_pi/server/window/Base.java @@ -216,12 +216,12 @@ public abstract class Base extends Stack getStylesheets().add(Main.class.getResource("default_icons.css").toExternalForm()); } - public DashboardBase getDashboardPane() + public DashboardBase getDashboardBase() { return dashboardBase; } - public SettingsBase getSettingsPane() + public SettingsBase getSettingsBase() { return settingsBase; }