import org.zkoss.zk.ui.select.Selectors;\r
import org.zkoss.zk.ui.select.annotation.Wire;\r
import org.zkoss.zk.ui.util.Clients;\r
+import org.zkoss.zul.Button;\r
+import org.zkoss.zul.Checkbox;\r
import org.zkoss.zul.ListModelList;\r
import org.zkoss.zul.Messagebox;\r
+import org.zkoss.zul.Textbox;\r
import org.zkoss.zul.Window;\r
\r
import com.ibm.nosql.json.api.BasicDBObject;\r
import user.jobengine.gui.ComponentBinder;\r
import user.jobengine.server.IJobEngine;\r
import user.jobengine.server.IJobRuntime;\r
+import user.jobengine.server.ast.CallJobStepCommand;\r
+import user.jobengine.server.ast.CommandSequence;\r
+import user.jobengine.server.ast.DeclarationSequence;\r
+import user.jobengine.server.ast.InputParameter;\r
+import user.jobengine.server.ast.InputParameterSequence;\r
+import user.jobengine.server.ast.JobTemplate;\r
+import user.jobengine.server.ast.OutputParameter;\r
+import user.jobengine.server.ast.OutputParameterSequence;\r
+import user.jobengine.server.ast.ParameterDeclaration;\r
+import user.jobengine.server.ast.ParameterExpression;\r
+import user.jobengine.server.ast.VariableDeclaration;\r
+import user.jobengine.server.ast.VariableName;\r
import user.jobengine.server.scheduler.ScheduledJob;\r
import user.jobengine.server.scheduler.SchedulerService;\r
\r
private static final String CRONEXPRESSION = "cronexpression";\r
@Wire("#resultWin")\r
private Window resultWin;\r
+ @Wire("#SaveButton")\r
+ private Button saveButton;\r
+ @Wire("#nameTextbox")\r
+ private Textbox nameTextbox;\r
+ @Wire("#templateNameTextbox")\r
+ private Textbox templateNameTextbox;\r
+ @Wire("#activeCheckbox")\r
+ private Checkbox activeCheckbox;\r
+ @Wire("#executeImmediateCheckbox")\r
+ private Checkbox executeImmediateCheckbox;\r
+ @Wire("#cronExpressionTextbox")\r
+ private Textbox cronExpressionTextbox;\r
+ @Wire("#parameterNameTextbox")\r
+ private Textbox parameterNameTextbox;\r
+ @Wire("#parameterValueTextbox")\r
+ private Textbox parameterValueTextbox;\r
+ @Wire("#parameterTypeTextbox")\r
+ private Textbox parameterTypeTextbox;\r
+ private boolean processDataChanged = false;\r
private IJobEngine jobEngine;\r
private ListModelList<BasicDBObject> jobs;\r
private BasicDBObject selectedJob;\r
+ private String oldSelectedJob;\r
+ private BasicDBObject selectedJob2;\r
private ListModelList<BasicDBObject> selectedJobs;\r
\r
@AfterCompose\r
close();\r
}\r
\r
+ @Command\r
+ public void saveButtonClicked() {\r
+ if (processDataChanged) {\r
+ saveData();\r
+ }\r
+ processDataChanged = false;\r
+ saveButton.setDisabled(true);\r
+ }\r
+\r
+ private void saveData() {\r
+ selectedJob.remove("name");\r
+ selectedJob.append("name", nameTextbox.getValue());\r
+ selectedJob.remove("template");\r
+ selectedJob.append("template", templateNameTextbox.getValue());\r
+ selectedJob.remove("active");\r
+ selectedJob.append("active", activeCheckbox.isChecked());\r
+ selectedJob.remove("executeimmediate");\r
+ selectedJob.append("executeimmediate", executeImmediateCheckbox.isChecked());\r
+ selectedJob.remove("cronexpression");\r
+ selectedJob.append("cronexpression", cronExpressionTextbox.getValue());\r
+ }\r
+\r
+ @Command\r
+ public void onNameChanged() {\r
+ setProcessDataChanged(true);\r
+ selectedJob.remove("name");\r
+ selectedJob.append("name", nameTextbox.getValue());\r
+ saveButton.setDisabled(false);\r
+ logger.info("onNameChanged()");\r
+ }\r
+\r
+ @Command\r
+ public void onNameTextboxClicked() {\r
+ oldSelectedJob = selectedJob.get("name").toString();\r
+ }\r
+\r
+ @Command\r
+ public void onTemplateNameChanged() {\r
+ setProcessDataChanged(true);\r
+ selectedJob.remove("templateName");\r
+ selectedJob.append("templateName", templateNameTextbox.getValue());\r
+ saveButton.setDisabled(false);\r
+ logger.info("onTemplateNameChanged()");\r
+ }\r
+\r
+ @Command\r
+ public void onActiveChanged() {\r
+ setProcessDataChanged(true);\r
+ selectedJob.remove("active");\r
+ selectedJob.append("active", activeCheckbox.isChecked());\r
+ saveButton.setDisabled(false);\r
+ logger.info("onActiveCheckBoxChanged()");\r
+ }\r
+\r
+ @Command\r
+ public void onExecuteImmediateChanged() {\r
+ setProcessDataChanged(true);\r
+ selectedJob.remove("executeimmediate");\r
+ selectedJob.append("executeimmediate", executeImmediateCheckbox.isChecked());\r
+ saveButton.setDisabled(false);\r
+ logger.info("onExecuteImmediateCheckBoxChanged()");\r
+ }\r
+\r
+ @Command\r
+ public void onCronExpressionChanged() {\r
+ setProcessDataChanged(true);\r
+ selectedJob.remove("cronexpression");\r
+ selectedJob.append("cronexpression", cronExpressionTextbox.getValue());\r
+ saveButton.setDisabled(false);\r
+ logger.info("onCronExpressionChangedChanged()");\r
+ }\r
+\r
+// @Command\r
+// public void onParameterNameChanged() {\r
+// setProcessDataChanged(!isProcessDataChanged());\r
+// BasicDBList parameters = (BasicDBList) selectedJob.get("parameters");\r
+// selectedJob.remove("cronexpression");\r
+// selectedJob.append("cronexpression", parameterNameTextbox.getValue());\r
+// saveButton.setDisabled(false);\r
+// logger.info("onParameterNameChanged()");\r
+// }\r
+//\r
+// @Command\r
+// public void onParameterValueChanged() {\r
+// setProcessDataChanged(!isProcessDataChanged());\r
+// BasicDBList parameters = (BasicDBList) selectedJob.get("parameters");\r
+// selectedJob.remove("cronexpression");\r
+// selectedJob.append("cronexpression", parameterValueTextbox.getValue());\r
+// saveButton.setDisabled(false);\r
+// logger.info("onParameterValueChanged()");\r
+// }\r
+//\r
+// @Command\r
+// public void onParameterTypeChanged() {\r
+// setProcessDataChanged(!isProcessDataChanged());\r
+// BasicDBList parameters = (BasicDBList) selectedJob.get("parameters");\r
+// selectedJob.remove("cronexpression");\r
+// selectedJob.append("cronexpression", parameterTypeTextbox.getValue());\r
+// saveButton.setDisabled(false);\r
+// logger.info("onParameterTypeChanged()");\r
+// }\r
+\r
private void toast(IJobRuntime runtime) {\r
Clients.evalJavaScript(\r
String.format("showToast('<b>%s</b> elindĂtva.</br>ID %d')", runtime.getName(), runtime.getId()));\r
return selectedJobs;\r
}\r
\r
+ private boolean isProcessDataChanged() {\r
+ return processDataChanged;\r
+ }\r
+\r
+ private void setProcessDataChanged(boolean processDataChanged) {\r
+ this.processDataChanged = processDataChanged;\r
+ }\r
+\r
@Init\r
public void init() {\r
jobEngine = (IJobEngine) Executions.getCurrent().getArg().get("jobEngine");\r
this.selectedJobs = selectedJobs;\r
}\r
\r
+ @Command\r
+ public void saveSchedule() throws Exception {\r
+ BasicDBObject scheduleToSave = collectProcessScheduleSettings();\r
+ jobEngine.getJobEngineConfiguration().saveSchedule(selectedJob);\r
+ }\r
+\r
+ @Command\r
+ public void saveTemplateXml() throws Exception {\r
+ logger.info("saveTemplateXml()");\r
+ if (selectedJob != null && isProcessDataChanged()) {\r
+ JobTemplate jobTemplateToSave2 = collectProcessTemplateSettings();\r
+ jobEngine.getJobEngineConfiguration().saveTemplateXml(oldSelectedJob, jobTemplateToSave2);\r
+ }\r
+ }\r
+\r
+ private JobTemplate createDummyTemplate() {\r
+ JobTemplate dummy = new JobTemplate();\r
+ dummy.setName("default-process");\r
+ dummy.setDescription("ez egy description");\r
+\r
+ DeclarationSequence ds = new DeclarationSequence();\r
+ ds.addDeclaration(new ParameterDeclaration("path1", "java.lang.String"));\r
+ ds.addDeclaration(new VariableDeclaration("path2", "java.lang.String"));\r
+\r
+ CallJobStepCommand cjsc = new CallJobStepCommand();\r
+ cjsc.setType("CreateMissingLowresStep.java");\r
+ cjsc.setWeight(1);\r
+ InputParameterSequence ips = new InputParameterSequence();\r
+ ips.addParameter(new InputParameter(new ParameterExpression("path1")));\r
+ cjsc.setInputParameterSequence(ips);\r
+ OutputParameterSequence ops = new OutputParameterSequence();\r
+ ops.addParameter(new OutputParameter(new VariableName("path2")));\r
+ cjsc.setOutputParameterSequence(ops);\r
+\r
+ CommandSequence cs = new CommandSequence();\r
+ cs.addCommand(cjsc);\r
+\r
+ dummy.setDeclarationSequence(ds);\r
+ dummy.setCommandSequence(cs);\r
+\r
+ return dummy;\r
+ }\r
+\r
+ private JobTemplate collectProcessTemplateSettings() {\r
+ JobTemplate jobTemplate = new JobTemplate();\r
+\r
+ jobTemplate.setName(nameTextbox.getValue());\r
+ jobTemplate.setFileName(templateNameTextbox.getValue());\r
+\r
+ return jobTemplate;\r
+ }\r
+\r
+ private BasicDBObject collectProcessScheduleSettings() {\r
+ return null;\r
+ }\r
+\r
+ @Command\r
+ public void duplicateProcess() {\r
+ JobTemplate processToDuplicate = collectProcessTemplateSettings();\r
+// jobEngine.getJobEngineConfiguration().duplicateProcess(selectedJob);\r
+ logger.info("duplicateProcess()");\r
+ }\r
+\r
+ @Command\r
+ public void copyProcessEntry() {\r
+// BasicDBObject scheduleToCopy = collectProcessScheduleSettings();\r
+ jobEngine.getJobEngineConfiguration().copyProcessEntry(selectedJob); // TODO para\r
+ logger.info("copyScheduleEntry()");\r
+ }\r
}
\ No newline at end of file