home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.BorderLayout;
- import java.awt.Button;
- import java.awt.Checkbox;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Panel;
- import java.util.StringTokenizer;
-
- public class Graph extends Applet {
- GraphPanel panel;
-
- public void init() {
- ((Container)this).setLayout(new BorderLayout());
- this.panel = new GraphPanel(this);
- ((Container)this).add("Center", this.panel);
- Panel var1 = new Panel();
- ((Container)this).add("South", var1);
- ((Container)var1).add(new Button("Scramble"));
- ((Container)var1).add(new Button("Shake"));
- ((Container)var1).add(new Checkbox("Stress"));
- ((Container)var1).add(new Checkbox("Random"));
- String var2 = ((Applet)this).getParameter("edges");
- StringTokenizer var3 = new StringTokenizer(var2, ",");
-
- while(var3.hasMoreTokens()) {
- String var4 = var3.nextToken();
- int var5 = var4.indexOf(45);
- if (var5 > 0) {
- int var6 = 50;
- int var7 = var4.indexOf(47);
- if (var7 > 0) {
- var6 = Integer.valueOf(var4.substring(var7 + 1));
- var4 = var4.substring(0, var7);
- }
-
- this.panel.addEdge(var4.substring(0, var5), var4.substring(var5 + 1), var6);
- }
- }
-
- Dimension var8 = ((Component)this).size();
- String var9 = ((Applet)this).getParameter("center");
- if (var9 != null) {
- Node var10 = this.panel.nodes[this.panel.findNode(var9)];
- var10.x = (double)(var8.width / 2);
- var10.y = (double)(var8.height / 2);
- var10.fixed = true;
- }
-
- }
-
- public void start() {
- this.panel.start();
- }
-
- public void stop() {
- this.panel.stop();
- }
-
- public boolean action(Event var1, Object var2) {
- if (var2 instanceof Boolean) {
- if (((Checkbox)var1.target).getLabel().equals("Stress")) {
- this.panel.stress = (Boolean)var2;
- } else {
- this.panel.random = (Boolean)var2;
- }
-
- return true;
- } else if ("Scramble".equals(var2)) {
- ((Applet)this).play(((Applet)this).getCodeBase(), "audio/computer.au");
- Dimension var6 = ((Component)this).size();
-
- for(int var7 = 0; var7 < this.panel.nnodes; ++var7) {
- Node var5 = this.panel.nodes[var7];
- if (!var5.fixed) {
- var5.x = (double)10.0F + (double)(var6.width - 20) * Math.random();
- var5.y = (double)10.0F + (double)(var6.height - 20) * Math.random();
- }
- }
-
- return true;
- } else if ("Shake".equals(var2)) {
- ((Applet)this).play(((Applet)this).getCodeBase(), "audio/gong.au");
- ((Component)this).size();
-
- for(int var3 = 0; var3 < this.panel.nnodes; ++var3) {
- Node var4 = this.panel.nodes[var3];
- if (!var4.fixed) {
- var4.x += (double)80.0F * Math.random() - (double)40.0F;
- var4.y += (double)80.0F * Math.random() - (double)40.0F;
- }
- }
-
- return true;
- } else {
- return false;
- }
- }
- }
-