View Javadoc

1   /*
2   * The contents of this file are subject to the BT "ZEUS" Open Source 
3   * Licence (L77741), Version 1.0 (the "Licence"); you may not use this file 
4   * except in compliance with the Licence. You may obtain a copy of the Licence
5   * from $ZEUS_INSTALL/licence.html or alternatively from
6   * http://www.labs.bt.com/projects/agents/zeus/licence.htm
7   * 
8   * Except as stated in Clause 7 of the Licence, software distributed under the
9   * Licence is distributed WITHOUT WARRANTY OF ANY KIND, either express or 
10  * implied. See the Licence for the specific language governing rights and 
11  * limitations under the Licence.
12  * 
13  * The Original Code is within the package zeus.*.
14  * The Initial Developer of the Original Code is British Telecommunications
15  * public limited company, whose registered office is at 81 Newgate Street, 
16  * London, EC1A 7AJ, England. Portions created by British Telecommunications 
17  * public limited company are Copyright 1996-9. All Rights Reserved.
18  * 
19  * THIS NOTICE MUST BE INCLUDED ON ANY COPY OF THIS FILE
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        /* case CHECK :
131          item = new JCheckBoxMenuItem();
132          ((JCheckBoxMenuItem) item).setState(false);
133          item.addItemListener(this);
134          break; */
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     /* else if ( src == browse_agent  ) view.BrowseAgents();
163 
164     else if ( src == tune_agent    ) view.TuneAgent();
165 
166     else if ( src == browse_fact   ) view.BrowseFacts();
167     else if ( src == add_fact      ) view.AddFact();
168     else if ( src == cc_fact       ) view.StreamFacts(true);
169     else if ( src == uncc_fact     ) view.StreamFacts(false);
170 
171     else if ( src == browse_task   ) view.BrowseTasks();
172     else if ( src == add_task      ) view.AddTask();
173     else if ( src == cc_task       ) view.StreamTasks(true);
174     else if ( src == uncc_task     ) view.StreamTasks(false);
175 
176     else if ( src == browse_goal    ) view.BrowseGoals();
177     else if ( src == add_goal       ) view.AddGoal();
178     else if ( src == cc_goal        ) view.StreamGoals(true);
179     else if ( src == uncc_goal      ) view.StreamGoals(false);
180 
181     else if ( src == browse_rel    ) view.BrowseRelations();
182     else if ( src == add_rel       ) view.AddRelation();
183     else if ( src == cc_rel        ) view.StreamRelations(true);
184     else if ( src == uncc_rel      ) view.StreamRelations(false);
185 
186     else if ( src == browse_sgy    ) view.BrowseStrategies();
187     else if ( src == add_sgy       ) view.AddStrategy();
188     else if ( src == cc_sgy        ) view.StreamStrategies(true);
189     else if ( src == uncc_sgy      ) view.StreamStrategies(false); */
190 
191     else if ( src == help          ) view.showHelp();
192     else if ( src == about         ) view.About();
193   }
194 }