From: Debayan Sutradhar Date: Tue, 15 Jun 2021 14:26:14 +0530 Subject: Fix #61 --- Fix #61 --- --- 'a/src/main/java/com/stream_pi/server/client/Client.java' +++ b/src/main/java/com/stream_pi/server/client/Client.java @@ -19,6 +19,7 @@ package com.stream_pi.server.client; import com.stream_pi.util.platform.Platform; import com.stream_pi.util.platform.ReleaseStatus; import com.stream_pi.util.version.Version; +import javafx.geometry.Orientation; import java.net.SocketAddress; import java.util.ArrayList; @@ -44,7 +45,11 @@ public class Client private String defaultProfileID; private String defaultThemeFullName; - public Client(Version version, ReleaseStatus releaseStatus, Version commStandardVersion, Version themeAPIVersion, String nickName, Platform platform, SocketAddress remoteSocketAddress) + private Orientation orientation; + + public Client(Version version, ReleaseStatus releaseStatus, Version commStandardVersion, + Version themeAPIVersion, String nickName, Platform platform, SocketAddress remoteSocketAddress, + Orientation orientation) { this.version = version; this.releaseStatus = releaseStatus; @@ -55,6 +60,7 @@ public class Client this.platform = platform; this.profiles = new HashMap<>(); this.themes = new HashMap<>(); + this.orientation = orientation; } public ReleaseStatus getReleaseStatus() { @@ -187,4 +193,13 @@ public class Client return (int) (displayWidth / eachActionSize); } + public void setOrientation(Orientation orientation) + { + this.orientation = orientation; + } + + public Orientation getOrientation() + { + return orientation; + } } --- 'a/src/main/java/com/stream_pi/server/connection/ClientConnection.java' +++ b/src/main/java/com/stream_pi/server/connection/ClientConnection.java @@ -27,6 +27,7 @@ import com.stream_pi.util.platform.Platf import com.stream_pi.util.platform.ReleaseStatus; import com.stream_pi.util.version.Version; import javafx.concurrent.Task; +import javafx.geometry.Orientation; import java.io.*; import java.net.Socket; @@ -196,7 +197,8 @@ public class ClientConnection extends Th throw new MinorException(errTxt); } - client = new Client(clientVersion, releaseStatus, commsStandard, themesStandard, ar[4], Platform.valueOf(ar[7]), socket.getRemoteSocketAddress()); + client = new Client(clientVersion, releaseStatus, commsStandard, themesStandard, ar[4], + Platform.valueOf(ar[7]), socket.getRemoteSocketAddress(), Orientation.valueOf(ar[10])); client.setDisplayWidth(Double.parseDouble(ar[5])); client.setDisplayHeight(Double.parseDouble(ar[6])); @@ -286,6 +288,9 @@ public class ClientConnection extends Th case "action_clicked": onActionClicked(message); break; + case "client_orientation": updateClientOrientation(message); + break; + default: logger.warning("Command '"+header+"' does not match records. Make sure client and server versions are equal."); @@ -325,6 +330,12 @@ public class ClientConnection extends Th // commands + private void updateClientOrientation(Message message) throws MinorException + { + getClient().setOrientation(Orientation.valueOf(message.getStringValue())); + javafx.application.Platform.runLater(()-> serverListener.getDashboardBase().reDrawProfile()); + } + private void onActionIconReceived(Message message) throws MinorException { String[] s = message.getStringArrValue(); --- 'a/src/main/java/com/stream_pi/server/io/Config.java' +++ b/src/main/java/com/stream_pi/server/io/Config.java @@ -42,13 +42,17 @@ public class Config private Document document; - private Config() throws SevereException { - try { + private Config() throws SevereException + { + try + { configFile = new File(ServerInfo.getInstance().getPrePath()+"config.xml"); DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); document = docBuilder.parse(configFile); - } catch (Exception e) { + } + catch (Exception e) + { e.printStackTrace(); throw new SevereException("Config", "Unable to read config.xml\n"+e.getMessage()); } --- 'a/src/main/java/com/stream_pi/server/window/dashboard/DashboardBase.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/DashboardBase.java @@ -119,6 +119,11 @@ public class DashboardBase extends Split drawProfile(this.currentClientProfile); } + public void reDrawProfile() + { + drawProfile(getActionGridPane().getCurrentProfile()); + } + public void drawProfile(ClientProfile clientProfile) { logger.info("Drawing ..."); @@ -135,8 +140,6 @@ public class DashboardBase extends Split { exceptionAndAlertHandler.handleSevereException(e); } - - } public SplitPane getLeftSplitPane() --- 'a/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionGridPane.java' +++ b/src/main/java/com/stream_pi/server/window/dashboard/actiongridpane/ActionGridPane.java @@ -19,6 +19,7 @@ import com.stream_pi.server.window.dashb import com.stream_pi.util.exception.MinorException; import com.stream_pi.util.exception.SevereException; import javafx.geometry.Insets; +import javafx.geometry.Orientation; import javafx.geometry.Pos; import javafx.scene.CacheHint; import javafx.scene.Node; @@ -284,11 +285,20 @@ public class ActionGridPane extends Scro isFreshRender = freshRender; } - public ActionBox addBlankActionBox(int col, int row) throws SevereException { + public ActionBox addBlankActionBox(int col, int row) throws SevereException + { ActionBox actionBox = new ActionBox(Config.getInstance().getActionGridActionSize(), actionDetailsPaneListener, this, col, row); - actionsGridPane.add(actionBox, col, row); + if(getClient().getOrientation() == Orientation.HORIZONTAL) + { + actionsGridPane.add(actionBox, col, row); + } + else + { + actionsGridPane.add(actionBox, row, col); + } + return actionBox; }