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]]

Reply via email to