Index: trunk/src/tmcsim/client/ATMSBatchViewer.java
===================================================================
--- trunk/src/tmcsim/client/ATMSBatchViewer.java	(revision 128)
+++ trunk/src/tmcsim/client/ATMSBatchViewer.java	(revision 135)
@@ -1,14 +1,16 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
+
 package tmcsim.client;
 
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Queue;
+import java.util.Set;
 import java.util.Vector;
 import javax.swing.AbstractListModel;
+import javax.swing.JLabel;
 import javax.swing.JList;
+import javax.swing.JOptionPane;
 
 /**
@@ -18,10 +20,21 @@
 public class ATMSBatchViewer extends javax.swing.JFrame 
 {
+    /** Reference to the driver associated with this GUI */
+    private ATMSBatchDriver driver; 
+    private final List<String> incidents;
     /**
-     * Creates new form ATMSBatchViewer
+     * Creates new form ATMSBatchViewer.
+     * @param incidents a list of incidents to show in a list.
      */
-    public ATMSBatchViewer() 
+    public ATMSBatchViewer(ATMSBatchDriver driver, List<String> incidentList) 
     {
         initComponents();
+        this.driver = driver; 
+        this.incidents = incidentList;
+        lstIncidents.setModel(new javax.swing.AbstractListModel<String>()
+        {
+            public int getSize() { return incidents.size(); }
+            public String getElementAt(int i) { return incidents.get(i); }
+        });        
     }
 
@@ -48,5 +61,6 @@
     @SuppressWarnings("unchecked")
     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
-    private void initComponents() {
+    private void initComponents()
+    {
 
         pnlEvents = new javax.swing.JPanel();
@@ -54,9 +68,14 @@
         lstEvents = new javax.swing.JList<>();
         txtClockTime = new javax.swing.JLabel();
+        pnlIncidents = new javax.swing.JPanel();
+        btnClear = new javax.swing.JButton();
+        jScrollPane1 = new javax.swing.JScrollPane();
+        lstIncidents = new javax.swing.JList<>();
 
         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
         lstEvents.setFont(new java.awt.Font("Noto Mono", 0, 12)); // NOI18N
-        lstEvents.setModel(new javax.swing.AbstractListModel<String>() {
+        lstEvents.setModel(new javax.swing.AbstractListModel<String>()
+        {
             String[] strings = { "item 1", "item 2" };
             public int getSize() { return strings.length; }
@@ -73,5 +92,5 @@
             pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlEventsLayout.createSequentialGroup()
-                .addContainerGap(83, Short.MAX_VALUE)
+                .addContainerGap(74, Short.MAX_VALUE)
                 .addComponent(scrollEvents, javax.swing.GroupLayout.PREFERRED_SIZE, 354, javax.swing.GroupLayout.PREFERRED_SIZE)
                 .addGap(59, 59, 59))
@@ -90,4 +109,42 @@
         );
 
+        btnClear.setText("Clear Incident");
+        btnClear.addActionListener(new java.awt.event.ActionListener()
+        {
+            public void actionPerformed(java.awt.event.ActionEvent evt)
+            {
+                btnClearActionPerformed(evt);
+            }
+        });
+
+        lstIncidents.setFont(new java.awt.Font("Noto Mono", 0, 15)); // NOI18N
+        lstIncidents.setModel(new javax.swing.AbstractListModel<String>()
+        {
+            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
+            public int getSize() { return strings.length; }
+            public String getElementAt(int i) { return strings[i]; }
+        });
+        lstIncidents.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
+        jScrollPane1.setViewportView(lstIncidents);
+
+        javax.swing.GroupLayout pnlIncidentsLayout = new javax.swing.GroupLayout(pnlIncidents);
+        pnlIncidents.setLayout(pnlIncidentsLayout);
+        pnlIncidentsLayout.setHorizontalGroup(
+            pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(pnlIncidentsLayout.createSequentialGroup()
+                .addGroup(pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+                    .addComponent(btnClear)
+                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 211, javax.swing.GroupLayout.PREFERRED_SIZE))
+                .addGap(0, 173, Short.MAX_VALUE))
+        );
+        pnlIncidentsLayout.setVerticalGroup(
+            pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlIncidentsLayout.createSequentialGroup()
+                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(btnClear)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+        );
+
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
         getContentPane().setLayout(layout);
@@ -97,4 +154,8 @@
                 .addComponent(pnlEvents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                 .addContainerGap())
+            .addGroup(layout.createSequentialGroup()
+                .addGap(76, 76, 76)
+                .addComponent(pnlIncidents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
         );
         layout.setVerticalGroup(
@@ -102,9 +163,32 @@
             .addGroup(layout.createSequentialGroup()
                 .addComponent(pnlEvents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
-                .addGap(0, 129, Short.MAX_VALUE))
+                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+                .addComponent(pnlIncidents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+                .addContainerGap())
         );
 
         pack();
     }// </editor-fold>//GEN-END:initComponents
+
+    private void btnClearActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnClearActionPerformed
+    {//GEN-HEADEREND:event_btnClearActionPerformed
+        String selectedItem =  lstIncidents.getSelectedValue();
+        if (selectedItem == null)
+        {
+            JOptionPane.showMessageDialog(this, "No Incident Selected", "Warning", JOptionPane.INFORMATION_MESSAGE);
+        }
+        else
+        {
+            System.out.println("Clicked Incident:" + selectedItem);
+            if (driver != null) driver.clearIncident(selectedItem);
+            lstIncidents.clearSelection();
+            // Remove selectedItem from list model;
+            incidents.remove(selectedItem);
+            // Update the list displayed
+            String[] array = new String[incidents.size()];
+            array = incidents.toArray(array);
+            lstIncidents.setListData(array);
+        }
+    }//GEN-LAST:event_btnClearActionPerformed
 
     /**
@@ -141,5 +225,7 @@
                 sample.add("Greetings");
                 sample.add("Earthling");
-                ATMSBatchViewer view = new ATMSBatchViewer();
+                List<String> items = new ArrayList<String>();
+                items.add("Able"); items.add("Baker");
+                ATMSBatchViewer view = new ATMSBatchViewer(null,items);
                 view.setVisible(true);
                 view.update("01", sample);
@@ -150,6 +236,10 @@
 
     // Variables declaration - do not modify//GEN-BEGIN:variables
+    private javax.swing.JButton btnClear;
+    private javax.swing.JScrollPane jScrollPane1;
     private javax.swing.JList<String> lstEvents;
+    private javax.swing.JList<String> lstIncidents;
     private javax.swing.JPanel pnlEvents;
+    private javax.swing.JPanel pnlIncidents;
     private javax.swing.JScrollPane scrollEvents;
     private javax.swing.JLabel txtClockTime;
