From ba94cdec74e0382112245244678be58ebc68ed63 Mon Sep 17 00:00:00 2001 From: =?utf8?q?D=C3=A9nes=20Horv=C3=A1th?= Date: Wed, 14 Aug 2019 12:49:13 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31482 --- .../zk/model/MaestroJobListModel.java | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroJobListModel.java diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroJobListModel.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroJobListModel.java new file mode 100644 index 00000000..cd77d228 --- /dev/null +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/MaestroJobListModel.java @@ -0,0 +1,133 @@ +package user.jobengine.zk.model; + +import java.util.Collection; +import java.util.Map; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.zkoss.bind.annotation.BindingParam; +import org.zkoss.bind.annotation.Command; +import org.zkoss.bind.annotation.Init; +import org.zkoss.bind.annotation.NotifyChange; +import org.zkoss.zk.ui.Executions; +import org.zkoss.zul.ListModelList; +import org.zkoss.zul.Window; + +import com.ibm.nosql.json.api.BasicDBObject; + +import user.commons.ListUtils; +import user.jobengine.db.ItemManagerData.SignalType; +import user.jobengine.server.IJobChangedListener; +import user.jobengine.server.IJobEngine; +import user.jobengine.server.IJobRuntime; +import user.jobengine.server.JobChangedEvent; +import user.jobengine.server.JobEngine; +import user.jobengine.zk.util.SessionUtil; + +public class MaestroJobListModel extends AsyncBaseModel implements IJobChangedListener { + private static final Logger logger = LogManager.getLogger(); + private ListModelList jobList = new ListModelList(); + private IJobEngine jobEngine = null; + private int newPriority = 1; + private Collection selectedJobs; + private String currentUser = SessionUtil.getUserPrincipal().getAccount(); + + @Command + public void executeJob() { + String template = "/pages/jobselector.zul"; + Window window = (Window) Executions.createComponents(template, null, ListUtils.asMap("jobEngine", jobEngine)); + window.doModal(); + } + + public ListModelList getJobList() { + return jobList; + } + + public int getNewPriority() { + return newPriority; + } + + public Collection getSelectedJobs() { + return selectedJobs; + } + + @Init + public void init() { + try { + this.jobEngine = JobEngine.getInstance(); + + if (jobEngine == null) + throw new Exception("Internal error! JobEngine instance unavailable."); + + SessionUtil.registerJobChangedListener(this); + + initializeList(); + + } catch (Exception e) { + logger.catching(e); + } + } + + private void initializeList() { + jobList.clear(); + Map jobMap = jobEngine.getJobs(); + for (int i=0;i onJobCreated(job)); + return; + } + if (jobEvent.getSignalType().equals(SignalType.DELETE)) { + registerTask(() -> onJobDeleted(job)); + return; + } + if (jobEvent.getSignalType().equals(SignalType.UPDATE)) { + registerTask(() -> onJobUpdated(job)); + return; + } + } + + private void onJobCreated(IJobRuntime job) { + jobList.add(job); + notifyChange("jobList"); + } + + private void onJobDeleted(IJobRuntime job) { + jobList.remove(job); + notifyChange("jobList"); + } + + private void onJobUpdated(IJobRuntime job) { + jobList.notifyChange(job); + } + + public void setJobList(ListModelList jobList) { + this.jobList = jobList; + } + + + public void setNewPriority(int newPriority) { + this.newPriority = newPriority; + } + + @NotifyChange({ "updatePriorityDisabled" }) + public void setSelectedJobs(Collection selectedJobs) { + this.selectedJobs = selectedJobs; + } + + @Command + public void showParameters(@BindingParam("item") IJobRuntime jobRuntime) { + String template = "/pages/jobparameters.zul"; + Window window = (Window) Executions.createComponents(template, null, ListUtils.asMap("jobRuntime", jobRuntime)); + window.doModal(); + } +} -- 2.54.0