Main Page   Packages   Class Hierarchy   Compound List   File List   Compound Members  

Simulation Class Reference

Inheritance diagram for Simulation::

Applet ActionListener ItemListener List of all members.

Public Methods

void init ()
void destroy ()
void start ()
void stop ()
void actionPerformed (ActionEvent event)
void itemStateChanged (ItemEvent event)
String getAppletInfo ()

Private Attributes

NetworkSpacePanel network_panel
Panel control_panel
Button traceroute = new Button("Put")
TracerouteDialog traceroute_dialog = null
Button add_line = new Button("Dodaj liniju")
AddLineDialog add_line_dialog = null
Button delete_line = new Button("Obri\u0161i liniju")
DeleteLineDialog delete_line_dialog = null
Button add_node = new Button("Dodaj \u010dvor")
AddNodeDialog add_node_dialog = null
Button delete_node = new Button("Obri\u0161i \u010dvor")
DeleteNodeDialog delete_node_dialog = null
Button start_stop_simulation = new Button("Pokreni")
Checkbox all_packets = new Checkbox("Svi paketi")
Checkbox line_capacities = new Checkbox("Kapaciteti linija")

Detailed Description

Cyclops Simulator Applet.
Author(s):
Darko Vasić , Tomislav Petković , Zvonko Kostanjčar
Version:
0.001 11-06-2001

Definition at line 27 of file Simulation.java.


Member Function Documentation

void Simulation::actionPerformed ( ActionEvent event ) [inline]
 

Action events handler.

Definition at line 212 of file Simulation.java.

00213     {
00214         Object source = event.getSource();
00215         String command = event.getActionCommand();
00216         int modifier = event.getModifiers();
00217 
00218         /* traceroute event */
00219         if (source == traceroute)
00220             {
00221                 if (null == traceroute_dialog)
00222                     {
00223                         traceroute_dialog = new TracerouteDialog(this);
00224                     }
00225             }
00226         /* traceroute dialog event */
00227         if (source == traceroute_dialog)
00228             {
00229                 if (command.equals("OK"))
00230                     {
00231                         network_panel.stopSimulation();
00232                         network_panel.tracePackets(traceroute_dialog.left_name,
00233                                                    traceroute_dialog.right_name
00234                                                    );
00235                         String name = start_stop_simulation.getLabel();
00236                         if (name.equals("Zaustavi"))
00237                             {
00238                                 network_panel.startSimulation();
00239                             }
00240                     }
00241                 traceroute_dialog = null;
00242             }
00243         /* add_line event */
00244         if (source == add_line)
00245             {
00246                 if (null == add_line_dialog)
00247                     {
00248                         add_line_dialog = new AddLineDialog(this);
00249                     }
00250             }
00251         /* add_line_dialog event */
00252         if (source == add_line_dialog)
00253             {
00254                 if (command.equals("OK"))
00255                     {
00256                         network_panel.stopSimulation();
00257                         Node first = network_panel.addNode(add_line_dialog.left_name);
00258                         Node second = network_panel.addNode(add_line_dialog.right_name);
00259                         network_panel.addLine(first, second, add_line_dialog.capacity);
00260                         String name = start_stop_simulation.getLabel();
00261                         if (name.equals("Zaustavi"))
00262                             {
00263                                 network_panel.startSimulation();
00264                             }
00265                     }
00266                 add_line_dialog = null;
00267             }
00268         /* add_node event */
00269         if (source == add_node)
00270             {
00271                 if (null == add_node_dialog)
00272                     {
00273                         add_node_dialog = new AddNodeDialog(this);
00274                     }
00275             }
00276         /* add_node_dialog event */
00277         if (source == add_node_dialog)
00278             {
00279                 if (command.equals("OK"))
00280                     {
00281                         network_panel.stopSimulation();
00282                         Node new_node = network_panel.addNode(add_node_dialog.node_name);
00283                         String name = start_stop_simulation.getLabel();
00284                         if (name.equals("Zaustavi"))
00285                             {
00286                                 network_panel.startSimulation();
00287                             }
00288                     }
00289                 add_node_dialog = null;
00290             }
00291         /* delete_line event */
00292         if (source == delete_line)
00293             {
00294                 if (null == delete_line_dialog)
00295                     {
00296                         delete_line_dialog = new DeleteLineDialog(this);
00297                     }
00298             }
00299         /* delete_line_dialog event */
00300         if (source == delete_line_dialog)
00301             {
00302                 if (command.equals("OK"))
00303                     {
00304                         network_panel.stopSimulation();
00305                         Line deleted = network_panel.deleteLine(delete_line_dialog.left_name,
00306                                                                 delete_line_dialog.right_name
00307                                                                 );
00308                         String name = start_stop_simulation.getLabel();
00309                         if (name.equals("Zaustavi"))
00310                             {
00311                                 network_panel.startSimulation();
00312                             }
00313                     }
00314                 delete_line_dialog = null;
00315             }
00316         /* delete_node event */
00317         if (source == delete_node)
00318             {
00319                 if (null == delete_node_dialog)
00320                     {
00321                         delete_node_dialog = new DeleteNodeDialog(this);
00322                     }
00323             }
00324         /* delete_node_dialog event */
00325         if (source == delete_node_dialog)
00326             {
00327                 if (command.equals("OK"))
00328                     {
00329                         network_panel.stopSimulation();
00330                         Node deleted = network_panel.deleteNode(delete_node_dialog.node_name);
00331                         String name = start_stop_simulation.getLabel();
00332                         if (name.equals("Zaustavi"))
00333                             {
00334                                 network_panel.startSimulation();
00335                             }
00336                     }
00337                 delete_node_dialog = null;
00338             }
00339         /* start_stop_simulation event */
00340         if (source == start_stop_simulation)
00341             {
00342                 String name = start_stop_simulation.getLabel();
00343                 if (name.equals("Pokreni"))
00344                     {
00345                         start_stop_simulation.setLabel("Zaustavi");
00346                         network_panel.startSimulation();
00347                     }
00348                 else
00349                     {
00350                         start_stop_simulation.setLabel("Pokreni");
00351                         network_panel.stopSimulation();
00352                     }
00353             }
00354     }

