From 41fe84c131c83704968b7211bf38712c07b62e29 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Wed, 22 Nov 2017 16:54:44 +0100
Subject: [PATCH] errorhandling for debug console

---
 src/de/bricked/game/levels/LevelPackHandler.java   |  3 ++-
 src/de/bricked/ui/CommandLineAvailabale.java       |  6 ++++++
 src/de/bricked/ui/Controller.java                  | 14 ++++++++------
 src/de/bricked/ui/LevelController.java             |  6 ++++--
 src/de/bricked/ui/LevelPackSelectController.java   |  7 +++++--
 src/de/bricked/ui/LevelSelectController.java       |  7 +++++--
 src/de/bricked/ui/SettingsController.java          |  7 +++++--
 .../ui/controller/LevelPackDialogController.java   |  3 ++-
 8 files changed, 37 insertions(+), 16 deletions(-)
 create mode 100644 src/de/bricked/ui/CommandLineAvailabale.java

diff --git a/src/de/bricked/game/levels/LevelPackHandler.java b/src/de/bricked/game/levels/LevelPackHandler.java
index 2a0723e..d225587 100644
--- a/src/de/bricked/game/levels/LevelPackHandler.java
+++ b/src/de/bricked/game/levels/LevelPackHandler.java
@@ -2,6 +2,7 @@ package de.bricked.game.levels;
 
 import de.bricked.game.Config;
 import de.bricked.utils.FileUtils;
+import logger.Logger;
 import tools.PathUtils;
 
 import java.io.*;
@@ -96,7 +97,7 @@ public class LevelPackHandler
             }
             catch (IOException e)
             {
-                e.printStackTrace();
+                Logger.error(e);
             }
         }
         return stringContent;
diff --git a/src/de/bricked/ui/CommandLineAvailabale.java b/src/de/bricked/ui/CommandLineAvailabale.java
new file mode 100644
index 0000000..3ac7162
--- /dev/null
+++ b/src/de/bricked/ui/CommandLineAvailabale.java
@@ -0,0 +1,6 @@
+package de.bricked.ui;
+
+public interface CommandLineAvailabale
+{
+	public void showCommandLine();
+}
\ No newline at end of file
diff --git a/src/de/bricked/ui/Controller.java b/src/de/bricked/ui/Controller.java
index 3726c29..fa64c8c 100644
--- a/src/de/bricked/ui/Controller.java
+++ b/src/de/bricked/ui/Controller.java
@@ -14,6 +14,7 @@ import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
 import javafx.scene.Scene;
 import javafx.scene.control.Button;
+import javafx.scene.control.Alert.AlertType;
 import javafx.scene.image.Image;
 import javafx.scene.input.KeyEvent;
 import javafx.scene.layout.AnchorPane;
@@ -24,7 +25,7 @@ import kuusisto.tinysound.TinySound;
 import logger.Logger;
 import tools.AlertGenerator;
 
-public class Controller
+public class Controller implements CommandLineAvailabale
 {
 	@FXML private AnchorPane mainPane;
 	@FXML private Button buttonLevelSelect;
@@ -76,7 +77,7 @@ public class Controller
 		buttonAchievements.setStyle("-fx-base: " + bundle.getString("color.button"));
 		buttonAbout.setStyle("-fx-base: " + bundle.getString("color.button"));
 		
-		//TODO
+		//TODO re-activate
 		buttonAchievements.setDisable(true);
 		
 		Logger.info("successfully started");
@@ -106,7 +107,7 @@ public class Controller
 		}
 		catch(IOException e1)
 		{
-			e1.printStackTrace();
+			Logger.error(e1);
 		}
 	}
 	
@@ -133,7 +134,7 @@ public class Controller
 		}
 		catch(IOException e1)
 		{
-			e1.printStackTrace();
+			Logger.error(e1);
 		}
 	}
 	
@@ -142,6 +143,7 @@ public class Controller
 		
 	}	
 	
