- Code: Select all
smObj = SessionManager.getInstance();
smObj.createSession(project, "Object Creator " + UUID.randomUUID().toString());
DiagramPresentationElement diagram = project.getActiveDiagram();
PresentationElementsManager presentationElementsManager = PresentationElementsManager.getInstance();
ActivityPartition activityPartition = project.getElementsFactory().createActivityPartitionInstance();
activityPartition.setName("Parent");
activityPartition.setOwner(diagram.getDiagram().getOwner());
ActivityPartition child1 = project.getElementsFactory().createActivityPartitionInstance();
child1.setName("Child 1");
child1.setOwner(activityPartition);
ActivityPartition child2 = project.getElementsFactory().createActivityPartitionInstance();
child2.setName("Child 2");
child2.setOwner(activityPartition);
SwimlaneView parentLanes = presentationElementsManager.createSwimlane(Arrays.asList(activityPartition),
Collections.emptyList(), diagram);
SwimlaneView childLanes = presentationElementsManager.createSwimlane(Arrays.asList(child1, child2),
Collections.emptyList(), diagram);
for (SwimlaneCellView cell : parentLanes.getAllCells()) {
childLanes.setParent(cell);
}
presentationElementsManager.movePresentationElement(parentLanes, new Point(50, 50));
smObj.closeSession(project);
smObj = null;
I get a result which I attached, but it is not valid.
Any guidance on how to create inner swimlanes programmatically would be greatly appreciated.