From e6a0b9a8a39dea70fa8b9713f76cdcae771cd884 Mon Sep 17 00:00:00 2001 From: Herwig Birke Date: Wed, 4 Nov 2020 16:30:07 +0100 Subject: [PATCH] initial commit --- multimedia.iml | 41 +++ .../at/windesign/application/serie/serie.java | 44 ++- .../serie/serieDetailsForwardComposer.java | 260 +++++++++++++--- .../serie/serieListForwardComposer.java | 2 + .../serie/serieListSelectorComposer.java | 1 + .../testing/testForwardComposer.java | 286 ++++++++++++++++++ src/main/webapp/serie/detailsSerie.zul | 58 ++-- src/main/webapp/testing/test.zul | 92 ++++++ .../windesign/application/serie/serie.class | Bin 5831 -> 6134 bytes .../serie/serieDetailsForwardComposer.class | Bin 4196 -> 9091 bytes .../serie/serieListForwardComposer.class | Bin 7114 -> 7217 bytes .../serie/serieListSelectorComposer.class | Bin 1794 -> 1794 bytes 12 files changed, 703 insertions(+), 81 deletions(-) create mode 100644 multimedia.iml create mode 100644 src/main/java/at/windesign/application/testing/testForwardComposer.java create mode 100644 src/main/webapp/testing/test.zul 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 - - + + +
+
- + +