context menu

This commit is contained in:
2021-03-01 11:39:18 +01:00
parent ec30149c2e
commit 0e7bcac7d1
15 changed files with 361 additions and 72 deletions
@@ -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<PersonBasic> personList)
{
String str = "";
@@ -84,21 +84,31 @@ public class movieDetailsSelectorComposer extends SelectorComposer<Component>
{
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<Component>
movie.setLocalPath(localPath.getValue());
movie.setResolution(resolution.getValue());
movie.setState(progress.getSelectedIndex()+1);
movie.setState(progress.getSelectedIndex() + 1);
return movie;
}
@@ -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<Component>
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;
}
}
}
);
}
}
@@ -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<PersonBasic> personList)
{
String str = "";
@@ -93,21 +93,29 @@ public class serieDetailsSelectorComposer extends SelectorComposer<Component>
{
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()
@@ -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<Component>
{
@@ -74,4 +79,103 @@ public class serieListSelectorComposer extends SelectorComposer<Component>
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<Integer, seasonData> seasons = s.getSeasons();
for(seasonData season : seasons.values())
{
SortedMap<Integer, episodeData> 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;
}
}
}
);
}
}
+1 -1
View File
@@ -9,7 +9,7 @@
>
<tabbox id="tabbox"
height="100%"
orient="left"
orient="top"
>
<tabs id="tabs"
width="120px"
+16 -1
View File
@@ -19,14 +19,29 @@
>
</button>
</hbox>
<listbox id="movieList"
multiple="true"
autopaging="true"
vflex="true">
vflex="true"
context="moviePopup"
>
<listhead sizable="true"
>
</listhead>
<!-- https://stackoverflow.com/questions/28629458/display-image-from-db-on-zk-zul-listbox-->
<!-- https://www.zkoss.org/zksandbox/#u6-->
</listbox>
<menupopup id="moviePopup">
<menu label="set status">
<menupopup>
<menuitem label="set Init"/>
<menuitem label="set Progress"/>
<menuitem label="set Done"/>
</menupopup>
</menu>
<menuitem label="update"/>
<menuitem label="delete"/>
</menupopup>
</div>
+48 -36
View File
@@ -1,39 +1,51 @@
<div id="centerSeries"
vflex="true"
apply="at.windesign.application.serie.serieListForwardComposer, at.windesign.application.serie.serieListSelectorComposer"
vflex="true"
apply="at.windesign.application.serie.serieListForwardComposer, at.windesign.application.serie.serieListSelectorComposer"
>
<vlayout>
<hbox width="100%" widths="25%,25%,25%,25%" pack="stretch">
<button width="100%"
id="updateAll"
label="update all"
>
</button>
<button width="100%"
id="updateOpen"
label="update open"
>
</button>
<button width="100%"
id="searchSerie"
label="search TV Show"
>
</button>
<button width="100%"
id="discoverSerie"
label="discover TV Show"
>
</button>
</hbox>
</vlayout>
<listbox id="seriesList"
multiple="true"
autopaging="true"
vflex="true">
<listhead sizable="true"
>
</listhead>
<!-- https://stackoverflow.com/questions/28629458/display-image-from-db-on-zk-zul-listbox-->
<!-- https://www.zkoss.org/zksandbox/#u6-->
</listbox>
<vlayout>
<hbox width="100%" widths="25%,25%,25%,25%" pack="stretch">
<button width="100%"
id="updateAll"
label="update all"
>
</button>
<button width="100%"
id="updateOpen"
label="update open"
>
</button>
<button width="100%"
id="searchSerie"
label="search TV Show"
>
</button>
<button width="100%"
id="discoverSerie"
label="discover TV Show"
>
</button>
</hbox>
</vlayout>
<listbox id="seriesList"
multiple="true"
autopaging="true"
vflex="true"
context="seriePopup"
>
<listhead sizable="true"
>
</listhead>
<!-- https://stackoverflow.com/questions/28629458/display-image-from-db-on-zk-zul-listbox-->
<!-- https://www.zkoss.org/zksandbox/#u6-->
</listbox>
<menupopup id="seriePopup">
<menu label="set status">
<menupopup>
<menuitem label="set all Progress to Done"/>
</menupopup>
</menu>
<menuitem label="update"/>
<menuitem label="delete"/>
</menupopup>
</div>
@@ -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