home *** CD-ROM | disk | FTP | other *** search
/ The Net: Ultimate Internet Guide / WWLCD1.ISO / pc / java / pr8adpl7 / drawingcomponent.java < prev    next >
Encoding:
Java Source  |  1996-08-14  |  2.5 KB  |  96 lines

  1. // DrawingComponent.java
  2. // An AWT component for viewing a structured drawing, loaded via JFS
  3. import java.awt.*;
  4. import java.io.*;
  5. import JFScomponent;
  6. import JFSclient;
  7. import FileReq;
  8. import DrawingPanel;
  9. import Drawing;
  10.  
  11. public class DrawingComponent extends JFScomponent
  12. {
  13.     DrawingCanvas canv;
  14.     Drawing dr;
  15.     Button loadb;
  16.     Checkbox zoom1, zoom2, zoom3, zoom4;
  17.     BorderPanel bot;
  18.     FileReq loadreq;
  19.  
  20.     DrawingComponent()
  21.     {
  22.     // create user interface
  23.     setLayout(new BorderLayout());
  24.     Panel top = new Panel();
  25.     top.setLayout(new BorderLayout());
  26.     Panel left = new Panel();
  27.     left.setLayout(new FlowLayout());
  28.     left.add(loadb = new Button("Load"));
  29.     top.add("West",left);
  30.  
  31.     Panel right = new Panel();
  32.     right.setLayout(new FlowLayout(FlowLayout.LEFT));
  33.     right.add(new Label("Zoom"));
  34.     CheckboxGroup zoomg = new CheckboxGroup();
  35.     right.add(zoom1 = new Checkbox("x 1/2", zoomg, false));
  36.     right.add(zoom2 = new Checkbox("x 1", zoomg, true));
  37.     right.add(zoom3 = new Checkbox("x 2", zoomg, false));
  38.     right.add(zoom4 = new Checkbox("x 4", zoomg, false));
  39.     top.add("East",right);
  40.     add("North",top);
  41.  
  42.     // create space for the drawing
  43.     bot = new BorderPanel(new Color(50,50,50),
  44.                   new Color(220,220,220));
  45.     bot.setLayout(new BorderLayout());
  46.     bot.add("Center", canv = new DrawingCanvas(true));
  47.     add("Center",bot);
  48.     }
  49.  
  50.     public boolean action(Event evt, Object obj)
  51.     {
  52.     if (evt.target == zoom1) canv.setZoom(0.5);
  53.     else if (evt.target == zoom2) canv.setZoom(1.0);
  54.     else if (evt.target == zoom3) canv.setZoom(2.0);
  55.     else if (evt.target == zoom4) canv.setZoom(4.0);
  56.     else if (evt.target == loadb && loadreq == null) {
  57.         // Open load requestor
  58.         loadreq = new FileReq(client, this, "Load", "image/x-drawing",
  59.                       false, null);
  60.         }
  61.     else if (evt.target == loadreq) {
  62.         // load requestor submitted / closed
  63.         if (((String)evt.arg).equals("Load")) {
  64.             try load(loadreq.getfile(), loadreq.getversion());
  65.             catch(RequestException e)
  66.                 new ErrorWindow("Could not open "+
  67.                         loadreq.getfile()+" : "+
  68.                         e.getMessage());
  69.             }
  70.         loadreq = null;
  71.         }
  72.     return true;
  73.     }
  74.  
  75.     // load
  76.     // Load the named file and version. Create a new DrawingPanel to
  77.     // display the drawing in.
  78.     void load(String file, int ver) throws RequestException
  79.     {
  80.     byte fd[] = client.get(file, ver);
  81.     ByteArrayInputStream buf = new ByteArrayInputStream(fd);
  82.     try dr = new Drawing(buf);
  83.     catch(IOException e)
  84.         throw new RequestException("Drawing format error : "+
  85.                        e.getMessage());
  86.     canv.setdrawing(dr);
  87.     client.setcurrent(file, client.statfile(file).type);
  88.     }
  89.  
  90.     Dimension wantedsize()
  91.     {
  92.     return new Dimension(400,400);
  93.     }
  94. }
  95.  
  96.