+	@Override
 	public void showCommandLine()
 	{		
 		try
@@ -150,8 +152,8 @@ public class Controller
 		}
 		catch(IOException e)
 		{
-	        //TODO: errorhandling
-			Logger.error(e);;
+			AlertGenerator.showAlert(AlertType.ERROR, "Error", "", "An error occurred while opening the debug console.\n\nDetails:\n" + e.getMessage(), icon, stage, null, false);
+			Logger.error(e);
 		}
 	}
 	
diff --git a/src/de/bricked/ui/LevelController.java b/src/de/bricked/ui/LevelController.java
index c56f3a1..a33a918 100644
--- a/src/de/bricked/ui/LevelController.java
+++ b/src/de/bricked/ui/LevelController.java
@@ -44,6 +44,7 @@ import javafx.scene.Scene;
 import javafx.scene.control.Alert;
 import javafx.scene.control.Button;
 import javafx.scene.control.Label;
+import javafx.scene.control.Alert.AlertType;
 import javafx.scene.effect.Lighting;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
@@ -70,7 +71,7 @@ import logger.Logger;
 import tools.AlertGenerator;
 import tools.Worker;
 
-public class LevelController
+public class LevelController implements CommandLineAvailabale
 {
 	@FXML private AnchorPane anchorPane;
 	@FXML private Label labelLevelName;
@@ -1032,6 +1033,7 @@ public class LevelController
 		labelFPS.setVisible(value);
 	}
 
+	@Override
 	public void showCommandLine()
 	{
 		try
@@ -1040,7 +1042,7 @@ public class LevelController
 		}
 		catch(IOException e)
 		{
-			// TODO: errorhandling
+			AlertGenerator.showAlert(AlertType.ERROR, "Error", "", "An error occurred while opening the debug console.\n\nDetails:\n" + e.getMessage(), icon, stage, null, false);
 			Logger.error(e);
 		}
 	}
diff --git a/src/de/bricked/ui/LevelPackSelectController.java b/src/de/bricked/ui/LevelPackSelectController.java
index 172c0f7..24a6d5b 100644
--- a/src/de/bricked/ui/LevelPackSelectController.java
+++ b/src/de/bricked/ui/LevelPackSelectController.java
@@ -25,6 +25,7 @@ import javafx.scene.control.ListView;
 import javafx.scene.control.ScrollPane;
 import javafx.scene.control.ScrollPane.ScrollBarPolicy;
 import javafx.scene.control.TextInputDialog;
+import javafx.scene.control.Alert.AlertType;
 import javafx.scene.image.Image;
 import javafx.scene.input.KeyEvent;
 import javafx.scene.input.MouseEvent;
@@ -35,8 +36,9 @@ import javafx.stage.WindowEvent;
 import javafx.util.Callback;
 import kuusisto.tinysound.TinySound;
 import logger.Logger;
+import tools.AlertGenerator;
 
-public class LevelPackSelectController
+public class LevelPackSelectController implements CommandLineAvailabale
 {
 	@FXML private AnchorPane mainPane;
 	@FXML private ScrollPane pane;
@@ -192,6 +194,7 @@ public class LevelPackSelectController
 		controller.stage.show();
 	}
 
+	@Override
 	public void showCommandLine()
 	{
 		try
@@ -200,7 +203,7 @@ public class LevelPackSelectController
 		}
 		catch(IOException e)
 		{
-			// TODO: errorhandling
+			AlertGenerator.showAlert(AlertType.ERROR, "Error", "", "An error occurred while opening the debug console.\n\nDetails:\n" + e.getMessage(), icon, stage, null, false);
 			Logger.error(e);
 		}
 	}
