diff --git a/multimedia.iml b/multimedia.iml new file mode 100644 index 0000000..43e8c7e --- /dev/null +++ b/multimedia.iml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/at/windesign/application/serie/serie.java b/src/main/java/at/windesign/application/serie/serie.java index b71ec57..630cf39 100644 --- a/src/main/java/at/windesign/application/serie/serie.java +++ b/src/main/java/at/windesign/application/serie/serie.java @@ -13,6 +13,7 @@ class serie private boolean m_seriesCliffhanger; private String m_seriesStatus; private String m_seriesDownload; + private String m_seriesLocalPath; private String m_seriesPoster; private String m_seriesBackdrop; private String m_seriesOverview; @@ -27,24 +28,25 @@ class serie { } - public serie(int seriesID, String seriesName, int seriesFirstAired, String seriesResolution, boolean seriesCliffhanger, String seriesStatus, String seriesDownload, String seriesPoster, String seriesBackdrop, String seriesOverview, SortedMap episodeState, int minSeason, int maxSeason, int stateInit, int stateProg, int stateDone) + public serie(int seriesID, String seriesName, int seriesFirstAired, String seriesResolution, boolean seriesCliffhanger, String seriesStatus, String seriesDownload, String localPath, String seriesPoster, String seriesBackdrop, String seriesOverview, SortedMap episodeState, int minSeason, int maxSeason, int stateInit, int stateProg, int stateDone) { - m_seriesID = seriesID; - m_seriesName = seriesName; - m_seriesFirstAired = seriesFirstAired; - m_seriesResolution = seriesResolution; + m_seriesID = seriesID; + m_seriesName = seriesName; + m_seriesFirstAired = seriesFirstAired; + m_seriesResolution = seriesResolution; m_seriesCliffhanger = seriesCliffhanger; - m_seriesStatus = seriesStatus; - m_seriesDownload = seriesDownload; - m_seriesPoster = seriesPoster; - m_seriesBackdrop = seriesBackdrop; - m_seriesOverview = seriesOverview; - m_episodeState = episodeState; - m_minSeason = minSeason; - m_maxSeason = maxSeason; - m_stateInit = stateInit; - m_stateProg = stateProg; - m_stateDone = stateDone; + m_seriesStatus = seriesStatus; + m_seriesDownload = seriesDownload; + m_seriesLocalPath = localPath; + m_seriesPoster = seriesPoster; + m_seriesBackdrop = seriesBackdrop; + m_seriesOverview = seriesOverview; + m_episodeState = episodeState; + m_minSeason = minSeason; + m_maxSeason = maxSeason; + m_stateInit = stateInit; + m_stateProg = stateProg; + m_stateDone = stateDone; } public int getSeriesID() @@ -117,6 +119,16 @@ class serie m_seriesDownload = seriesDownload; } + public String getSeriesLocalPath() + { + return m_seriesLocalPath; + } + + public void setSeriesLocalPath(String seriesLocalPath) + { + m_seriesLocalPath = seriesLocalPath; + } + public String getSeriesPoster() { return m_seriesPoster; diff --git a/src/main/java/at/windesign/application/serie/serieDetailsForwardComposer.java b/src/main/java/at/windesign/application/serie/serieDetailsForwardComposer.java index 97a6ba6..d5538d5 100644 --- a/src/main/java/at/windesign/application/serie/serieDetailsForwardComposer.java +++ b/src/main/java/at/windesign/application/serie/serieDetailsForwardComposer.java @@ -4,22 +4,33 @@ import org.zkoss.image.AImage; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zk.ui.util.GenericForwardComposer; -import org.zkoss.zul.Label; -import org.zkoss.zul.Textbox; -import org.zkoss.zul.Window; +import org.zkoss.zul.*; import java.net.URL; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.SortedMap; +import java.util.TreeMap; public class serieDetailsForwardComposer extends GenericForwardComposer { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; + private final serieDataSource ds = serieDataSource.INSTANCE; + private int opacity = 70; @Wire private Window detailsSerie; + @Wire + protected Groupbox overview; + @Wire protected Label overviewLabel; + @Wire + protected Groupbox settings; + @Wire protected Textbox downloadLink; @@ -27,7 +38,22 @@ public class serieDetailsForwardComposer extends GenericForwardComposer state) + { + int maxEpisode = 0; + String styleString = "display: grid; " + + "grid-template-columns: 4fr "; + + Groupbox groupbox = new Groupbox(); + groupbox.setId("groupboxSeason" + season); + + Caption caption = new Caption(); + caption.setLabel("Season " + season); + groupbox.insertBefore(caption, null); + + for(int key : state.keySet()) + { + int _season = key >> 8; + int _episode = key & 0xFF; + + if(_season == season) + { + Radiogroup radiogroup = new Radiogroup(); + radiogroup.setName("radiogroupSeason" + _season + "_" + _episode); + radiogroup.setId("radiogroupSeason" + _season + "_" + _episode); + groupbox.insertBefore(radiogroup, null); + + maxEpisode = _episode; + } + else if(_season > season) + break; + } + + NoDOM nodom = new NoDOM(); + groupbox.insertBefore(nodom, null); + + Div div = new Div(); + //div.setWidth("100%"); + nodom.insertBefore(div, null); + + Label dummy = new Label(); + div.insertBefore(dummy, null); + + for(int key : state.keySet()) + { + int _season = key >> 8; + int _episode = key & 0xFF; + + if(_season == season) + { + Label episodeLabel = new Label(); + episodeLabel.setValue("" + _episode); + div.insertBefore(episodeLabel, null); + } + else if(_season > season) + break; + } + + Button buttonInit = new Button(); + buttonInit.setLabel("init"); + buttonInit.setId("buttonInit" + season); + div.insertBefore(buttonInit, null); + + for(int key : state.keySet()) + { + int _season = key >> 8; + int _episode = key & 0xFF; + + if(_season == season) + { + Radio radio = new Radio(); + radio.setId("init" + _season + "_" + _episode); + radio.setRadiogroup("radiogroupSeason" + _season + "_" + _episode); + div.insertBefore(radio, null); + } + else if(_season > season) + break; + } + + Button buttonProg = new Button(); + buttonProg.setLabel("prog"); + buttonProg.setId("buttonProg" + season); + div.insertBefore(buttonProg, null); + + for(int key : state.keySet()) + { + int _season = key >> 8; + int _episode = key & 0xFF; + + if(_season == season) + { + Radio radio = new Radio(); + radio.setId("prog" + _season + "_" + _episode); + radio.setRadiogroup("radiogroupSeason" + _season + "_" + _episode); + div.insertBefore(radio, null); + } + else if(_season > season) + break; + } + + Button buttonDone = new Button(); + buttonDone.setLabel("done"); + buttonDone.setId("buttonDone" + season); + div.insertBefore(buttonDone, null); + + for(int key : state.keySet()) + { + int _season = key >> 8; + int _episode = key & 0xFF; + + if(_season == season) + { + Radio radio = new Radio(); + radio.setId("done" + _season + "_" + _episode); + radio.setRadiogroup("radiogroupSeason" + _season + "_" + _episode); + div.insertBefore(radio, null); + } + else if(_season > season) + break; + } + + for(int i = 0;i < maxEpisode;i++) + { + styleString = styleString + "2fr "; + } + styleString = styleString + "; grid-gap: 10px; justify-items: center;"; + div.setStyle(styleString); + + detailsSerie.insertBefore(groupbox, buttons); + } } diff --git a/src/main/java/at/windesign/application/serie/serieListForwardComposer.java b/src/main/java/at/windesign/application/serie/serieListForwardComposer.java index 839bca0..28f7e04 100644 --- a/src/main/java/at/windesign/application/serie/serieListForwardComposer.java +++ b/src/main/java/at/windesign/application/serie/serieListForwardComposer.java @@ -94,6 +94,7 @@ public class serieListForwardComposer extends GenericForwardComposer " serie.cliffhanger seriesCliffhanger," + " serie.status seriesStatus," + " serie.download seriesDownload," + + " serie.localPath seriesLocalPath," + " serie.posterPath seriesPoster," + " serie.backdropPath seriesBackdrop," + " serie.overview seriesOverview," + @@ -151,6 +152,7 @@ public class serieListForwardComposer extends GenericForwardComposer serie.setSeriesCliffhanger(rs.getBoolean("seriesCliffhanger")); serie.setSeriesStatus(rs.getString("seriesStatus")); serie.setSeriesDownload(rs.getString("seriesDownload")); + serie.setSeriesLocalPath(rs.getString("seriesLocalPath")); serie.setSeriesPoster(rs.getString("seriesPoster")); serie.setSeriesBackdrop(rs.getString("seriesBackdrop")); serie.setSeriesOverview(rs.getString("seriesOverview")); diff --git a/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java b/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java index f9d60f6..3ca2075 100644 --- a/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java +++ b/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java @@ -32,6 +32,7 @@ public class serieListSelectorComposer extends SelectorComposer arguments.put("serie", s); String template = "/serie/detailsSerie.zul"; +// String template = "/testing/test.zul"; Window window = (Window) Executions.createComponents(template, null, arguments); window.doModal(); diff --git a/src/main/java/at/windesign/application/testing/testForwardComposer.java b/src/main/java/at/windesign/application/testing/testForwardComposer.java new file mode 100644 index 0000000..242cc67 --- /dev/null +++ b/src/main/java/at/windesign/application/testing/testForwardComposer.java @@ -0,0 +1,286 @@ +package at.windesign.application.testing; + +import at.windesign.application.serie.serieDataSource; +import org.zkoss.idom.Text; +import org.zkoss.image.AImage; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.select.annotation.Wire; +import org.zkoss.zk.ui.util.GenericForwardComposer; +import org.zkoss.zul.*; + +import java.net.URL; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.SortedMap; + +public class testForwardComposer extends GenericForwardComposer +{ + private static final long serialVersionUID = 1L; + private final serieDataSource ds = serieDataSource.INSTANCE; + private int opacity = 70; + + @Wire + private Window test; + + @Wire + protected Groupbox overview; + + @Wire + protected Label overviewLabel; + + @Wire + protected Groupbox settings; + + @Wire + protected Textbox downloadLink; + + @Wire + protected Textbox localPath; + + @Wire + protected Combobox resolution; + + @Wire + protected Checkbox cliffhanger; + + @Wire + protected Hbox buttons; + + @Wire + protected Button saveButton; + + @Wire + protected Button cancelButton; + + @Wire + protected Button deleteButton; + +// private serie m_serie; + + @Override + public void doAfterCompose(Component comp) throws Exception + { + super.doAfterCompose(comp); + +// overview.setStyle("opacity: " + opacity + "%"); +// settings.setStyle("opacity: " + opacity + "%"); +// +// try +// { + int hD = (int) self.getDesktop().getAttribute("desktopHeight"); + int wD = (int) self.getDesktop().getAttribute("desktopWidth"); + + hD = 500; + test.setWidth(wD - 10 + "px"); + test.setHeight(hD - 10 + "px"); + +// +// if(arg.containsKey("serie")) +// m_serie = (serie) arg.get("serie"); +// else +// detailsSerie.detach(); +// +// if(m_serie.getSeriesBackdrop() != null) +// { +// String uri = "http://image.tmdb.org/t/p/original" + m_serie.getSeriesBackdrop(); +// URL url = new URL(uri); +// AImage img = new AImage(url); +// +// int w = Integer.parseInt(detailsSerie.getWidth().replace("px", "")); +// int h = Integer.parseInt(detailsSerie.getHeight().replace("px", "")); +// int wI = img.getWidth(); +// int hI = img.getHeight(); +// int wR = w; +// int hR = hI * w / wI; +// +// if(hR < h) +// { +// hR = h; +// wR = wI * h / hI; +// } +// +// String size = String.valueOf(wR) + "px " + String.valueOf(hR) + "px"; +// String format = "background:url('%1$s') no-repeat center center fixed; -webkit-background-size: " + size + "; -moz-background-size: \" + size + \"; -o-background-size: \" + size + \"; background-size: \" + size + \";"; +// String style = String.format(format, uri); +// detailsSerie.setContentStyle(style); +// } +// +// try +// { +// Statement stmt = ds.getStatement(); +// ResultSet rs = stmt.executeQuery( +// "SELECT resolution" + +// " FROM resolution" + +// " ORDER BY sort;" +// ); +// +// while(rs.next()) +// { +// resolution.appendItem(rs.getString("resolution")); +// } +// } +// catch(SQLException e) +// { +// e.printStackTrace(); +// } +// finally +// { +// ds.close(); +// } +// +// detailsSerie.setTitle(m_serie.getSeriesName() + " (" + m_serie.getSeriesFirstAired() + ")"); +// overviewLabel.setValue(m_serie.getSeriesOverview()); +// downloadLink.setValue(m_serie.getSeriesDownload()); +// localPath.setValue(m_serie.getSeriesLocalPath()); +// resolution.setValue(m_serie.getSeriesResolution()); +// cliffhanger.setChecked(m_serie.getSeriesCliffhanger()); +// } +// catch(Exception e) +// { +// e.printStackTrace(); +// test.detach(); +// } +// finally +// { +// } +// +// +// for(int i = m_serie.getMinSeason(); i <= m_serie.getMaxSeason(); i++) +// { +// if(i < 1) +// continue; +// +// addSeasonPanel(i, m_serie.getEpisodeState()); +// } + } + + protected void addSeasonPanel(int season, SortedMap state) + { + int maxEpisode = 0; + String styleString = "display: grid; " + + "grid-template-columns: 4fr "; + + Groupbox groupbox = new Groupbox(); + groupbox.setId("groupboxSeason" + season); + + Caption caption = new Caption(); + caption.setLabel("Season " + season); + groupbox.insertBefore(caption, null); + + for(int key : state.keySet()) + { + int _season = key >> 8; + int _episode = key & 0xFF; + + if(_season == season) + { + Radiogroup radiogroup = new Radiogroup(); + radiogroup.setName("radiogroupSeason" + _season + "_" + _episode); + radiogroup.setId("radiogroupSeason" + _season + "_" + _episode); + groupbox.insertBefore(radiogroup, null); + + maxEpisode = _episode; + } + else if(_season > season) + break; + } + + NoDOM nodom = new NoDOM(); + groupbox.insertBefore(nodom, null); + + Div div = new Div(); + //div.setWidth("100%"); + nodom.insertBefore(div, null); + + Label dummy = new Label(); + div.insertBefore(dummy, null); + + for(int key : state.keySet()) + { + int _season = key >> 8; + int _episode = key & 0xFF; + + if(_season == season) + { + Label episodeLabel = new Label(); + episodeLabel.setValue("" + _episode); + div.insertBefore(episodeLabel, null); + } + else if(_season > season) + break; + } + + Button buttonInit = new Button(); + buttonInit.setLabel("init"); + buttonInit.setId("buttonInit" + season); + div.insertBefore(buttonInit, null); + + for(int key : state.keySet()) + { + int _season = key >> 8; + int _episode = key & 0xFF; + + if(_season == season) + { + Radio radio = new Radio(); + radio.setId("init" + _season + "_" + _episode); + radio.setRadiogroup("radiogroupSeason" + _season + "_" + _episode); + div.insertBefore(radio, null); + } + else if(_season > season) + break; + } + + Button buttonProg = new Button(); + buttonProg.setLabel("prog"); + buttonProg.setId("buttonProg" + season); + div.insertBefore(buttonProg, null); + + for(int key : state.keySet()) + { + int _season = key >> 8; + int _episode = key & 0xFF; + + if(_season == season) + { + Radio radio = new Radio(); + radio.setId("prog" + _season + "_" + _episode); + radio.setRadiogroup("radiogroupSeason" + _season + "_" + _episode); + div.insertBefore(radio, null); + } + else if(_season > season) + break; + } + + Button buttonDone = new Button(); + buttonDone.setLabel("done"); + buttonDone.setId("buttonDone" + season); + div.insertBefore(buttonDone, null); + + for(int key : state.keySet()) + { + int _season = key >> 8; + int _episode = key & 0xFF; + + if(_season == season) + { + Radio radio = new Radio(); + radio.setId("done" + _season + "_" + _episode); + radio.setRadiogroup("radiogroupSeason" + _season + "_" + _episode); + div.insertBefore(radio, null); + } + else if(_season > season) + break; + } + + for(int i = 0;i < maxEpisode;i++) + { + styleString = styleString + "2fr "; + } + styleString = styleString + "; grid-gap: 10px; justify-items: center;"; + div.setStyle(styleString); + +// detailsSerie.insertBefore(groupbox, buttons); + } +} diff --git a/src/main/webapp/serie/detailsSerie.zul b/src/main/webapp/serie/detailsSerie.zul index 2f8f522..83aec49 100644 --- a/src/main/webapp/serie/detailsSerie.zul +++ b/src/main/webapp/serie/detailsSerie.zul @@ -1,39 +1,59 @@ + apply="at.windesign.application.serie.serieDetailsForwardComposer, at.windesign.application.serie.serieDetailsSelectorComposer" + width="500px" + height="500px" +> + + + Overview + Settings - - + + + - - - - - - - - - + + + + + + + - + + - + \ No newline at end of file diff --git a/src/main/webapp/testing/test.zul b/src/main/webapp/testing/test.zul new file mode 100644 index 0000000..2397364 --- /dev/null +++ b/src/main/webapp/testing/test.zul @@ -0,0 +1,92 @@ + + + + + + Overview + + + + + Settings + + + + + + + + + + + + + + + + + Test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/at/windesign/application/serie/serie.class b/target/classes/at/windesign/application/serie/serie.class index da47eb5..bb62f53 100644 Binary files a/target/classes/at/windesign/application/serie/serie.class and b/target/classes/at/windesign/application/serie/serie.class differ diff --git a/target/classes/at/windesign/application/serie/serieDetailsForwardComposer.class b/target/classes/at/windesign/application/serie/serieDetailsForwardComposer.class index 900e91d..1fb7ca4 100644 Binary files a/target/classes/at/windesign/application/serie/serieDetailsForwardComposer.class and b/target/classes/at/windesign/application/serie/serieDetailsForwardComposer.class differ diff --git a/target/classes/at/windesign/application/serie/serieListForwardComposer.class b/target/classes/at/windesign/application/serie/serieListForwardComposer.class index 6839589..6247fbe 100644 Binary files a/target/classes/at/windesign/application/serie/serieListForwardComposer.class and b/target/classes/at/windesign/application/serie/serieListForwardComposer.class differ diff --git a/target/classes/at/windesign/application/serie/serieListSelectorComposer.class b/target/classes/at/windesign/application/serie/serieListSelectorComposer.class index 152651c..9bb699a 100644 Binary files a/target/classes/at/windesign/application/serie/serieListSelectorComposer.class and b/target/classes/at/windesign/application/serie/serieListSelectorComposer.class differ