release 0.8.0 #12
|
@ -85,8 +85,6 @@ public class Main extends Application {
|
|||
primaryStage.setScene(scene); // append scene to stage
|
||||
primaryStage.show(); // show stage
|
||||
|
||||
|
||||
|
||||
mainWindowController = loader.getController(); //Link of FXMLController and controller class
|
||||
mainWindowController.init();
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ import java.io.InputStreamReader;
|
|||
import java.io.Writer;
|
||||
import java.math.BigInteger;
|
||||
import java.net.URLConnection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Locale;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
@ -53,6 +54,7 @@ import com.jfoenix.controls.JFXToggleButton;
|
|||
import com.jfoenix.transitions.hamburger.HamburgerBackArrowBasicTransition;
|
||||
|
||||
import javafx.animation.TranslateTransition;
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.value.ChangeListener;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.collections.FXCollections;
|
||||
|
@ -60,6 +62,7 @@ import javafx.collections.ObservableList;
|
|||
import javafx.event.ActionEvent;
|
||||
import javafx.event.EventHandler;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.control.ChoiceBox;
|
||||
import javafx.scene.control.ContextMenu;
|
||||
import javafx.scene.control.Label;
|
||||
|
@ -79,6 +82,8 @@ import javafx.scene.layout.HBox;
|
|||
import javafx.scene.layout.VBox;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.scene.text.Font;
|
||||
import javafx.scene.text.FontWeight;
|
||||
import javafx.scene.text.Text;
|
||||
import javafx.scene.text.TextFlow;
|
||||
import javafx.stage.DirectoryChooser;
|
||||
import javafx.stage.FileChooser;
|
||||
|
@ -195,7 +200,7 @@ public class MainWindowController {
|
|||
@FXML
|
||||
public void initialize() {
|
||||
xmlController = new XMLController();
|
||||
dbController = new DBController(this);
|
||||
dbController = DBController.getInstance();
|
||||
}
|
||||
|
||||
public void init() {
|
||||
|
@ -210,6 +215,7 @@ public class MainWindowController {
|
|||
initUI();
|
||||
initActions();
|
||||
dbController.init();
|
||||
refreshAllFilms();
|
||||
|
||||
// load sources list in gui
|
||||
addSourceToTable();
|
||||
|
@ -318,7 +324,7 @@ public class MainWindowController {
|
|||
public void changed(ObservableValue<? extends Number> ov, Number old_val, Number new_val) {
|
||||
XMLController.setFontSize(fontsizeSlider.getValue());
|
||||
if (!getCurrentTitle().isEmpty()) {
|
||||
dbController.readCache(getCurrentStreamUrl());
|
||||
setSelectedFilmInfo(dbController.readCache(getCurrentStreamUrl()));
|
||||
}
|
||||
xmlController.saveSettings();
|
||||
}
|
||||
|
@ -355,7 +361,7 @@ public class MainWindowController {
|
|||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
dbController.like(getCurrentStreamUrl());
|
||||
dbController.refresh(getCurrentStreamUrl(), indexList);
|
||||
filmsList.set(indexList, dbController.getDatabaseFilm(getCurrentStreamUrl()));
|
||||
refreshTableElement();
|
||||
}
|
||||
});
|
||||
|
@ -364,7 +370,7 @@ public class MainWindowController {
|
|||
@Override
|
||||
public void handle(ActionEvent event) {
|
||||
dbController.dislike(getCurrentStreamUrl());
|
||||
dbController.refresh(getCurrentStreamUrl(), indexList);
|
||||
filmsList.set(indexList, dbController.getDatabaseFilm(getCurrentStreamUrl()));
|
||||
refreshTableElement();
|
||||
}
|
||||
});
|
||||
|
@ -423,11 +429,28 @@ public class MainWindowController {
|
|||
|
||||
if (currentTableFilm.getCached() || dbController.searchCacheByURL(getCurrentStreamUrl())) {
|
||||
LOGGER.info("loading from cache: " + getCurrentTitle());
|
||||
dbController.readCache(getCurrentStreamUrl());
|
||||
setSelectedFilmInfo(dbController.readCache(getCurrentStreamUrl()));
|
||||
} else {
|
||||
Thread omdbAPIThread = new Thread(new OMDbAPIController(dbController, currentTableFilm, XMLController.getOmdbAPIKey(), true));
|
||||
omdbAPIThread.setName("OMDbAPI");
|
||||
omdbAPIThread.start();
|
||||
// this is not perfect!
|
||||
new Thread(new Runnable() {
|
||||
public void run() {
|
||||
Thread omdbAPIThread = new Thread(new OMDbAPIController(dbController, currentTableFilm, XMLController.getOmdbAPIKey()));
|
||||
omdbAPIThread.setName("OMDbAPI");
|
||||
omdbAPIThread.start();
|
||||
|
||||
synchronized (omdbAPIThread) {
|
||||
try {
|
||||
omdbAPIThread.wait();
|
||||
} catch (InterruptedException e) {
|
||||
LOGGER.error(e);
|
||||
}
|
||||
// update the GUI for the selected film
|
||||
Platform.runLater(() -> {
|
||||
setSelectedFilmInfo(dbController.readCache(getCurrentStreamUrl()));
|
||||
});
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -585,6 +608,18 @@ public class MainWindowController {
|
|||
filmRoot.getChildren().get(indexTable).setValue(filmsList.get(indexList));
|
||||
}
|
||||
|
||||
/**
|
||||
* refresh all films in filmsList and in filmsTable
|
||||
* clear the FilmsList and FilmRoot children, then update the database
|
||||
*/
|
||||
private void refreshAllFilms() {
|
||||
getFilmsList().clear();
|
||||
getFilmRoot().getChildren().clear();
|
||||
dbController.refreshDataBase(); // refreshes the database after a source path was added
|
||||
filmsList = dbController.getDatabaseFilmsList(); // returns a list of all films stored in the database
|
||||
addFilmsToTable(filmsList);
|
||||
}
|
||||
|
||||
/**
|
||||
* add data from films-list to films-table
|
||||
*/
|
||||
|
@ -657,8 +692,9 @@ public class MainWindowController {
|
|||
getSourcesList().clear();
|
||||
getSourceRoot().getChildren().clear();
|
||||
|
||||
// update the database and all films from the database
|
||||
dbController.refreshDataBase();
|
||||
// clear the FilmsList and FilmRoot children, then update the database
|
||||
refreshAllFilms();
|
||||
|
||||
checkAllPosters(); // check if there is anything to cache
|
||||
}
|
||||
|
||||
|
@ -732,7 +768,7 @@ public class MainWindowController {
|
|||
/**
|
||||
* set the local based on the languageChoisBox selection
|
||||
*/
|
||||
void setLocalUI() {
|
||||
private void setLocalUI() {
|
||||
switch (XMLController.getUsrLocal()) {
|
||||
case "en_US":
|
||||
XMLController.setLocalBundle(ResourceBundle.getBundle("locals.HomeFlix-Local", Locale.US)); // us_English
|
||||
|
@ -768,6 +804,62 @@ public class MainWindowController {
|
|||
columnEpisode.setText(XMLController.getLocalBundle().getString("columnEpisode"));
|
||||
}
|
||||
|
||||
private void setSelectedFilmInfo(String[] cacheData) {
|
||||
Font font = Font.font("System", FontWeight.BOLD, (int) Math.round(XMLController.getFontSize()));
|
||||
ObservableList<Node> textFlow = getTextFlow().getChildren();
|
||||
|
||||
// TODO this should move! ***
|
||||
ArrayList<Text> nameText = new ArrayList<Text>();
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("title") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("year") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("rated") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("released") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("season") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("episode") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("runtime") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("genre") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("director") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("writer") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("actors") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("plot") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("language") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("country") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("awards") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("metascore") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("imdbRating") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("type") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("boxOffice") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("website") + ": "));
|
||||
// ***
|
||||
|
||||
// set the correct font for the nameText
|
||||
for (Text text : nameText) {
|
||||
text.setFont(font);
|
||||
}
|
||||
|
||||
// clear the textFlow and add the new text
|
||||
textFlow.clear();
|
||||
|
||||
// TODO rework
|
||||
for(int i = 0; i < 20; i++) {
|
||||
if (cacheData[i] != null && (i == 5 || i == 6) && cacheData[5].length() == 0) {
|
||||
// do nothing
|
||||
} else if(cacheData[i] != null){
|
||||
textFlow.addAll(nameText.get(i), new Text(cacheData[i] + "\n"));
|
||||
}
|
||||
}
|
||||
|
||||
getTextFlow().setStyle("-fx-font-size : " + ((int) Math.round(XMLController.getFontSize()) + 1) + "px;");
|
||||
|
||||
// add the image
|
||||
try {
|
||||
getPosterImageView().setImage(new Image(new File(cacheData[20]).toURI().toString()));
|
||||
} catch (Exception e) {
|
||||
getPosterImageView().setImage(new Image("icons/close_black_2048x2048.png"));
|
||||
LOGGER.error("No Poster found, useing default.");
|
||||
}
|
||||
}
|
||||
|
||||
// if AutoUpdate, then check for updates
|
||||
private void checkAutoUpdate() {
|
||||
|
||||
|
@ -810,12 +902,15 @@ public class MainWindowController {
|
|||
for (FilmTabelDataType entry : dbController.getAllNotCachedEntries()) {
|
||||
System.out.println(entry.getStreamUrl() + " is NOT cached!");
|
||||
|
||||
Runnable OMDbAPIWorker = new OMDbAPIController(dbController, entry, XMLController.getOmdbAPIKey(), false);
|
||||
Runnable OMDbAPIWorker = new OMDbAPIController(dbController, entry, XMLController.getOmdbAPIKey());
|
||||
executor.execute(OMDbAPIWorker);
|
||||
}
|
||||
executor.shutdown();
|
||||
|
||||
// TODO show loading screen
|
||||
|
||||
// update all elements from the database
|
||||
refreshAllFilms();
|
||||
}
|
||||
|
||||
// getter and setter
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
|
||||
package kellerkinder.HomeFlix.controller;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.net.URLConnection;
|
||||
|
@ -37,21 +36,17 @@ import java.util.List;
|
|||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.text.Font;
|
||||
import javafx.scene.text.FontWeight;
|
||||
import javafx.scene.text.Text;
|
||||
import kellerkinder.HomeFlix.application.MainWindowController;
|
||||
import kellerkinder.HomeFlix.datatypes.DatabaseDataType;
|
||||
import kellerkinder.HomeFlix.datatypes.FilmTabelDataType;
|
||||
import kellerkinder.HomeFlix.datatypes.OMDbAPIResponseDataType;
|
||||
|
||||
public class DBController {
|
||||
|
||||
private MainWindowController mainWindowController;
|
||||
private static DBController instance = null;
|
||||
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");
|
||||
|
@ -65,8 +60,16 @@ public class DBController {
|
|||
* @param main the Main object
|
||||
* @param mainWindowController the MainWindowController object
|
||||
*/
|
||||
public DBController(MainWindowController mainWindowController) {
|
||||
this.mainWindowController = mainWindowController;
|
||||
public DBController() {
|
||||
// Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public static DBController getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new DBController();
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -148,11 +151,12 @@ public class DBController {
|
|||
}
|
||||
|
||||
/**
|
||||
* load the data to the mainWindowController
|
||||
* load the data from the database to a ObservableList
|
||||
* order entries by title
|
||||
* @return a ObservableList that contains all films from the database
|
||||
*/
|
||||
private void loadDataToFilmsList() {
|
||||
ImageView imageView;
|
||||
public ObservableList<FilmTabelDataType> getDatabaseFilmsList() {
|
||||
ObservableList<FilmTabelDataType> filmsList = FXCollections.observableArrayList();
|
||||
LOGGER.info("loading data to mwc ...");
|
||||
try {
|
||||
//load local Data
|
||||
|
@ -160,8 +164,8 @@ public class DBController {
|
|||
ResultSet rs = stmt.executeQuery("SELECT * FROM films ORDER BY title");
|
||||
|
||||
while (rs.next()) {
|
||||
imageView = rs.getBoolean("favorite") ? new ImageView(favorite_black) : new ImageView(favorite_border_black);
|
||||
mainWindowController.getFilmsList().add(new FilmTabelDataType(rs.getString("streamUrl"),
|
||||
ImageView imageView = rs.getBoolean("favorite") ? new ImageView(favorite_black) : new ImageView(favorite_border_black);
|
||||
filmsList.add(new FilmTabelDataType(rs.getString("streamUrl"),
|
||||
rs.getString("title"), rs.getString("season"), rs.getString("episode") ,rs.getBoolean("favorite"),
|
||||
rs.getBoolean("cached"), imageView));
|
||||
}
|
||||
|
@ -172,15 +176,17 @@ public class DBController {
|
|||
}
|
||||
|
||||
LOGGER.info("loading data to the GUI ...");
|
||||
mainWindowController.addFilmsToTable(mainWindowController.getFilmsList());
|
||||
|
||||
return filmsList;
|
||||
}
|
||||
|
||||
/**
|
||||
* refresh data in mainWindowController for one element
|
||||
* get one film from the database with streamUrl = ?
|
||||
* @param streamUrl of the film
|
||||
* @param index of the film in LocalFilms list
|
||||
* @return a FilmTabelDataType Object of the film with the given streamUrl
|
||||
*/
|
||||
public void refresh(String streamUrl, int indexList) {
|
||||
public FilmTabelDataType getDatabaseFilm(String streamUrl) {
|
||||
FilmTabelDataType film = null;
|
||||
LOGGER.info("refresh data for " + streamUrl);
|
||||
try {
|
||||
PreparedStatement ps = connection.prepareStatement("SELECT * FROM films WHERE streamUrl = ?");
|
||||
|
@ -189,21 +195,21 @@ public class DBController {
|
|||
|
||||
while (rs.next()) {
|
||||
ImageView imageView = rs.getBoolean("favorite") ? new ImageView(favorite_black) : new ImageView(favorite_border_black);
|
||||
mainWindowController.getFilmsList().set(indexList, new FilmTabelDataType(rs.getString("streamUrl"),
|
||||
film = new FilmTabelDataType(rs.getString("streamUrl"),
|
||||
rs.getString("title"), rs.getString("season"), rs.getString("episode"), rs.getBoolean("favorite"),
|
||||
rs.getBoolean("cached"), imageView));
|
||||
rs.getBoolean("cached"), imageView);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
} catch (Exception e) {
|
||||
LOGGER.error("Ups! error while refreshing mwc!", e);
|
||||
}
|
||||
}
|
||||
|
||||
return film;
|
||||
}
|
||||
|
||||
/**
|
||||
* refresh database to contain all (new added) entries
|
||||
* refresh the MainWindowController content,
|
||||
* to contain all (new added) entries from the database
|
||||
*/
|
||||
public void refreshDataBase() {
|
||||
LOGGER.info("refreshing the Database ...");
|
||||
|
@ -223,12 +229,6 @@ public class DBController {
|
|||
} catch (Exception e) {
|
||||
LOGGER.error("Error while refreshing the database", e);
|
||||
}
|
||||
|
||||
// clear the FilmsList and FilmRoot children
|
||||
mainWindowController.getFilmsList().clear();
|
||||
mainWindowController.getFilmRoot().getChildren().clear();
|
||||
|
||||
loadDataToFilmsList(); // load the new data to the FilmsList
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -373,8 +373,6 @@ public class DBController {
|
|||
} catch (SQLException e) {
|
||||
LOGGER.error("Ups! an error occured!", e);
|
||||
}
|
||||
|
||||
refresh(streamUrl, mainWindowController.getIndexList());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -445,79 +443,40 @@ public class DBController {
|
|||
}
|
||||
|
||||
/**
|
||||
* sets the cached data to mwc's TextFlow
|
||||
* read the cached data from the Database
|
||||
* @param streamUrl URL of the film
|
||||
* @return a String array (length = 21) with all cached data
|
||||
*/
|
||||
public void readCache(String streamUrl) {
|
||||
public String[] readCache(String streamUrl) {
|
||||
String[] cacheData = new String[21];
|
||||
|
||||
try {
|
||||
PreparedStatement ps = connection.prepareStatement("SELECT * FROM cache WHERE streamUrl = ?");
|
||||
ps.setString(1, streamUrl);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
Font font = Font.font("System", FontWeight.BOLD, (int) Math.round(XMLController.getFontSize()));
|
||||
ObservableList<Node> textFlow = mainWindowController.getTextFlow().getChildren();
|
||||
ArrayList<Text> nameText = new ArrayList<Text>();
|
||||
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("title") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("year") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("rated") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("released") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("season") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("episode") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("runtime") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("genre") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("director") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("writer") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("actors") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("plot") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("language") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("country") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("awards") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("metascore") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("imdbRating") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("type") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("boxOffice") + ": "));
|
||||
nameText.add(new Text(XMLController.getLocalBundle().getString("website") + ": "));
|
||||
|
||||
// set the correct font for the nameText
|
||||
for (Text text : nameText) {
|
||||
text.setFont(font);
|
||||
}
|
||||
|
||||
// clear the textFlow and all the new text
|
||||
textFlow.clear();
|
||||
textFlow.addAll(nameText.get(0), new Text(rs.getString("Title") + "\n"));
|
||||
textFlow.addAll(nameText.get(1), new Text(rs.getString("Year") + "\n"));
|
||||
textFlow.addAll(nameText.get(2), new Text(rs.getString("Rated") + "\n"));
|
||||
textFlow.addAll(nameText.get(3), new Text(rs.getString("Released") + "\n"));
|
||||
|
||||
if (rs.getString("Episode").length() > 0) {
|
||||
textFlow.addAll(nameText.get(4), new Text(rs.getString("Season") + "\n"));
|
||||
textFlow.addAll(nameText.get(5), new Text(rs.getString("Episode") + "\n"));
|
||||
}
|
||||
|
||||
textFlow.addAll(nameText.get(6), new Text(rs.getString("Runtime") + "\n"));
|
||||
textFlow.addAll(nameText.get(7), new Text(rs.getString("Genre") + "\n"));
|
||||
textFlow.addAll(nameText.get(8), new Text(rs.getString("Director") + "\n"));
|
||||
textFlow.addAll(nameText.get(9), new Text(rs.getString("Writer") + "\n"));
|
||||
textFlow.addAll(nameText.get(10), new Text(rs.getString("Actors") + "\n"));
|
||||
textFlow.addAll(nameText.get(11), new Text(rs.getString("Plot") + "\n"));
|
||||
textFlow.addAll(nameText.get(12), new Text(rs.getString("Language") + "\n"));
|
||||
textFlow.addAll(nameText.get(13), new Text(rs.getString("Country") + "\n"));
|
||||
textFlow.addAll(nameText.get(14), new Text(rs.getString("Awards") + "\n"));
|
||||
textFlow.addAll(nameText.get(15), new Text(rs.getString("metascore") + "\n"));
|
||||
textFlow.addAll(nameText.get(16), new Text(rs.getString("imdbRating") + "\n"));
|
||||
textFlow.addAll(nameText.get(17), new Text(rs.getString("Type") + "\n"));
|
||||
textFlow.addAll(nameText.get(18), new Text(rs.getString("BoxOffice") + "\n"));
|
||||
textFlow.addAll(nameText.get(19), new Text(rs.getString("Website") + "\n"));
|
||||
|
||||
mainWindowController.getTextFlow().setStyle("-fx-font-size : " + ((int) Math.round(XMLController.getFontSize()) + 1) + "px;");
|
||||
|
||||
// add the image
|
||||
try {
|
||||
mainWindowController.getPosterImageView().setImage(new Image(new File(rs.getString("Poster")).toURI().toString()));
|
||||
} catch (Exception e) {
|
||||
mainWindowController.getPosterImageView().setImage(new Image("icons/close_black_2048x2048.png"));
|
||||
LOGGER.error("No Poster found, useing default.");
|
||||
while (rs.next()) {
|
||||
cacheData[0] = rs.getString("Title");
|
||||
cacheData[1] = rs.getString("Year");
|
||||
cacheData[2] = rs.getString("Rated");
|
||||
cacheData[3] = rs.getString("Released");
|
||||
cacheData[4] = rs.getString("Season");
|
||||
cacheData[5] = rs.getString("Episode");
|
||||
cacheData[6] = rs.getString("Runtime");
|
||||
cacheData[7] = rs.getString("Genre");
|
||||
cacheData[8] = rs.getString("Director");
|
||||
cacheData[9] = rs.getString("Writer");
|
||||
cacheData[10] = rs.getString("Actors");
|
||||
cacheData[11] = rs.getString("Plot");
|
||||
cacheData[12] = rs.getString("Language");
|
||||
cacheData[13] = rs.getString("Country");
|
||||
cacheData[14] = rs.getString("Awards");
|
||||
cacheData[15] = rs.getString("metascore");
|
||||
cacheData[16] = rs.getString("imdbRating");
|
||||
cacheData[17] = rs.getString("Type");
|
||||
cacheData[18] = rs.getString("BoxOffice");
|
||||
cacheData[19] = rs.getString("Website");
|
||||
cacheData[20] = rs.getString("Poster");
|
||||
}
|
||||
|
||||
rs.close();
|
||||
|
@ -525,6 +484,8 @@ public class DBController {
|
|||
} catch (SQLException e) {
|
||||
LOGGER.error("Ups! an error occured!", e);
|
||||
}
|
||||
|
||||
return cacheData;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -37,8 +37,6 @@ import com.eclipsesource.json.Json;
|
|||
import com.eclipsesource.json.JsonObject;
|
||||
import com.eclipsesource.json.JsonValue;
|
||||
|
||||
import javafx.application.Platform;
|
||||
import kellerkinder.HomeFlix.application.MainWindowController;
|
||||
import kellerkinder.HomeFlix.datatypes.FilmTabelDataType;
|
||||
import kellerkinder.HomeFlix.datatypes.OMDbAPIResponseDataType;
|
||||
|
||||
|
@ -49,8 +47,7 @@ public class OMDbAPIController implements Runnable {
|
|||
private String omdbAPIKey;
|
||||
private String URL = "https://www.omdbapi.com/?apikey=";
|
||||
private boolean useEpisode = true;
|
||||
private boolean refresh;
|
||||
private static final Logger LOGGER = LogManager.getLogger(MainWindowController.class.getName());
|
||||
private static final Logger LOGGER = LogManager.getLogger(OMDbAPIController.class.getName());
|
||||
|
||||
/**
|
||||
* constructor for the OMDbAPIController
|
||||
|
@ -59,11 +56,10 @@ public class OMDbAPIController implements Runnable {
|
|||
* @param currentTableFilm the current film object
|
||||
* @param omdbAPIKey the omdbAPI key
|
||||
*/
|
||||
public OMDbAPIController(DBController dbController, FilmTabelDataType currentTableFilm, String omdbAPIKey, boolean refresh) {
|
||||
public OMDbAPIController(DBController dbController, FilmTabelDataType currentTableFilm, String omdbAPIKey) {
|
||||
this.dbController = dbController;
|
||||
this.currentTableFilm = currentTableFilm;
|
||||
this.omdbAPIKey = omdbAPIKey;
|
||||
this.refresh = refresh;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -136,13 +132,6 @@ public class OMDbAPIController implements Runnable {
|
|||
// adding to cache
|
||||
dbController.addCache(currentTableFilm.getStreamUrl(), omdbResponse);
|
||||
dbController.setCached(currentTableFilm.getStreamUrl());
|
||||
|
||||
// load data to the MainWindowController
|
||||
if (refresh) {
|
||||
Platform.runLater(() -> {
|
||||
dbController.readCache(currentTableFilm.getStreamUrl());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue