From ced87ed51f1be5f0d9e2970dd0d45b1bbecf838f Mon Sep 17 00:00:00 2001 From: Herwig Birke Date: Wed, 19 May 2021 11:50:41 +0200 Subject: [PATCH] display count --- .../main/indexForwardComposer.java | 5 +- .../movie/movieDetailsSelectorComposer.java | 11 +++++ .../movie/movieListForwardComposer.java | 10 ++++ .../movie/movieListSelectorComposer.java | 6 +++ .../application/movie/movieUtils.java | 47 +++++++++++++++++++ .../serie/serieDetailsSelectorComposer.java | 11 +++++ .../serie/serieListForwardComposer.java | 8 ++++ .../serie/serieListSelectorComposer.java | 14 ++++-- .../application/serie/serieUtils.java | 29 ++++++++++++ 9 files changed, 133 insertions(+), 8 deletions(-) diff --git a/src/main/java/at/windesign/application/main/indexForwardComposer.java b/src/main/java/at/windesign/application/main/indexForwardComposer.java index b7ab494..c2cb786 100644 --- a/src/main/java/at/windesign/application/main/indexForwardComposer.java +++ b/src/main/java/at/windesign/application/main/indexForwardComposer.java @@ -5,10 +5,7 @@ import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zk.ui.util.GenericForwardComposer; -import org.zkoss.zul.Label; -import org.zkoss.zul.Tabbox; -import org.zkoss.zul.Tabs; -import org.zkoss.zul.Window; +import org.zkoss.zul.*; import java.io.*; import java.net.URL; diff --git a/src/main/java/at/windesign/application/movie/movieDetailsSelectorComposer.java b/src/main/java/at/windesign/application/movie/movieDetailsSelectorComposer.java index 1176d79..200f90b 100644 --- a/src/main/java/at/windesign/application/movie/movieDetailsSelectorComposer.java +++ b/src/main/java/at/windesign/application/movie/movieDetailsSelectorComposer.java @@ -2,6 +2,7 @@ package at.windesign.application.movie; import com.omertron.themoviedbapi.MovieDbException; import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Path; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.select.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Listen; @@ -39,6 +40,11 @@ public class movieDetailsSelectorComposer extends SelectorComposer model.remove(index); model.add(index, movie); + Window mainWindow = (Window)Path.getComponent("/mainWindow"); + Tab tabMovies = (Tab)mainWindow.getFellow("tabMovies"); + movieDataSource ds = movieDataSource.INSTANCE; + movieUtils.movieMetrics(tabMovies, ds); + detailsMovie.onClose(); } @@ -108,6 +114,11 @@ public class movieDetailsSelectorComposer extends SelectorComposer } ); + Window mainWindow = (Window)Path.getComponent("/mainWindow"); + Tab tabMovies = (Tab)mainWindow.getFellow("tabMovies"); + movieDataSource ds = movieDataSource.INSTANCE; + movieUtils.movieMetrics(tabMovies, ds); + detailsMovie.onClose(); } diff --git a/src/main/java/at/windesign/application/movie/movieListForwardComposer.java b/src/main/java/at/windesign/application/movie/movieListForwardComposer.java index 2644b58..bab7db5 100644 --- a/src/main/java/at/windesign/application/movie/movieListForwardComposer.java +++ b/src/main/java/at/windesign/application/movie/movieListForwardComposer.java @@ -3,13 +3,20 @@ package at.windesign.application.movie; import at.windesign.application.serie.serieDataSource; import at.windesign.application.serie.serieUtils; 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.Listbox; +import org.zkoss.zul.Tab; +import org.zkoss.zul.Tabbox; +import org.zkoss.zul.Window; public class movieListForwardComposer extends GenericForwardComposer { protected Listbox movieList; // autowired + @Wire + private Tab tabMovies; + @Override public void doAfterCompose(Component comp) throws Exception { @@ -17,5 +24,8 @@ public class movieListForwardComposer extends GenericForwardComposer movieDataSource ds = movieDataSource.INSTANCE; movieUtils.loadMovies(ds, movieList); + + ds = movieDataSource.INSTANCE; + movieUtils.movieMetrics(tabMovies, ds); } } diff --git a/src/main/java/at/windesign/application/movie/movieListSelectorComposer.java b/src/main/java/at/windesign/application/movie/movieListSelectorComposer.java index 552e0ec..7fd9bf3 100644 --- a/src/main/java/at/windesign/application/movie/movieListSelectorComposer.java +++ b/src/main/java/at/windesign/application/movie/movieListSelectorComposer.java @@ -2,6 +2,7 @@ package at.windesign.application.movie; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.Path; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.MouseEvent; import org.zkoss.zk.ui.select.SelectorComposer; @@ -94,6 +95,11 @@ public class movieListSelectorComposer extends SelectorComposer updateMovie(); else if(label.compareToIgnoreCase("delete") == 0) deleteMovie(); + + Window mainWindow = (Window)Path.getComponent("/mainWindow"); + Tab tabMovies = (Tab)mainWindow.getFellow("tabMovies"); + movieDataSource ds = movieDataSource.INSTANCE; + movieUtils.movieMetrics(tabMovies, ds); } public void setState(int state) diff --git a/src/main/java/at/windesign/application/movie/movieUtils.java b/src/main/java/at/windesign/application/movie/movieUtils.java index 8b8f87f..40cfc73 100644 --- a/src/main/java/at/windesign/application/movie/movieUtils.java +++ b/src/main/java/at/windesign/application/movie/movieUtils.java @@ -138,4 +138,51 @@ public class movieUtils movie.setModel(movieListModel); } } + + static public void movieMetrics(Tab tabMovies, movieDataSource ds) + { + int moviesTotal = 0; + int moviesInit = 0; + int moviesProc = 0; + int moviesDone = 0; + + try + { + Statement stmt = ds.getStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT COUNT(1) CNT, " + + " state " + + "FROM multimedia.movie " + + "GROUP BY state;"); + + while(rs.next()) + { + int state = rs.getInt("state"); + + switch(state) + { + case 1: + moviesInit = rs.getInt("CNT"); + break; + case 2: + moviesProc = rs.getInt("CNT"); + break; + case 3: + moviesDone = rs.getInt("CNT"); + break; + } + } + } + catch(SQLException e) + { + e.printStackTrace(); + } + finally + { + ds.close(); + } + + moviesTotal = moviesInit + moviesProc + moviesDone; + tabMovies.setLabel("Movies (T: " + moviesTotal + " / I: " + moviesInit + " / P: " + moviesProc + " / D: " + moviesDone + ")"); + } } diff --git a/src/main/java/at/windesign/application/serie/serieDetailsSelectorComposer.java b/src/main/java/at/windesign/application/serie/serieDetailsSelectorComposer.java index ae9ed6c..ed22f61 100644 --- a/src/main/java/at/windesign/application/serie/serieDetailsSelectorComposer.java +++ b/src/main/java/at/windesign/application/serie/serieDetailsSelectorComposer.java @@ -2,6 +2,7 @@ package at.windesign.application.serie; import com.omertron.themoviedbapi.MovieDbException; import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Path; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.select.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Listen; @@ -48,6 +49,11 @@ public class serieDetailsSelectorComposer extends SelectorComposer model.remove(index); model.add(index, serie); + Window mainWindow = (Window) Path.getComponent("/mainWindow"); + Tab tabSeries = (Tab) mainWindow.getFellow("tabSeries"); + serieDataSource ds = serieDataSource.INSTANCE; + serieUtils.serieMetrics(tabSeries, ds); + detailsSerie.onClose(); } @@ -107,6 +113,11 @@ public class serieDetailsSelectorComposer extends SelectorComposer Listbox serieList = item.getListbox(); serieList.removeItemAt(item.getIndex()); + Window mainWindow = (Window) Path.getComponent("/mainWindow"); + Tab tabSeries = (Tab) mainWindow.getFellow("tabSeries"); + serieDataSource ds = serieDataSource.INSTANCE; + serieUtils.serieMetrics(tabSeries, ds); + detailsSerie.onClose(); } else if("onCancel".equals(e.getName())) diff --git a/src/main/java/at/windesign/application/serie/serieListForwardComposer.java b/src/main/java/at/windesign/application/serie/serieListForwardComposer.java index 52e248b..f3dc49e 100644 --- a/src/main/java/at/windesign/application/serie/serieListForwardComposer.java +++ b/src/main/java/at/windesign/application/serie/serieListForwardComposer.java @@ -1,7 +1,10 @@ package at.windesign.application.serie; +import at.windesign.application.movie.movieDataSource; +import at.windesign.application.movie.movieUtils; import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Path; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.*; @@ -21,5 +24,10 @@ public class serieListForwardComposer extends GenericForwardComposer serieDataSource ds = serieDataSource.INSTANCE; serieUtils.loadSeries(ds, seriesList); + + Window mainWindow = (Window) Path.getComponent("/mainWindow"); + Tab tabSeries = (Tab)mainWindow.getFellow("tabSeries"); + ds = serieDataSource.INSTANCE; + serieUtils.serieMetrics(tabSeries, ds); } } diff --git a/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java b/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java index 928ef0d..98f7955 100644 --- a/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java +++ b/src/main/java/at/windesign/application/serie/serieListSelectorComposer.java @@ -2,6 +2,7 @@ package at.windesign.application.serie; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.Path; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.MouseEvent; import org.zkoss.zk.ui.select.SelectorComposer; @@ -94,7 +95,7 @@ public class serieListSelectorComposer extends SelectorComposer @Listen("onClick = menuitem") public void onSeriePopup(MouseEvent event) { - String label = ((LabelElement)event.getTarget()).getLabel(); + String label = ((LabelElement) event.getTarget()).getLabel(); if(label.compareToIgnoreCase("set all Progress to Done") == 0) setAllProgressToDone(); @@ -129,7 +130,7 @@ public class serieListSelectorComposer extends SelectorComposer s.recalcState(); ListModelList model = s.getModel(); - int index = item.getIndex(); + int index = item.getIndex(); model.remove(index); model.add(index, s); } @@ -141,7 +142,7 @@ public class serieListSelectorComposer extends SelectorComposer if(item == null) return; - serieData m = (serieData) item.getValue(); + serieData m = (serieData) item.getValue(); serieData mNew = new serieData(); try @@ -151,7 +152,7 @@ public class serieListSelectorComposer extends SelectorComposer mNew.save(); ListModelList model = m.getModel(); - int index = item.getIndex(); + int index = item.getIndex(); mNew.setModel(model); model.remove(index); @@ -182,6 +183,11 @@ public class serieListSelectorComposer extends SelectorComposer { s.delete(); seriesList.removeItemAt(item.getIndex()); + + Window mainWindow = (Window) Path.getComponent("/mainWindow"); + Tab tabSeries = (Tab) mainWindow.getFellow("tabSeries"); + serieDataSource ds = serieDataSource.INSTANCE; + serieUtils.serieMetrics(tabSeries, ds); } else if("onCancel".equals(e.getName())) { diff --git a/src/main/java/at/windesign/application/serie/serieUtils.java b/src/main/java/at/windesign/application/serie/serieUtils.java index 27cc366..941490c 100644 --- a/src/main/java/at/windesign/application/serie/serieUtils.java +++ b/src/main/java/at/windesign/application/serie/serieUtils.java @@ -1,5 +1,6 @@ package at.windesign.application.serie; +import at.windesign.application.movie.movieDataSource; import org.zkoss.zul.*; import java.sql.ResultSet; @@ -340,4 +341,32 @@ public class serieUtils return serie; } + + static public void serieMetrics(Tab tabSeries, serieDataSource ds) + { + int seriesTotal = 0; + + try + { + Statement stmt = ds.getStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT COUNT(1) CNT " + + "FROM multimedia.serie;"); + + while(rs.next()) + { + seriesTotal = rs.getInt("CNT"); + } + } + catch(SQLException e) + { + e.printStackTrace(); + } + finally + { + ds.close(); + } + + tabSeries.setLabel("TV Shows (T: " + seriesTotal + ")"); + } }