diff --git a/src/de/bricked/ui/LevelSelectController.java b/src/de/bricked/ui/LevelSelectController.java
index 85bdc7e..75fb3a7 100644
--- a/src/de/bricked/ui/LevelSelectController.java
+++ b/src/de/bricked/ui/LevelSelectController.java
@@ -19,6 +19,7 @@ import javafx.scene.control.Label;
 import javafx.scene.control.ListCell;
 import javafx.scene.control.ListView;
 import javafx.scene.control.ScrollPane;
+import javafx.scene.control.Alert.AlertType;
 import javafx.scene.control.ScrollPane.ScrollBarPolicy;
 import javafx.scene.image.Image;
 import javafx.scene.input.KeyEvent;
@@ -30,8 +31,9 @@ import javafx.stage.WindowEvent;
 import javafx.util.Callback;
 import kuusisto.tinysound.TinySound;
 import logger.Logger;
+import tools.AlertGenerator;
 
-public class LevelSelectController
+public class LevelSelectController implements CommandLineAvailabale
 {
 	@FXML private AnchorPane mainPane;
 	@FXML private ScrollPane pane;
@@ -173,6 +175,7 @@ public class LevelSelectController
 		controller.stage.show();
 	}
 
+	@Override
 	public void showCommandLine()
 	{
 		try
@@ -181,7 +184,7 @@ public class LevelSelectController
 		}
 		catch(IOException e)
 		{
-			// TODO: errorhandling
+			AlertGenerator.showAlert(AlertType.ERROR, "Error", "", "An error occurred while opening the debug console.\n\nDetails:\n" + e.getMessage(), icon, stage, null, false);
 			Logger.error(e);
 		}
 	}
diff --git a/src/de/bricked/ui/SettingsController.java b/src/de/bricked/ui/SettingsController.java
index 3fb70b9..33e6774 100644
--- a/src/de/bricked/ui/SettingsController.java
+++ b/src/de/bricked/ui/SettingsController.java
@@ -23,13 +23,15 @@ import javafx.scene.control.Slider;
 import javafx.scene.control.TableColumn;
 import javafx.scene.control.TableColumn.CellDataFeatures;
 import javafx.scene.control.TableView;
+import javafx.scene.control.Alert.AlertType;
 import javafx.scene.image.Image;
 import javafx.scene.layout.AnchorPane;
 import javafx.stage.Stage;
 import javafx.util.Callback;
 import logger.Logger;
+import tools.AlertGenerator;
 
-public class SettingsController
+public class SettingsController implements CommandLineAvailabale
 {
 	@FXML private AnchorPane mainPane;
 	@FXML private Label labelLevelPack;
@@ -173,6 +175,7 @@ public class SettingsController
 		tableViewControls.getItems().addAll(controls);
 	}
 
+	@Override
 	public void showCommandLine()
 	{
 		try
@@ -181,7 +184,7 @@ public class SettingsController
 		}
 		catch(IOException e)
 		{
-			// TODO: errorhandling
+			AlertGenerator.showAlert(AlertType.ERROR, "Error", "", "An error occurred while opening the debug console.\n\nDetails:\n" + e.getMessage(), icon, stage, null, false);
 			Logger.error(e);
 		}
 	}
diff --git a/src/de/brickedleveleditor/ui/controller/LevelPackDialogController.java b/src/de/brickedleveleditor/ui/controller/LevelPackDialogController.java
index 9f32ef6..9a1d81d 100644
--- a/src/de/brickedleveleditor/ui/controller/LevelPackDialogController.java
+++ b/src/de/brickedleveleditor/ui/controller/LevelPackDialogController.java
@@ -9,9 +9,10 @@ import javafx.scene.control.Spinner;
 import javafx.scene.control.TextField;
 import tools.AlertGenerator;
 
+@SuppressWarnings("all")
 public class LevelPackDialogController extends AbstractController
 {
-    @FXML private Spinner difficultySpinner;
+	@FXML private Spinner difficultySpinner;
     @FXML private ComboBox paddleSizeComboBox;
     @FXML private Spinner startLivesSpinner;
     @FXML private TextField authorTextField;
-- 
GitLab