diff options
Diffstat (limited to '')
-rwxr-xr-x | src/main/java/net/sowgro/npehero/editor/DiffEditor.java | 2 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/editor/DiffList.java | 13 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/editor/LevelEditor.java | 2 | ||||
-rwxr-xr-x | src/main/java/net/sowgro/npehero/editor/LevelList.java | 13 | ||||
-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++; } |