diff --git a/src/main/java/at/windesign/application/movie/movieData.java b/src/main/java/at/windesign/application/movie/movieData.java index a28cf82..c5bc87a 100644 --- a/src/main/java/at/windesign/application/movie/movieData.java +++ b/src/main/java/at/windesign/application/movie/movieData.java @@ -459,6 +459,27 @@ public class movieData return true; } + public boolean delete() + { + try + { + Connection conn = ds.getConnection(); + Statement stmt = conn.createStatement(); + stmt.execute("DELETE FROM movie WHERE movieID=" + m_movieID + ";"); + } + catch(SQLException e) + { + e.printStackTrace(); + return false; + } + finally + { + ds.close(); + } + + return true; + } + String personListToString(List personList) { String str = ""; diff --git a/src/main/java/at/windesign/application/movie/movieDetailsSelectorComposer.java b/src/main/java/at/windesign/application/movie/movieDetailsSelectorComposer.java index d0d966c..1176d79 100644 --- a/src/main/java/at/windesign/application/movie/movieDetailsSelectorComposer.java +++ b/src/main/java/at/windesign/application/movie/movieDetailsSelectorComposer.java @@ -84,21 +84,31 @@ public class movieDetailsSelectorComposer extends SelectorComposer { movieData movie = (movieData) detailsMovie.getAttribute("movie"); - Messagebox.show("Are you sure to delete \"" + movie.getMovieTitle() + "\"?", "Confirm Dialog", Messagebox.YES | Messagebox.NO, Messagebox.QUESTION, new org.zkoss.zk.ui.event.EventListener() - { - public void onEvent(Event evt) throws InterruptedException - { - if(evt.getName().equals("onYES")) - { -// alert("Data Saved!"); - detailsMovie.onClose(); - } - else - { - detailsMovie.onClose(); - } - } - }); + Messagebox.show("Are you sure to delete \"" + movie.getMovieTitle() + "\"?", + "Question", Messagebox.OK | Messagebox.CANCEL, + Messagebox.QUESTION, + new org.zkoss.zk.ui.event.EventListener() + { + public void onEvent(Event e) + { + if("onOK".equals(e.getName())) + { + movie.delete(); + Listitem item = (Listitem) detailsMovie.getAttribute("item"); + Listbox movieList = item.getListbox(); + movieList.removeItemAt(item.getIndex()); + + detailsMovie.onClose(); + } + else if("onCancel".equals(e.getName())) + { + detailsMovie.onClose(); + } + } + } + ); + + detailsMovie.onClose(); } private movieData getCurrentValues() @@ -107,7 +117,7 @@ public class movieDetailsSelectorComposer extends SelectorComposer movie.setLocalPath(localPath.getValue()); movie.setResolution(resolution.getValue()); - movie.setState(progress.getSelectedIndex()+1); + movie.setState(progress.getSelectedIndex() + 1); return movie; } diff --git a/src/main/java/at/windesign/application/movie/movieListSelectorComposer.java b/src/main/java/at/windesign/application/movie/movieListSelectorComposer.java index b6e4608..cd74a2c 100644 --- a/src/main/java/at/windesign/application/movie/movieListSelectorComposer.java +++ b/src/main/java/at/windesign/application/movie/movieListSelectorComposer.java @@ -2,12 +2,14 @@ package at.windesign.application.movie; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.MouseEvent; import org.zkoss.zk.ui.select.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Listen; import org.zkoss.zk.ui.select.annotation.Wire; -import org.zkoss.zul.Listbox; -import org.zkoss.zul.Listitem; -import org.zkoss.zul.Window; +import org.zkoss.zk.ui.util.Clients; +import org.zkoss.zul.*; +import org.zkoss.zul.impl.LabelElement; import java.util.HashMap; import java.util.Map; @@ -63,4 +65,96 @@ public class movieListSelectorComposer extends SelectorComposer window.doModal(); } + + @Listen("onClick = menuitem") + public void onMoviePopup(MouseEvent event) + { + String label = ((LabelElement)event.getTarget()).getLabel(); + + if(label.compareToIgnoreCase("set Init") == 0) + setState(1); + else if(label.compareToIgnoreCase("set Progress") == 0) + setState(2); + else if(label.compareToIgnoreCase("set Done") == 0) + setState(3); + else if(label.compareToIgnoreCase("update") == 0) + updateMovie(); + else if(label.compareToIgnoreCase("delete") == 0) + deleteMovie(); + } + + public void setState(int state) + { + Listitem item = movieList.getSelectedItem(); + + if(item == null) + return; + + movieData m = (movieData) item.getValue(); + m.setState(state); + m.save(); + + ListModelList model = m.getModel(); + int index = item.getIndex(); + model.remove(index); + model.add(index, m); + } + + public void updateMovie() + { + Listitem item = movieList.getSelectedItem(); + + if(item == null) + return; + + movieData m = (movieData) item.getValue(); + movieData mNew = new movieData(); + + try + { + mNew.fromTMDB(m.getMovieID()); + mNew.copyFrom(m); + mNew.save(); + + ListModelList model = m.getModel(); + int index = item.getIndex(); + + mNew.setModel(model); + model.remove(index); + model.add(index, mNew); + } + catch(Exception e) + { + } + } + + public void deleteMovie() + { + Listitem item = movieList.getSelectedItem(); + + if(item == null) + return; + + movieData m = (movieData) item.getValue(); + + Messagebox.show("Are you sure to delete \"" + m.getMovieTitle() + "\"?", + "Question", Messagebox.OK | Messagebox.CANCEL, + Messagebox.QUESTION, + new org.zkoss.zk.ui.event.EventListener() + { + public void onEvent(Event e) + { + if("onOK".equals(e.getName())) + { + m.delete(); + movieList.removeItemAt(item.getIndex()); + } + else if("onCancel".equals(e.getName())) + { + return; + } + } + } + ); + } } diff --git a/src/main/java/at/windesign/application/serie/serieData.java b/src/main/java/at/windesign/application/serie/serieData.java index a076a38..295b3d0 100644 --- a/src/main/java/at/windesign/application/serie/serieData.java +++ b/src/main/java/at/windesign/application/serie/serieData.java @@ -672,6 +672,29 @@ class serieData return true; } + public boolean delete() + { + try + { + Connection conn = ds.getConnection(); + Statement stmt = conn.createStatement(); + stmt.execute("DELETE FROM serie WHERE seriesID=" + m_seriesID + ";"); + stmt.execute("DELETE FROM season WHERE seriesID=" + m_seriesID + ";"); + stmt.execute("DELETE FROM episode WHERE seriesID=" + m_seriesID + ";"); + } + catch(SQLException e) + { + e.printStackTrace(); + return false; + } + finally + { + ds.close(); + } + + return true; + } + String personListToString(List personList) { String str = ""; diff --git a/src/main/java/at/windesign/application/serie/serieDetailsSelectorComposer.java b/src/main/java/at/windesign/application/serie/serieDetailsSelectorComposer.java index 83adb66..ae9ed6c 100644 --- a/src/main/java/at/windesign/application/serie/serieDetailsSelectorComposer.java +++ b/src/main/java/at/windesign/application/serie/serieDetailsSelectorComposer.java @@ -93,21 +93,29 @@ public class serieDetailsSelectorComposer extends SelectorComposer { serieData serie = (serieData) detailsSerie.getAttribute("serie"); - Messagebox.show("Are you sure to delete \"" + serie.getSeriesName() + "\"?", "Confirm Dialog", Messagebox.YES | Messagebox.NO, Messagebox.QUESTION, new org.zkoss.zk.ui.event.EventListener() - { - public void onEvent(Event evt) throws InterruptedException - { - if(evt.getName().equals("onYES")) - { - alert("Data Saved!"); - detailsSerie.onClose(); - } - else - { - detailsSerie.onClose(); - } - } - }); + Messagebox.show("Are you sure to delete \"" + serie.getSeriesName() + "\"?", + "Question", Messagebox.OK | Messagebox.CANCEL, + Messagebox.QUESTION, + new org.zkoss.zk.ui.event.EventListener() + { + public void onEvent(Event e) + { + if("onOK".equals(e.getName())) + { + serie.delete(); + Listitem item = (Listitem) detailsSerie.getAttribute("item"); + Listbox serieList = item.getListbox(); + serieList.removeItemAt(item.getIndex()); + + detailsSerie.onClose(); + } + else if("onCancel".equals(e.getName())) + { + detailsSerie.onClose(); + } + } + } + ); } private serieData getCurrentValues() diff --git a/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java b/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java index 07e5397..013a205 100644 --- a/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java +++ b/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java @@ -1,15 +1,20 @@ package at.windesign.application.serie; +import at.windesign.application.movie.movieData; import org.zkoss.zhtml.Li; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.MouseEvent; import org.zkoss.zk.ui.select.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Listen; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zul.*; +import org.zkoss.zul.impl.LabelElement; import java.util.HashMap; import java.util.Map; +import java.util.SortedMap; public class serieListSelectorComposer extends SelectorComposer { @@ -74,4 +79,103 @@ public class serieListSelectorComposer extends SelectorComposer window.doModal(); } + + @Listen("onClick = menuitem") + public void onSeriePopup(MouseEvent event) + { + String label = ((LabelElement)event.getTarget()).getLabel(); + + if(label.compareToIgnoreCase("set all Progress to Done") == 0) + setAllProgressToDone(); + else if(label.compareToIgnoreCase("delete") == 0) + deleteSerie(); + } + + public void setAllProgressToDone() + { + Listitem item = seriesList.getSelectedItem(); + + if(item == null) + return; + + serieData s = (serieData) item.getValue(); + + SortedMap seasons = s.getSeasons(); + + for(seasonData season : seasons.values()) + { + SortedMap episodes = season.getEpisodes(); + + for(episodeData episode : episodes.values()) + { + if(episode.getEpisodeState() == 2) + episode.setEpisodeState(3); + } + } + s.save(); + s.recalcState(); + + ListModelList model = s.getModel(); + int index = item.getIndex(); + model.remove(index); + model.add(index, s); + } + + public void updateSerie() + { + Listitem item = seriesList.getSelectedItem(); + + if(item == null) + return; + + serieData m = (serieData) item.getValue(); + serieData mNew = new serieData(); + + try + { + mNew.fromTMDB(m.getSeriesID()); + mNew.copyFrom(m); + mNew.save(); + + ListModelList model = m.getModel(); + int index = item.getIndex(); + + mNew.setModel(model); + model.remove(index); + model.add(index, mNew); + } + catch(Exception e) + { + } + } + + public void deleteSerie() + { + Listitem item = seriesList.getSelectedItem(); + + if(item == null) + return; + + serieData s = (serieData) item.getValue(); + + Messagebox.show("Are you sure to delete \"" + s.getSeriesName() + "\"?", + "Question", Messagebox.OK | Messagebox.CANCEL, + Messagebox.QUESTION, + new org.zkoss.zk.ui.event.EventListener() + { + public void onEvent(Event e) + { + if("onOK".equals(e.getName())) + { + s.delete(); + seriesList.removeItemAt(item.getIndex()); + } + else if("onCancel".equals(e.getName())) + { + return; + } + } + } + ); + } } diff --git a/src/main/webapp/index.zul b/src/main/webapp/index.zul index 2c83db1..9859fce 100644 --- a/src/main/webapp/index.zul +++ b/src/main/webapp/index.zul @@ -9,7 +9,7 @@ > + + vflex="true" + context="moviePopup" + > + + + + + + + + + + + + diff --git a/src/main/webapp/serie/centerSerie.zul b/src/main/webapp/serie/centerSerie.zul index 81419c7..e316342 100644 --- a/src/main/webapp/serie/centerSerie.zul +++ b/src/main/webapp/serie/centerSerie.zul @@ -1,39 +1,51 @@
- - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/target/classes/at/windesign/application/movie/movieResultRenderer.class b/target/classes/at/windesign/application/movie/movieResultRenderer.class new file mode 100644 index 0000000..2477c91 Binary files /dev/null and b/target/classes/at/windesign/application/movie/movieResultRenderer.class differ diff --git a/target/classes/at/windesign/application/serie/serieListSelectorComposer.class b/target/classes/at/windesign/application/serie/serieListSelectorComposer.class index 4a899ef..0f29943 100644 Binary files a/target/classes/at/windesign/application/serie/serieListSelectorComposer.class and b/target/classes/at/windesign/application/serie/serieListSelectorComposer.class differ diff --git a/target/classes/at/windesign/application/serie/serieResultRenderer.class b/target/classes/at/windesign/application/serie/serieResultRenderer.class new file mode 100644 index 0000000..12f9e9c Binary files /dev/null and b/target/classes/at/windesign/application/serie/serieResultRenderer.class differ diff --git a/target/classes/at/windesign/application/serie/serieSearchForwardComposer.class b/target/classes/at/windesign/application/serie/serieSearchForwardComposer.class new file mode 100644 index 0000000..d935910 Binary files /dev/null and b/target/classes/at/windesign/application/serie/serieSearchForwardComposer.class differ diff --git a/target/classes/at/windesign/application/serie/serieSearchSelectorComposer.class b/target/classes/at/windesign/application/serie/serieSearchSelectorComposer.class new file mode 100644 index 0000000..a56373c Binary files /dev/null and b/target/classes/at/windesign/application/serie/serieSearchSelectorComposer.class differ diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 9eef984..b3ee448 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -12,6 +12,8 @@ at\windesign\application\serie\serieDetailsSelectorComposer$1.class at\windesign\application\serie\serieListForwardComposer.class at\windesign\application\testing\testForwardComposer.class at\windesign\application\movie\movieSearchSelectorComposer.class +at\windesign\application\movie\movieListSelectorComposer.class at\windesign\application\serie\episodeData.class at\windesign\application\serie\serieResultRenderer.class +at\windesign\application\movie\movieListSelectorComposer$1.class at\windesign\application\main\indexForwardComposer.class