Client-Side Presentation Logic 625 Here is the actual implementation of the TestTool class: import java.awt.*; import java.awt.event.*; import java.io.InputStream; import java.io.FileInputStream; import com.microstar.xml.XmlParser; import com.microstar.xml.XmlHandler; public class TestTool extends Frame implements ActionListener {   private Panel basePanel;   private Button purgeButton;   private Button inject1Button;   private Button inject2Button;   private XmlParser parser;   private ParseHandler myHandler;   public TestTool() {     super("Travel Deals Test Tool");     purgeButton = new Button("Purge Data");     inject1Button = new Button("Inject 1st set");     inject2Button = new Button("Inject 2nd set");     purgeButton.addActionListener(this);     inject1Button.addActionListener(this);     inject2Button.addActionListener(this); This WindowAdapter() enables the Close button on the window frame to work.     addWindowListener( new WindowAdapter() {        public void windowClosing(WindowEvent ev) { System.exit(0); }     });     basePanel = new Panel();     basePanel.setLayout(new FlowLayout());     basePanel.add(purgeButton);     basePanel.add(inject1Button);     basePanel.add(inject2Button);     add(basePanel);    }   private void parseAndAddRecords(String filename) throws Exception {       parser = new XmlParser();       InputStream myInput = new FileInputStream(filename);       myHandler = new ParseHandler();       parser.setHandler(myHandler);       parser.parse(null, null,myInput, null);     }