Hi, I have a problem, I create a link between two rectangles, then, if one of the two rectangles is already connected to another rectangle, I would like to remove one link and create a node at the end of the other link and then connect the rectangles to that node, I wrote this code but it doesn't work: ShapeNode addedNode = new ShapeNode(diagram); DiagramLink newLink = new DiagramLink(diagram); ShapeNode originFirst = new ShapeNode(diagram); ShapeNode destFirst = new ShapeNode(diagram); float x = 0, y = 0; int position = 0, position2 = 0; if (origin.getShape() == Shape.fromId("Rectangle")) { if (dest.getShape() == Shape.fromId("Rectangle")) { Log.d("LinkCreated", "GENERALIZATION CREATED"); if (dest.getAllLinks().size() > 1) { l.setText("NEW LINK"); newLink.setText("OLDLINK"); addedNode.setShape(Shape.fromId("Ellipse")); addedNode.resize(2, 2); DiagramNode dn = addedNode; position2 = l.getOriginIndex(); PointList pl = l.getControlPoints(); PointF array[] = pl.getArray(); dn.moveTo(array[0].x, array[0].y); Pen pen = new Pen(); pen.setColor(Color.GREEN); addedNode.setPen(pen); diagram.add(addedNode); addedNode.attachTo(l, AttachToLink.Segment, position2); diagram.getLinks().remove(position); //DiagramLink addedLink = new DiagramLink(diagram); DiagramLink addedLink = new DiagramLink(diagram, addedNode, originFirst); /*addedLink.setOrigin(addedNode); addedLink.setDestination(originFirst);*/ // diagram.add(addedLink); l.setHeadShape(ArrowHeads.None); addedLink.setVisible(true); /*Pen dashedPen = new Pen(0, Color.black, DashStyle.Dash); addedLink.setPen(dashedPen);*/ Pen pen2 = new Pen(); pen2.setColor(Color.RED); addedLink.setPen(pen2); //diagram.getLinks().add(position3, addedLink); diagram.getLinks().add(addedLink);
} l.setHeadShape(ArrowHeads.Triangle); Pen penA = new Pen(); penA.setWidth(3); penA.setColor(Color.BLACK); l.setHeadPen(penA); Pen pen = new Pen(); pen.setWidth(3); pen.setColor(Color.BLACK); l.setPen(pen); originFirst = (ShapeNode) l.getOrigin(); destFirst = (ShapeNode) l.getDestination(); position = l.getOriginIndex();
} }
|