use of org.eclipse.sapphire.Property in project liferay-ide by liferay.
the class NodeNameListener method handleTypedEvent.
@Override
protected void handleTypedEvent(PropertyContentEvent event) {
Property property = event.property();
Element element = property.element();
WorkflowDefinition workflow = element.adapt(WorkflowDefinition.class);
Map<String, String> eventInfo = new HashMap<>();
event.fillTracingInfo(eventInfo);
String oldName = eventInfo.get("before");
if (oldName == null) {
oldName = _lastNodeNames.get(property);
}
String newName = eventInfo.get("after");
List<Transition> allTransitions = new ArrayList<>();
if (workflow != null) {
ElementList<Condition> allConditions = workflow.getConditions();
ElementList<Fork> allForks = workflow.getForks();
ElementList<Join> allJoins = workflow.getJoins();
ElementList<State> allStates = workflow.getStates();
ElementList<Task> allTasks = workflow.getTasks();
for (Condition condition : allConditions) {
ElementList<Transition> conditionTransitions = condition.getTransitions();
for (Transition transition : conditionTransitions) {
allTransitions.add(transition);
}
}
for (Fork fork : allForks) {
ElementList<Transition> forkTransitions = fork.getTransitions();
for (Transition transition : forkTransitions) {
allTransitions.add(transition);
}
}
for (Join join : allJoins) {
ElementList<Transition> joinTransitions = join.getTransitions();
for (Transition transition : joinTransitions) {
allTransitions.add(transition);
}
}
for (State state : allStates) {
ElementList<Transition> stateTransitions = state.getTransitions();
for (Transition transition : stateTransitions) {
allTransitions.add(transition);
}
}
for (Task task : allTasks) {
ElementList<Transition> taskTransitions = task.getTransitions();
for (Transition transition : taskTransitions) {
allTransitions.add(transition);
}
}
}
for (Transition transition : allTransitions) {
String targetName = transition.getTarget().toString();
if (targetName.equals(oldName)) {
if (newName != null) {
transition.setTarget(newName);
if (_lastNodeNames.containsKey(property)) {
_lastNodeNames.remove(property);
}
} else {
_lastNodeNames.put(property, oldName);
}
}
}
}
Aggregations