use of com.liferay.ide.kaleo.core.model.Node in project liferay-ide by liferay.
the class DefaultListAddActionHandler method getDefaultName.
public static String getDefaultName(String initialName, Node newNode, Node[] nodes) {
String newName = initialName;
int count = 1;
boolean newNameIsValid = false;
do {
newNameIsValid = true;
for (Node node : nodes) {
if (newName.equals(node.getName().content())) {
newNameIsValid = false;
break;
}
}
if (!newNameIsValid) {
newName = newName.replace(Integer.toString(count), "") + (++count);
}
} while (!newNameIsValid);
return newName;
}
use of com.liferay.ide.kaleo.core.model.Node in project liferay-ide by liferay.
the class ForkNodeAddActionHandler method postDiagramNodePartAdded.
@Override
public void postDiagramNodePartAdded(NewNodeOp op, CanTransition newNodeFromWizard, CanTransition newNode) {
NewForkNodeOp newForkOp = op.nearest(NewForkNodeOp.class);
NewForkNode newForkNodeFromWizard = newNodeFromWizard.nearest(NewForkNode.class);
Fork newFork = newNode.nearest(Fork.class);
WorkflowDefinition workflowDefinition = newFork.nearest(WorkflowDefinition.class);
if (newForkOp.isAddJoin().content(true)) {
Join newJoin = workflowDefinition.getJoins().insert();
String newJoinName = newForkNodeFromWizard.getName().content() + " Join";
newJoin.setName(newJoinName);
for (Node connectedNode : op.getConnectedNodes()) {
for (WorkflowNode diagramNode : workflowDefinition.getDiagramNodes()) {
Value<String> nodeName = connectedNode.getName();
if (nodeName.content().equals(diagramNode.getName().content())) {
CanTransition canTransition = diagramNode.nearest(CanTransition.class);
ElementList<Transition> transitions = canTransition.getTransitions();
Transition newTransition = transitions.insert();
newTransition.setName(newJoinName);
newTransition.setTarget(newJoinName);
}
}
}
}
}
use of com.liferay.ide.kaleo.core.model.Node in project liferay-ide by liferay.
the class TransitionTargetListener method handleTypedEvent.
@Override
protected void handleTypedEvent(PropertyContentEvent event) {
Property property = event.property();
Transition transition = property.nearest(Transition.class);
if (transition != null) {
ReferenceValue<String, Node> targe = transition.getTarget();
Value<String> transitionName = transition.getName();
if ((targe.content() != null) && (transitionName.content(false) == null)) {
String targetName = targe.content();
String defaultName = targetName;
Set<String> existingNames = new HashSet<>();
CanTransition camtransition = transition.nearest(CanTransition.class);
for (Transition t : camtransition.getTransitions()) {
Value<String> tName = t.getName();
if (tName.content() != null) {
existingNames.add(tName.content());
}
}
int count = 1;
while (existingNames.contains(defaultName)) {
defaultName = targetName + "_" + count++;
}
transition.setName(defaultName);
}
}
}
use of com.liferay.ide.kaleo.core.model.Node in project liferay-ide by liferay.
the class TransitionPossibleValuesService method addNodeNames.
protected void addNodeNames(Set<String> values, ElementList<?> nodeList) {
Node[] nodes = nodeList.toArray(new Node[0]);
for (Node node : nodes) {
Value<String> nodeName = node.getName();
String name = nodeName.content();
if (!empty(name)) {
values.add(name);
}
}
}
use of com.liferay.ide.kaleo.core.model.Node in project liferay-ide by liferay.
the class NewNodeOpWizard method performPostDiagramNodeAdded.
protected void performPostDiagramNodeAdded() {
NewNodeOp newNodeOp = element().nearest(NewNodeOp.class);
CanTransition newNode = newNodeOp.adapt(CanTransition.class);
CanTransition node = _diagramNodePart.getLocalModelElement().nearest(CanTransition.class);
WorkflowDefinition workflowDefinition = node.nearest(WorkflowDefinition.class);
if ((newNode != null) && (node != null)) {
Value<String> newNodeName = newNode.getName();
node.setName(newNodeName.content());
if (newNodeOp.getConnectedNodes().size() > 0) {
for (Node diagramNode : newNodeOp.getConnectedNodes()) {
Value<String> nodeName = diagramNode.getName();
String diagramNodeName = nodeName.content(true);
if (diagramNode instanceof ConditionForOp) {
ElementList<Condition> conditions = workflowDefinition.getConditions();
Condition insertCondition = conditions.insert();
insertCondition.setName(diagramNodeName);
} else if (diagramNode instanceof ForkForOp) {
ElementList<Fork> forks = workflowDefinition.getForks();
Fork insertFork = forks.insert();
insertFork.setName(diagramNodeName);
} else if (diagramNode instanceof JoinForOp) {
ElementList<Join> joins = workflowDefinition.getJoins();
Join insertJoin = joins.insert();
insertJoin.setName(diagramNodeName);
} else if (diagramNode instanceof JoinXorForOp) {
ElementList<JoinXor> joinXors = workflowDefinition.getJoinXors();
JoinXor insertJoinXor = joinXors.insert();
insertJoinXor.setName(diagramNodeName);
} else if (diagramNode instanceof StateForOp) {
ElementList<State> states = workflowDefinition.getStates();
State insertState = states.insert();
insertState.setName(diagramNodeName);
} else if (diagramNode instanceof TaskForOp) {
ElementList<Task> tasks = workflowDefinition.getTasks();
Task insertTask = tasks.insert();
insertTask.setName(diagramNodeName);
}
if (diagramNode instanceof ChooseDiagramNode || node instanceof Condition || node instanceof Fork || node instanceof State || node instanceof Task) {
Transition newTransition = node.getTransitions().insert();
newTransition.setName(diagramNodeName);
newTransition.setTarget(diagramNodeName);
} else {
CanTransition canTransition = diagramNode.nearest(CanTransition.class);
ElementList<Transition> transition = canTransition.getTransitions();
Transition joinTransition = transition.insert();
joinTransition.setName(node.getName().content());
joinTransition.setTarget(node.getName().content());
}
}
}
}
_actionHandler.postDiagramNodePartAdded(element(), newNode, node);
}
Aggregations