diff --git a/Main/pom.xml b/Main/pom.xml index d063dbb01..cd611b256 100644 --- a/Main/pom.xml +++ b/Main/pom.xml @@ -102,5 +102,10 @@ gson RELEASE + + org.springframework + spring-beans + 5.1.9.RELEASE + \ No newline at end of file diff --git a/Main/src/main/java/Handlers/Web/Server.java b/Main/src/main/java/Handlers/Web/Server.java index 257b72a45..3cb7bc224 100644 --- a/Main/src/main/java/Handlers/Web/Server.java +++ b/Main/src/main/java/Handlers/Web/Server.java @@ -1,11 +1,18 @@ package Handlers.Web; import Classes.SettingsManager; +import Objects.Pipeline; import io.javalin.Javalin; import io.javalin.websocket.WsContext; + +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; + +import org.json.JSONArray; import org.json.JSONObject; +import org.springframework.beans.BeanUtils; + public class Server { private static List users = new ArrayList(); @@ -24,6 +31,23 @@ public class Server { }); ws.onMessage(ctx -> { broadcastMessage(ctx, ctx.message()); + JSONObject jsonObject = new JSONObject(ctx.message()); + String key =jsonObject.keySet().toArray()[0].toString(); + Object value = jsonObject.get(key); + System.out.println("Key: "+key+" Value: "+value); + Field[] fields = Pipeline.class.getFields(); + for (Field f : fields) + {//TODO: check calibration in output tab for crashes + if(f.getName().equals(key)) + { + if(BeanUtils.isSimpleValueType(value.getClass())) + f.set(SettingsManager.getInstance().GetCurrentPipeline(),value); + else + if(value.getClass()==JSONArray.class){ + f.set(SettingsManager.getInstance().GetCurrentPipeline(),((JSONArray)value).toList()); + } + } + } }); }); app.start(port); @@ -37,4 +61,5 @@ public class Server { } } + }