Modified the messages generated on delegation actions to show details.

Bug: older event messages on a task get partly overwritten by new events due to a static string.
This commit is contained in:
Achim D. Brucker 2015-05-30 21:27:12 +02:00
parent c0f52235ad
commit 7b9d0ac9ce
1 changed files with 31 additions and 3 deletions

View File

@ -13,6 +13,8 @@
package org.activiti.explorer.ui.task;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.TaskService;
import org.activiti.engine.identity.User;
import org.activiti.engine.task.Event;
import org.activiti.explorer.ExplorerApp;
@ -35,12 +37,18 @@ public class TaskEventTextResolver {
protected I18nManager i18nManager;
protected UserCache userCache;
//<SecureBPMN>
protected TaskService taskService;
//</SecureBPMN>
public TaskEventTextResolver() {
this.i18nManager = ExplorerApp.get().getI18nManager();
this.userCache = ExplorerApp.get().getUserCache();
//<SecureBPMN>
this.taskService = ProcessEngines.getDefaultProcessEngine().getTaskService();
//</SecureBPMN>
}
public Label resolveText(Event event) {
User user = userCache.findUser(event.getUserId());
String eventAuthor = "<span class='" + ExplorerLayout.STYLE_TASK_EVENT_AUTHOR + "'>"
@ -49,10 +57,14 @@ public class TaskEventTextResolver {
String text = null;
if (Event.ACTION_ADD_USER_LINK.equals(event.getAction())) {
User involvedUser = userCache.findUser(event.getMessageParts().get(0));
text = i18nManager.getMessage(Messages.EVENT_ADD_USER_LINK,
//<SecureBPMN>
text = getEventMessage(event);
/*
i18nManager.getMessage(Messages.EVENT_ADD_USER_LINK,
eventAuthor,
involvedUser.getFirstName() + " " + involvedUser.getLastName(),
event.getMessageParts().get(1)); // second msg part = role
event.getMessageParts().get(1)); // second msg part = role*/
//</SecureBPMN>
} else if (Event.ACTION_DELETE_USER_LINK.equals(event.getAction())) {
User involvedUser = userCache.findUser(event.getMessageParts().get(0));
text = i18nManager.getMessage(Messages.EVENT_DELETE_USER_LINK,
@ -81,4 +93,20 @@ public class TaskEventTextResolver {
return new Label(text, Label.CONTENT_XHTML);
}
//<SecureBPMN>
// custom event text for delegations TODO: older event text gets changed with new events due to static string...
private String getEventMessage(Event event) {
String result = "";
User user = userCache.findUser(event.getUserId());
User involvedUser = userCache.findUser(event.getMessageParts().get(0));
if (TaskInvolvedPeopleComponent.returnDelegationType == "") {
result = user.getFirstName() + " " + user.getLastName() + " executed a " + TaskInvolvedPeopleComponent.lastDelegationType + " on the task " + taskService.createTaskQuery().taskId(event.getTaskId()).singleResult().getName() + ". Assignee is now: " + involvedUser.getFirstName() + " " + involvedUser.getLastName();
return result;
} else {
result = user.getFirstName() + " " + user.getLastName() + " returned a " + TaskInvolvedPeopleComponent.lastDelegationType + " for the task " + taskService.createTaskQuery().taskId(event.getTaskId()).singleResult().getName() + ". Assignee is now: " + involvedUser.getFirstName() + " " + involvedUser.getLastName();
return result;
}
}
//</SecureBPMN>
}