initial commit
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||||
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="Maven: org.zkoss.zk:zkbind:9.0.0-Eval" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.javassist:javassist:3.18.2-GA" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.zkoss.zk:zul:9.0.0-Eval" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.zkoss.zk:zk:9.0.0-Eval" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.zkoss.common:zweb:9.0.0-Eval" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.zkoss.common:zcommon:9.0.0-Eval" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.3" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.zkoss.common:zel:9.0.0-Eval" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.apache-extras.beanshell:bsh:2.0b6" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project" />
|
||||||
|
<orderEntry type="library" scope="RUNTIME" name="Maven: org.slf4j:slf4j-jdk14:1.7.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.8" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.javascript:closure-compiler-unshaded:v20170626" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.javascript:closure-compiler-externs:v20170626" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: args4j:args4j:2.33" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.0.18" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.7" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.1" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.jsinterop:jsinterop-annotations:1.0.0" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.zkoss.zk:zkwebfragment:9.0.0-Eval" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.zkoss.zk:zkplus:9.0.0-Eval" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.zkoss.zk:zhtml:9.0.0-Eval" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.zkoss:zsoup:1.8.2.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
|
||||||
|
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
|
||||||
|
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.17" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.6.1" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
@@ -13,6 +13,7 @@ class serie
|
|||||||
private boolean m_seriesCliffhanger;
|
private boolean m_seriesCliffhanger;
|
||||||
private String m_seriesStatus;
|
private String m_seriesStatus;
|
||||||
private String m_seriesDownload;
|
private String m_seriesDownload;
|
||||||
|
private String m_seriesLocalPath;
|
||||||
private String m_seriesPoster;
|
private String m_seriesPoster;
|
||||||
private String m_seriesBackdrop;
|
private String m_seriesBackdrop;
|
||||||
private String m_seriesOverview;
|
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<Integer, Integer> 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<Integer, Integer> episodeState, int minSeason, int maxSeason, int stateInit, int stateProg, int stateDone)
|
||||||
{
|
{
|
||||||
m_seriesID = seriesID;
|
m_seriesID = seriesID;
|
||||||
m_seriesName = seriesName;
|
m_seriesName = seriesName;
|
||||||
m_seriesFirstAired = seriesFirstAired;
|
m_seriesFirstAired = seriesFirstAired;
|
||||||
m_seriesResolution = seriesResolution;
|
m_seriesResolution = seriesResolution;
|
||||||
m_seriesCliffhanger = seriesCliffhanger;
|
m_seriesCliffhanger = seriesCliffhanger;
|
||||||
m_seriesStatus = seriesStatus;
|
m_seriesStatus = seriesStatus;
|
||||||
m_seriesDownload = seriesDownload;
|
m_seriesDownload = seriesDownload;
|
||||||
m_seriesPoster = seriesPoster;
|
m_seriesLocalPath = localPath;
|
||||||
m_seriesBackdrop = seriesBackdrop;
|
m_seriesPoster = seriesPoster;
|
||||||
m_seriesOverview = seriesOverview;
|
m_seriesBackdrop = seriesBackdrop;
|
||||||
m_episodeState = episodeState;
|
m_seriesOverview = seriesOverview;
|
||||||
m_minSeason = minSeason;
|
m_episodeState = episodeState;
|
||||||
m_maxSeason = maxSeason;
|
m_minSeason = minSeason;
|
||||||
m_stateInit = stateInit;
|
m_maxSeason = maxSeason;
|
||||||
m_stateProg = stateProg;
|
m_stateInit = stateInit;
|
||||||
m_stateDone = stateDone;
|
m_stateProg = stateProg;
|
||||||
|
m_stateDone = stateDone;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSeriesID()
|
public int getSeriesID()
|
||||||
@@ -117,6 +119,16 @@ class serie
|
|||||||
m_seriesDownload = seriesDownload;
|
m_seriesDownload = seriesDownload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSeriesLocalPath()
|
||||||
|
{
|
||||||
|
return m_seriesLocalPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSeriesLocalPath(String seriesLocalPath)
|
||||||
|
{
|
||||||
|
m_seriesLocalPath = seriesLocalPath;
|
||||||
|
}
|
||||||
|
|
||||||
public String getSeriesPoster()
|
public String getSeriesPoster()
|
||||||
{
|
{
|
||||||
return m_seriesPoster;
|
return m_seriesPoster;
|
||||||
|
|||||||
@@ -4,22 +4,33 @@ import org.zkoss.image.AImage;
|
|||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.select.annotation.Wire;
|
import org.zkoss.zk.ui.select.annotation.Wire;
|
||||||
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
import org.zkoss.zk.ui.util.GenericForwardComposer;
|
||||||
import org.zkoss.zul.Label;
|
import org.zkoss.zul.*;
|
||||||
import org.zkoss.zul.Textbox;
|
|
||||||
import org.zkoss.zul.Window;
|
|
||||||
|
|
||||||
import java.net.URL;
|
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<Component>
|
public class serieDetailsForwardComposer extends GenericForwardComposer<Component>
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
private final serieDataSource ds = serieDataSource.INSTANCE;
|
||||||
|
private int opacity = 70;
|
||||||
|
|
||||||
@Wire
|
@Wire
|
||||||
private Window detailsSerie;
|
private Window detailsSerie;
|
||||||
|
|
||||||
|
@Wire
|
||||||
|
protected Groupbox overview;
|
||||||
|
|
||||||
@Wire
|
@Wire
|
||||||
protected Label overviewLabel;
|
protected Label overviewLabel;
|
||||||
|
|
||||||
|
@Wire
|
||||||
|
protected Groupbox settings;
|
||||||
|
|
||||||
@Wire
|
@Wire
|
||||||
protected Textbox downloadLink;
|
protected Textbox downloadLink;
|
||||||
|
|
||||||
@@ -27,7 +38,22 @@ public class serieDetailsForwardComposer extends GenericForwardComposer<Componen
|
|||||||
protected Textbox localPath;
|
protected Textbox localPath;
|
||||||
|
|
||||||
@Wire
|
@Wire
|
||||||
protected Textbox resolution;
|
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;
|
private serie m_serie;
|
||||||
|
|
||||||
@@ -36,57 +62,199 @@ public class serieDetailsForwardComposer extends GenericForwardComposer<Componen
|
|||||||
{
|
{
|
||||||
super.doAfterCompose(comp);
|
super.doAfterCompose(comp);
|
||||||
|
|
||||||
try
|
overview.setStyle("opacity: " + opacity + "%");
|
||||||
|
settings.setStyle("opacity: " + opacity + "%");
|
||||||
|
|
||||||
|
int hD = (int) self.getDesktop().getAttribute("desktopHeight");
|
||||||
|
int wD = (int) self.getDesktop().getAttribute("desktopWidth");
|
||||||
|
|
||||||
|
detailsSerie.setWidth(wD - 10 + "px");
|
||||||
|
detailsSerie.setHeight(hD - 10 + "px");
|
||||||
|
|
||||||
|
if(arg.containsKey("serie"))
|
||||||
|
m_serie = (serie) arg.get("serie");
|
||||||
|
else
|
||||||
|
detailsSerie.detach();
|
||||||
|
|
||||||
|
if(m_serie.getSeriesBackdrop() != null)
|
||||||
{
|
{
|
||||||
int hD = (int) self.getDesktop().getAttribute("desktopHeight");
|
String uri = "http://image.tmdb.org/t/p/original" + m_serie.getSeriesBackdrop();
|
||||||
int wD = (int) self.getDesktop().getAttribute("desktopWidth");
|
URL url = new URL(uri);
|
||||||
|
AImage img = new AImage(url);
|
||||||
|
|
||||||
detailsSerie.setWidth(wD - 10 + "px");
|
int w = Integer.parseInt(detailsSerie.getWidth().replace("px", ""));
|
||||||
detailsSerie.setHeight(hD - 10 + "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(arg.containsKey("serie"))
|
if(hR < h)
|
||||||
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();
|
hR = h;
|
||||||
URL url = new URL(uri);
|
wR = wI * h / hI;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
detailsSerie.setTitle(m_serie.getSeriesName() + " (" + m_serie.getSeriesFirstAired() + ")");
|
String size = String.valueOf(wR) + "px " + String.valueOf(hR) + "px";
|
||||||
overviewLabel.setValue(m_serie.getSeriesOverview());
|
String format = "overflow:auto; background:url('%1$s') no-repeat center center fixed; -webkit-background-size: " + size + "; -moz-background-size: \" + size + \"; -o-background-size: \" + size + \"; background-size: \" + size + \";";
|
||||||
downloadLink.setValue(m_serie.getSeriesDownload());
|
String style = String.format(format, uri);
|
||||||
localPath.setValue("blablabla");
|
detailsSerie.setContentStyle(style);
|
||||||
resolution.setValue(m_serie.getSeriesResolution());
|
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
|
||||||
|
Statement stmt = ds.getStatement();
|
||||||
|
ResultSet rs = stmt.executeQuery(
|
||||||
|
"SELECT resolution" +
|
||||||
|
" FROM resolution" +
|
||||||
|
" ORDER BY sort;"
|
||||||
|
);
|
||||||
|
|
||||||
|
while(rs.next())
|
||||||
{
|
{
|
||||||
detailsSerie.detach();
|
resolution.appendItem(rs.getString("resolution"));
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
finally
|
|
||||||
|
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());
|
||||||
|
|
||||||
|
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<Integer, Integer> 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ public class serieListForwardComposer extends GenericForwardComposer
|
|||||||
" serie.cliffhanger seriesCliffhanger," +
|
" serie.cliffhanger seriesCliffhanger," +
|
||||||
" serie.status seriesStatus," +
|
" serie.status seriesStatus," +
|
||||||
" serie.download seriesDownload," +
|
" serie.download seriesDownload," +
|
||||||
|
" serie.localPath seriesLocalPath," +
|
||||||
" serie.posterPath seriesPoster," +
|
" serie.posterPath seriesPoster," +
|
||||||
" serie.backdropPath seriesBackdrop," +
|
" serie.backdropPath seriesBackdrop," +
|
||||||
" serie.overview seriesOverview," +
|
" serie.overview seriesOverview," +
|
||||||
@@ -151,6 +152,7 @@ public class serieListForwardComposer extends GenericForwardComposer
|
|||||||
serie.setSeriesCliffhanger(rs.getBoolean("seriesCliffhanger"));
|
serie.setSeriesCliffhanger(rs.getBoolean("seriesCliffhanger"));
|
||||||
serie.setSeriesStatus(rs.getString("seriesStatus"));
|
serie.setSeriesStatus(rs.getString("seriesStatus"));
|
||||||
serie.setSeriesDownload(rs.getString("seriesDownload"));
|
serie.setSeriesDownload(rs.getString("seriesDownload"));
|
||||||
|
serie.setSeriesLocalPath(rs.getString("seriesLocalPath"));
|
||||||
serie.setSeriesPoster(rs.getString("seriesPoster"));
|
serie.setSeriesPoster(rs.getString("seriesPoster"));
|
||||||
serie.setSeriesBackdrop(rs.getString("seriesBackdrop"));
|
serie.setSeriesBackdrop(rs.getString("seriesBackdrop"));
|
||||||
serie.setSeriesOverview(rs.getString("seriesOverview"));
|
serie.setSeriesOverview(rs.getString("seriesOverview"));
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public class serieListSelectorComposer extends SelectorComposer<Component>
|
|||||||
arguments.put("serie", s);
|
arguments.put("serie", s);
|
||||||
|
|
||||||
String template = "/serie/detailsSerie.zul";
|
String template = "/serie/detailsSerie.zul";
|
||||||
|
// String template = "/testing/test.zul";
|
||||||
Window window = (Window) Executions.createComponents(template, null, arguments);
|
Window window = (Window) Executions.createComponents(template, null, arguments);
|
||||||
|
|
||||||
window.doModal();
|
window.doModal();
|
||||||
|
|||||||
@@ -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<Component>
|
||||||
|
{
|
||||||
|
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<Integer, Integer> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,39 +1,59 @@
|
|||||||
<window id="detailsSerie"
|
<window id="detailsSerie"
|
||||||
title=""
|
title=""
|
||||||
|
contentStyle="overflow:auto"
|
||||||
border="normal"
|
border="normal"
|
||||||
apply="at.windesign.application.serie.serieDetailsForwardComposer, at.windesign.application.serie.serieDetailsSelectorComposer">
|
apply="at.windesign.application.serie.serieDetailsForwardComposer, at.windesign.application.serie.serieDetailsSelectorComposer"
|
||||||
|
width="500px"
|
||||||
|
height="500px"
|
||||||
|
>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 4fr 4fr 1fr 1fr;
|
||||||
|
grid-gap: 10px;
|
||||||
|
justify-items: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<groupbox id="overview"
|
<groupbox id="overview"
|
||||||
style="opacity: 0.65;"
|
|
||||||
>
|
>
|
||||||
<caption>Overview</caption>
|
<caption>Overview</caption>
|
||||||
<label id="overviewLabel"
|
<label id="overviewLabel"
|
||||||
value=""/>
|
value=""/>
|
||||||
</groupbox>
|
</groupbox>
|
||||||
|
|
||||||
<groupbox id="settings"
|
<groupbox id="settings"
|
||||||
style="opacity: 0.65;"
|
|
||||||
>
|
>
|
||||||
<caption>Settings</caption>
|
<caption>Settings</caption>
|
||||||
<hbox width="100%">
|
|
||||||
<vbox width="45%">
|
<nodom>
|
||||||
|
<div sclass="grid"
|
||||||
|
width="100%">
|
||||||
<label value="Download Link"/>
|
<label value="Download Link"/>
|
||||||
<textbox id="downloadLink"
|
|
||||||
tabindex="1"/>
|
|
||||||
</vbox>
|
|
||||||
<vbox width="45%">
|
|
||||||
<label value="Local Path"/>
|
<label value="Local Path"/>
|
||||||
<textbox id="localPath"
|
|
||||||
tabindex="2"/>
|
|
||||||
</vbox>
|
|
||||||
<vbox width="10%">
|
|
||||||
<label value="Resolution"/>
|
<label value="Resolution"/>
|
||||||
<textbox id="resolution"
|
<label value="Cliffhanger"/>
|
||||||
tabindex="3"/>
|
<textbox id="downloadLink"
|
||||||
</vbox>
|
width="100%"
|
||||||
</hbox>
|
tabindex="1"/>
|
||||||
|
<textbox id="localPath"
|
||||||
|
width="100%"
|
||||||
|
tabindex="2"/>
|
||||||
|
<combobox id="resolution"
|
||||||
|
width="100%"
|
||||||
|
tabindex="3"/>
|
||||||
|
<checkbox id="cliffhanger"
|
||||||
|
tabindex="4"/>
|
||||||
|
</div>
|
||||||
|
</nodom>
|
||||||
</groupbox>
|
</groupbox>
|
||||||
<hbox width="100%" pack="center">
|
|
||||||
|
<hbox id="buttons"
|
||||||
|
width="100%"
|
||||||
|
pack="center">
|
||||||
<button id="saveButton" label="Save"/>
|
<button id="saveButton" label="Save"/>
|
||||||
<button id="cancelButton" label="Cancel"/>
|
<button id="cancelButton" label="Cancel"/>
|
||||||
<button id="deleteButton" label="Delete"/>
|
<button id="deleteButton" label="Delete"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
</window>
|
</window>
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
<window id="test"
|
||||||
|
title="Hi"
|
||||||
|
contentStyle="overflow:auto"
|
||||||
|
border="normal"
|
||||||
|
apply="at.windesign.application.testing.testForwardComposer"
|
||||||
|
width="500px"
|
||||||
|
height="500px"
|
||||||
|
>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 4fr 4fr 1fr 1fr;
|
||||||
|
grid-gap: 10px;
|
||||||
|
justify-items: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<groupbox id="overview"
|
||||||
|
>
|
||||||
|
<caption>Overview</caption>
|
||||||
|
<label id="overviewLabel"
|
||||||
|
value=""/>
|
||||||
|
</groupbox>
|
||||||
|
|
||||||
|
<groupbox id="settings"
|
||||||
|
>
|
||||||
|
<caption>Settings</caption>
|
||||||
|
|
||||||
|
<nodom>
|
||||||
|
<div sclass="grid"
|
||||||
|
width="100%">
|
||||||
|
<label value="Download Link"/>
|
||||||
|
<label value="Local Path"/>
|
||||||
|
<label value="Resolution"/>
|
||||||
|
<label value="Cliffhanger"/>
|
||||||
|
<textbox id="downloadLink"
|
||||||
|
width="100%"
|
||||||
|
tabindex="1"/>
|
||||||
|
<textbox id="localPath"
|
||||||
|
width="100%"
|
||||||
|
tabindex="2"/>
|
||||||
|
<combobox id="resolution"
|
||||||
|
width="100%"
|
||||||
|
tabindex="3"/>
|
||||||
|
<checkbox id="cliffhanger"
|
||||||
|
tabindex="4"/>
|
||||||
|
</div>
|
||||||
|
</nodom>
|
||||||
|
</groupbox>
|
||||||
|
|
||||||
|
<groupbox
|
||||||
|
>
|
||||||
|
<caption>Test</caption>
|
||||||
|
|
||||||
|
<vlayout>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
<label value="blablabla"/>
|
||||||
|
</vlayout>
|
||||||
|
</groupbox>
|
||||||
|
|
||||||
|
<hbox id="buttons"
|
||||||
|
width="100%"
|
||||||
|
pack="center">
|
||||||
|
<button id="saveButton" label="Save"/>
|
||||||
|
<button id="cancelButton" label="Cancel"/>
|
||||||
|
<button id="deleteButton" label="Delete"/>
|
||||||
|
</hbox>
|
||||||
|
</window>
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user