// Gr2PixPrinterDemo.java // // server app for printing gif, pdf, pict, postscript formats of sample java drawing canvases // most of what you need to use it is shown here. // override or use the flybase.graf.Gr2PixPrinter class // // by d.g. gilbert, april. 1999 /*** Call setDrawComponent, or override getDrawComponent, as desired to print your java.awt.Component Example usage: (0) as command-line app, where MyDrawComponent is in classpath jre -cp gr2pix.jar flybase.graf.Gr2PixPrinter class=demos.JabberTreeCanvas path=. (1) from your program Gr2PixPrinter app = new Gr2PixPrinter(); app.init(args); // where args contains "class=MyDrawComponent" app.run(); (2) or Gr2PixPrinter app = new Gr2PixPrinter(); app.init(args); app.setDrawComponent("MyDrawer", new MyDrawComponent()); app.run(); ------ // The 'setDrawComponent' methods set a few vars public final Component setDrawComponent(String name, Component c); public Component setDrawComponent(String name, Component c, String baseurl); ***/ import java.io.*; import java.awt.*; import java.util.*; import java.net.*; import flybase.*; import flybase.graf.*; import demos.*; public class Gr2PixPrinterDemo extends Gr2PixPrinter { public Gr2PixPrinterDemo() { } public static void main(String[] args) { try { Gr2PixPrinterDemo app = new Gr2PixPrinterDemo(); app.init(args); app.run(); } catch (UsageException e) { } catch (Exception e) { e.printStackTrace(); } } public Component getDrawComponent(String drawclass) { if (drawclass==null || Character.isDigit(drawclass.charAt(0))) { int whichdraw= 0; if (drawclass!=null) try { whichdraw= Integer.parseInt(drawclass); } catch (Exception e) {} if (whichdraw<1) whichdraw= 1 + new Random().nextInt() % 10; switch (whichdraw) { case 1: return super.getDrawComponent(drawclass); // from sun test applet: Graph.java case 2: return setDrawComponent( "Graph", new GraphTestPanel(), Environ.gEnv.get("GENBANK_URL")); //case 3: return setDrawComponent( "JabberwockyTree", new JabberTreePanel()); default: case 3: return setDrawComponent( "JabberwockyTree", new JabberTreeCanvas(), Environ.gEnv.get("ALTAVISTA_URL")); case 9: return setDrawComponent( "WordTree", new WordTreeCanvas( Environ.gEnv.get("demo.text")), Environ.gEnv.get("MEDLINE_URL")); case 10: return setDrawComponent( "Jabberwocky(full)", new WordTreeCanvas( Environ.gEnv.get("demo.jabberwocky")), Environ.gEnv.get("ALTAVISTA_URL")); // from sun test applet: GraphicsTest.java case 4: return setDrawComponent( "Ovals", new ShapeTest( new OvalShape() )); case 5: return setDrawComponent( "Polygons", new ShapeTest( new PolygonShape() )); case 6: return setDrawComponent( "Rects", new ShapeTest( new RectShape() )); case 7: return setDrawComponent( "RoundRects", new ShapeTest( new RoundRectShape() )); //case 8: return setDrawComponent( "GraphicsCards", new GraphicsCards()); // will this print all cards? - no case 8: return setDrawComponent( "ArcCard", new ArcCard()); //! pdf fails this now -- no drawArc yet!!! } } else return super.getDrawComponent(drawclass); } public void run() { // just add some random color to html/gif output Color bg= new Color( rand(225,252), rand(225,252), rand(225,252)); NetscapeMapLinkPrinter.bgcolor= bg.getRGB(); super.run(); } static java.util.Random random= new java.util.Random(); final int rand(int low, int hi) { int val= random.nextInt(); return low + val % (hi - low); } }