From: Omar Sweidan Date: Fri, 10 Jun 2022 16:36:09 +0000 (+0200) Subject: Új elem (step) hozzáadása a folyamatszerkesztőben X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=ce4623aaed6fe1805b7ca9e81678d73bbe6b4920;p=mediacube.git Új elem (step) hozzáadása a folyamatszerkesztőben --- diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java index c3ef4cd7..3b1bd739 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java @@ -44,4 +44,5 @@ public interface IJobEngineConfiguration { boolean scheduleExists(String name); + ArrayList getSteps(); } diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java index 0b8f3155..2e984ae6 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java @@ -10,9 +10,13 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import java.nio.file.FileSystems; +import java.nio.file.FileVisitResult; +import java.nio.file.FileVisitor; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.DosFileAttributeView; import java.util.AbstractMap.SimpleEntry; import java.util.ArrayList; @@ -65,6 +69,7 @@ public class JobEngineConfiguration implements IJobEngineConfiguration { private final Map executors = new LinkedHashMap(); private final Map programs = new LinkedHashMap(); private final ArrayList> schedules = new ArrayList>(); + private ArrayList steps = new ArrayList(); private URLClassLoader stepsClassLoader; private boolean resetStepClassLoader; private GroovyClassLoader groovyClassLoader; @@ -248,6 +253,41 @@ public class JobEngineConfiguration implements IJobEngineConfiguration { public void load(IJobEngine jobEngine, boolean autoStart) throws Exception { loadExecutors(jobEngine, autoStart); loadSchedules(); + loadSteps(); + } + + private void loadSteps() { + FileVisitor visitor = new SimpleFileVisitor() { + + @Override + public FileVisitResult visitFileFailed(Path path, IOException exc) throws IOException { + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) throws IOException { + steps.add(path.getFileName().toString().replace(".java", "")); + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { + return FileVisitResult.CONTINUE; + } + }; + + try { + Files.walkFileTree(Paths.get(DIR_STEPS), visitor); + } catch (IOException e) { + logger.info("e: {}", e.getCause().toString()); + } catch (Exception e) { + logger.info("e: {}", e.getCause().toString()); + } } @Override @@ -602,4 +642,12 @@ public class JobEngineConfiguration implements IJobEngineConfiguration { resetStepClassLoader = true; } + public ArrayList getSteps() { + return steps; + } + + public void setSteps(ArrayList steps) { + this.steps = steps; + } + } diff --git a/server/user.mediacube.gui/pages/processVisualizer2.zul b/server/user.mediacube.gui/pages/processVisualizer2.zul index e6c1d38a..571495fb 100644 --- a/server/user.mediacube.gui/pages/processVisualizer2.zul +++ b/server/user.mediacube.gui/pages/processVisualizer2.zul @@ -1,11 +1,19 @@ +
+ + + +
+
-
diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/model/JobEditorModel2.java b/server/user.mediacube.gui/src/user/jobengine/zk/model/JobEditorModel2.java index 7cd43376..cebcd218 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/model/JobEditorModel2.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/model/JobEditorModel2.java @@ -60,6 +60,7 @@ public class JobEditorModel2 extends BaseModel { private BasicDBObject editingJob = new BasicDBObject(); private ListModelList selectedJobs; private ArrayList dataTypes = new ArrayList(); + private ArrayList steps = new ArrayList(); private int numberOfNewParams = 1; @AfterCompose @@ -154,7 +155,6 @@ public class JobEditorModel2 extends BaseModel { @NotifyChange({ "editingJob", "selectedJob" }) public void setSelectedJob(BasicDBObject selectedJob) { - logger.info("setSelectedJob"); if (selectedJob == null) { this.selectedJob = null; this.editingJob = null; @@ -197,6 +197,7 @@ public class JobEditorModel2 extends BaseModel { if (jobEngine == null) jobEngine = ComponentBinder.getJobEngine(); + steps = jobEngine.getJobEngineConfiguration().getSteps(); initJobList(); } @@ -308,4 +309,12 @@ public class JobEditorModel2 extends BaseModel { dataTypes.add("com.ibm.nosql.json.api.BasicDBList"); dataTypes.add("com.ibm.nosql.json.api.BasicDBObject"); } + + public ArrayList getSteps() { + return steps; + } + + public void setSteps(ArrayList steps) { + this.steps = steps; + } } \ No newline at end of file diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/model/JobFlowChartModel.java b/server/user.mediacube.gui/src/user/jobengine/zk/model/JobFlowChartModel.java index e82b2d5d..65a42888 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/model/JobFlowChartModel.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/model/JobFlowChartModel.java @@ -13,6 +13,7 @@ import org.zkoss.json.JSONArray; import org.zkoss.json.JSONObject; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.InputEvent; import org.zkoss.zk.ui.event.SelectEvent; import org.zkoss.zk.ui.select.Selectors; import org.zkoss.zk.ui.util.Clients; @@ -40,6 +41,7 @@ public class JobFlowChartModel extends BaseModel { private static final Logger logger = LogManager.getLogger(); private String selectedTabID = "tab0"; private BasicDBObject selectedJob; + private String selectedNewStep = ""; @AfterCompose public void afterCompose(@ContextParam(ContextType.VIEW) Component view) { @@ -69,6 +71,21 @@ public class JobFlowChartModel extends BaseModel { logger.info("converted document: {}", XMLUtils.getStringFromDocument(document)); } + @Command + public void addNewStep() { + logger.info("addNewStep"); + if (!selectedNewStep.isEmpty()) { + Clients.evalJavaScript("model.addNode(new model.node(100, 100, 100, 100, connectorsForStep, \"" + + selectedNewStep + "\", \"\", \"RectangleWithGradient\", null, null));\r\n model.draw();"); + } + } + + @GlobalCommand + public void selectNewStep(@BindingParam("evt") InputEvent event) { + logger.info("selectNewStep"); + selectedNewStep = event.getValue(); + } + @Command public void onDeletePressed(@ContextParam(ContextType.TRIGGER_EVENT) Event event) { Clients.evalJavaScript("deleteSelectedElement();");