Author: bobtarling Date: 2008-05-07 15:41:40-0700 New Revision: 14658 Modified: trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java
Log: If FigNode is a FigEdgePort then make sure port is the same Modified: trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java?view=diff&rev=14658&p1=trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java&p2=trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java&r1=14657&r2=14658 ============================================================================== --- trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java (original) +++ trunk/src/argouml-app/src/org/argouml/persistence/PGMLStackParser.java 2008-05-07 15:41:40-0700 @@ -208,7 +208,7 @@ setCommonAttrs(f, attrList); - String href = attrList.getValue("href"); + final String href = attrList.getValue("href"); if (href != null && !href.equals("")) { Object modelElement = findOwner(href); if (modelElement == null) { @@ -329,9 +329,6 @@ EdgeData edgeData = (EdgeData) it.next(); FigEdge edge = edgeData.getFigEdge(); - LOG.info("Connecting nodes for " + edge); - - Fig sourcePortFig = null; Fig destPortFig = null; FigNode sourceFigNode = null; @@ -342,6 +339,14 @@ sourceFigNode = getFigNode(edgeData.getSourceFigNodeId()); destFigNode = getFigNode(edgeData.getDestFigNodeId()); + if (sourceFigNode instanceof FigEdgePort) { + sourcePortFig = sourceFigNode; + } + + if (destFigNode instanceof FigEdgePort) { + destPortFig = destFigNode; + } + if (sourcePortFig == null && sourceFigNode != null) { sourcePortFig = getPortFig(sourceFigNode); } @@ -374,7 +379,6 @@ // positions instead. for (Object edge : d.getLayer().getContentsEdgesOnly()) { FigEdge figEdge = (FigEdge) edge; - LOG.info("Computing route for for " + edge); figEdge.computeRouteImpl(); } } @@ -408,29 +412,30 @@ * if the figId supplied is not of a FigNode */ private FigNode getFigNode(String figId) throws IllegalStateException { - if (figId.indexOf('.') < 0) { + if (figId.contains(".")) { + // If the id does not look like a top-level Fig then we can assume + // that this is an id of a FigEdgePort inside some FigEdge. + // So extract the FigEdgePort from the FigEdge and return that as + // the FigNode. + figId = figId.substring(0, figId.indexOf('.')); + FigEdgeModelElement edge = (FigEdgeModelElement) findFig(figId); + if (edge == null) { + throw new IllegalStateException( + "Can't find a FigNode with id " + figId); + } + edge.makeEdgePort(); + return edge.getEdgePort(); + } else { // If there is no dot then this must be a top level Fig and can be // assumed to be a FigNode. Fig f = findFig(figId); if (f instanceof FigNode) { return (FigNode) f; } else { - LOG.error("FigID " + figId + " is not a node, edge ignored"); + LOG.error("FigID " + figId + " is not a node, edge ignored"); return null; } } - // If the id does not look like a top-level Fig then we can assume that - // this is an id of a FigEdgePort inside some FigEdge. - // So extract the FigEdgePort from the FigEdge and return that as - // the FigNode. - figId = figId.substring(0, figId.indexOf('.')); - FigEdgeModelElement edge = (FigEdgeModelElement) findFig(figId); - if (edge == null) { - throw new IllegalStateException( - "Can't find a FigNode with id " + figId); - } - edge.makeEdgePort(); - return edge.getEdgePort(); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
