aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/sowgro/npehero/editor
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/editor/DiffEditor.java2
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/editor/DiffList.java13
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/editor/LevelEditor.java2
-rwxr-xr-xsrc/main/java/net/sowgro/npehero/editor/LevelList.java13
-rw-r--r--src/main/java/net/sowgro/npehero/main/ErrorDisplay.java (renamed from src/main/java/net/sowgro/npehero/editor/ErrorDisplay.java)65
-rw-r--r--src/main/java/net/sowgro/npehero/main/ErrorList.java (renamed from src/main/java/net/sowgro/npehero/editor/ErrorList.java)12
6 files changed, 76 insertions, 31 deletions
diff --git a/src/main/java/net/sowgro/npehero/editor/DiffEditor.java b/src/main/java/net/sowgro/npehero/editor/DiffEditor.java
index 77e5fa9..6485a4d 100755
--- a/src/main/java/net/sowgro/npehero/editor/DiffEditor.java
+++ b/src/main/java/net/sowgro/npehero/editor/DiffEditor.java
@@ -72,7 +72,6 @@ public class DiffEditor extends Page
try {
diff.leaderboard.save();
} catch (IOException e) {
- e.printStackTrace();
Driver.setMenu(new ErrorDisplay("Failed to clear the leaderboard:\n"+e, this));
}
});
@@ -97,7 +96,6 @@ public class DiffEditor extends Page
try {
diff.writeMetadata();
} catch (IOException e) {
- e.printStackTrace();
//TODO
throw new RuntimeException(e);
}
diff --git a/src/main/java/net/sowgro/npehero/editor/DiffList.java b/src/main/java/net/sowgro/npehero/editor/DiffList.java
index e435b22..7106609 100755
--- a/src/main/java/net/sowgro/npehero/editor/DiffList.java
+++ b/src/main/java/net/sowgro/npehero/editor/DiffList.java
@@ -11,6 +11,8 @@ import javafx.scene.layout.VBox;
import net.sowgro.npehero.Driver;
import net.sowgro.npehero.levelapi.Difficulty;
import net.sowgro.npehero.levelapi.Level;
+import net.sowgro.npehero.main.ErrorDisplay;
+import net.sowgro.npehero.main.ErrorList;
import net.sowgro.npehero.main.Page;
import net.sowgro.npehero.main.Sound;
@@ -84,8 +86,7 @@ public class DiffList extends Page
try {
level.difficulties.remove(diffs.getSelectionModel().getSelectedItem());
} catch (IOException ex) {
- ex.printStackTrace();
- Driver.setMenu(new ErrorDisplay("Failed to remove difficulty\n"+e, this));
+ Driver.setMenu(new ErrorDisplay("Failed to remove difficulty", ex, this));
}
});
remove.setDisable(true);
@@ -120,8 +121,7 @@ public class DiffList extends Page
try {
level.difficulties.saveOrder();
} catch (IOException e) {
- e.printStackTrace();
- Driver.setMenu(new ErrorDisplay("Failed to move difficulty\n"+e,this));
+ Driver.setMenu(new ErrorDisplay("Failed to move difficulty", e,this));
}
});
@@ -139,8 +139,7 @@ public class DiffList extends Page
try {
level.difficulties.saveOrder();
} catch (IOException e) {
- e.printStackTrace();
- Driver.setMenu(new ErrorDisplay("Failed to move difficulty\n"+e,this));
+ Driver.setMenu(new ErrorDisplay("Failed to move difficulty", e,this));
}
});
@@ -168,7 +167,7 @@ public class DiffList extends Page
} catch (FileAlreadyExistsException e) {
Driver.setMenu(new ErrorDisplay("Failed to add difficulty\nA difficulty already exists with the folder name " + e.getFile(), this));
} catch (IOException e) {
- Driver.setMenu(new ErrorDisplay("Failed to add difficulty\n" + e, this));
+ Driver.setMenu(new ErrorDisplay("Failed to add difficulty", e, this));
}
};
Driver.setMenu(new FolderNameEntry("difficulty", this, next));
diff --git a/src/main/java/net/sowgro/npehero/editor/LevelEditor.java b/src/main/java/net/sowgro/npehero/editor/LevelEditor.java
index e02da0f..8e49180 100755
--- a/src/main/java/net/sowgro/npehero/editor/LevelEditor.java
+++ b/src/main/java/net/sowgro/npehero/editor/LevelEditor.java
@@ -152,13 +152,11 @@ public class LevelEditor extends Page
}
} catch (Exception ex) {
// TODO
- ex.printStackTrace();
}
try {
level.writeMetadata();
} catch (IOException ex) {
// TODO
- ex.printStackTrace();
}
validate();
});
diff --git a/src/main/java/net/sowgro/npehero/editor/LevelList.java b/src/main/java/net/sowgro/npehero/editor/LevelList.java
index 6bd725f..492683f 100755
--- a/src/main/java/net/sowgro/npehero/editor/LevelList.java
+++ b/src/main/java/net/sowgro/npehero/editor/LevelList.java
@@ -6,7 +6,6 @@ import javafx.geometry.Pos;
import javafx.scene.control.*;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
-import javafx.scene.control.TextField;
import javafx.scene.layout.Pane;
import net.sowgro.npehero.Driver;
import javafx.scene.layout.HBox;
@@ -14,6 +13,8 @@ import javafx.scene.layout.VBox;
import net.sowgro.npehero.gui.MainMenu;
import net.sowgro.npehero.levelapi.Level;
import net.sowgro.npehero.levelapi.Levels;
+import net.sowgro.npehero.main.ErrorDisplay;
+import net.sowgro.npehero.main.ErrorList;
import net.sowgro.npehero.main.Page;
import net.sowgro.npehero.main.Sound;
@@ -97,8 +98,7 @@ public class LevelList extends Page
try {
Levels.remove(levels.getSelectionModel().getSelectedItem());
} catch (IOException ex) {
- Driver.setMenu(new ErrorDisplay("Failed to remove this level\n"+e.toString(), this));
- ex.printStackTrace();
+ Driver.setMenu(new ErrorDisplay("Failed to remove this level", ex, this));
}
});
remove.setDisable(true);
@@ -110,8 +110,7 @@ public class LevelList extends Page
try {
Levels.readData();
} catch (IOException ex) {
- Driver.setMenu(new ErrorDisplay("Failed to load levels: Level folder is missing\n"+e.toString(), this));
- ex.printStackTrace();
+ Driver.setMenu(new ErrorDisplay("Failed to load levels: Level folder is missing", ex, this));
}
levels.setItems(Levels.list);
});
@@ -124,7 +123,7 @@ public class LevelList extends Page
try {
Desktop.getDesktop().open(Levels.dir);
} catch (IOException ex) {
- Driver.setMenu(new ErrorDisplay("Failed to open folder\n"+ex, this));
+ Driver.setMenu(new ErrorDisplay("Failed to open folder", ex, this));
}
}).start());
@@ -163,7 +162,7 @@ public class LevelList extends Page
} catch (FileAlreadyExistsException e) {
Driver.setMenu(new ErrorDisplay("Failed to add level\nA level already exists with the folder name '" + e.getFile() + "'", this));
} catch (IOException e) {
- Driver.setMenu(new ErrorDisplay("Failed to create level\n"+e, this));
+ Driver.setMenu(new ErrorDisplay("Failed to create level", e, this));
}
};
Driver.setMenu(new FolderNameEntry("level", this, next));
diff --git a/src/main/java/net/sowgro/npehero/editor/ErrorDisplay.java b/src/main/java/net/sowgro/npehero/main/ErrorDisplay.java
index c07d12f..cd43937 100644
--- a/src/main/java/net/sowgro/npehero/editor/ErrorDisplay.java
+++ b/src/main/java/net/sowgro/npehero/main/ErrorDisplay.java
@@ -1,4 +1,4 @@
-package net.sowgro.npehero.editor;
+package net.sowgro.npehero.main;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
@@ -8,8 +8,9 @@ import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import net.sowgro.npehero.Driver;
-import net.sowgro.npehero.main.Page;
-import net.sowgro.npehero.main.Sound;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
public class ErrorDisplay extends Page {
@@ -43,6 +44,64 @@ public class ErrorDisplay extends Page {
}
/**
+ * Error display with a message, exception and Back button
+ * @param message The message to display
+ * @param e The exception that occurred
+ * @param prev The destination of the close button
+ */
+ public ErrorDisplay(String message, Exception e, Page prev) {
+ Label title = new Label(message);
+ title.setPadding(new Insets(10));
+ title.setWrapText(true);
+
+ Label exView = new Label(e.toString());
+ exView.getStyleClass().add("red");
+
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ e.printStackTrace(pw);
+ String sStackTrace = sw.toString(); // stack trace as a string
+
+ Label stackTrace = new Label(sStackTrace);
+ stackTrace.getStyleClass().add("red");
+ stackTrace.setVisible(false);
+ stackTrace.setManaged(false);
+
+ Button exit = new Button();
+ exit.setText("Ok");
+ exit.setOnAction(_ -> {
+ Sound.playSfx(Sound.BACKWARD);
+ Driver.setMenu(prev);
+ });
+
+ Button printStack = new Button("Print to console");
+ printStack.setOnAction(_ -> {
+ Sound.playSfx(Sound.FORWARD);
+ e.printStackTrace();
+ });
+
+ Button showStack = new Button("Show Stack Trace");
+ showStack.setOnAction(_ -> {
+ stackTrace.setVisible(true);
+ stackTrace.setManaged(true);
+ });
+
+ HBox buttonBox = new HBox(exit, showStack);
+ buttonBox.setSpacing(10);
+
+ VBox main = new VBox(title, exView);
+ main.getStyleClass().add("box");
+
+ VBox centerBox = new VBox();
+ centerBox.getChildren().addAll(main, buttonBox, stackTrace);
+ centerBox.setSpacing(10);
+ centerBox.setAlignment(Pos.CENTER);
+
+ content.getChildren().add(centerBox);
+ content.setAlignment(Pos.CENTER);
+ }
+
+ /**
* Error display with a message and Cancel and Proceed buttons
* @param message The message to display
* @param prev The destination of the Cancel button
diff --git a/src/main/java/net/sowgro/npehero/editor/ErrorList.java b/src/main/java/net/sowgro/npehero/main/ErrorList.java
index 92a9455..a875502 100644
--- a/src/main/java/net/sowgro/npehero/editor/ErrorList.java
+++ b/src/main/java/net/sowgro/npehero/main/ErrorList.java
@@ -1,19 +1,11 @@
-package net.sowgro.npehero.editor;
+package net.sowgro.npehero.main;
-import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.*;
-import javafx.scene.input.KeyEvent;
import javafx.scene.layout.*;
import net.sowgro.npehero.Driver;
-import net.sowgro.npehero.gui.SettingsEditor;
-import net.sowgro.npehero.main.Control;
-import net.sowgro.npehero.main.Page;
-import net.sowgro.npehero.main.Sound;
-import java.io.IOException;
-import java.util.List;
import java.util.Map;
public class ErrorList extends Page {
@@ -57,7 +49,7 @@ public class ErrorList extends Page {
// reset button
Button resetButton = new Button("View Error");
- resetButton.setOnAction(_ -> Driver.setMenu(new ErrorDisplay("E: \n"+error.getValue(), this)));
+ resetButton.setOnAction(_ -> Driver.setMenu(new ErrorDisplay(error.getKey(), error.getValue(), this)));
controls.add(resetButton, 1, i);
i++;
}