add tv show, add movie
This commit is contained in:
@@ -685,7 +685,7 @@ public class movieData
|
||||
m_video = videoListToString(movie.getVideos());
|
||||
m_cast = castListToString(movie.getCast());
|
||||
m_crew = crewListToString(movie.getCrew());
|
||||
m_state = 0;
|
||||
m_state = 1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ package at.windesign.application.movie;
|
||||
|
||||
import org.zkoss.zul.*;
|
||||
|
||||
public class resultRenderer implements ListitemRenderer
|
||||
public class movieResultRenderer implements ListitemRenderer
|
||||
{
|
||||
private Listbox movieList;
|
||||
|
||||
@@ -1,16 +1,10 @@
|
||||
package at.windesign.application.movie;
|
||||
|
||||
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.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.SortedMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
@@ -72,7 +66,7 @@ public class movieSearchForwardComposer extends GenericForwardComposer<Component
|
||||
head.appendChild(firstAired);
|
||||
head.appendChild(overview);
|
||||
|
||||
resultRenderer renderer = new resultRenderer();
|
||||
movieResultRenderer renderer = new movieResultRenderer();
|
||||
resultList.setItemRenderer(renderer);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,10 @@ import org.zkoss.zk.ui.select.annotation.Listen;
|
||||
import org.zkoss.zk.ui.select.annotation.Wire;
|
||||
import org.zkoss.zul.*;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.sql.Date;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
@@ -68,7 +72,7 @@ public class movieSearchSelectorComposer extends SelectorComposer<Component>
|
||||
}
|
||||
|
||||
@Listen("onClick = #saveButton")
|
||||
public void save()
|
||||
public void save() throws FileNotFoundException
|
||||
{
|
||||
ListModelList resultListModel = (ListModelList) resultList.getModel();
|
||||
List<movieData> dataList = resultListModel.getInnerList();
|
||||
@@ -95,7 +99,7 @@ public class movieSearchSelectorComposer extends SelectorComposer<Component>
|
||||
try
|
||||
{
|
||||
newMovie.fromTMDB(data.getMovieID());
|
||||
Messagebox.show(newMovie.getMovieTitle());
|
||||
newMovie.save();
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
@@ -104,6 +108,12 @@ public class movieSearchSelectorComposer extends SelectorComposer<Component>
|
||||
}
|
||||
}
|
||||
}
|
||||
OutputStream tempFile = new FileOutputStream("redir");
|
||||
PrintStream printStream = new PrintStream(tempFile);
|
||||
printStream.print("movie");
|
||||
printStream.close();
|
||||
|
||||
Executions.sendRedirect("");
|
||||
}
|
||||
searchMovie.onClose();
|
||||
}
|
||||
|
||||
@@ -61,4 +61,17 @@ public class serieListSelectorComposer extends SelectorComposer<Component>
|
||||
|
||||
window.doModal();
|
||||
}
|
||||
|
||||
@Listen("onClick = #searchSerie")
|
||||
public void onSearchSerie()
|
||||
{
|
||||
Map<String, Object> arguments = new HashMap<String, Object>();
|
||||
|
||||
arguments.put("serieList", seriesList);
|
||||
|
||||
String template = "/serie/searchSerie.zul";
|
||||
Window window = (Window) Executions.createComponents(template, null, arguments);
|
||||
|
||||
window.doModal();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package at.windesign.application.serie;
|
||||
|
||||
import org.zkoss.zul.*;
|
||||
|
||||
public class serieResultRenderer implements ListitemRenderer
|
||||
{
|
||||
private Listbox serieList;
|
||||
|
||||
@Override
|
||||
public void render(Listitem item, Object o, int i) throws Exception
|
||||
{
|
||||
final serieData data = (serieData) o;
|
||||
|
||||
Listcell selectedCell = new Listcell();
|
||||
Listcell serieNameCell = new Listcell(data.getSeriesName());
|
||||
Listcell serieFirstAiredCell = new Listcell(String.valueOf(data.getSeriesFirstAired()));
|
||||
Listcell serieOverviewCell = new Listcell(data.getSeriesOverview());
|
||||
|
||||
Checkbox checkbox = new Checkbox();
|
||||
checkbox.setParent(selectedCell);
|
||||
selectedCell.setParent(item);
|
||||
serieNameCell.setParent(item);
|
||||
serieFirstAiredCell.setParent(item);
|
||||
serieOverviewCell.setParent(item);
|
||||
|
||||
item.setValue(data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package at.windesign.application.serie;
|
||||
|
||||
import at.windesign.application.movie.movieResultRenderer;
|
||||
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.util.SortedMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
public class serieSearchForwardComposer extends GenericForwardComposer<Component>
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
private final serieDataSource ds = serieDataSource.INSTANCE;
|
||||
private int opacity = 80;
|
||||
|
||||
@Wire
|
||||
private Window searchSerie;
|
||||
|
||||
@Wire
|
||||
protected Textbox searchText;
|
||||
|
||||
@Wire
|
||||
protected Textbox searchYear;
|
||||
|
||||
@Wire
|
||||
protected Listbox resultList;
|
||||
|
||||
@Wire
|
||||
protected Button searchButton;
|
||||
|
||||
@Wire
|
||||
protected Button cancelButton;
|
||||
|
||||
@Override
|
||||
public void doAfterCompose(Component comp) throws Exception
|
||||
{
|
||||
super.doAfterCompose(comp);
|
||||
|
||||
int hD = (int) self.getDesktop().getAttribute("desktopHeight");
|
||||
int wD = (int) self.getDesktop().getAttribute("desktopWidth");
|
||||
|
||||
searchSerie.setWidth(wD - 10 + "px");
|
||||
searchSerie.setHeight(hD - 10 + "px");
|
||||
|
||||
SortedMap<Integer, Listheader> listHeader = new TreeMap<>();
|
||||
|
||||
ListModelList resultListModel = new ListModelList();
|
||||
resultList.setModel(resultListModel);
|
||||
resultList.setAttribute("listModelList", resultListModel);
|
||||
|
||||
resultList.getListhead().getChildren().clear();
|
||||
Listhead head = resultList.getListhead();
|
||||
Listheader selected = new Listheader("");
|
||||
Listheader serieName = new Listheader("TV Show Name");
|
||||
Listheader firstAired = new Listheader("First Aired");
|
||||
Listheader overview = new Listheader("Overview");
|
||||
|
||||
selected.setHflex("min");
|
||||
serieName.setHflex("min");
|
||||
firstAired.setHflex("min");
|
||||
overview.setHflex("min");
|
||||
|
||||
head.appendChild(selected);
|
||||
head.appendChild(serieName);
|
||||
head.appendChild(firstAired);
|
||||
head.appendChild(overview);
|
||||
|
||||
serieResultRenderer renderer = new serieResultRenderer();
|
||||
resultList.setItemRenderer(renderer);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,194 @@
|
||||
package at.windesign.application.serie;
|
||||
|
||||
import at.windesign.application.movie.movieData;
|
||||
import com.omertron.themoviedbapi.MovieDbException;
|
||||
import com.omertron.themoviedbapi.TheMovieDbApi;
|
||||
import com.omertron.themoviedbapi.enumeration.SearchType;
|
||||
import com.omertron.themoviedbapi.model.movie.MovieInfo;
|
||||
import com.omertron.themoviedbapi.model.tv.TVBasic;
|
||||
import com.omertron.themoviedbapi.results.ResultList;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.yamj.api.common.http.SimpleHttpClientBuilder;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.Execution;
|
||||
import org.zkoss.zk.ui.Executions;
|
||||
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 java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.sql.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class serieSearchSelectorComposer extends SelectorComposer<Component>
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
private Listbox m_serieList;
|
||||
|
||||
@Wire
|
||||
private Window searchSerie;
|
||||
|
||||
@Wire
|
||||
protected Textbox searchText;
|
||||
|
||||
@Wire
|
||||
protected Textbox searchYear;
|
||||
|
||||
@Wire
|
||||
protected Listbox resultList;
|
||||
|
||||
@Override
|
||||
public void doAfterCompose(Component comp) throws Exception
|
||||
{
|
||||
super.doAfterCompose(comp);
|
||||
|
||||
final Execution execution = Executions.getCurrent();
|
||||
|
||||
if(execution.getArg().containsKey("serieList"))
|
||||
m_serieList = (Listbox) execution.getArg().get("serieList");
|
||||
}
|
||||
|
||||
@Listen("onClick = #searchButton")
|
||||
public void doSearch()
|
||||
{
|
||||
try
|
||||
{
|
||||
search();
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@Listen("onClick = #saveButton")
|
||||
public void save() throws FileNotFoundException
|
||||
{
|
||||
ListModelList resultListModel = (ListModelList) resultList.getModel();
|
||||
List<serieData> dataList = resultListModel.getInnerList();
|
||||
|
||||
for(int index = 0; index < resultListModel.size(); index++)
|
||||
{
|
||||
Listitem item = resultList.getItemAtIndex(index);
|
||||
|
||||
if(item != null)
|
||||
{
|
||||
Listcell cell = (Listcell) item.getChildren().get(0);
|
||||
|
||||
if(cell != null)
|
||||
{
|
||||
Checkbox box = (Checkbox) cell.getChildren().get(0);
|
||||
|
||||
if(box != null)
|
||||
{
|
||||
if(box.isChecked())
|
||||
{
|
||||
serieData data = dataList.get(index);
|
||||
serieData newSerie = new serieData();
|
||||
|
||||
try
|
||||
{
|
||||
newSerie.fromTMDB(data.getSeriesID());
|
||||
newSerie.save();
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
OutputStream tempFile = new FileOutputStream("redir");
|
||||
PrintStream printStream = new PrintStream(tempFile);
|
||||
printStream.print("serie");
|
||||
printStream.close();
|
||||
|
||||
Executions.sendRedirect("");
|
||||
}
|
||||
searchSerie.onClose();
|
||||
}
|
||||
|
||||
@Listen("onClick = #cancelButton")
|
||||
public void cancel()
|
||||
{
|
||||
searchSerie.onClose();
|
||||
}
|
||||
|
||||
public void search() throws MovieDbException
|
||||
{
|
||||
int maxPage = 2;
|
||||
int page;
|
||||
|
||||
HttpClient httpClient;
|
||||
|
||||
httpClient = new SimpleHttpClientBuilder().build();
|
||||
|
||||
TheMovieDbApi api = new TheMovieDbApi("a33271b9e54cdcb9a80680eaf5522f1b", httpClient);
|
||||
|
||||
String sText = searchText.getText();
|
||||
String sYearT = searchYear.getText();
|
||||
int sYear;
|
||||
|
||||
if(sYearT.isEmpty())
|
||||
sYear = 0;
|
||||
else
|
||||
sYear = Integer.parseInt(sYearT);
|
||||
|
||||
if(sText.isEmpty())
|
||||
return;
|
||||
|
||||
serieData serie;
|
||||
ListModelList resultListModel = (ListModelList) resultList.getModel();
|
||||
|
||||
resultListModel.clear();
|
||||
|
||||
for(page = 1; page <= maxPage; page++)
|
||||
{
|
||||
ResultList<TVBasic> series = api.searchTV(sText, page, "de-DE", sYear, SearchType.PHRASE);
|
||||
if(series.getResults().size() == 0)
|
||||
break;
|
||||
|
||||
for(TVBasic resultSerie : series.getResults())
|
||||
{
|
||||
if(!exist(resultSerie.getId()))
|
||||
{
|
||||
serie = new serieData();
|
||||
|
||||
serie.setSeriesID(resultSerie.getId());
|
||||
serie.setSeriesName(resultSerie.getName());
|
||||
serie.setSeriesFirstAired(string2Date(resultSerie.getFirstAirDate()));
|
||||
serie.setSeriesOverview(resultSerie.getOverview());
|
||||
|
||||
resultListModel.add(serie);
|
||||
serie.setModel(resultListModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Date string2Date(String strDate)
|
||||
{
|
||||
if(strDate == null)
|
||||
return new Date(1900, 1, 1);
|
||||
else if(strDate.isEmpty())
|
||||
return new Date(1900, 1, 1);
|
||||
else
|
||||
return Date.valueOf(strDate);
|
||||
}
|
||||
|
||||
boolean exist(int id)
|
||||
{
|
||||
ListModelList list = (ListModelList) m_serieList.getModel();
|
||||
List<serieData> dataList = list.getInnerList();
|
||||
|
||||
for(serieData data : dataList)
|
||||
{
|
||||
if(id == data.getSeriesID())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -15,12 +15,12 @@
|
||||
>
|
||||
</button>
|
||||
<button width="100%"
|
||||
id="addTVShow"
|
||||
label="add TV Show"
|
||||
id="searchSerie"
|
||||
label="search TV Show"
|
||||
>
|
||||
</button>
|
||||
<button width="100%"
|
||||
id="discoverTVShow"
|
||||
id="discoverSerie"
|
||||
label="discover TV Show"
|
||||
>
|
||||
</button>
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<window id="searchSerie"
|
||||
title="search TV Shows"
|
||||
contentStyle="overflow:auto"
|
||||
border="normal"
|
||||
apply="at.windesign.application.serie.serieSearchForwardComposer,at.windesign.application.serie.serieSearchSelectorComposer"
|
||||
width="500px"
|
||||
height="500px">
|
||||
<groupbox id="search"
|
||||
>
|
||||
<style>
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: 10fr 2fr 1fr;
|
||||
grid-gap: 10px;
|
||||
justify-items: center;
|
||||
}
|
||||
</style>
|
||||
|
||||
<nodom>
|
||||
<div sclass="grid"
|
||||
width="100%">
|
||||
<label value="*Search"/>
|
||||
<label value="Year"/>
|
||||
<label value=""/>
|
||||
<textbox id="searchText"
|
||||
width="100%"
|
||||
tabindex="2"/>
|
||||
<textbox id="searchYear"
|
||||
width="100%"
|
||||
tabindex="3"/>
|
||||
<button id="searchButton"
|
||||
label="search"/>
|
||||
</div>
|
||||
</nodom>
|
||||
</groupbox>
|
||||
<listbox id="resultList"
|
||||
multiple="true"
|
||||
autopaging="true"
|
||||
vflex="true">
|
||||
<listhead sizable="true"
|
||||
>
|
||||
</listhead>
|
||||
</listbox>
|
||||
<hlayout>
|
||||
<button id="saveButton"
|
||||
label="save"/>
|
||||
<button id="cancelButton"
|
||||
label="cancel"/>
|
||||
</hlayout>
|
||||
</window>
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user