From f02208ba3a4c8d62382a9fde2373ea40e5ee3152 Mon Sep 17 00:00:00 2001 From: Kusal Ekanayake Date: Thu, 28 Sep 2017 13:33:09 +1300 Subject: [PATCH 1/3] Loopty loop map added --- .../java/seng302/visualiser/MapMaker.java | 2 +- src/main/resources/maps/loop.xml | 61 +++++++++++++++++++ src/main/resources/views/ServerListView.fxml | 4 +- 3 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/maps/loop.xml diff --git a/src/main/java/seng302/visualiser/MapMaker.java b/src/main/java/seng302/visualiser/MapMaker.java index 5eeb73e1..073c9d60 100644 --- a/src/main/java/seng302/visualiser/MapMaker.java +++ b/src/main/java/seng302/visualiser/MapMaker.java @@ -35,7 +35,7 @@ public class MapMaker { private int index = 0; private XMLGenerator xmlGenerator = new XMLGenerator(); - private List maps = new ArrayList<>(Arrays.asList("default.xml", "horseshoe.xml")); + private List maps = new ArrayList<>(Arrays.asList("default.xml", "horseshoe.xml", "loop.xml")); public static MapMaker getInstance() { if (instance == null) { diff --git a/src/main/resources/maps/loop.xml b/src/main/resources/maps/loop.xml new file mode 100644 index 00000000..aa72204a --- /dev/null +++ b/src/main/resources/maps/loop.xml @@ -0,0 +1,61 @@ + + + + Loopty Loop + + 57.6679590 + 11.8503233 + + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/views/ServerListView.fxml b/src/main/resources/views/ServerListView.fxml index c191cc17..966bd240 100644 --- a/src/main/resources/views/ServerListView.fxml +++ b/src/main/resources/views/ServerListView.fxml @@ -113,8 +113,8 @@ - - + + From 9795083d4dde43e6cae801b3cd222fdbeffd9a9a Mon Sep 17 00:00:00 2001 From: Haoming Yin Date: Thu, 28 Sep 2017 13:58:25 +1300 Subject: [PATCH 2/3] Added confirm button in keybinding dialog. - clicking confirm button will exit the dialog - [WIP] exit without clicking confirm button will still save changes, which should be fixed in the future tags: #story[1273] --- .../controllers/SplashScreenController.java | 24 +++++-------------- .../dialogs/KeyBindingDialogController.java | 7 ++++-- .../css/dialogs/KeyBindingDialog.css | 4 ++-- .../views/dialogs/KeyBindingDialog.fxml | 18 +++++++++++--- 4 files changed, 28 insertions(+), 25 deletions(-) diff --git a/src/main/java/seng302/visualiser/controllers/SplashScreenController.java b/src/main/java/seng302/visualiser/controllers/SplashScreenController.java index 442d4083..68082869 100644 --- a/src/main/java/seng302/visualiser/controllers/SplashScreenController.java +++ b/src/main/java/seng302/visualiser/controllers/SplashScreenController.java @@ -1,24 +1,12 @@ package seng302.visualiser.controllers; -import com.jfoenix.controls.JFXDecorator; -import com.jfoenix.controls.JFXSnackbar; -import javafx.application.Platform; -import javafx.fxml.FXML; -import javafx.fxml.FXMLLoader; -import javafx.fxml.Initializable; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.scene.SceneAntialiasing; -import javafx.scene.image.Image; -import javafx.scene.layout.StackPane; -import javafx.stage.Stage; -import seng302.gameServer.ServerAdvertiser; -import seng302.utilities.Sounds; -import seng302.visualiser.GameClient; - -import java.io.IOException; import java.net.URL; import java.util.ResourceBundle; +import javafx.application.Platform; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.layout.StackPane; +import javafx.stage.Stage; /** * Created by Kusal on 26-Sep-17. @@ -37,7 +25,7 @@ public class SplashScreenController implements Initializable{ class SplashScreen extends Thread { public void run(){ try { - Thread.sleep(2000); + Thread.sleep(3000); Platform.runLater(new Runnable() { @Override public void run() { diff --git a/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java b/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java index f64edd3c..e33911cc 100644 --- a/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java +++ b/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java @@ -27,7 +27,7 @@ public class KeyBindingDialogController implements Initializable { @FXML private Label closeLabel; @FXML - private JFXButton zoomInbtn; + private JFXButton zoomInBtn; @FXML private JFXButton zoomOutBtn; @FXML @@ -43,6 +43,8 @@ public class KeyBindingDialogController implements Initializable { @FXML private JFXButton resetBtn; @FXML + private JFXButton confirmBtn; + @FXML private Label upwindLabel; @FXML private Label downwindLabel; @@ -70,7 +72,7 @@ public class KeyBindingDialogController implements Initializable { gameKeyBind = GameKeyBind.getInstance(); buttons = new ArrayList<>(); Collections.addAll(buttons, - zoomInbtn, zoomOutBtn, vmgBtn, sailInOutBtn, tackGybeBtn, upwindBtn, downwindBtn, + zoomInBtn, zoomOutBtn, vmgBtn, sailInOutBtn, tackGybeBtn, upwindBtn, downwindBtn, viewButton, rightButton, leftButton, forwardButton, backwardButton); bindButtonWithAction(); loadKeyBind(); @@ -91,6 +93,7 @@ public class KeyBindingDialogController implements Initializable { }); closeLabel.setOnMouseClicked(event -> ViewManager.getInstance().closeKeyBindingDialog()); + confirmBtn.setOnMouseClicked(event -> ViewManager.getInstance().closeKeyBindingDialog()); } /** diff --git a/src/main/resources/css/dialogs/KeyBindingDialog.css b/src/main/resources/css/dialogs/KeyBindingDialog.css index 6c7bff26..63338d0e 100644 --- a/src/main/resources/css/dialogs/KeyBindingDialog.css +++ b/src/main/resources/css/dialogs/KeyBindingDialog.css @@ -35,14 +35,14 @@ JFXToggleButton { -fx-text-fill: -fx-pp-theme-color; } -#resetBtn { +#resetBtn, #confirmBtn { -fx-background-color: -fx-pp-theme-color; -fx-text-fill: -fx-pp-front-color; -fx-effect: -fx-pp-dropshadow-light; -fx-font-size: 18; } -#resetBtn:hover { +#resetBtn:hover, #confirmBtn:hover { -fx-font-size: 20; } diff --git a/src/main/resources/views/dialogs/KeyBindingDialog.fxml b/src/main/resources/views/dialogs/KeyBindingDialog.fxml index 7fcf2e7f..11490e86 100644 --- a/src/main/resources/views/dialogs/KeyBindingDialog.fxml +++ b/src/main/resources/views/dialogs/KeyBindingDialog.fxml @@ -23,6 +23,7 @@ + - + prefWidth="140.0" text="RESET" GridPane.columnSpan="2" GridPane.halignment="LEFT" + GridPane.rowIndex="2" GridPane.valignment="CENTER"> + + + + + + + + + From 3345734efdcce8b3cddf08a8d0386fec64793c0b Mon Sep 17 00:00:00 2001 From: Michael Rausch Date: Thu, 28 Sep 2017 14:22:33 +1300 Subject: [PATCH 3/3] Fixed memory leak by forcing garbage collection --- src/main/java/seng302/App.java | 14 ++++++++++++++ .../java/seng302/gameServer/messages/Message.java | 8 +++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index e71138f7..fdfc3ad4 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -13,6 +13,9 @@ import org.slf4j.LoggerFactory; import seng302.discoveryServer.DiscoveryServer; import seng302.visualiser.controllers.ViewManager; +import java.util.Timer; +import java.util.TimerTask; + public class App extends Application { private static Logger logger = LoggerFactory.getLogger(App.class); @@ -92,6 +95,17 @@ public class App extends Application { } public static void main(String[] args) throws Exception { + /* + * Do not trust Java to do garbage collection + */ + new Timer().schedule(new TimerTask() { + @Override + public void run() { + System.gc(); + } + }, 0, 1200); + + try { parseArgs(args); } catch (ParseException e) { diff --git a/src/main/java/seng302/gameServer/messages/Message.java b/src/main/java/seng302/gameServer/messages/Message.java index 691bb022..94645137 100644 --- a/src/main/java/seng302/gameServer/messages/Message.java +++ b/src/main/java/seng302/gameServer/messages/Message.java @@ -158,7 +158,13 @@ public abstract class Message { * @return The current buffer as a byte array */ public byte[] getBuffer(){ - return buffer.array(); + byte[] bytes = buffer.array(); + +// buffer.reset(); +// buffer.clear(); +// buffer = null; + + return bytes; } /**