|
@@ -17,8 +17,10 @@ import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
|
|
+import ua.be.wee.controller.rest.PTController;
|
|
|
import ua.be.wee.model.EnactmentController;
|
|
|
import ua.be.wee.model.nodes.Activity;
|
|
|
import ua.be.wee.model.nodes.Artifact;
|
|
@@ -30,6 +32,7 @@ import ua.be.wee.model.pm.PM;
|
|
|
import ua.be.wee.model.pt.EndActivityEvent;
|
|
|
import ua.be.wee.model.pt.Event;
|
|
|
import ua.be.wee.model.pt.PT;
|
|
|
+import ua.be.wee.model.pt.StartTraceEvent;
|
|
|
import ua.be.wee.model.pt.TraceArtifact;
|
|
|
import ua.be.wee.model.repository.FusekiWrapper;
|
|
|
import ua.be.wee.model.util.Pair;
|
|
@@ -40,6 +43,9 @@ import ua.be.wee.service.FileStorageService;
|
|
|
public class EnactmentControllerMVC {
|
|
|
|
|
|
@Autowired private EnactmentController controller;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PTController ptController;
|
|
|
|
|
|
@Autowired
|
|
|
private Environment env;
|
|
@@ -72,19 +78,37 @@ public class EnactmentControllerMVC {
|
|
|
if (FusekiWrapper.getInstance().testEndpoint()) {
|
|
|
model.addAttribute("error",false);
|
|
|
model.addAttribute("pms", controller.getAllPMs());
|
|
|
+ model.addAttribute("traces",null);
|
|
|
+ model.addAttribute("current", "1");
|
|
|
return "pms";
|
|
|
} else {
|
|
|
model.addAttribute("error",true);
|
|
|
return "index";
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
- @PostMapping("/enactpm")
|
|
|
- public String getPMtoEnact(Model model, @RequestParam String pmiri, HttpServletRequest request) throws Exception {
|
|
|
- if (pmiri.equals("select PM")) {
|
|
|
+
|
|
|
+ @RequestMapping("/gettraces")
|
|
|
+ public String getTraces(Model model, @RequestParam String iri, HttpServletRequest request) throws Exception {
|
|
|
+ List<StartTraceEvent> activeTraces = ptController.getActiveTraces(iri);
|
|
|
+ if (activeTraces != null && activeTraces.size() > 0) {
|
|
|
+ model.addAttribute("traces",activeTraces);
|
|
|
+ } else {
|
|
|
+ model.addAttribute("traces",null);
|
|
|
+ }
|
|
|
+ model.addAttribute("error",false);
|
|
|
+ model.addAttribute("pms", controller.getAllPMs());
|
|
|
+ model.addAttribute("current", iri);
|
|
|
+ return "pms";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @RequestMapping(value="/enactpm", method=RequestMethod.POST, params="action=new")
|
|
|
+ public String getPMtoEnact(Model model, @RequestParam String pmiri, @RequestParam String contTrace, HttpServletRequest request) throws Exception {
|
|
|
+ if ((pmiri.equals("select PM")) || contTrace != null && contTrace.equals("Select Trace")) {
|
|
|
model.addAttribute("error", true);
|
|
|
model.addAttribute("pms", controller.getAllPMs());
|
|
|
+ model.addAttribute("traces",null);
|
|
|
+ model.addAttribute("current", "1");
|
|
|
return "pms";
|
|
|
} else {
|
|
|
PM pm = controller.getPM(pmiri);
|
|
@@ -102,8 +126,60 @@ public class EnactmentControllerMVC {
|
|
|
return "enact";
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @RequestMapping(value="/enactpm", method=RequestMethod.POST, params="action=continue")
|
|
|
+ public String continueEnact(Model model, @RequestParam String pmiri, @RequestParam String contTrace, HttpServletRequest request) throws Exception {
|
|
|
+ if ((pmiri.equals("select PM")) || contTrace != null && contTrace.equals("Select Trace")) {
|
|
|
+ model.addAttribute("error", true);
|
|
|
+ model.addAttribute("pms", controller.getAllPMs());
|
|
|
+ model.addAttribute("traces",null);
|
|
|
+ model.addAttribute("current", "1");
|
|
|
+ return "pms";
|
|
|
+ } else {
|
|
|
+ PM pm = controller.getPM(pmiri);
|
|
|
+ //PT trace = controller.createTrace(pm);
|
|
|
+ List<Event> events = ptController.getEvents(contTrace);
|
|
|
+ PT trace = new PT();
|
|
|
+ trace.setEvents(events);
|
|
|
+ trace.setIri(contTrace);
|
|
|
+ trace.setPmEnacted(pm);
|
|
|
+ List <Node> endActs = new ArrayList<Node>();
|
|
|
+ if (events.size() == 1) {
|
|
|
+ List<Pair<String,String>> iris = controller.findNextNodes(pm.getInitial().getIri());
|
|
|
+ List<PMTrigger> acts = findElements(pm, iris);
|
|
|
+ request.getSession().setAttribute("acts",acts);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ endActs = findEndActs(events);
|
|
|
+ List<Pair<String,String>> iris = controller.findNextNodes(pm.getInitial().getIri());
|
|
|
+ List<PMTrigger> acts = findElements(pm, iris);
|
|
|
+ request.getSession().setAttribute("acts",acts);
|
|
|
+ }
|
|
|
+
|
|
|
+ String previous = findPrevious(events);
|
|
|
+
|
|
|
+ model.addAttribute("error", false);
|
|
|
+ request.getSession().setAttribute("pm", pm);
|
|
|
+ request.getSession().setAttribute("trace", trace);
|
|
|
+ request.getSession().setAttribute("previous", previous);
|
|
|
+ request.getSession().setAttribute("endacts",endActs);
|
|
|
+ model.addAttribute("arts", null);
|
|
|
+ model.addAttribute("current", "1");
|
|
|
+ return "enact";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private String findPrevious(List<Event> events) {
|
|
|
+ // TODO Auto-generated method stub
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Node> findEndActs(List<Event> events) {
|
|
|
+ // TODO Auto-generated method stub
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
- @PostMapping("/startAct")
|
|
|
+ @PostMapping("/startAct")
|
|
|
public String startActivity(Model model, @RequestParam String iri, HttpServletRequest request) throws Exception {
|
|
|
PM pm = (PM)request.getSession().getAttribute("pm");
|
|
|
PT pt = (PT)request.getSession().getAttribute("trace");
|