From d91ef3aeac5d384a9193019070f6fc9a788006bc Mon Sep 17 00:00:00 2001 From: Seil0 Date: Thu, 9 Mar 2017 22:26:37 +0100 Subject: [PATCH] formating and font color part 1 started work on formating and font color *added a textflow instead of the textarea --- bin/application/DBController.class | Bin 18591 -> 20013 bytes bin/application/Main.class | Bin 6653 -> 6653 bytes bin/application/MainWindow.fxml | 13 +- bin/application/MainWindowController$1.class | Bin 3527 -> 3402 bytes bin/application/MainWindowController$2.class | Bin 3056 -> 3056 bytes bin/application/MainWindowController$3.class | Bin 2002 -> 2002 bytes bin/application/MainWindowController$4.class | Bin 1991 -> 1946 bytes bin/application/MainWindowController$5.class | Bin 2511 -> 2511 bytes bin/application/MainWindowController$6.class | Bin 2471 -> 2471 bytes bin/application/MainWindowController$7.class | Bin 4118 -> 4118 bytes bin/application/MainWindowController.class | Bin 35394 -> 35159 bytes bin/application/apiQuery.class | Bin 6669 -> 7720 bytes bin/application/tableData.class | Bin 4770 -> 4770 bytes src/application/DBController.java | 94 +++++--- src/application/Main.java | 2 +- src/application/MainWindow.fxml | 13 +- src/application/MainWindowController.java | 32 ++- src/application/apiQuery.java | 212 +++++++------------ src/application/tableData.java | 31 ++- 19 files changed, 198 insertions(+), 199 deletions(-) diff --git a/bin/application/DBController.class b/bin/application/DBController.class index a1a5c4298316988181f66d1778378f3bdffd633e..1dd0f16c21db4d7c5679012e06299b435bb528dd 100644 GIT binary patch delta 4915 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 G5C0#AsMx6h delta 3432 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 diff --git a/bin/application/Main.class b/bin/application/Main.class index 04ee8bc75f83fcfa4dafcc899f267ddb4ddbe567..00f5b39e55fc4f9c9e949990e0bc3825dbe0777a 100644 GIT binary patch delta 14 Vcmexs{MUHHN@hmG&8wJ$#Q-yk1-JkJ delta 14 Vcmexs{MUHHN@hll&8wJ$#Q-x@1+M@A diff --git a/bin/application/MainWindow.fxml b/bin/application/MainWindow.fxml index a455653..8b41bd8 100644 --- a/bin/application/MainWindow.fxml +++ b/bin/application/MainWindow.fxml @@ -3,11 +3,11 @@ - + @@ -20,9 +20,12 @@ - - - + + + + + + @@ -31,7 +34,7 @@ - + diff --git a/bin/application/MainWindowController$1.class b/bin/application/MainWindowController$1.class index 181a88f59c7dd7c7773eca0da63ae901d5ea24c0..08603c9ff4e2e65bfa794bbf2c65ef9858540fb6 100644 GIT binary patch delta 910 zcmbu7*>B8I6vsdJcKTbUS3_HAwLFlb8dR#*p^{3x5NcQZuhUUe(C+s;=w<_t3=#(L?j;NCiiUL@Au@KoOcE9^LxMl`TP}7Mwg8g4AKL| zphRikbibc`DiyPtqd%ul%bq7lk2D0mh@Yt}P%LDT9%l`<7AuypR99PLtmUkSG&;K!7iJfI@8I^ZN+r8*BbSBB+Zgg{rh38Eq3->iP-sr-m(FzS6lZKs>t1fZ zw06$wVQ!%GyrP4pg3MUluz=LUmEqZJtu{jAfG7R41uvXY?ahzaUzb zwe|^(DL_+_jY+m7*`DIF?RB-$^^iQd+lV&5;9d~i=85ddvNiP46Q?UQ* zT#yp^w{yartdBnCpGh{z;pE5>v=qvbl*tli$x+nFQkvyx+GH6CIfgfKEN|sFKFJAu zkrVkY10qvS62)?|2*`3#E~khEvVtrlTAbRckUF_SonC0>6^qN&o-= delta 1133 zcmbu8>u(fQ7{-6+bhop+9!=S{sg#&3O+~0COQF@mMiieQyozMWT0F&!LkOhuj&v;_|tZT&Hx5wy6TIi{(n#!Fs4WrfYwrV`9B ztB5laj`O@?AG-xH)3WSxxw9_}?^hh)#o!Jj6Pw{>#VfoTct&UM>%3|3hM>7d!12<9 zS{Pr;W1E`8!J3A}(B&4wANQ8xZGzwzW98y^6^E~fS(D&>ju^}Zi()eV z93F#{im&)uaAVOcJE7wJX36%?ERC-d;zBT**e`Ameox#MPZH5DVpq_5Lt(bU=Hzgd zhr24MbL>n$R>hnn7j7%qb#MASj^rl_Rf==0K8=5onH|Ze&+=?N;kha=RC%e&YxTNA zb@w|}-kWD%eRJ$u>OY~6=E-(xe2w#Y-TD7;mi!w|=+|R5RQYm2-@gcp^mhv_Ak(w7 z$dz=;ZhGV@Hp|uIWDk?_P7cVsI3fGEB-ik(T+0=i;SYH?f68?tChrlQ@?Oy^*NZ;6 zK@7_K#ZEauQaA3Zi%W9|5X#IczCmAAZGFpk$eOjFtp-jr4C-3&6lb(m(KQJoSGm%D nm5pt>+4tHbsnS+k&vH($5q)^hb5UDK9n;Ng&oWZ{5Q+Z{q~9TC diff --git a/bin/application/MainWindowController$2.class b/bin/application/MainWindowController$2.class index 70f04c3a71e34510a2297776ea5a1b2d1a267714..6f2907105e3865bcaa5156c2697f942bd87a32d8 100644 GIT binary patch delta 93 zcmew${y}`hFBYbp)XjfbqF5M%H-~cuGdhMdh%iMk7&ApNI59;tcr(Q?_%X#Ygfk^D v#4;r^G%+PH%m%VoF{LqVU`l7W0i@qBWim1|Wij$FWitvh#mWc(tW6gm delta 93 zcmew${y}`hFBYcMoXvk&qF5NiH-~cuGde~yh%m)47&FB&I5EXDcrzt1_%S6igfpcu v#4@EaG%=+y%m%VoF=a7qV9I8=0i@qBfgb#mWc(w~`lU diff --git a/bin/application/MainWindowController$3.class b/bin/application/MainWindowController$3.class index fc86b80bd43789a9e86a11cd473a25ff71ab305c..7f994aeef862aea5be1b3700568af31b4120be4e 100644 GIT binary patch delta 39 ucmcb_e~EuX6&qv0Y*qD8SpBMpgAH4kVlU_pfPp;)R=L|9HAFHm^4&7-m~F?FF^ zH?t!wU6HULAq_Fnu+qf%OZ*XrJ5Li#bds5S=H9vIoIBszcH3g#e|`D_AcNH~1R<%q zDS0^fQ(TK8fqoMM7$lsNw(V?h_Y4!Vz3L`)H*$e6f? zEWunW=WEr5S94v*BP0s4UUw_DY*cDhYijbWmeV@JCPx0&8Hpl?u`osno&RmjFsq3N z7$-zLN3P|iz2Oi#djECRx2zQ=OiZd3paV}hah?+c%&A?rr*5C1aOVWYyS!U?rY#BIQpl$v d--4Dfu;|xHxa!9xJomE+EMtX{{tj)5*D2yBa+Lr8 delta 569 zcmZvXOK%e~6otR*Ofn>l)F-qQA+-^RCQuC%%5x|X2&F(v11aU%#VAb6Gf2${l?{l; z7B=1>{sW6jRa7B?xYCQ zr|Qcy#37G>ijYa7z;d%{mp>P;B-Q0O3b!#X}oT=Cn@xE1?}vGXUNwGxjBP7BVW!NS<+w3Yc!qSlh% zNR}VAmcm*ot^L~?7C6f}m#Q$V>uPY~Z$^*v)C9L3C-w8`^ z>k?=;yT`d^zx`Q?8JC8h$qvX39cMqtUHvQjKwj#F-2VJW95bP!-{%Hjt>O0`F0bLO zb7Y+p9nRQGhYPDllA*`!y;iPX)34r8R&NQ^J5z)5rVV}co0~CYic3g}E^`HyqG^LN z%oyx#aZ_AHx~uG9mixkXLj_xzdddejs2|+m`j}ZA=4=X;rpTq;lD=%69p+Q+CIjht Ti`!{+h&$Xfs9^Lqiy40a-7;-y diff --git a/bin/application/MainWindowController$5.class b/bin/application/MainWindowController$5.class index efb4d6a45d3699640fe80c29a3f980d37d64716f..dadbf0583188ac49aec2ef62d84b0af04e7fbfa5 100644 GIT binary patch delta 78 zcmV-U0I~ni6VDT{Ed~KJvn~e40Rf1U^#}VkivSM-i~unpymH?^(mjJK=m;kf_ngF{3o0BC8sj{tW9kpPbZ kk^qwelK`FqlmMgxl>n*&mH@Bif1qJ~$vjzsn0Rf(q%?JB6p#Tp8q5wGpqX0YtqyT0DrT}*Wr~r=w ksQ{A#ssNq>s{o_|tN^M4tpKnBt^l+GumHOPv6KA>s;2}QNdN!< delta 78 zcmV-U0I~n46Q>if1qJ~%vjzsn0Rf$p%?JB6pa2g7p#V7oq5wPsqX1?Cr2uyVrvQ%v kr~s1!sQ{h=ssN+{s{pD3tN^eAtpKzFuK>FOu#^1=s-;;OI{*Lx diff --git a/bin/application/MainWindowController$7.class b/bin/application/MainWindowController$7.class index 9f0a1b077321dc5c57b4d41f0d16eeeca0207067..9caeb45ffb07408ea3e89e9e83b61bed7f7afac1 100644 GIT binary patch delta 158 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 literal 35394 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 diff --git a/bin/application/apiQuery.class b/bin/application/apiQuery.class index ab95a6e9d83b0c9a4a7878c156d80708bf357c72..83ed6ce64a31d873c3415a9d0173ded219b5bf1a 100644 GIT binary patch literal 7720 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 diff --git a/bin/application/tableData.class b/bin/application/tableData.class index 00d28978b65a839ca1a80ed9660c5fa7ce999ed9..76223fcb42fec7334c8af58f4614add0084a37eb 100644 GIT binary patch delta 351 zcmW;CIZFdk6o%pN1g?%T$xIXx(pZgSj0S5`O2ELUxcwnRO=VkOkJXh$@qN@&9_e_OuVm$w7`e>Uo>vZ$hU gCpr`zX*EQrqBE^@hpR3`mra?Sm;uRm10aCgfA%zF7XSbN delta 351 zcmW;C%_{_P9LMp`ck9PkyF0TaH6GT}G-(gY931vAT3c#K4vOU9Ksjt_rx0aDk%!3o z7Ui;84<{G2S7(2Ki@!ngP+M+%_t(_t`+ohJvQu_WKSGPShtGZ`=gF>nquQ<38~Xkk zB_f+kVb^KHGTO0*4s4+l`$(XOE?lA;*XY4LdQm|izlYDs<*!H!Uo^Uu)b%Pgper76 z$ nameText = new ArrayList(); + ArrayList responseText = new ArrayList(); + String fontFamily = mainWindowController.fontFamily; + Image im; + int fontSize = (int) Math.round(mainWindowController.size); + int j=2; - mainWindowController.ta1.appendText(mainWindowController.title+": "+rs.getString(2)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.year+": "+ rs.getString(3)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.rating+": "+rs.getString(4)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.publishedOn+": "+rs.getString(5)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.duration+": "+rs.getString(6)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.genre+": "+rs.getString(7)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.director+": "+rs.getString(8)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.writer+": "+rs.getString(9)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.actors+": "+rs.getString(10)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.plot+": "+rs.getString(11)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.language+": "+rs.getString(12)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.country+": "+rs.getString(13)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.awards+": "+rs.getString(14)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.metascore+": "+rs.getString(15)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.imdbRating+": "+rs.getString(16)+"\n"); - mainWindowController.ta1.appendText(mainWindowController.type+": "+rs.getString(19)+"\n"); + nameText.add(0, new Text(mainWindowController.title+": ")); + nameText.add(1, new Text(mainWindowController.year+": ")); + nameText.add(2, new Text(mainWindowController.rating+": ")); + nameText.add(3, new Text(mainWindowController.publishedOn+": ")); + nameText.add(4, new Text(mainWindowController.duration+": ")); + nameText.add(5, new Text(mainWindowController.genre+": ")); + nameText.add(6, new Text(mainWindowController.director+": ")); + nameText.add(7, new Text(mainWindowController.writer+": ")); + nameText.add(8, new Text(mainWindowController.actors+": ")); + nameText.add(9, new Text(mainWindowController.plot+": ")); + nameText.add(10, new Text(mainWindowController.language+": ")); + nameText.add(11, new Text(mainWindowController.country+": ")); + nameText.add(12, new Text(mainWindowController.awards+": ")); + nameText.add(13, new Text(mainWindowController.metascore+": ")); + nameText.add(14, new Text(mainWindowController.imdbRating+": ")); + nameText.add(15, new Text(mainWindowController.type+": ")); + + for(int i=0; i<15; i++){ + responseText.add(new Text(rs.getString(j)+"\n")); + j++; + } + responseText.add(new Text(rs.getString(19)+"\n")); + im = new Image(rs.getString(20)); stmt.close(); rs.close(); + + for(int i=0; i - + @@ -20,9 +20,12 @@ - - - + + + + + + @@ -31,7 +34,7 @@ - + diff --git a/src/application/MainWindowController.java b/src/application/MainWindowController.java index 20581e8..f2f5ec9 100644 --- a/src/application/MainWindowController.java +++ b/src/application/MainWindowController.java @@ -46,7 +46,6 @@ import org.apache.commons.lang3.SystemUtils; import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXColorPicker; import com.jfoenix.controls.JFXSlider; -import com.jfoenix.controls.JFXTextArea; import com.jfoenix.controls.JFXTextField; import com.jfoenix.controls.JFXToggleButton; @@ -103,8 +102,6 @@ public class MainWindowController { @FXML private TableView tableViewStreamingdata; @FXML - JFXTextArea ta1; - @FXML TextFlow textFlow; @FXML ScrollPane scrollPane; @@ -181,7 +178,6 @@ public class MainWindowController { private TableColumn dataNameColumn = new TableColumn<>("Datei Name"); @FXML private TableColumn dataNameEndColumn = new TableColumn<>("Datei Name mit Endung"); - private boolean menutrue = false; //saves the position of menubtn (opened or closed) private boolean settingstrue = false; @@ -189,7 +185,7 @@ public class MainWindowController { static boolean firststart = false; private int hashA = -2055934614; private String version = "0.5.0"; - private String buildNumber = "119"; + private String buildNumber = "121"; private String versionName = "plasma cow"; private String buildURL = "https://raw.githubusercontent.com/Seil0/Project-HomeFlix/master/updates/buildNumber.txt"; private String downloadLink = "https://raw.githubusercontent.com/Seil0/Project-HomeFlix/master/updates/downloadLink.txt"; @@ -220,6 +216,7 @@ public class MainWindowController { @SuppressWarnings("unused") private String ratingSortType; private String local; + String fontFamily = "System"; //TODO -> in mainwindowcontroller machen String title; String year; String rating; @@ -236,7 +233,7 @@ public class MainWindowController { String metascore; String imdbRating; String type; - private double size; + double size; private int last; private int selected; private int next; @@ -540,7 +537,7 @@ public class MainWindowController { treeTableViewfilm.setShowRoot(false); //write content into cell - columnTitel.setCellValueFactory(cellData -> cellData.getValue().getValue().titelProperty()); + columnTitel.setCellValueFactory(cellData -> cellData.getValue().getValue().titleProperty()); columnRating.setCellValueFactory(cellData -> cellData.getValue().getValue().imageProperty()); columnStreamUrl.setCellValueFactory(cellData -> cellData.getValue().getValue().streamUrlProperty()); columnResolution.setCellValueFactory(cellData -> cellData.getValue().getValue().resolutionProperty()); @@ -561,7 +558,6 @@ public class MainWindowController { next = selected + 1; name = columnTitel.getCellData(selected); //get name of selected item datPath = columnStreamUrl.getCellData(selected); //get file path of selected item - ta1.setText(""); //delete text in ta1 if(mode.equals("local")){ if(localFilms.get(selected).getCached()==true){ @@ -571,6 +567,7 @@ public class MainWindowController { ApiQuery.startQuery(name,datPath); // start api query } }else{ + System.out.println(streamingFilms.size()); if(streamingFilms.get(selected).getCached()==true){ System.out.println("loading from cache: "+name); dbController.readCache(datPath); @@ -578,7 +575,6 @@ public class MainWindowController { ApiQuery.startQuery(name,datPath); // start api query } } - ta1.positionCaret(0); //set cursor position in ta1 } }); @@ -586,7 +582,7 @@ public class MainWindowController { treeTableViewfilm.setContextMenu(menu); //Streaming-Settings Table - dataNameColumn.setCellValueFactory(cellData -> cellData.getValue().titelProperty()); + dataNameColumn.setCellValueFactory(cellData -> cellData.getValue().titleProperty()); dataNameEndColumn.setCellValueFactory(cellData -> cellData.getValue().streamUrlProperty()); tableViewStreamingdata.getColumns().addAll(dataNameColumn, dataNameEndColumn); @@ -610,7 +606,7 @@ public class MainWindowController { } for(int i = 0; i < helpData.size(); i++){ - if(helpData.get(i).getTitel().toLowerCase().contains(tfsearch.getText().toLowerCase())){ + if(helpData.get(i).getTitle().toLowerCase().contains(tfsearch.getText().toLowerCase())){ filterData.add(helpData.get(i)); //add data from newDaten to filteredData where title contains search input } } @@ -639,7 +635,12 @@ public class MainWindowController { @Override public void changed(ObservableValue ov,Number old_val, Number new_val) { setSize(sliderFontSize.getValue()); - ta1.setFont(Font.font("System", size)); + + if(name != null){ + dbController.readCache(datPath); + } + +// ta1.setFont(Font.font("System", size)); saveSettings(); } }); @@ -699,6 +700,7 @@ public class MainWindowController { ArrayList fav_false = new ArrayList(); ObservableList helpData; filterData.removeAll(filterData); +// treeTableViewfilm.getSelectionModel().clearSelection(selected); root.getChildren().remove(0,root.getChildren().size()); if(mode.equals("local")){ @@ -761,10 +763,6 @@ public class MainWindowController { }else{ autoupdateBtn.setSelected(false); } - - ta1.setWrapText(true); - ta1.setEditable(false); - ta1.setFont(Font.font("System", getSize())); } private void refreshTable(){ @@ -780,7 +778,7 @@ public class MainWindowController { for(int i = 0; i < localFilms.size(); i++){ root.getChildren().add(new TreeItem(localFilms.get(i))); //add data to root-node } - columnRating.setMaxWidth(90); + columnRating.setMaxWidth(85); columnTitel.setMaxWidth(290); treeTableViewfilm.getColumns().get(3).setVisible(false); treeTableViewfilm.getColumns().get(4).setVisible(false); diff --git a/src/application/apiQuery.java b/src/application/apiQuery.java index 1fc9c6b..69622a5 100644 --- a/src/application/apiQuery.java +++ b/src/application/apiQuery.java @@ -8,20 +8,17 @@ import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; +import java.util.ArrayList; import java.util.Scanner; import com.eclipsesource.json.Json; import com.eclipsesource.json.JsonObject; -import javafx.collections.ObservableList; -import javafx.scene.Node; import javafx.scene.image.Image; -import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.scene.text.Text; -@SuppressWarnings("unused") //TODO public class apiQuery{ public apiQuery(MainWindowController m, DBController db){ @@ -32,8 +29,9 @@ public class apiQuery{ private MainWindowController mainWindowController; private DBController dbController; private Image im; - private int fontSize = 20; - private String fontFamily = "System"; + private String[] responseString = new String[20]; + ArrayList responseText = new ArrayList(); + ArrayList nameText = new ArrayList(); void startQuery(String titel, String streamUrl){ URL url = null; @@ -44,6 +42,11 @@ public class apiQuery{ String retdata = null; InputStream is = null; BufferedReader br = null; + String fontFamily = mainWindowController.fontFamily; + int fontSize = (int) Math.round(mainWindowController.size); + + responseText.removeAll(responseText); + nameText.removeAll(nameText); try { @@ -69,158 +72,93 @@ public class apiQuery{ is = url.openStream(); br = new BufferedReader(new InputStreamReader(is, "UTF-8")); - // lesen der Daten aus dem Antwort Stream + // read data from response Stream while ((retdata = br.readLine()) != null) { - //retdata in json object parsen und anschließend das json Objekt "zerschneiden" + //cut the json response into separate strings System.out.println(retdata); JsonObject object = Json.parse(retdata).asObject(); - String titelV = object.getString("Title", ""); - String yearV = object.getString("Year", ""); - String ratedV = object.getString("Rated", ""); - String releasedV = object.getString("Released", ""); - String runtimeV = object.getString("Runtime", ""); - String genreV = object.getString("Genre", ""); - String directorV = object.getString("Director", ""); - String writerV = object.getString("Writer", ""); - String actorsV = object.getString("Actors", ""); - String plotV = object.getString("Plot", ""); - String languageV = object.getString("Language", ""); - String countryV = object.getString("Country", ""); - String awardsV = object.getString("Awards", ""); - - String metascoreV = object.getString("Metascore", ""); - String imdbRatingV = object.getString("imdbRating", ""); - String imdbVotesV = object.getString("imdbVotes", ""); - String imdbIDV = object.getString("imdbID", ""); - String typeV = object.getString("Type", ""); - String posterURL = object.getString("Poster", ""); - String response = object.getString("Response", ""); + responseString[0] = object.getString("Title", ""); + responseString[1] = object.getString("Year", ""); + responseString[2] = object.getString("Rated", ""); + responseString[3] = object.getString("Released", ""); + responseString[4] = object.getString("Runtime", ""); + responseString[5] = object.getString("Genre", ""); + responseString[6] = object.getString("Director", ""); + responseString[7] = object.getString("Writer", ""); + responseString[8] = object.getString("Actors", ""); + responseString[9] = object.getString("Plot", ""); + responseString[10] = object.getString("Language", ""); + responseString[11] = object.getString("Country", ""); + responseString[12] = object.getString("Awards", ""); + responseString[13] = object.getString("Metascore", ""); + responseString[14] = object.getString("imdbRating", ""); + responseString[15] = object.getString("Type", ""); + responseString[16] = object.getString("imdbVotes", ""); + responseString[17] = object.getString("imdbID", ""); + responseString[18] = object.getString("Poster", ""); + responseString[19] = object.getString("Response", ""); - dbController.addCache( streamUrl, titelV, yearV, ratedV, releasedV, runtimeV, genreV, directorV, writerV, actorsV, plotV, languageV, countryV, - awardsV, metascoreV, imdbRatingV, imdbVotesV, imdbIDV, typeV, posterURL, response); + //adding strings to the cache + dbController.addCache( streamUrl, responseString[0], responseString[1],responseString[2], responseString[3], responseString[4], responseString[5], + responseString[6], responseString[7], responseString[8], responseString[9], responseString[10],responseString[11], responseString[12], + responseString[13], responseString[14], responseString[15], responseString[16], responseString[17], responseString[18], + responseString[19]); dbController.setCached(streamUrl); - -// Text titelR = new Text (object.getString("Title", "")+"\n"); -// titelR.setFont(Font.font (fontFamily, fontSize)); -// Text yearR = new Text (object.getString("Year", "")+"\n"); -// yearR.setFont(Font.font (fontFamily, fontSize)); -// Text ratedR = new Text (object.getString("Rated", "")+"\n"); -// ratedR.setFont(Font.font (fontFamily, fontSize)); -// Text releasedR = new Text (object.getString("Released", "")+"\n"); -// releasedR.setFont(Font.font (fontFamily, fontSize)); -// Text runtimeR = new Text (object.getString("Runtime", "")+"\n"); -// runtimeR.setFont(Font.font (fontFamily, fontSize)); -// Text genreR = new Text (object.getString("Genre", "")); -// genreR.setFont(Font.font (fontFamily, fontSize)); -// Text directorR = new Text (object.getString("Director", "")+"\n"); -// directorR.setFont(Font.font (fontFamily, fontSize)); -// Text writerR = new Text (object.getString("Writer", "")+"\n"); -// writerR.setFont(Font.font (fontFamily, fontSize)); -// Text actorsR = new Text (object.getString("Actors", "")+"\n"); -// actorsR.setFont(Font.font (fontFamily, fontSize)); -// Text plotR = new Text (object.getString("Plot", "")+"\n"); -// plotR.setFont(Font.font (fontFamily, fontSize)); -// Text languageR = new Text (object.getString("Language", "")+"\n"); -// languageR.setFont(Font.font (fontFamily, fontSize)); -// Text countryR = new Text (object.getString("Country", "")+"\n"); -// countryR.setFont(Font.font (fontFamily, fontSize)); -// Text awardsR = new Text (object.getString("Awards", "")+"\n"); -// awardsR.setFont(Font.font (fontFamily, fontSize)); -// Text metascoreR = new Text (object.getString("Metascore", "")+"\n"); -// metascoreR.setFont(Font.font (fontFamily, fontSize)); -// Text imdbRatingR = new Text (object.getString("imdbRating", "")+"\n"); -// imdbRatingR.setFont(Font.font (fontFamily, fontSize)); -// @SuppressWarnings("unused") -// Text imdbVotesR = new Text (object.getString("imdbVotes", "")+"\n"); -// imdbVotesR.setFont(Font.font (fontFamily, fontSize)); -// @SuppressWarnings("unused") -// Text imdbIDR = new Text (object.getString("imdbID", "")+"\n"); -// imdbIDR.setFont(Font.font (fontFamily, fontSize)); -// Text typeR = new Text (object.getString("Type", "")+"\n"); -// typeR.setFont(Font.font (fontFamily, fontSize)); + for(int i=0; i<20; i++){ + Text text = new Text(responseString[i]+"\n"); + responseText.add(text); + responseText.get(i).setFont(Font.font(fontFamily, fontSize)); + } - - if(response.equals("False")){ - mainWindowController.ta1.appendText(mainWindowController.noFilmFound); + //if response == false then show mainWindowController.noFilmFound else create new Texts and add them to flowText + if(responseString[19].equals("False")){ + mainWindowController.textFlow.getChildren().add(new Text(mainWindowController.noFilmFound)); im = new Image("recources/icons/close_black_2048x2048.png"); mainWindowController.image1.setImage(im); }else{ - //ausgabe des Textes in ta1 in jeweils neuer Zeile - mainWindowController.ta1.appendText(mainWindowController.title+": "+titelV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.year+": "+ yearV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.rating+": "+ratedV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.publishedOn+": "+releasedV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.duration+": "+runtimeV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.genre+": "+genreV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.director+": "+directorV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.writer+": "+writerV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.actors+": "+actorsV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.plot+": "+plotV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.language+": "+languageV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.country+": "+countryV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.awards+": "+awardsV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.metascore+": "+metascoreV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.imdbRating+": "+imdbRatingV+"\n"); - mainWindowController.ta1.appendText(mainWindowController.type+": "+typeV+"\n"); + // + nameText.add(0, new Text(mainWindowController.title+": ")); + nameText.add(1, new Text(mainWindowController.year+": ")); + nameText.add(2, new Text(mainWindowController.rating+": ")); + nameText.add(3, new Text(mainWindowController.publishedOn+": ")); + nameText.add(4, new Text(mainWindowController.duration+": ")); + nameText.add(5, new Text(mainWindowController.genre+": ")); + nameText.add(6, new Text(mainWindowController.director+": ")); + nameText.add(7, new Text(mainWindowController.writer+": ")); + nameText.add(8, new Text(mainWindowController.actors+": ")); + nameText.add(9, new Text(mainWindowController.plot+": ")); + nameText.add(10, new Text(mainWindowController.language+": ")); + nameText.add(11, new Text(mainWindowController.country+": ")); + nameText.add(12, new Text(mainWindowController.awards+": ")); + nameText.add(13, new Text(mainWindowController.metascore+": ")); + nameText.add(14, new Text(mainWindowController.imdbRating+": ")); + nameText.add(15, new Text(mainWindowController.type+": ")); + + + for(int i=0; i list = mainWindowController.textFlow.getChildren(); -// -// list.addAll(title,titelR,year,yearR,rating,ratedR, -// publishedOn,releasedR,duration,runtimeR,genre,genreR,director,directorR,writer,writerR, -// actors,actorsR,plot,plotR,language,languageR,country,countryR,awards,awardsR,metascore, -// metascoreR,imdbRating,imdbRatingR,type,typeR); -// - - if(posterURL.equals("N/A")){ + for(int i=0;i image = new SimpleObjectProperty<>(); private final BooleanProperty cached = new SimpleBooleanProperty(); - //tableData is the data-type of tree-table-view - public tableData (final int year, final int season, final int episode, final double rating, final String resolution, final String titel, final String streamUrl, final ImageView image, final boolean cached) { + /** + * tableData is the data-type of tree-table-view + * @param year: the release year of the film + * @param season: season if it's a series + * @param episode: episode if it's a series + * @param rating: indicator for favourites, used for sorting the items + * @param resolution: resolution of the film + * @param titel: title of the film + * @param streamUrl: the concrete path to the file or the URL + * @param image: the favourite icon + * @param cached: indicator for caching status + */ + public tableData (final int year, final int season, final int episode, final double rating, final String resolution, final String title, final String streamUrl, final ImageView image, final boolean cached) { this.year.set(year); this.season.set(season); this.episode.set(episode); this.rating.set(rating); this.resolution.set(resolution); - this.titel.set(titel); + this.title.set(title); this.streamUrl.set(streamUrl); this.image.set(image); this.cached.set(cached); @@ -55,8 +66,8 @@ public class tableData { return resolution; } - public StringProperty titelProperty(){ - return titel; + public StringProperty titleProperty(){ + return title; } public StringProperty streamUrlProperty(){ @@ -92,8 +103,8 @@ public class tableData { return resolutionProperty().get(); } - public final String getTitel() { - return titelProperty().get(); + public final String getTitle() { + return titleProperty().get(); } public final String getStreamUrl() { @@ -129,8 +140,8 @@ public class tableData { resolutionProperty().set(resolution); } - public final void setTitel(String titel) { - titelProperty().set(titel); + public final void setTitle(String title) { + titleProperty().set(title); } public final void setStreamUrl(String streamUrl) {