import java.util.*; import java.awt.*; import java.applet.*; public class GraphApplet extends Applet { protected Blackboard _bb; protected GraphWindow _window; protected GraphPanel _panel; public GraphPanel panel() { return _panel; } public void init() { _bb = new Blackboard( this ); add(new Button("Show")); String edges = getParameter("edges"); for(StringTokenizer t = new StringTokenizer(edges,","); t.hasMoreTokens();) { String str = t.nextToken(); int i = str.indexOf('-'); if (i > 0) { int len = 50; int j = str.indexOf('/'); if (j > 0) { len = Integer.valueOf(str.substring(j+1)).intValue(); str = str.substring(0, j); } _bb.addEdge(str.substring(0,i), str.substring(i+1)); } } _bb.PreprocessNodes(); String basedir = getParameter("files"); _bb.globals.setBasedir( basedir ); _bb.globals.depth3D( 0.0 ); // NB: The order of the following matters. ControlWindow controls = new ControlWindow( _bb ); _bb.Init(); _panel = new GraphPanel( _bb ); _window = new GraphWindow( _bb, _panel, controls ); _window.pack(); } public void destroy() { _window.handleEvent(new Event(_window,Event.WINDOW_DESTROY,null)); _panel.stop(); } public boolean action(Event evt, Object arg) { if (evt.target instanceof Button && "Show".equals(arg)) { _window.show(); _panel.start(); ((Button)evt.target).setLabel( "Hide" ); } else if (evt.target instanceof Button && "Hide".equals(arg)) { _window.handleEvent(new Event(_window,Event.WINDOW_DESTROY,null)); _panel.stop(); ((Button)evt.target).setLabel( "Show" ); } else return false; return true; } } // class GraphApplet