Hi Thomas,
I took a look at the ActionSaveAllGraphics and the SaveSVGAction class and
this seems to be what I'm doing.
These classes all seem to use the same approach that I'm using, namely:
targetManager.setTarget(someDiagram);
Rectangle rect = currentEditor.getLayerManager().getActiveLayer()
.calcDrawingArea();
try {
writer = new SVGWriter(s, drawingArea);
} catch (Exception e) {
e.printStackTrace();
}
if (writer != null) {
currentEditor.print(writer);
writer.dispose();
}
I've filed a Bugzilla issue on this:
http://argouml.tigris.org/issues/show_bug.cgi?id=5835
Which details some of the things I've tried so far.
If you have any other suggestions, please let me know and I'll be glad to
give them a try.
Thanks,
Mark
On Fri, Jul 31, 2009 at 5:13 AM, Thomas Neustupny <[email protected]> wrote:
> Hi Mark,
>
> this is how it's done in ActionSaveAllGraphics:
>
> for (Project p : ProjectManager.getManager().getOpenProjects()) {
> TargetManager tm = TargetManager.getInstance();
> for (ArgoDiagram d : p.getDiagramList()) {
> tm.setTarget(d);
> if (!trySaveDiagram(d, dir)) {
> result = false;
> }
> }
> }
>
> HTH,
> Thomas
>
> -------- Original-Nachricht --------
> > Datum: Thu, 30 Jul 2009 08:11:28 -0700
> > Von: Mark Fortner <[email protected]>
> > An: [email protected]
> > Betreff: [argouml-dev] Selecting a Diagram
>
> > 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]]
>
> --
> Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 -
> sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser
>
> ------------------------------------------------------
>
> http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=2377336
>
> 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]]
>
--
Mark Fortner
blog: http://feeds.feedburner.com/jroller/ideafactory
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=450&dsMessageId=2379629
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]]