void Simulation::destroy ( ) [inline]
 

Applet destroy method. Simulation is stopped.

Definition at line 183 of file Simulation.java.

00184     {
00185         network_panel.endSimulation();
00186         remove(network_panel);
00187         remove(control_panel);
00188     }

String Simulation::getAppletInfo ( ) [inline]
 

Gets applet information.

Definition at line 381 of file Simulation.java.

00382     {
00383         return "Cyclops simulator\nFER/SPVP 2001\nD. Vasić, T. Petković, Z. Kostanjčar";
00384     }

void Simulation::init ( ) [inline]
 

Applet initialization. Creates controls and initializes network from parameters.

Definition at line 86 of file Simulation.java.

00087     {
00088         setLayout(new BorderLayout());
00089         network_panel = new NetworkSpacePanel(this);
00090         control_panel = new Panel();
00091         network_panel.setName("Network space interface");
00092         add("Center", network_panel);
00093         add("South", control_panel);
00094 
00095         control_panel.add(traceroute);
00096         control_panel.add(add_node);
00097         control_panel.add(delete_node);
00098         control_panel.add(add_line);
00099         control_panel.add(delete_line);
00100         control_panel.add(start_stop_simulation);
00101         control_panel.add(all_packets);
00102         control_panel.add(line_capacities);
00103 
00104         traceroute.addActionListener(this);
00105         add_node.addActionListener(this);
00106         delete_node.addActionListener(this);
00107         add_line.addActionListener(this);
00108         delete_line.addActionListener(this);
00109         start_stop_simulation.addActionListener(this);
00110         all_packets.addItemListener(this);
00111         line_capacities.addItemListener(this);
00112 
00113         /* Parse input parameters. */
00114         Node first;
00115         Node second;
00116         int i;
00117         int j;
00118         int capacity;
00119         String network = getParameter("network");
00120         /* Parse input network configuration. */
00121         if (null != network)
00122             {
00123                 StringTokenizer tokenizer = new StringTokenizer(network, ",");
00124                 while (tokenizer.hasMoreTokens())
00125                     {
00126                         String connection = tokenizer.nextToken();
00127                         i = connection.indexOf('-');
00128                         if (0 < i)
00129                             {
00130                                 capacity = 10;
00131                                 j = connection.indexOf('/');
00132                                 if (0 < j)
00133                                     {
00134                                         capacity = Integer.valueOf(connection.substring(j+1)).intValue();
00135                                         connection = connection.substring(0,j);
00136                                     }
00137                                 /* Add nodes and connections to network. */
00138                                 first = network_panel.addNode(connection.substring(0, i));
00139                                 second = network_panel.addNode(connection.substring(i + 1));
00140                                 network_panel.addLine(first, second, capacity);
00141                             }
00142                         /* if */
00143                     }
00144                 /* while */
00145             }
00146         /* if */
00147         String packets = getParameter("dummypackets");
00148         /* Parse dummy packets input. */
00149         if (null != packets)
00150             {
00151                 i = packets.indexOf(',');
00152                 if (0 < i)
00153                     {
00154                         int ttl = Integer.valueOf(packets.substring(i+1)).intValue();
00155                         int n = Integer.valueOf(packets.substring(0,i)).intValue();
00156                         network_panel.addDummyPackets(n, ttl);
00157                     }
00158             }
00159         else if (null != network)
00160             {
00161                 network_panel.addDummyPackets(40, -1);
00162             }
00163         /* else */
00164         String route = getParameter("route");
00165         /* Parse initial route. */
00166         if (null != route)
00167             {
00168                 i = route.indexOf('-');
00169                 if (0 < i)
00170                     {
00171                         network_panel.tracePackets(route.substring(0,i),
00172                                                    route.substring(i+1)
00173                                                    );
00174                     }
00175             }
00176         /* if */
00177     }

