package nodebox.client; import nodebox.client.visualizer.Visualizer; import nodebox.client.visualizer.VisualizerFactory; import nodebox.graphics.Grob; import nodebox.util.ListUtils; import javax.swing.*; import java.awt.*; public class ExportViewer extends JFrame { private Viewer viewer; private java.util.List<?> outputValues = null; public ExportViewer() { super("Exporting..."); viewer = new Viewer(); getContentPane().add(viewer); setSize(600, 600); } public void setOutputValues(java.util.List<?> outputValues) { this.outputValues = outputValues; viewer.repaint(); } private class Viewer extends JComponent { public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.translate(getWidth() / 2, getHeight() / 2); Visualizer v = VisualizerFactory.getVisualizer(outputValues, ListUtils.listClass(outputValues)); // todo: handle canvas clipping v.draw(g2, outputValues); } } }