gt:         _infoOptions = new JComboBox();
context: 
  import java.io.FileInputStream;
  import java.util.ArrayList;
  import java.util.Calendar;
  import java.util.GregorianCalendar;
  import java.util.ListIterator;
  import java.util.Random;
  import java.util.StringTokenizer;
  
  import javax.swing.BorderFactory;
  import javax.swing.Box;
  import javax.swing.BoxLayout;
  import javax.swing.JComboBox;
  import javax.swing.JButton;
  import javax.swing.JFrame;
  import javax.swing.JLabel;
  import javax.swing.JScrollPane;
  import javax.swing.JTextArea;
  import javax.swing.JPanel;
  import javax.swing.JTextField;
  
  import FAtiMA.conditions.Condition;
  import FAtiMA.deliberativeLayer.plan.Effect;
  import FAtiMA.deliberativeLayer.plan.Step;
  import FAtiMA.emotionalState.BaseEmotion;
  import FAtiMA.memory.episodicMemory.Time;
  import FAtiMA.sensorEffector.Parameter;
  import FAtiMA.wellFormedNames.Name;
  import FAtiMA.wellFormedNames.Substitution;
  import FAtiMA.wellFormedNames.Symbol;
  import FAtiMA.wellFormedNames.Unifier;
  
  import java.awt.Dimension;
  import java.awt.event.*;
  
  /**
   * @author Meiyii Lim, Michael Kriegel
   *
   * An GUI to display the details of interaction and for the user to interact
   */
  
  public class UserInterface implements ActionListener {
  	JFrame _frame;
  	JTextArea textArea;
  	JComboBox inputList;
  	JComboBox _caseOptions;
  	JComboBox _userOptions;
  	JComboBox _timeOptions;
  	JComboBox _locationOptions;
  	JComboBox _infoOptions;
  	JComboBox _queryOptions;
  	JComboBox _eventOptions;
  	JTextField _userSpeech;
  	WorldTest _world;
  	
  	public static final String CASE1 = "Case1";
  	public static final String CASE2 = "Case2";
  	public static final String CASE3 = "Case3";
  	public static final String MORNING = "Morning";
  	public static final String AFTERNOON = "Afternoon";
  	public static final String LIVINGROOM = "LivingRoom";
  	public static final String STUDYROOM = "StudyRoom";
  	public static final String KITCHEN = "Kitchen";
  	public static final String RECEPTION = "Reception";
  	public static final String OFFICE = "Office";
  	public static final String COMMONROOM = "CommonRoom";
  	public static final String AMY = "Amy";
  	public static final String JOHN = "John";
  	public static final String PAULIE = "Paulie";
  	public static final String LUKE = "Luke";
  	public static final String LUKEPAULIE = "LukePaulie";
  	public static final String USER = "User";
  	
  	private Random _r;
  	private static int buffsize = 250;
  	private String _previousUser;
  	
      public UserInterface(WorldTest world_in) {
          
      	_world = world_in;
      	_r = new Random();
      
          _frame = new JFrame("WorldTest User Interface");
          _frame.getContentPane().setLayout(new BoxLayout(_frame.getContentPane(),BoxLayout.Y_AXIS));
  		_frame.setSize(500,800);
  		_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  		
  		textArea = new JTextArea(40, 200);
  	    JScrollPane scrollPane = new JScrollPane(textArea);
  	    scrollPane.setVerticalScrollBarPolicy(
                  JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
  
          // Create the combo box
          inputList = new JComboBox();
          
          _frame.getContentPane().add(scrollPane);
          
          /*
          _timeOptions = new JComboBox();
          _timeOptions.addItem("beforeDinner");
          _timeOptions.addItem("elderArrives");
  		_timeOptions.addItem("dinner");
  		_timeOptions.addItem("afterDinner");
  		_timeOptions.addActionListener(new ActionListener(){
  			public void actionPerformed(ActionEvent arg0) {
  				_world.ChangeTime(_timeOptions.getSelectedItem().toString());
  		    	WriteLine("=> Changing the time: " + _timeOptions.getSelectedItem().toString());
  			}
  		});*/
          
          _caseOptions = new JComboBox();
      	_caseOptions.addItem(UserInterface.CASE1);
  	    _caseOptions.addItem(UserInterface.CASE2);
  	    _caseOptions.addItem(UserInterface.CASE3);
  	    _caseOptions.addActionListener(new ActionListener(){
  			public void actionPerformed(ActionEvent arg0) {
  				_world.ChangeExperimentCase(_caseOptions.getSelectedItem().toString());
  				WriteLine("=> Changing the case: " + _caseOptions.getSelectedItem().toString());
  			}
  		});
  			
  	    Box caseBox = new Box(BoxLayout.X_AXIS);
  	    caseBox.add(new JLabel("Case: "));
  	    caseBox.add(_caseOptions );
          
  	    // Meiyii 06/03/09
          _timeOptions = new JComboBox();
          GregorianCalendar gcal = new GregorianCalendar();
  		int time = gcal.get(Calendar.HOUR_OF_DAY);
  		_timeOptions.addItem(time);
          _timeOptions.addItem(UserInterface.MORNING);
          _timeOptions.addItem(UserInterface.AFTERNOON);
          
  		_timeOptions.addActionListener(new ActionListener(){
  			public void actionPerformed(ActionEvent arg0) {
  				_world.ChangeTime(_timeOptions.getSelectedItem().toString());
  		    	WriteLine("=> Changing the time: " + _timeOptions.getSelectedItem().toString());
  			}
  		});
          
  		Box timeBox = new Box(BoxLayout.X_AXIS);
          timeBox.add(new JLabel("Time: "));
          timeBox.add(_timeOptions );
          
          _locationOptions = new JComboBox();
          _userOptions = new JComboBox();
          
          // Meiyii 06/04/09
          if(_world.GetScenery().equals("AmyHouse"))       
          {       				      
  	        _locationOptions.addItem(UserInterface.LIVINGROOM);
  	        _locationOptions.addItem(UserInterface.STUDYROOM);
  	        _locationOptions.addItem(UserInterface.KITCHEN);
  	      
  			_userOptions.addItem(UserInterface.AMY);
  			_userOptions.addItem(UserInterface.USER);
          }
          else if(_world.GetScenery().equals("Office"))
          {
  	        _locationOptions.addItem(UserInterface.RECEPTION);
  	        _locationOptions.addItem(UserInterface.COMMONROOM);
  	        _locationOptions.addItem(UserInterface.OFFICE);
  	       
  			_userOptions.addItem(UserInterface.JOHN);
  			_userOptions.addItem(UserInterface.LUKE);
  			_userOptions.addItem(UserInterface.PAULIE);
  			_userOptions.addItem(UserInterface.LUKEPAULIE);		
          }
          else
          {
          	_userOptions.addItem("Judy");
  			_userOptions.addItem("David");
          	_userOptions.addItem(UserInterface.USER);
          }
  
          _locationOptions.addActionListener(new ActionListener(){
  			public void actionPerformed(ActionEvent e) {
  				_world.ChangePlace(_locationOptions.getSelectedItem().toString());
  				WriteLine("=> Changing the location: " + _locationOptions.getSelectedItem().toString());
  			}
  		});             
  		
          Box locationBox = new Box(BoxLayout.X_AXIS);
          locationBox.add(new JLabel("Location: "));
          locationBox.add(_locationOptions);
          
      	_userOptions.addActionListener(new ActionListener(){
  			public void actionPerformed(ActionEvent e) {
  				_world.ChangeUser(_previousUser, _userOptions.getSelectedItem().toString());
  				WriteLine("=> Changing the user: " + _userOptions.getSelectedItem().toString());
  				String userOptionsFile = _world.GetUserOptionsFile() + _userOptions.getSelectedItem().toString() + ".txt";
  				
  				// Read user input options from a text file
  				ParseFile(userOptionsFile);
  				_previousUser = _userOptions.getSelectedItem().toString();
  			}
  		});        
      	
          Box userBox = new Box(BoxLayout.X_AXIS);
          userBox.add(new JLabel("User: "));
          userBox.add(_userOptions);
          
          // Meiyii 19/11/09
  