From: rnayabed Date: Fri, 19 Mar 2021 11:48:01 +0530 Subject: Implemented Dynamic Window Size Sync with Client --- Implemented Dynamic Window Size Sync with Client --- --- 'a/src/main/java/com/stream_pi/server/connection/ClientConnection.java' +++ b/src/main/java/com/stream_pi/server/connection/ClientConnection.java @@ -212,6 +212,9 @@ public class ClientConnection extends Th getThemesFromClient(); break; + case "client_screen_details" : onClientScreenDetailsReceived(message); + break; + case "profiles" : registerProfilesFromClient(message); break; @@ -653,6 +656,21 @@ public class ClientConnection extends Th sendMessage(message); } + public void getClientScreenDetails() throws SevereException + { + Message message = new Message("get_client_screen_details"); + sendMessage(message); + } + + public void onClientScreenDetailsReceived(Message message) + { + double width = Double.parseDouble(message.getStringArrValue()[0]); + double height = Double.parseDouble(message.getStringArrValue()[1]); + + getClient().setDisplayWidth(width); + getClient().setDisplayHeight(height); + } + public void deleteAction(String profileID, String actionID) throws SevereException { Message message = new Message("delete_action"); --- 'a/src/main/java/com/stream_pi/server/controller/Controller.java' +++ b/src/main/java/com/stream_pi/server/controller/Controller.java @@ -24,6 +24,8 @@ import javafx.animation.KeyFrame; import javafx.animation.KeyValue; import javafx.animation.Timeline; import javafx.application.Platform; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; import javafx.concurrent.Task; import javafx.scene.Node; import javafx.scene.Scene; --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/ActionDetailsPane.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiondetailpane/ActionDetailsPane.java @@ -881,9 +881,9 @@ public class ActionDetailsPane extends V displayTextColourDefaultCheckBox.isSelected(), "#" + displayTextColourPicker.getValue().toString().substring(2), clearIconButton.isDisable(), - !hideDefaultIconCheckBox.isSelected(), - !hideToggleOffIconCheckBox.isSelected(), - !hideToggleOnIconCheckBox.isSelected(), + hideDefaultIconCheckBox.isSelected(), + hideToggleOffIconCheckBox.isSelected(), + hideToggleOnIconCheckBox.isSelected(), displayTextAlignmentComboBox.getSelectionModel().getSelectedItem(), actionBackgroundColourTransparentCheckBox.isSelected(), "#" + actionBackgroundColourPicker.getValue().toString().substring(2), --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionBox.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionBox.java @@ -403,12 +403,16 @@ public class ActionBox extends StackPane private void fakeToggle(boolean isON) { + String[] toggleStatesHiddenStatus = action.getCurrentIconState().split("__"); + + boolean isToggleOffHidden = toggleStatesHiddenStatus[0].equals("true"); + boolean isToggleOnHidden = toggleStatesHiddenStatus[1].equals("true"); + if(isON) // ON { if(action.isHasIcon()) { boolean isToggleOnPresent = action.getIcons().containsKey("toggle_on"); - boolean isToggleOnHidden = action.getCurrentIconState().contains("toggle_on"); if(isToggleOnPresent) { @@ -436,7 +440,6 @@ public class ActionBox extends StackPane if(action.isHasIcon()) { boolean isToggleOffPresent = action.getIcons().containsKey("toggle_off"); - boolean isToggleOffHidden = action.getCurrentIconState().contains("toggle_off"); if(isToggleOffPresent) { --- 'a/src/main/java/com/stream_pi/server/window/settings/ClientsSettings.java' +++ b/src/main/java/com/stream_pi/server/window/settings/ClientsSettings.java @@ -253,23 +253,19 @@ public class ClientsSettings extends VBo private ComboBox themesComboBox; - private double displayHeight; - private double displayWidth; + private Client client; - public double getDisplayHeight() { - return displayHeight; + public void setClient(Client client) + { + this.client = client; } - public void setDisplayHeight(double displayHeight) { - this.displayHeight = displayHeight; + public double getDisplayHeight() { + return client.getDisplayHeight(); } public double getDisplayWidth() { - return displayWidth; - } - - public void setDisplayWidth(double displayWidth) { - this.displayWidth = displayWidth; + return client.getDisplayWidth(); } private TextField nicknameTextField; @@ -488,8 +484,7 @@ public class ClientsSettings extends VBo platformLabel.setText("Platform : "+client.getPlatform().getUIName()); - setDisplayHeight(client.getDisplayHeight()); - setDisplayWidth(client.getDisplayWidth()); + setClient(client); socketConnectionLabel.setText(client.getRemoteSocketAddress().toString().substring(1)); //substring removes the `/`