diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..645f4a0
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..a55e7a1
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ 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 9696cac..c28b446 100644
--- a/src/main/java/at/windesign/application/serie/serie.java
+++ b/src/main/java/at/windesign/application/serie/serie.java
@@ -1,5 +1,7 @@
package at.windesign.application.serie;
+import java.awt.*;
+import java.util.Objects;
import java.util.SortedMap;
class serie
@@ -16,12 +18,15 @@ class serie
private SortedMap m_episodeState;
private int m_minSeason;
private int m_maxSeason;
+ private int m_stateInit;
+ private int m_stateProg;
+ private int m_stateDone;
public serie()
{
}
- public serie(int seriesID, String seriesName, int seriesFirstAired, String seriesResolution, boolean seriesCliffhanger, String seriesStatus, String seriesDownload, String seriesPoster, String seriesBackdrop, SortedMap episodeState, int minSeason, int maxSeason)
+ public serie(int seriesID, String seriesName, int seriesFirstAired, String seriesResolution, boolean seriesCliffhanger, String seriesStatus, String seriesDownload, String seriesPoster, String seriesBackdrop, SortedMap episodeState, int minSeason, int maxSeason, int stateInit, int stateProg, int stateDone)
{
m_seriesID = seriesID;
m_seriesName = seriesName;
@@ -35,6 +40,9 @@ class serie
m_episodeState = episodeState;
m_minSeason = minSeason;
m_maxSeason = maxSeason;
+ m_stateInit = stateInit;
+ m_stateProg = stateProg;
+ m_stateDone = stateDone;
}
public int getSeriesID()
@@ -156,4 +164,58 @@ class serie
{
m_maxSeason = maxSeason;
}
+
+ public int getStateInit()
+ {
+ return m_stateInit;
+ }
+
+ public void setStateInit(int stateInit)
+ {
+ m_stateInit = stateInit;
+ }
+
+ public int getStateProg()
+ {
+ return m_stateProg;
+ }
+
+ public void setStateProg(int stateProg)
+ {
+ m_stateProg = stateProg;
+ }
+
+ public int getStateDone()
+ {
+ return m_stateDone;
+ }
+
+ public void setStateDone(int stateDone)
+ {
+ m_stateDone = stateDone;
+ }
+
+ public String getSeriesStyle()
+ {
+ String style = "";
+
+ if(m_seriesCliffhanger)
+ style = style + "font-style: italic; ";
+
+ if(Objects.equals(m_seriesStatus, "Returning Series"))
+ style = style + "font-weight: bold; ";
+
+ String color = "";
+
+ if(m_stateProg > 0)
+ color = "background-color: #0000C0; color: #FFFFFF";
+ else if(m_stateInit > 0)
+ color = "background-color: #C0C0C0;";
+ else if(m_stateDone > 0)
+ color = "background-color: #00C000;";
+
+ style += color;
+
+ return style;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/at/windesign/application/serie/serieDetailsForwardComposer.java b/src/main/java/at/windesign/application/serie/serieDetailsForwardComposer.java
index fee45af..56d68aa 100644
--- a/src/main/java/at/windesign/application/serie/serieDetailsForwardComposer.java
+++ b/src/main/java/at/windesign/application/serie/serieDetailsForwardComposer.java
@@ -9,16 +9,17 @@ import org.zkoss.zul.Label;
import org.zkoss.zul.Window;
import java.net.URL;
+import java.sql.SQLException;
public class serieDetailsForwardComposer extends GenericForwardComposer
{
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
@Wire
- private Window resultWin;
+ private Window detailsSerie;
@Wire
- protected Label title;
+ protected Label seriesName;
private serie m_serie;
@@ -27,41 +28,53 @@ public class serieDetailsForwardComposer extends GenericForwardComposer
private static final long serialVersionUID = 1L;
@Wire
- private Window resultWin;
+ private Window detailsSerie;
@Wire
protected Label title;
@@ -22,18 +22,18 @@ public class serieDetailsSelectorComposer extends SelectorComposer
@Listen("onClick = #saveButton")
public void save()
{
- resultWin.onClose();
+ detailsSerie.onClose();
}
@Listen("onClick = #cancelButton")
public void cancel()
{
- resultWin.onClose();
+ detailsSerie.onClose();
}
@Listen("onClick = #deleteButton")
public void delete()
{
- resultWin.onClose();
+ detailsSerie.onClose();
}
}
\ No newline at end of file
diff --git a/src/main/java/at/windesign/application/serie/serieListForwardComposer.java b/src/main/java/at/windesign/application/serie/serieListForwardComposer.java
index 96ba0a5..dc1bdb6 100644
--- a/src/main/java/at/windesign/application/serie/serieListForwardComposer.java
+++ b/src/main/java/at/windesign/application/serie/serieListForwardComposer.java
@@ -17,6 +17,9 @@ public class serieListForwardComposer extends GenericForwardComposer
private ListModelList seriesListModel; // the model of the listbox
private serieRenderer renderer;
+ private Integer stateWidth = 4;
+ private Integer stateHeight = 20;
+
private final serieDataSource ds = serieDataSource.INSTANCE;
@Override
@@ -24,8 +27,10 @@ public class serieListForwardComposer extends GenericForwardComposer
{
super.doAfterCompose(comp);
- int minSeason = 0;
- int maxSeason = 0;
+ int minSeason = 0;
+ int maxSeason = 0;
+ SortedMap maxEpisode = new TreeMap<>();
+ SortedMap listHeader = new TreeMap<>();
try
{
@@ -41,7 +46,8 @@ public class serieListForwardComposer extends GenericForwardComposer
minSeason = rs.getInt("minSeason");
maxSeason = rs.getInt("maxSeason");
}
- } catch(SQLException e)
+ }
+ catch(SQLException e)
{
e.printStackTrace();
}
@@ -68,8 +74,10 @@ public class serieListForwardComposer extends GenericForwardComposer
for(int i = minSeason; i <= maxSeason; i++)
{
Listheader seasonHeader = new Listheader("Season " + i);
- seasonHeader.setHflex("min");
+// seasonHeader.setHflex("min");
head.appendChild(seasonHeader);
+ maxEpisode.put(i, 0);
+ listHeader.put(i, seasonHeader);
}
renderer = new serieRenderer();
@@ -107,6 +115,9 @@ public class serieListForwardComposer extends GenericForwardComposer
// fetch all events from database
serie serie = new serie();
int oldID = -1;
+ int stateInit = 0;
+ int stateProg = 0;
+ int stateDone = 0;
SortedMap episodeState = new TreeMap<>();
serie.setSeriesID(-1);
@@ -118,8 +129,15 @@ public class serieListForwardComposer extends GenericForwardComposer
if(oldID != -1)
{
serie.setEpisodeState(episodeState);
+ serie.setStateInit(stateInit);
+ serie.setStateProg(stateProg);
+ serie.setStateDone(stateDone);
+
seriesListModel.add(serie);
episodeState = new TreeMap<>();
+ stateInit = 0;
+ stateProg = 0;
+ stateDone = 0;
}
oldID = rs.getInt("seriesID");
@@ -138,18 +156,49 @@ public class serieListForwardComposer extends GenericForwardComposer
serie.setMaxSeason(rs.getInt("maxSeason"));
}
episodeState.put((rs.getInt("seasonNumber") << 8) + rs.getInt("episodeNumber"), rs.getInt("episodeState"));
+
+ switch(rs.getInt("episodeState"))
+ {
+ case 1:
+ stateInit++;
+ break;
+ case 2:
+ stateProg++;
+ break;
+ case 3:
+ stateDone++;
+ break;
+ }
+ int _seasonNumber = rs.getInt("seasonNumber");
+ int _episodeNumber = rs.getInt("episodeNumber");
+
+ if(_seasonNumber != 0)
+ {
+ if(maxEpisode.get(_seasonNumber) < _episodeNumber)
+ maxEpisode.put(_seasonNumber, _episodeNumber);
+ }
}
if(serie.getSeriesID() != -1)
{
serie.setEpisodeState(episodeState);
+ serie.setStateInit(stateInit);
+ serie.setStateProg(stateProg);
+ serie.setStateDone(stateDone);
seriesListModel.add(serie);
}
- } catch(
- SQLException e)
+ for(int i = minSeason; i <= maxSeason; i++)
+ {
+ int size = maxEpisode.get(i) * stateWidth;
+ Listheader header = listHeader.get(i);
+ header.setWidth(size + 40 + "px");
+ }
+ }
+ catch(SQLException e)
{
e.printStackTrace();
- } finally
+ }
+ finally
{
ds.close();
}
diff --git a/src/main/java/at/windesign/application/serie/serieRenderer.java b/src/main/java/at/windesign/application/serie/serieRenderer.java
index 0e75f43..3b75107 100644
--- a/src/main/java/at/windesign/application/serie/serieRenderer.java
+++ b/src/main/java/at/windesign/application/serie/serieRenderer.java
@@ -24,6 +24,7 @@ public class serieRenderer implements ListitemRenderer
Listcell seriesFirstAiredCell = new Listcell(String.valueOf(data.getSeriesFirstAired()));
Listcell seriesResolution = new Listcell(data.getSeriesResolution());
+ seriesNameCell.setStyle(data.getSeriesStyle());
seriesNameCell.setParent(item);
seriesFirstAiredCell.setParent(item);
seriesResolution.setParent(item);
@@ -33,6 +34,7 @@ public class serieRenderer implements ListitemRenderer
Listcell imageCell = new Listcell();
imageCell.setImageContent(Images.encode("bla.png", getStateImage(s, data.getEpisodeState())));
imageCell.setParent(item);
+ imageCell.setTooltiptext(getStateText(s, data.getEpisodeState()));
}
item.setValue(data);
@@ -101,4 +103,64 @@ public class serieRenderer implements ListitemRenderer
return image;
}
+
+ private String getStateText(Integer curSeason, SortedMap state)
+ {
+ int season = -1;
+ int episode = -1;
+ SortedMap seasonState = new TreeMap<>();
+
+ for(int key : state.keySet())
+ {
+ season = key >> 8;
+ episode = key & 0xFF;
+
+ if(season == curSeason)
+ seasonState.put(episode, state.get(key));
+ else if(season > curSeason)
+ break;
+ }
+
+ if(seasonState.size() == 0)
+ return "";
+
+ String stateInit = "";
+ String stateProg = "";
+ String stateDone = "";
+
+ for(Integer key : seasonState.keySet())
+ {
+ switch(seasonState.get(key))
+ {
+ case 0:
+ break;
+ case 1:
+ if(stateInit != "")
+ stateInit = stateInit + ", ";
+ stateInit = stateInit + key;
+ break;
+ case 2:
+ if(stateProg != "")
+ stateProg = stateProg + ", ";
+ stateProg = stateProg + key;
+ break;
+ case 3:
+ if(stateDone != "")
+ stateDone = stateDone + ", ";
+ stateDone = stateDone + key;
+ break;
+ }
+ }
+
+ if(stateInit == "")
+ stateInit = "none";
+
+ if(stateProg == "")
+ stateProg = "none";
+
+ if(stateDone == "")
+ stateDone = "none";
+
+ return "Init: " + stateInit + "\nProgress: " + stateProg + "\nDone: " + stateDone;
+ }
}
\ No newline at end of file
diff --git a/src/main/webapp/serie/centerSerie.zul b/src/main/webapp/serie/centerSerie.zul
index 6a225b7..8acd650 100644
--- a/src/main/webapp/serie/centerSerie.zul
+++ b/src/main/webapp/serie/centerSerie.zul
@@ -6,9 +6,10 @@
multiple="true"
autopaging="true"
vflex="true">
-
+
-
-
+
+
diff --git a/src/main/webapp/serie/detailsSerie.zul b/src/main/webapp/serie/detailsSerie.zul
index 44e5149..48db8b9 100644
--- a/src/main/webapp/serie/detailsSerie.zul
+++ b/src/main/webapp/serie/detailsSerie.zul
@@ -1,7 +1,10 @@
-
+
+
+
diff --git a/target/classes/at/windesign/application/serie/serie.class b/target/classes/at/windesign/application/serie/serie.class
index b15efc9..940392e 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 def04f3..df5a579 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/serieDetailsSelectorComposer.class b/target/classes/at/windesign/application/serie/serieDetailsSelectorComposer.class
index 5fcffb2..beddcc9 100644
Binary files a/target/classes/at/windesign/application/serie/serieDetailsSelectorComposer.class and b/target/classes/at/windesign/application/serie/serieDetailsSelectorComposer.class differ
diff --git a/target/classes/at/windesign/application/serie/serieListForwardComposer.class b/target/classes/at/windesign/application/serie/serieListForwardComposer.class
index 91eeff4..557bf58 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/serieRenderer.class b/target/classes/at/windesign/application/serie/serieRenderer.class
index b229ec1..079308d 100644
Binary files a/target/classes/at/windesign/application/serie/serieRenderer.class and b/target/classes/at/windesign/application/serie/serieRenderer.class differ
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index 846e93b..e1d5020 100644
--- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,10 +1,8 @@
C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\serie\serieDataSource.java
-C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\main\mainSelectorComposer.java
-C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\main\mainForwardComposer.java
C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\serie\serieDetailsSelectorComposer.java
C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\serie\serie.java
C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\serie\serieListSelectorComposer.java
C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\serie\serieListForwardComposer.java
-C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\main\OXMainLayoutVM.java
C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\serie\serieDetailsForwardComposer.java
+C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\main\indexForwardComposer.java
C:\Users\birkeh\ownCloud\dev\IntelliJ\zk\multimedia\src\main\java\at\windesign\application\serie\serieRenderer.java