void Simulation::itemStateChanged ( ItemEvent event ) [inline]
 

Item events handler.

Definition at line 360 of file Simulation.java.

00361     {
00362         Object source;
00363         boolean on;
00364 
00365         source = event.getSource();
00366         on = event.getStateChange() == ItemEvent.SELECTED;
00367         if (source == all_packets)
00368             {
00369                 network_panel.all_packets = on;
00370             }
00371         if (source ==line_capacities)
00372             {
00373                 network_panel.show_line_capacities = on;
00374             }
00375     }

void Simulation::start ( ) [inline]
 

Start method. Resumes screen updating.

Definition at line 194 of file Simulation.java.

00195     {
00196         network_panel.start();
00197     }

void Simulation::stop ( ) [inline]
 

Stop method. Stops screen updating.

Definition at line 203 of file Simulation.java.

00204     {
00205         network_panel.stop();
00206     }


Member Data Documentation

Button Simulation::add_line = new Button("Dodaj liniju") [private]
 

Add line control.

Definition at line 50 of file Simulation.java.

AddLineDialog Simulation::add_line_dialog = null [private]
 

Add line dialog.

Definition at line 53 of file Simulation.java.

Button Simulation::add_node = new Button("Dodaj \u010dvor") [private]
 

Add node control.

Definition at line 62 of file Simulation.java.

AddNodeDialog Simulation::add_node_dialog = null [private]
 

Add node dialog.

Definition at line 65 of file Simulation.java.

Checkbox Simulation::all_packets = new Checkbox("Svi paketi") [private]
 

All packets visibilty control.

Definition at line 77 of file Simulation.java.

Panel Simulation::control_panel [private]
 

Control panel.

Definition at line 35 of file Simulation.java.

Button Simulation::delete_line = new Button("Obri\u0161i liniju") [private]
 

Delete line control.

Definition at line 56 of file Simulation.java.

DeleteLineDialog Simulation::delete_line_dialog = null [private]
 

Delete line control dialog.

Definition at line 59 of file Simulation.java.

Button Simulation::delete_node = new Button("Obri\u0161i \u010dvor") [private]
 

Delete node control.

Definition at line 68 of file Simulation.java.

DeleteNodeDialog Simulation::delete_node_dialog = null [private]
 

Delete node dialog.

Definition at line 71 of file Simulation.java.

Checkbox Simulation::line_capacities = new Checkbox("Kapaciteti linija") [private]
 

Line capacity visibility control.

Definition at line 80 of file Simulation.java.

NetworkSpacePanel Simulation::network_panel [private]
 

Panel for network display.

Definition at line 32 of file Simulation.java.

Button Simulation::start_stop_simulation = new Button("Pokreni") [private]
 

Start/stop simulation control.

Definition at line 74 of file Simulation.java.

Button Simulation::traceroute = new Button("Put") [private]
 

Traceroute control.

Definition at line 44 of file Simulation.java.

TracerouteDialog Simulation::traceroute_dialog = null [private]
 

Traceroute dialog.

Definition at line 47 of file Simulation.java.


The documentation for this class was generated from the following file:
Generated at Thu Jun 28 03:04:24 2001 for Cyclops Network Simulator by doxygen1.2.7 written by Dimitri van Heesch, © 1997-2001