1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package zeus.visualiser.control;
25
26 import java.awt.*;
27 import java.awt.event.*;
28 import javax.swing.*;
29 import zeus.util.Assert;
30
31
32 public class ControlMenuBar extends JMenuBar implements ActionListener
33 {
34 protected JMenu fileMenu, agentMenu, goalMenu, orgMenu, coordMenu,
35 societyMenu, helpMenu;
36
37 protected JMenuItem connect, disconnect, exit, load;
38 protected JMenuItem browse_agent, tune_agent, command,
39 cc_fact, uncc_fact, browse_fact, add_fact,
40 cc_task, uncc_task, browse_task, add_task;
41 protected JMenuItem cc_rel, uncc_rel, browse_rel, add_rel,
42 cc_sgy, uncc_sgy, browse_sgy, add_sgy;
43 protected JMenuItem browse_goal, add_goal, cc_goal, uncc_goal;
44 protected JMenuItem help, about;
45
46 protected ControlTool view;
47
48 protected static final int CHECK = 0;
49 protected static final int PLAIN = 1;
50 protected static final int RADIO = 2;
51
52
53 public ControlMenuBar(ControlTool view)
54 {
55 super();
56 Assert.notNull(view);
57 this.view = view;
58
59 fileMenu = new JMenu("File");
60 fileMenu.setMnemonic('F');
61 connect = createMenuItem(fileMenu, PLAIN, "Connect to namservers", 'C');
62 disconnect = createMenuItem(fileMenu, PLAIN, "Disconnect from nameservers",'D');
63 command = createMenuItem(fileMenu, PLAIN, "Send commands...", 'S');
64 command.setEnabled(false);
65 load = createMenuItem(fileMenu, PLAIN, "Load Ontology...", 'O');
66 exit = createMenuItem(fileMenu, PLAIN, "Quit", 'Q');
67 add(fileMenu);
68
69 agentMenu = new JMenu("Agents");
70 agentMenu.setMnemonic('A');
71 tune_agent = createMenuItem(agentMenu, PLAIN, "Tune Agent...", 'T');
72 cc_fact = createMenuItem(agentMenu, PLAIN, "Request a Resource...", 'R');
73 uncc_fact = createMenuItem(agentMenu, PLAIN, "Unrequest Resource...", 'U');;
74 browse_fact = createMenuItem(agentMenu, PLAIN, "Browse Resources...", 'B');
75 add_fact = createMenuItem(agentMenu, PLAIN, "Add a Resource...", 'A');
76 agentMenu.addSeparator();
77 cc_task = createMenuItem(agentMenu, PLAIN, "Request Tasks...", 0);
78 uncc_task = createMenuItem(agentMenu, PLAIN, "Unrequest Tasks...", 0);
79 browse_task = createMenuItem(agentMenu, PLAIN, "Browse Tasks...", 0);
80 add_task = createMenuItem(agentMenu, PLAIN, "Add a Task...", 0);
81 add(agentMenu);
82 agentMenu.setEnabled(false);
83
84 goalMenu = new JMenu("Goals");
85 goalMenu.setMnemonic('G');
86 cc_goal = createMenuItem(agentMenu, PLAIN, "Request Goals...", 'R');
87 uncc_goal = createMenuItem(agentMenu, PLAIN, "Unrequest Goals...", 'U');;
88 browse_goal = createMenuItem(agentMenu, PLAIN, "Browse Goals...", 'B');
89 add_goal = createMenuItem(agentMenu, PLAIN, "Add a Goal...", 'A');;
90 add(goalMenu);
91 goalMenu.setEnabled(false);
92
93 orgMenu = new JMenu("Organisation");
94 orgMenu.setMnemonic('O');
95 cc_rel = createMenuItem(agentMenu, PLAIN, "Request Relations...", 'R');
96 uncc_rel = createMenuItem(agentMenu, PLAIN, "Unrequest Relations...", 'U');
97 browse_rel = createMenuItem(agentMenu, PLAIN, "Browse Relations...", 'B');
98 add_rel = createMenuItem(agentMenu, PLAIN, "Add a Relation...", 'A');
99 add(orgMenu);
100 orgMenu.setEnabled(false);
101
102 societyMenu = new JMenu("Society");
103 societyMenu.setMnemonic('S');
104 browse_agent = createMenuItem(agentMenu, PLAIN, "Browse Agents...", 'B');
105 add(societyMenu);
106 societyMenu.setEnabled(false);
107
108 coordMenu = new JMenu("Co-ordination");
109 coordMenu.setMnemonic('C');
110 cc_sgy = createMenuItem(agentMenu, PLAIN, "Request Strategies...", 'R');
111 uncc_sgy = createMenuItem(agentMenu, PLAIN, "Unrequest Strategies...", 'U');
112 browse_sgy = createMenuItem(agentMenu, PLAIN, "Browse Strategies...", 'B');
113 add_sgy = createMenuItem(agentMenu, PLAIN, "Add a Strategy...", 'A');
114 add(coordMenu);
115 coordMenu.setEnabled(false);
116
117 helpMenu = new JMenu("Help");
118 helpMenu.setMnemonic('H');
119 help = createMenuItem(helpMenu, PLAIN, "Using the Control Tool", 'U');
120 about = createMenuItem(helpMenu, PLAIN, "About ZEUS", 'A');
121 add(helpMenu);
122 }
123
124
125 private JMenuItem createMenuItem(JMenu menu, int type, String text, int accelKey)
126 {
127 JMenuItem item;
128 switch(type)
129 {
130
131
132
133
134
135 case RADIO :
136 item = new JRadioButtonMenuItem();
137 item.addActionListener(this);
138 default :
139 item = new JMenuItem();
140 item.addActionListener(this);
141 break;
142 }
143 item.setText(text);
144 if(accelKey > 0)
145 item.setMnemonic(accelKey);
146 menu.add(item);
147 return item;
148 }
149
150
151
152 public void actionPerformed(ActionEvent event)
153 {
154 Object src = event.getSource();
155
156 if ( src == connect ) view.Connect(true);
157 else if ( src == disconnect ) view.Connect(false);
158 else if ( src == load ) view.LoadOntology();
159 else if ( src == command ) view.SendCommand();
160 else if ( src == exit ) view.Exit();
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191 else if ( src == help ) view.showHelp();
192 else if ( src == about ) view.About();
193 }
194 }