|
@@ -32,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.StartActivityEvent;
|
|
|
import ua.be.wee.model.pt.StartTraceEvent;
|
|
|
import ua.be.wee.model.pt.TraceArtifact;
|
|
|
import ua.be.wee.model.repository.FusekiWrapper;
|
|
@@ -103,8 +104,8 @@ public class EnactmentControllerMVC {
|
|
|
|
|
|
|
|
|
@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")) {
|
|
|
+ public String getPMtoEnact(Model model, @RequestParam String pmiri, HttpServletRequest request) throws Exception {
|
|
|
+ if ((pmiri.equals("select PM"))) {
|
|
|
model.addAttribute("error", true);
|
|
|
model.addAttribute("pms", controller.getAllPMs());
|
|
|
model.addAttribute("traces",null);
|
|
@@ -118,7 +119,6 @@ public class EnactmentControllerMVC {
|
|
|
model.addAttribute("error", false);
|
|
|
request.getSession().setAttribute("pm", pm);
|
|
|
request.getSession().setAttribute("trace", trace);
|
|
|
- request.getSession().setAttribute("previous", pm.getInitial().getIri());
|
|
|
request.getSession().setAttribute("acts",acts);
|
|
|
request.getSession().setAttribute("endacts",new ArrayList<Node>());
|
|
|
model.addAttribute("arts", null);
|
|
@@ -137,7 +137,6 @@ public class EnactmentControllerMVC {
|
|
|
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);
|
|
@@ -151,17 +150,19 @@ public class EnactmentControllerMVC {
|
|
|
|
|
|
} else {
|
|
|
endActs = findEndActs(events);
|
|
|
- List<Pair<String,String>> iris = controller.findNextNodes(pm.getInitial().getIri());
|
|
|
- List<PMTrigger> acts = findElements(pm, iris);
|
|
|
+ List<PMTrigger> acts = new ArrayList<PMTrigger>();
|
|
|
+ if (events.get(events.size()-1) instanceof EndActivityEvent) {
|
|
|
+ EndActivityEvent last = (EndActivityEvent)events.get(events.size()-1);
|
|
|
+ List<Pair<String,String>> iris = controller.findNextNodes(last.getRelatesTo().getIri());
|
|
|
+ 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");
|
|
@@ -169,14 +170,27 @@ public class EnactmentControllerMVC {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- 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;
|
|
|
+ List<Node> result = new ArrayList<Node>();
|
|
|
+ for (Event event : events) {
|
|
|
+ String name = event.getIri().split("#")[1];
|
|
|
+ if (name.startsWith("start_activity")) {
|
|
|
+ String index = name.split("start_activity")[1];
|
|
|
+ boolean found = false;
|
|
|
+ for (Event event2 : events) {
|
|
|
+ String end = event2.getIri().split("#")[1];
|
|
|
+ if (end.equals("end_activity" + index)) {
|
|
|
+ found = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!found) {
|
|
|
+ result.add(((StartActivityEvent)event).getRelatesTo().getActivity());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@PostMapping("/startAct")
|
|
@@ -232,7 +246,6 @@ public class EnactmentControllerMVC {
|
|
|
if (part.getName().equals(artifact.getName())) {
|
|
|
TraceArtifact tArt = new TraceArtifact();
|
|
|
tArt.setLocation(part.getSubmittedFileName());
|
|
|
- //tArt.setTag("v1"); //TODO fix the tag generation
|
|
|
tArt.setGUID(part.getSubmittedFileName()+"-" +tArt.getTag());
|
|
|
tArt.setRelatesTo(artifact);
|
|
|
traceArts.add(tArt);
|
|
@@ -242,7 +255,12 @@ public class EnactmentControllerMVC {
|
|
|
}
|
|
|
|
|
|
controller.addEndEvent(pt,traceArts,p);
|
|
|
- endacts.remove(act);
|
|
|
+ for (Node activ : endacts) {
|
|
|
+ if (activ.getIri().equals(act.getIri())) {
|
|
|
+ endacts.remove(activ);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
List<Pair<String,String>> iris = controller.findNextNodes(p.getIri());
|
|
|
acts.addAll(findElements(pm, iris));
|