From 036ed8ad1198d903b208ad17ae25bf8d546c577e Mon Sep 17 00:00:00 2001 From: Jannik Date: Wed, 16 May 2018 23:02:07 +0200 Subject: [PATCH] DBController cleanup --- .classpath | 2 +- .settings/org.eclipse.jdt.core.prefs | 6 +-- .../HomeFlix/controller/DBController.java | 53 +++++++------------ 3 files changed, 23 insertions(+), 38 deletions(-) diff --git a/.classpath b/.classpath index 56515cc..430e97d 100644 --- a/.classpath +++ b/.classpath @@ -17,7 +17,7 @@ - + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index bbe505d..6f1d295 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,13 +1,13 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=10 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=9 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=10 +org.eclipse.jdt.core.compiler.compliance=9 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=10 +org.eclipse.jdt.core.compiler.source=9 diff --git a/src/main/java/kellerkinder/HomeFlix/controller/DBController.java b/src/main/java/kellerkinder/HomeFlix/controller/DBController.java index be39a93..02edc09 100644 --- a/src/main/java/kellerkinder/HomeFlix/controller/DBController.java +++ b/src/main/java/kellerkinder/HomeFlix/controller/DBController.java @@ -51,21 +51,19 @@ import javafx.scene.text.FontWeight; import javafx.scene.text.Text; import kellerkinder.HomeFlix.application.Main; import kellerkinder.HomeFlix.application.MainWindowController; -import kellerkinder.HomeFlix.datatypes.SourceDataType; import kellerkinder.HomeFlix.datatypes.FilmTabelDataType; import kellerkinder.HomeFlix.datatypes.OMDbAPIResponseDataType; +import kellerkinder.HomeFlix.datatypes.SourceDataType; public class DBController { private MainWindowController mainWindowController; private Main main; - private String DB_PATH = System.getProperty("user.home") + "\\Documents\\HomeFlix" + "\\" + "Homeflix.db"; //path to database file + private String DB_PATH; private Image favorite_black = new Image("icons/ic_favorite_black_18dp_1x.png"); private Image favorite_border_black = new Image("icons/ic_favorite_border_black_18dp_1x.png"); - private List filmsdbAll = new ArrayList(); - private List filmsdbDir = new ArrayList(); - private List filmsdbStreamURL = new ArrayList(); // needed - private List filmsStreamURL = new ArrayList(); // needed + private List filmsdbStreamURL = new ArrayList(); // contains all films stored in the database + private List filmsStreamURL = new ArrayList(); // contains all films from the sources private Connection connection = null; private static final Logger LOGGER = LogManager.getLogger(DBController.class.getName()); @@ -74,7 +72,7 @@ public class DBController { * @param main the Main object * @param mainWindowController the MainWindowController object */ - public DBController(Main main, MainWindowController mainWindowController) { + public DBController(Main main, MainWindowController mainWindowController) { this.main = main; this.mainWindowController = mainWindowController; } @@ -138,7 +136,6 @@ public class DBController { Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM films"); while (rs.next()) { - filmsdbDir.add(rs.getString("title")); filmsdbStreamURL.add(rs.getString("streamUrl")); } stmt.close(); @@ -146,11 +143,6 @@ public class DBController { } catch (SQLException e) { LOGGER.error("Ups! an error occured!", e); } - - // add all entries to filmsAll and filmsdbAl, for later comparing - filmsdbAll.addAll(filmsdbDir); - LOGGER.info("films in directory: " + filmsStreamURL.size()); - LOGGER.info("filme in db: " + filmsdbStreamURL.size()); } /** @@ -210,7 +202,7 @@ public class DBController { * load the data to the mainWindowController * order entries by title */ - private void loadDataToMWC() { + private void loadDataToFilmsList() { LOGGER.info("loading data to mwc ..."); try { //load local Data @@ -276,14 +268,15 @@ public class DBController { LOGGER.info("refreshing the Database ..."); // clean all ArraLists - filmsdbAll.clear(); - filmsdbDir.clear(); filmsdbStreamURL.clear(); filmsStreamURL.clear(); loadSources(); // reload all sources loadDatabase(); // reload all films saved in the DB + LOGGER.info("films in directory: " + filmsStreamURL.size()); + LOGGER.info("filme in db: " + filmsdbStreamURL.size()); + try { checkAddEntry(); checkRemoveEntry(); @@ -291,11 +284,11 @@ public class DBController { LOGGER.error("Error while refreshing the database", e); } - // remove all films from the mwc lists - mainWindowController.getFilmsList().removeAll(mainWindowController.getFilmsList()); - mainWindowController.getFilmRoot().getChildren().removeAll(mainWindowController.getFilmRoot().getChildren()); + // clear the FilmsList and FilmRoot chlidren + mainWindowController.getFilmsList().clear(); + mainWindowController.getFilmRoot().getChildren().clear(); - loadDataToMWC(); // load the new data to the mwc + loadDataToFilmsList(); // load the new data to the FilmsList } /** @@ -469,7 +462,7 @@ public class DBController { * update the database entry for the given film, cached = 1 * @param streamUrl URL of the film */ - void setCached(String streamUrl) { + public void setCached(String streamUrl) { try { Statement stmt = connection.createStatement(); stmt.executeUpdate("UPDATE films SET cached=1 WHERE streamUrl=\"" + streamUrl + "\";"); @@ -487,7 +480,7 @@ public class DBController { * @param streamUrl URL of the film * @param omdbResponse the response data from omdbAPI */ - void addCache(String streamUrl, OMDbAPIResponseDataType omdbResponse) { + public void addCache(String streamUrl, OMDbAPIResponseDataType omdbResponse) { try { PreparedStatement ps = connection.prepareStatement("insert into cache values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); @@ -688,17 +681,14 @@ public class DBController { if (rsEpisode > episode && rsEpisode < nextEpisode) { // fitting episode found in current season, if rsEpisode < nextEpisode -> nextEpisode = rsEpisode nextEpisode = rsEpisode; - System.out.println("next episode is: " + nextEpisode); - // favorite image is black nextFilm = new FilmTabelDataType(rs.getString("streamUrl"), rs.getString("title"), rs.getString("season"), rs.getString("episode"), rs.getBoolean("favorite"), - rs.getBoolean("cached"), new ImageView(favorite_black)); + rs.getBoolean("cached"), new ImageView()); } } if (nextFilm == null) { int nextSeason = 3000; - System.out.println("searching next season"); rs = stmt.executeQuery("SELECT * FROM films WHERE title = \"" + title + "\";"); while(rs.next()) { int rsSeason = Integer.parseInt(rs.getString("season")); @@ -708,18 +698,15 @@ public class DBController { } if (nextSeason != 3000) { - System.out.println("next season is: " + nextSeason); rs = stmt.executeQuery("SELECT * FROM films WHERE title = \"" + title + "\" AND season = \"" + season + "\";"); while(rs.next()) { int rsEpisode = Integer.parseInt(rs.getString("episode")); if (rsEpisode > episode && rsEpisode < nextEpisode) { // fitting episode found in current season, if rsEpisode < nextEpisode -> nextEpisode = rsEpisode nextEpisode = rsEpisode; - System.out.println("next episode is: " + nextEpisode); - // favorite image is black nextFilm = new FilmTabelDataType(rs.getString("streamUrl"), rs.getString("title"), rs.getString("season"), rs.getString("episode"), rs.getBoolean("favorite"), - rs.getBoolean("cached"), new ImageView(favorite_black)); + rs.getBoolean("cached"), new ImageView()); } } } @@ -746,16 +733,14 @@ public class DBController { Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM films WHERE title = \"" + title + "\";"); while (rs.next()) { - // favorite image is black nextFilm = new FilmTabelDataType(rs.getString("streamUrl"), rs.getString("title"), rs.getString("season"), rs.getString("episode"), rs.getBoolean("favorite"), - rs.getBoolean("cached"), new ImageView(favorite_black)); + rs.getBoolean("cached"), new ImageView()); if (rs.getDouble("currentTime") > lastCurrentTime) { lastCurrentTime = rs.getDouble("currentTime"); - // favorite image is black nextFilm = new FilmTabelDataType(rs.getString("streamUrl"), rs.getString("title"), rs.getString("season"), rs.getString("episode"), rs.getBoolean("favorite"), - rs.getBoolean("cached"), new ImageView(favorite_black)); + rs.getBoolean("cached"), new ImageView()); break; } }