From af2ef834be292c871fb1300217a5427fcbf62808 Mon Sep 17 00:00:00 2001 From: BrunoDatoMeneses <bruno.dato.meneses@gmail.com> Date: Thu, 19 Sep 2019 17:56:05 +0200 Subject: [PATCH] ADD: try fix UI freezing adding RunLaterHelper --- .../randomantsMultiUi/AntExampleMutliUI.java | 10 ++++++++++ .../AntHillExampleMultiUI.java | 6 ++++-- .../AntsLaunchExampleMultiUI.java | 17 ++--------------- .../fr/irit/smac/amak/ui/AmasMultiUIWindow.java | 7 +++---- AMAKFX/src/fr/irit/smac/amak/ui/VUIMulti.java | 4 +++- AMOEBAonAMAK/src/experiments/AdvancedMain.java | 11 +++++++++-- 6 files changed, 31 insertions(+), 24 deletions(-) diff --git a/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntExampleMutliUI.java b/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntExampleMutliUI.java index a8b731ca..6a020438 100644 --- a/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntExampleMutliUI.java +++ b/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntExampleMutliUI.java @@ -1,6 +1,7 @@ package fr.irit.smac.amak.examples.randomantsMultiUi; import fr.irit.smac.amak.Agent; +import fr.irit.smac.amak.tools.RunLaterHelper; import fr.irit.smac.amak.ui.AmasMultiUIWindow; import fr.irit.smac.amak.ui.VUI; import fr.irit.smac.amak.ui.drawables.DrawableImage; @@ -46,8 +47,10 @@ public class AntExampleMutliUI extends Agent<AntHillExampleMultiUI, WorldExample @Override protected void onRenderingInitialization() { + RunLaterHelper.runLater(() -> { image = getAmas().getVUIMulti().createAndAddImage(dx, dy, "file:resources/ant.png"); image.setName("Ant "+getId()); + }); } /** @@ -81,6 +84,7 @@ public class AntExampleMutliUI extends Agent<AntHillExampleMultiUI, WorldExample @Override public void onUpdateRender() { + RunLaterHelper.runLater(() -> { image.move(dx, dy); image.setAngle(angle); image.setInfo("Ant "+getId()+"\nPosition "+dx+" "+dy+"\nAngle "+angle); @@ -88,5 +92,11 @@ public class AntExampleMutliUI extends Agent<AntHillExampleMultiUI, WorldExample image.setFilename("file:Resources/ant_dead.png"); image.setInfo("Ant "+getId()+"\nPosition "+dx+" "+dy+"\nAngle "+angle+"\nDead"); } + + + }); } } + + + diff --git a/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntHillExampleMultiUI.java b/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntHillExampleMultiUI.java index 344561af..7ecf3dc8 100644 --- a/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntHillExampleMultiUI.java +++ b/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntHillExampleMultiUI.java @@ -18,8 +18,10 @@ public class AntHillExampleMultiUI extends Amas<WorldExampleMultiUI> { @Override protected void onRenderingInitialization() { - vuiMulti.createAndAddImage(20, 20, "file:Resources/ant.png").setFixed().setLayer(10).setShowInExplorer(false); - antsCountLabel = (DrawableString) vuiMulti.createAndAddString(45, 25, "Ants count").setFixed().setLayer(10).setShowInExplorer(false); + RunLaterHelper.runLater(() -> { + vuiMulti.createAndAddImage(20, 20, "file:Resources/ant.png").setFixed().setLayer(10).setShowInExplorer(false); + antsCountLabel = (DrawableString) vuiMulti.createAndAddString(45, 25, "Ants count").setFixed().setLayer(10).setShowInExplorer(false); + }); } @Override diff --git a/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntsLaunchExampleMultiUI.java b/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntsLaunchExampleMultiUI.java index 600fdcd0..9998aed5 100644 --- a/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntsLaunchExampleMultiUI.java +++ b/AMAKFX/src/fr/irit/smac/amak/examples/randomantsMultiUi/AntsLaunchExampleMultiUI.java @@ -44,27 +44,14 @@ public class AntsLaunchExampleMultiUI extends Application{ AntHillExampleMultiUI ants = new AntHillExampleMultiUI(window, new VUIMulti("Ants VUI 1"), env); //new AntHillExampleMultiUI(window2, VUIMulti.get("Ants VUI 2"), env2); - Button btn = new Button(); - btn.setText("GO"); - btn.setOnAction(new EventHandler<ActionEvent>() { - @Override - public void handle(ActionEvent event) { - for(int i=0;i<10000;i++) { - System.out.println(i); - ants.cycle(); - } - } - }); - - window.addToolbar(btn); + for(int i=0;i<10000;i++) { System.out.println(i); - ants.getScheduler().step(); + ants.cycle(); } - } diff --git a/AMAKFX/src/fr/irit/smac/amak/ui/AmasMultiUIWindow.java b/AMAKFX/src/fr/irit/smac/amak/ui/AmasMultiUIWindow.java index b96f4c45..c9519a5c 100644 --- a/AMAKFX/src/fr/irit/smac/amak/ui/AmasMultiUIWindow.java +++ b/AMAKFX/src/fr/irit/smac/amak/ui/AmasMultiUIWindow.java @@ -75,7 +75,7 @@ public class AmasMultiUIWindow extends Stage{ */ public AmasMultiUIWindow(String title) { - + RunLaterHelper.runLater(() -> { VBox root = new VBox(); @@ -123,7 +123,7 @@ public class AmasMultiUIWindow extends Stage{ this.show(); - + }); } @@ -232,8 +232,7 @@ public class AmasMultiUIWindow extends Stage{ */ public void addTabbedPanel(String title, Node panel) { Tab t = new DraggableTab(title, panel); - tabbedPanel.getTabs().add(t); - //RunLaterHelper.runLater(() -> tabbedPanel.getTabs().add(t)); + RunLaterHelper.runLater(() -> tabbedPanel.getTabs().add(t)); } /** diff --git a/AMAKFX/src/fr/irit/smac/amak/ui/VUIMulti.java b/AMAKFX/src/fr/irit/smac/amak/ui/VUIMulti.java index 5d3a387a..eeeb4862 100644 --- a/AMAKFX/src/fr/irit/smac/amak/ui/VUIMulti.java +++ b/AMAKFX/src/fr/irit/smac/amak/ui/VUIMulti.java @@ -146,6 +146,8 @@ public class VUIMulti { */ public VUIMulti(String titleValue) { + RunLaterHelper.runLater(() -> { + this.title = titleValue; panel = new BorderPane(); @@ -241,7 +243,7 @@ public class VUIMulti { toolbar.getItems().add(veButton); - + }); } diff --git a/AMOEBAonAMAK/src/experiments/AdvancedMain.java b/AMOEBAonAMAK/src/experiments/AdvancedMain.java index b02ccdbd..39be228a 100644 --- a/AMOEBAonAMAK/src/experiments/AdvancedMain.java +++ b/AMOEBAonAMAK/src/experiments/AdvancedMain.java @@ -55,7 +55,7 @@ public class AdvancedMain extends Application{ Configuration.multiUI = true; - VUIMulti amoebaVUI = VUIMulti.get("2D"); + VUIMulti amoebaVUI = new VUIMulti("2D"); AmoebaMultiUIWindow amoebaUI = new AmoebaMultiUIWindow("ELLSA", amoebaVUI); // Create an AMOEBA @@ -93,8 +93,9 @@ public class AdvancedMain extends Application{ amoeba.setRenderUpdate(true); long start = System.currentTimeMillis(); // We run some learning cycles - int nbCycle = 1000; + int nbCycle = 100; for (int i = 0; i < nbCycle; ++i) { + System.out.println(i); studiedSystem.playOneStep(); amoeba.learn(studiedSystem.getOutput()); } @@ -140,6 +141,12 @@ public class AdvancedMain extends Application{ System.out.println("End main"); } + + @Override + public void stop() throws Exception { + super.stop(); + System.exit(0); + } } -- GitLab