I recently updated my local copy of argouml-app to the latest version in the
trunk, and began retesting the argoprint module. Somewhere along the line a
recent change was made that now prevents us from being able to select a
diagram. The following utility method in DiagramUtils is used to render a
diagram as inline svg.
public static String getDiagramAsSVG(ArgoDiagram diagram){
// this is ugly, but it is the only way for now.
// we need to simulate that the diagram is active,
// then we save our graphics, and lately we leave all as it was
// before.
final ArgoDiagram activeDiagram = DiagramUtils.getActiveDiagram();
TargetManager.getInstance().setTarget(diagram);
ByteArrayOutputStream buff = new ByteArrayOutputStream();
Editor ce = Globals.curEditor();
Layer layer = ce.getLayerManager().getActiveLayer();
Rectangle drawingArea = layer.calcDrawingArea();
try {
SvgWriter writer = new SvgWriter(buff, drawingArea, true);
if (writer != null) {
ce.print(writer);
writer.dispose();
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
TargetManager.getInstance().setTarget(activeDiagram);
return buff.toString();
}
It seems that when we set the diagram using
"TargetManager.getInstance().setTarget(diagram);" and then attempt to get
the diagram as a layer using "Layer layer =
ce.getLayerManager().getActiveLayer();" that all we get now is the currently
displayed diagram.
As a result, instead of iterating through each diagram and outputting the
diagram as SVG in our template, we get the same diagram over and over again.
Is there a new way of selecting a diagram and returning it as a layer that
we should be using?
--
Mark Fortner
blog: http://feeds.feedburner.com/jroller/ideafactory
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=2377004
To unsubscribe from this discussion, e-mail:
[[email protected]].
To be allowed to post to the list contact the mailing list moderator, email:
[[email protected]]