removed more mwc dependencies & code clean up

This commit is contained in:
Jannik 2019-01-12 23:07:25 +01:00
parent a80e077d47
commit 291f183f5e
7 changed files with 54 additions and 69 deletions

View File

@ -132,17 +132,19 @@ public class MainWindowController {
@FXML private TableColumn<SourceDataType, String> sourceColumn;
@FXML private TableColumn<SourceDataType, String> modeColumn;
@FXML private TreeTableColumn<FilmTabelDataType, String> columnStreamUrl;
@FXML private TreeTableColumn<FilmTabelDataType, String> columnTitle;
@FXML private TreeTableColumn<FilmTabelDataType, ImageView> columnFavorite;
@FXML private TreeTableColumn<FilmTabelDataType, String> columnSeason;
@FXML private TreeTableColumn<FilmTabelDataType, String> columnEpisode;
// table-mode
@FXML private AnchorPane tableModeAnchorPane;
@FXML private JFXTextField searchTextField;
@FXML private TreeTableView<FilmTabelDataType> filmsTreeTable;
@FXML private TreeItem<FilmTabelDataType> filmRoot = new TreeItem<>(new FilmTabelDataType("", "", "", "", false, false, null));
@FXML private TreeTableColumn<FilmTabelDataType, String> columnStreamUrl = new TreeTableColumn<>("File Name");
@FXML private TreeTableColumn<FilmTabelDataType, String> columnTitle = new TreeTableColumn<>("Title");
@FXML private TreeTableColumn<FilmTabelDataType, String> columnSeason = new TreeTableColumn<>("Season");
@FXML private TreeTableColumn<FilmTabelDataType, String> columnEpisode = new TreeTableColumn<>("Episode");
@FXML private TreeTableColumn<FilmTabelDataType, ImageView> columnFavorite = new TreeTableColumn<>("Favorite");
@FXML private ScrollPane textScrollPane;
@FXML private TextFlow textFlow;
@ -156,9 +158,8 @@ public class MainWindowController {
// poster-mode
// @FXML private AnchorPane posterModeAnchorPane;
private MainWindowController mainWindowController;
private static DBController dbController; // the player needs the initialized dbController
private UpdateController updateController;
private DBController dbController;
private XMLController xmlController;
private Stage primaryStage;
private static final Logger LOGGER = LogManager.getLogger(MainWindowController.class.getName());
@ -182,7 +183,7 @@ public class MainWindowController {
private ObservableList<String> branches = FXCollections.observableArrayList("stable", "beta");
private ObservableList<FilmTabelDataType> filterData = FXCollections.observableArrayList();
private ObservableList<FilmTabelDataType> filmsList = FXCollections.observableArrayList();
private ObservableList<SourceDataType> sourcesList = FXCollections.observableArrayList();
private static ObservableList<SourceDataType> sourcesList = FXCollections.observableArrayList();
private MenuItem like = new MenuItem("like");
private MenuItem dislike = new MenuItem("dislike"); // TODO one option (like or dislike)
private ContextMenu menu = new ContextMenu(like, dislike);
@ -193,7 +194,6 @@ public class MainWindowController {
@FXML
public void initialize() {
mainWindowController = this;
xmlController = new XMLController();
dbController = new DBController(this);
}
@ -211,6 +211,9 @@ public class MainWindowController {
initActions();
dbController.init();
// load sources list in gui
addSourceToTable();
// posterModeStartup(); // TODO testing DO NOT USE THIS!!
}
@ -243,24 +246,6 @@ public class MainWindowController {
private void initTabel() {
// film Table
columnStreamUrl.setMaxWidth(0);
columnTitle.setMaxWidth(182);
columnFavorite.setMaxWidth(80);
columnSeason.setMaxWidth(70);
columnEpisode.setMaxWidth(70);
columnTitle.setMinWidth(182);
columnFavorite.setMinWidth(80);
columnSeason.setMinWidth(70);
columnEpisode.setMinWidth(70);
columnTitle.setResizable(false);
columnFavorite.setResizable(false);
columnSeason.setResizable(false);
columnEpisode.setResizable(false);
columnFavorite.setStyle("-fx-alignment: CENTER;");
filmsTreeTable.setRoot(filmRoot);
filmsTreeTable.setColumnResizePolicy(TreeTableView.CONSTRAINED_RESIZE_POLICY);
filmsTreeTable.setShowRoot(false);
@ -272,14 +257,6 @@ public class MainWindowController {
columnEpisode.setCellValueFactory(cellData -> cellData.getValue().getValue().episodeProperty());
columnFavorite.setCellValueFactory(cellData -> cellData.getValue().getValue().imageProperty());
// add columns to treeTableViewfilm
filmsTreeTable.getColumns().add(columnStreamUrl);
filmsTreeTable.getColumns().add(columnTitle);
filmsTreeTable.getColumns().add(columnFavorite);
filmsTreeTable.getColumns().add(columnSeason);
filmsTreeTable.getColumns().add(columnEpisode);
filmsTreeTable.getColumns().get(0).setVisible(false); // hide columnStreamUrl (important)
// context menu for treeTableViewfilm
filmsTreeTable.setContextMenu(menu);
@ -467,7 +444,7 @@ public class MainWindowController {
}
if (isSupportedFormat(currentTableFilm)) {
new Player(mainWindowController);
new Player(getCurrentTableFilm());
} else {
LOGGER.error("using fallback player!");
if (System.getProperty("os.name").contains("Linux")) {
@ -641,10 +618,11 @@ public class MainWindowController {
}
}
// add a source to the sources table on the settings pane
public void addSourceToTable(String path, String mode) {
sourcesList.add(new SourceDataType(path, mode));
sourceRoot.getChildren().add(new TreeItem<SourceDataType>(sourcesList.get(sourcesList.size() - 1))); // adds data to root-node
// add a all elements of sourcesList to the sources table on the settings pane
public void addSourceToTable() {
for (SourceDataType source: sourcesList) {
sourceRoot.getChildren().add(new TreeItem<SourceDataType>(source)); // add data to root-node
}
}
/**
@ -785,9 +763,9 @@ public class MainWindowController {
branchLbl.setText(XMLController.getLocalBundle().getString("branchLbl"));
columnStreamUrl.setText(XMLController.getLocalBundle().getString("columnStreamUrl"));
columnTitle.setText(XMLController.getLocalBundle().getString("columnName"));
columnFavorite.setText(XMLController.getLocalBundle().getString("columnFavorite"));
columnSeason.setText(XMLController.getLocalBundle().getString("columnSeason"));
columnEpisode.setText(XMLController.getLocalBundle().getString("columnEpisode"));
columnFavorite.setText(XMLController.getLocalBundle().getString("columnFavorite"));
}
// if AutoUpdate, then check for updates
@ -841,7 +819,7 @@ public class MainWindowController {
}
// getter and setter
public DBController getDbController() {
public static DBController getDbController() {
return dbController;
}
@ -869,7 +847,7 @@ public class MainWindowController {
return filmsList;
}
public ObservableList<SourceDataType> getSourcesList() {
public static ObservableList<SourceDataType> getSourcesList() {
return sourcesList;
}

View File

@ -143,7 +143,7 @@ public class DBController {
* load all sources
*/
private void loadSources() {
SourcesController sourcesController = new SourcesController(mainWindowController);
SourcesController sourcesController = new SourcesController();
sourceStreams = sourcesController.loadSources();
}

View File

@ -39,15 +39,15 @@ import com.eclipsesource.json.JsonValue;
import kellerkinder.HomeFlix.application.MainWindowController;
import kellerkinder.HomeFlix.datatypes.DatabaseDataType;
import kellerkinder.HomeFlix.datatypes.SourceDataType;
public class SourcesController {
private MainWindowController mainWindowController;
private List<DatabaseDataType> sourceStreams = new ArrayList<DatabaseDataType>();
private static final Logger LOGGER = LogManager.getLogger(SourcesController.class.getName());
public SourcesController(MainWindowController mainWindowController) {
this.mainWindowController = mainWindowController;
public SourcesController() {
// Auto-generated constructor stub
}
/**
@ -61,7 +61,7 @@ public class SourcesController {
for (JsonValue source : sources) {
String path = source.asObject().getString("path", "");
String mode = source.asObject().getString("mode", "");
mainWindowController.addSourceToTable(path, mode); // add loaded source to source-table TODO this should be done in mwc
MainWindowController.getSourcesList().add(new SourceDataType(path, mode));
if (mode.equals("local"))
addLocalSource(path);

View File

@ -42,14 +42,14 @@ import com.eclipsesource.json.JsonObject;
public class XMLController {
private static String userHome = System.getProperty("user.home");
private static String userName = System.getProperty("user.name");
private static String osName = System.getProperty("os.name");
private static String osArch = System.getProperty("os.arch");
private static String osVers = System.getProperty("os.version");
private static String javaVers = System.getProperty("java.version");
private static String javaVend = System.getProperty("java.vendor");
private static String sysLocal = System.getProperty("user.language") + "_" + System.getProperty("user.country");
private static final String userHome = System.getProperty("user.home");
private static final String userName = System.getProperty("user.name");
private static final String osName = System.getProperty("os.name");
private static final String osArch = System.getProperty("os.arch");
private static final String osVers = System.getProperty("os.version");
private static final String javaVers = System.getProperty("java.version");
private static final String javaVend = System.getProperty("java.vendor");
private static final String sysLocal = System.getProperty("user.language") + "_" + System.getProperty("user.country");
private static String dirHomeFlixPath;
private static File dirHomeFlix;
private static File configFile;

View File

@ -31,6 +31,7 @@ import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import kellerkinder.HomeFlix.application.Main;
import kellerkinder.HomeFlix.application.MainWindowController;
import kellerkinder.HomeFlix.datatypes.FilmTabelDataType;
public class Player {
@ -41,10 +42,10 @@ public class Player {
/**
* generate a new PlayerWindow
* @param mainWindowController the MainWindowController
* @param currentTableFilm the currently selected film
*/
public Player(MainWindowController mainWindowController) {
playerController = new PlayerController(mainWindowController, this, mainWindowController.getCurrentTableFilm());
public Player(FilmTabelDataType currentTableFilm) {
playerController = new PlayerController(this, currentTableFilm);
try {
FXMLLoader fxmlLoader = new FXMLLoader();
@ -58,7 +59,7 @@ public class Player {
stage.getIcons().add(new Image(Main.class.getResourceAsStream("/icons/Homeflix_Icon_64x64.png")));
stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
public void handle(WindowEvent we) {
mainWindowController.getDbController().setCurrentTime(mainWindowController.getCurrentStreamUrl(),
MainWindowController.getDbController().setCurrentTime(currentTableFilm.getStreamUrl(),
playerController.getCurrentTime());
playerController.getMediaPlayer().stop();
stage.close();

View File

@ -67,7 +67,6 @@ public class PlayerController {
@FXML private JFXButton nextEpBtn;
private Player player;
private MainWindowController mainWCon;
private Media media;
private MediaPlayer mediaPlayer;
@ -95,8 +94,7 @@ public class PlayerController {
* @param player the player object (needed for closing action)
* @param film the film object
*/
public PlayerController(MainWindowController mainWCon, Player player, FilmTabelDataType film) {
this.mainWCon = mainWCon;
public PlayerController(Player player, FilmTabelDataType film) {
this.player = player;
this.film = film;
}
@ -124,7 +122,7 @@ public class PlayerController {
width.bind(Bindings.selectDouble(mediaView.sceneProperty(), "width"));
height.bind(Bindings.selectDouble(mediaView.sceneProperty(), "height"));
startTime = mainWCon.getDbController().getCurrentTime(film.getStreamUrl());
startTime = MainWindowController.getDbController().getCurrentTime(film.getStreamUrl());
autoplay = XMLController.isAutoplay();
season = !film.getSeason().isEmpty() ? Integer.parseInt(film.getSeason()) : 0;
episode = !film.getEpisode().isEmpty() ? Integer.parseInt(film.getEpisode()) : 0;
@ -177,7 +175,7 @@ public class PlayerController {
} else if (timeToEnd < 120) {
// if we are 120ms to the end stop the media
mediaPlayer.stop();
mainWCon.getDbController().setCurrentTime(film.getStreamUrl(), 0); // reset old video start time
MainWindowController.getDbController().setCurrentTime(film.getStreamUrl(), 0); // reset old video start time
playBtn.setGraphic(play_arrow_black);
} else {
if (nextEpBtn.isVisible())
@ -255,7 +253,7 @@ public class PlayerController {
@FXML
void stopBtnAction(ActionEvent event) {
mainWCon.getDbController().setCurrentTime(film.getStreamUrl(), currentTime);
MainWindowController.getDbController().setCurrentTime(film.getStreamUrl(), currentTime);
mediaPlayer.stop();
player.getStage().close();
}
@ -289,8 +287,8 @@ public class PlayerController {
private void autoPlayNewFilm() {
autoplay = false;
mainWCon.getDbController().setCurrentTime(film.getStreamUrl(), 0); // reset old video start time
FilmTabelDataType nextFilm = mainWCon.getDbController().getNextEpisode(film.getTitle(), episode, season);
MainWindowController.getDbController().setCurrentTime(film.getStreamUrl(), 0); // reset old video start time
FilmTabelDataType nextFilm = MainWindowController.getDbController().getNextEpisode(film.getTitle(), episode, season);
if (nextFilm != null) {
mediaPlayer.stop();
film = nextFilm;

View File

@ -13,6 +13,7 @@
<?import javafx.scene.control.Separator?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TreeTableColumn?>
<?import javafx.scene.control.TreeTableView?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
@ -31,7 +32,14 @@
<Font name="Arial" size="12.0" />
</font>
</JFXTextField>
<TreeTableView fx:id="filmsTreeTable" prefHeight="500.0" prefWidth="420.0" AnchorPane.bottomAnchor="12.0" AnchorPane.leftAnchor="12.0" AnchorPane.rightAnchor="568.0" AnchorPane.topAnchor="56.0" />
<TreeTableView fx:id="filmsTreeTable" prefHeight="500.0" prefWidth="420.0" AnchorPane.bottomAnchor="12.0" AnchorPane.leftAnchor="12.0" AnchorPane.rightAnchor="568.0" AnchorPane.topAnchor="56.0">
<columns>
<TreeTableColumn fx:id="columnStreamUrl" editable="false" prefWidth="75.0" resizable="false" text="Stream URL" visible="false" />
<TreeTableColumn fx:id="columnTitle" maxWidth="182.0" minWidth="182.0" prefWidth="182.0" resizable="false" text="Title" />
<TreeTableColumn fx:id="columnFavorite" maxWidth="80.0" minWidth="80.0" resizable="false" style="-fx-alignment: CENTER;" text="Favorite" />
<TreeTableColumn fx:id="columnSeason" maxWidth="70.0" minWidth="70.0" prefWidth="70.0" resizable="false" text="Season" />
<TreeTableColumn fx:id="columnEpisode" maxWidth="70.0" minWidth="70.0" prefWidth="70.0" resizable="false" text="Episode" />
</columns></TreeTableView>
<ScrollPane fx:id="textScrollPane" fitToWidth="true" prefHeight="544.0" prefWidth="320.0" AnchorPane.bottomAnchor="12.0" AnchorPane.rightAnchor="222.0" AnchorPane.topAnchor="12.0">
<content>
<TextFlow fx:id="textFlow" accessibleRole="TEXT_AREA" maxHeight="544.0" maxWidth="320.0" visible="true" />