Hi Lars,

You can create the plot with a toolbar. The toolbar has export button. The
sample code is in:

http://git.eclipse.org/c/nebula/org.eclipse.nebula.git/plain/examples/org.eclipse.nebula.snippets/src/org/eclipse/nebula/snippets/visualization/SimpleToolbarArmedXYGraphExample.java

The relatived code in
org.eclipse.nebula.visualization.xygraph.figures.XYGraphToolbar.java
is:

        private void addSnapshotButton() {
                Button snapShotButton = new
Button(XYGraphMediaFactory.getInstance().getImage("images/camera.png"));
                snapShotButton.setToolTip(new Label("Save Snapshot to PNG 
file"));
                addButton(snapShotButton);
                snapShotButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent event) {
                                // Have valid name, so get image
                                ImageLoader loader = new ImageLoader();
                                Image image = xyGraph.getImage();
                                loader.data = new ImageData[] { 
image.getImageData() };
                                image.dispose();
                                // Prompt for file name
                                String path = 
SingleSourceHelper2.getImageSavePath();
                                if (path == null || path.length() <= 0)
                                        return;
                                // Assert *.png at end of file name
                                if (!path.toLowerCase().endsWith(".png"))
                                        path = path + ".png";
                                // Save
                                loader.save(path, SWT.IMAGE_PNG);
                        }
                });
        }




Best regards,

Trig

2016-11-18 17:56 GMT+08:00 Lars Ohmann <[email protected]>:

> Hello
>
> below is the code! It is easy, it just gives a simple plot. How can I save
> this plot (xygraph) as
> a bmp or jpg-file on the PC ? I posted the question on several forums,
> either the answer is too
> complicated or the problem is too trivial for the community.
>
> A hint would be very helpful!
>
> thanks!
>
> package org.eclipse.nebula.visualization.xygraph.examples;
>
> /***********************************************************
> ********************
> * Copyright (c) 2010 Oak Ridge National Laboratory.
> * All rights reserved. This program and the accompanying materials
> * are made available under the terms of the Eclipse Public License v1.0
> * which accompanies this distribution, and is available at
> * http://www.eclipse.org/legal/epl-v10.html
> ************************************************************
> ******************/
> import org.eclipse.draw2d.LightweightSystem;
> import org.eclipse.nebula.visualization.xygraph.dataprovider.
> CircularBufferDataProvider;
> import org.eclipse.nebula.visualization.xygraph.figures.Ixygraph;
> import org.eclipse.nebula.visualization.xygraph.figures.Trace;
> import org.eclipse.nebula.visualization.xygraph.figures.xygraph;
> import org.eclipse.nebula.visualization.xygraph.figures.Trace.PointStyle;
> import org.eclipse.swt.widgets.Display;
> import org.eclipse.swt.widgets.Shell;
>
> /**
> * A very simple example.
> *
> * @author Xihui Chen
> *
> */
> public class SimpleExample {
> public static void main(String[] args) {
> final Shell shell = new Shell();
> shell.setSize(300, 250);
> shell.open();
>
> // use LightweightSystem to create the bridge between SWT and draw2D
> final LightweightSystem lws = new LightweightSystem(shell);
>
> // create a new XY Graph.
> Ixygraph xygraph = new xygraph();
> xygraph.setTitle("Simple Example");
> // set it as the content of LightwightSystem
> lws.setContents(xygraph);
>
> // create a trace data provider, which will provide the data to the
> // trace.
> CircularBufferDataProvider traceDataProvider = new
> CircularBufferDataProvider(false);
> traceDataProvider.setBufferSize(100);
> traceDataProvider.setCurrentXDataArray(new double[] { 10, 23, 34, 45, 56,
> 78, 88, 99 });
> traceDataProvider.setCurrentYDataArray(new double[] { 11, 44, 55, 45, 88,
> 98, 52, 23 });
>
> // create the trace
> Trace trace = new Trace("Trace1-XY Plot", xygraph.getPrimaryXAxis(),
> xygraph.getPrimaryYAxis(), traceDataProvider);
>
> // set trace property
> trace.setPointStyle(PointStyle.XCROSS);
>
> // add the trace to xygraph
> xygraph.addTrace(trace);
>
> Display display = Display.getDefault();
> while (!shell.isDisposed()) {
> if (!display.readAndDispatch())
> display.sleep();
> }
>
> }
> }
>
> _______________________________________________
> nebula-dev mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/nebula-dev
>
_______________________________________________
nebula-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/nebula-dev

Reply via email to