/* part of Stereographic Projection applet, copyright 1996 John M Sullivan */ import java.applet.Applet; import java.awt.*; import java.lang.*; public class SterProj extends Applet { SterPanel mainpanel; Panel buttonpanel = new Panel(); Panel checkboxpanel = new Panel(); Panel sliderpanel = new Panel(); Choice polym, motion; Button reset; Checkbox[] drawit = {new Checkbox("Chords "), new Checkbox("Spherical Net "), new Checkbox("Solid Sphere "), new Checkbox("Planar Proj ")}; Scrollbar zslider,pslider; Image sphere; public void init() { sphere = getImage(getCodeBase(),"sph.gif"); mainpanel = new SterPanel(sphere); setLayout(new BorderLayout()); add("Center",mainpanel); mainpanel.init(getParameter("poly")); add("East",sliderpanel); sliderpanel.setLayout(new BorderLayout()); zslider = new Scrollbar(Scrollbar.VERTICAL,50,10,0,100); sliderpanel.add("East",zslider); pslider = new Scrollbar(Scrollbar.VERTICAL,0,10,0,100); sliderpanel.add("West",pslider); add("North",checkboxpanel); checkboxpanel.setLayout(new GridLayout(1,4)); for (int i=0; i<4; i++) { drawit[i].setState(true); checkboxpanel.add(drawit[i]); } add("South",buttonpanel); buttonpanel.setLayout(new GridLayout(1,3)); reset = new Button("Reset View"); //reset = new Choice(); reset.addItem("Reset View"); buttonpanel.add(reset); motion = new Choice(); motion.addItem("Orbit Camera"); motion.addItem("Rotate Sphere"); motion.select("Rotate Sphere"); buttonpanel.add(motion); polym = new Choice(); polym.addItem("Tetrahedron"); polym.addItem("Cube"); polym.addItem("Octahedron"); polym.addItem("Dodecahedron"); polym.addItem("Icosahedron"); polym.select("Cube"); buttonpanel.add(polym); } public boolean handleEvent(Event e) { if (e.target==zslider) mainpanel.setzoom(zslider.getValue()); else if (e.target==pslider) mainpanel.setprsp(pslider.getValue()); else return super.handleEvent(e); return true; } public boolean action(Event e, Object o) { if (e.target.equals(polym)) mainpanel.setpoly((String)o); else if (e.target.equals(motion)) mainpanel.setrot(o.equals("Rotate Sphere")); else if (e.target.equals(reset)) mainpanel.reset(); else if (e.target.equals(drawit[0])) mainpanel.drawstr = drawit[0].getState(); else if (e.target.equals(drawit[1])) mainpanel.drawsph = drawit[1].getState(); else if (e.target.equals(drawit[2])) mainpanel.drawsol = drawit[2].getState(); else if (e.target.equals(drawit[3])) mainpanel.drawpln = drawit[3].getState(); else return false; mainpanel.repaint(); return true; } }