Willi Zschiebsch před 4 roky
rodič
revize
5fcfc63e68

+ 16 - 0
src/main/java/mdd/client/Optimizer.java

@@ -13,6 +13,8 @@ import mdd.client.optimization.PList;
 import mdd.client.optimization.Permutation;
 import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
 
 public class Optimizer extends Stage implements IGUIEventClient {
 private DataModel data = new DataModel();
@@ -94,5 +96,19 @@ private ScrollPane scrollpane = new ScrollPane();
             }
             return;
         }
+        if (event == "load"){
+            if(args.containsKey("optimizer")){
+                JSONObject jargs = (JSONObject) args.get("optimizer");
+                JSONArray indis= (JSONArray)jargs.get("permutations");
+                if (indis != null){
+                    for (int i = 0; i < indis.size(); ++i){
+                        //TODO clear when start again
+                        JSONObject jind = (JSONObject)indis.get(i);
+                        long lgen = Long.decode(jind.get("step").toString());
+                        data.add(0, new Permutation(lgen, jind));
+                    }
+                }
+            }
+        }
     }
 }

+ 6 - 3
src/main/java/mdd/client/Workshop.java

@@ -96,9 +96,12 @@ public class Workshop extends TabPane implements IGUIEventClient {
 
         }
         if (event == "load"){
-            System.out.println("[Workshop]: load " +args.toString());
-            _main_processor = new Processor(args);
-            showMainProcessor();
+            if(args.containsKey("processor")){
+                JSONObject jargs = (JSONObject) args.get("processor");
+                System.out.println("[Workshop]: load " +jargs.toString());
+                _main_processor = new Processor(jargs);
+                showMainProcessor();
+            }
         }
         if (event.equals("change")) {
             if (!args.containsKey("operation")) {

+ 16 - 5
src/main/java/mdd/client/optimization/Permutation.java

@@ -4,6 +4,8 @@ import mdd.client.GUIEventHandler;
 import mdd.client.IGUIEventClient;
 import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
 
 import java.util.*;
 
@@ -82,10 +84,10 @@ public class Permutation implements IData, IGUIEventClient {
     protected void configure(JSONObject json){
         if(json.containsKey("status")){
             switch(json.get("status").toString()){
-                case "ok":
+                case "1":
                     setValue("status", 1.0);
                     break;
-                case "error":
+                case "-1":
                     setValue("status", -1.0);
                     break;
                 default:
@@ -93,14 +95,23 @@ public class Permutation implements IData, IGUIEventClient {
             }
         }
         if(json.containsKey("fitness")){
-            setValue("fitness", (double)json.get("fitness"));
+            setValue("fitness", Double.valueOf(json.get("fitness").toString()));
         }
         if(json.containsKey("time")){
-            setValue("time", (double)json.get("time"));
+            setValue("time", Double.valueOf(json.get("time").toString()));
+            //setValue("time", (double)json.get("time"));
         }
         if (jdna == null){
             if(json.containsKey("dna")){
-                jdna = (JSONArray)json.get("dna");
+                JSONParser parser = new JSONParser();
+                try {
+                    //jdna = (JSONArray)json.get("dna");
+                    jdna = (JSONArray)parser.parse(json.get("dna").toString());
+                }
+                catch (ParseException e){
+                    jdna = (JSONArray)json.get("dna");
+                }
+
                 for (int i = 0; i < jdna.size(); ++i){
                     JSONArray params = (JSONArray) jdna.get(i);
                     for (int j = 0; j < params.size(); ++j){