1 package user.jobengine.zk.model;
\r
3 import java.util.ArrayList;
\r
4 import java.util.List;
\r
5 import java.util.Map;
\r
7 import org.apache.commons.lang.StringUtils;
\r
8 import org.apache.logging.log4j.LogManager;
\r
9 import org.apache.logging.log4j.Logger;
\r
10 import org.zkoss.bind.annotation.AfterCompose;
\r
11 import org.zkoss.bind.annotation.Command;
\r
12 import org.zkoss.bind.annotation.ContextParam;
\r
13 import org.zkoss.bind.annotation.ContextType;
\r
14 import org.zkoss.bind.annotation.Init;
\r
15 import org.zkoss.bind.annotation.NotifyChange;
\r
16 import org.zkoss.zk.ui.Component;
\r
17 import org.zkoss.zk.ui.select.Selectors;
\r
18 import org.zkoss.zk.ui.select.annotation.Wire;
\r
19 import org.zkoss.zul.ListModelList;
\r
20 import org.zkoss.zul.Messagebox;
\r
21 import org.zkoss.zul.Window;
\r
23 import user.jobengine.db.ArchivedMedia;
\r
24 import user.jobengine.db.ItemManager;
\r
25 import user.jobengine.db.Store;
\r
26 import user.jobengine.server.IJobEngine;
\r
27 import user.jobengine.server.JobEngine;
\r
28 import user.jobengine.server.scheduler.ScheduledJob;
\r
29 import user.jobengine.zk.util.SessionUtil;
\r
31 public class AlternateRetrieveBatchSelectorModel extends BaseModel {
\r
32 private static final Logger logger = LogManager.getLogger();
\r
33 private static final String TARGETSTORENAME = "targetStoreName";
\r
34 private static final String BASKET = "basket";
\r
35 private static final String RECIPIENT = "recipient";
\r
36 private static final String RESTORE = "Visszatöltés";
\r
38 private static final String JOBTEMPLATE = "register-user-restore.xml";
\r
40 private ListModelList<Store> stores = new ListModelList<>();
\r
42 private List<ArchivedMedia> selectedItems;
\r
44 private boolean disabled;
\r
46 private Window wndRetrieveBatch;
\r
48 private String houseId;
\r
49 private String email;
\r
50 private MenuModel menuModel;
\r
53 public void afterCompose(@ContextParam(ContextType.VIEW) Component view) {
\r
54 menuModel = (MenuModel) SessionUtil.getAttribute(SessionUtil.MENUMODEL);
\r
55 Selectors.wireComponents(view, this, false);
\r
59 public void close() {
\r
60 wndRetrieveBatch.detach();
\r
64 @NotifyChange("basketItems")
\r
65 public void execute() {
\r
67 if (stores.getSelection().isEmpty())
\r
68 throw new Exception("A cél megadása kötelező.");
\r
70 if (StringUtils.isBlank(email))
\r
71 throw new Exception("Az értesítési cím megadása kötelező.");
\r
73 IJobEngine jobEngine = JobEngine.getInstance();
\r
74 ScheduledJob scheduledJob = jobEngine.getScheduledJob(JOBTEMPLATE);
\r
75 if (scheduledJob == null)
\r
76 throw new Exception("A sablon nem található: " + JOBTEMPLATE);
\r
78 //String escortStoreName, String targetStoreName, List<ArchivedMedia> basket, String recipient
\r
79 Map<String, Object> parameters = scheduledJob.getJobParameters();
\r
80 parameters.put(TARGETSTORENAME, stores.getSelection().iterator().next().getName());
\r
81 parameters.put(RECIPIENT, email);
\r
82 parameters.put(BASKET, new ArrayList<ArchivedMedia>(getBasketItems()));
\r
83 jobEngine.submit(JOBTEMPLATE, RESTORE, parameters);
\r
85 menuModel.clearBasket();
\r
86 wndRetrieveBatch.detach();
\r
87 } catch (Exception e) {
\r
88 Messagebox.show(e.getMessage());
\r
94 public List<ArchivedMedia> getBasketItems() {
\r
95 setDisabled(menuModel.getBasketItems() == null || menuModel.getBasketItems().size() == 0);
\r
96 return menuModel.getBasketItems();
\r
99 public String getEmail() {
\r
103 public String getHouseId() {
\r
107 public List<ArchivedMedia> getSelectedItems() {
\r
108 return selectedItems;
\r
111 public ListModelList<Store> getStores() {
\r
116 public void init() {
\r
117 setEmail(SessionUtil.getUserPrincipal().getEmail());
\r
118 List<Store> targetStores = ItemManager.getInstance().getTargetStores();
\r
119 if (targetStores != null)
\r
120 getStores().addAll(targetStores);
\r
123 public boolean isDisabled() {
\r
128 @NotifyChange({ "basketItems", "selectedItems" })
\r
129 public void remove() {
\r
130 menuModel.removeBasketItems(selectedItems);
\r
133 public void setDisabled(boolean disabled) {
\r
134 this.disabled = disabled;
\r
137 public void setEmail(String email) {
\r
138 this.email = email;
\r
141 public void setHouseId(String houseId) {
\r
142 this.houseId = houseId;
\r
145 public void setSelectedItems(List<ArchivedMedia> selectedItems) {
\r
146 this.selectedItems = selectedItems;
\r
149 public void setStores(ListModelList<Store> stores) {
\r
150 this.stores = stores;
\r