Changeset 135 in tmcsimulator for trunk/src/tmcsim/client/ATMSBatchViewer.java


Ignore:
Timestamp:
10/17/2017 05:10:07 PM (9 years ago)
Author:
jdalbey
Message:

ATMSBatchDriver.java Implemented "clear incident" feature.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/tmcsim/client/ATMSBatchViewer.java

    r128 r135  
    1 /* 
    2  * To change this license header, choose License Headers in Project Properties. 
    3  * To change this template file, choose Tools | Templates 
    4  * and open the template in the editor. 
    5  */ 
     1 
    62package tmcsim.client; 
    73 
     4import java.util.ArrayList; 
     5import java.util.HashSet; 
    86import java.util.LinkedList; 
     7import java.util.List; 
    98import java.util.Queue; 
     9import java.util.Set; 
    1010import java.util.Vector; 
    1111import javax.swing.AbstractListModel; 
     12import javax.swing.JLabel; 
    1213import javax.swing.JList; 
     14import javax.swing.JOptionPane; 
    1315 
    1416/** 
     
    1820public class ATMSBatchViewer extends javax.swing.JFrame  
    1921{ 
     22    /** Reference to the driver associated with this GUI */ 
     23    private ATMSBatchDriver driver;  
     24    private final List<String> incidents; 
    2025    /** 
    21      * Creates new form ATMSBatchViewer 
     26     * Creates new form ATMSBatchViewer. 
     27     * @param incidents a list of incidents to show in a list. 
    2228     */ 
    23     public ATMSBatchViewer()  
     29    public ATMSBatchViewer(ATMSBatchDriver driver, List<String> incidentList)  
    2430    { 
    2531        initComponents(); 
     32        this.driver = driver;  
     33        this.incidents = incidentList; 
     34        lstIncidents.setModel(new javax.swing.AbstractListModel<String>() 
     35        { 
     36            public int getSize() { return incidents.size(); } 
     37            public String getElementAt(int i) { return incidents.get(i); } 
     38        });         
    2639    } 
    2740 
     
    4861    @SuppressWarnings("unchecked") 
    4962    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents 
    50     private void initComponents() { 
     63    private void initComponents() 
     64    { 
    5165 
    5266        pnlEvents = new javax.swing.JPanel(); 
     
    5468        lstEvents = new javax.swing.JList<>(); 
    5569        txtClockTime = new javax.swing.JLabel(); 
     70        pnlIncidents = new javax.swing.JPanel(); 
     71        btnClear = new javax.swing.JButton(); 
     72        jScrollPane1 = new javax.swing.JScrollPane(); 
     73        lstIncidents = new javax.swing.JList<>(); 
    5674 
    5775        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
    5876 
    5977        lstEvents.setFont(new java.awt.Font("Noto Mono", 0, 12)); // NOI18N 
    60         lstEvents.setModel(new javax.swing.AbstractListModel<String>() { 
     78        lstEvents.setModel(new javax.swing.AbstractListModel<String>() 
     79        { 
    6180            String[] strings = { "item 1", "item 2" }; 
    6281            public int getSize() { return strings.length; } 
     
    7392            pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
    7493            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlEventsLayout.createSequentialGroup() 
    75                 .addContainerGap(83, Short.MAX_VALUE) 
     94                .addContainerGap(74, Short.MAX_VALUE) 
    7695                .addComponent(scrollEvents, javax.swing.GroupLayout.PREFERRED_SIZE, 354, javax.swing.GroupLayout.PREFERRED_SIZE) 
    7796                .addGap(59, 59, 59)) 
     
    90109        ); 
    91110 
     111        btnClear.setText("Clear Incident"); 
     112        btnClear.addActionListener(new java.awt.event.ActionListener() 
     113        { 
     114            public void actionPerformed(java.awt.event.ActionEvent evt) 
     115            { 
     116                btnClearActionPerformed(evt); 
     117            } 
     118        }); 
     119 
     120        lstIncidents.setFont(new java.awt.Font("Noto Mono", 0, 15)); // NOI18N 
     121        lstIncidents.setModel(new javax.swing.AbstractListModel<String>() 
     122        { 
     123            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; 
     124            public int getSize() { return strings.length; } 
     125            public String getElementAt(int i) { return strings[i]; } 
     126        }); 
     127        lstIncidents.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); 
     128        jScrollPane1.setViewportView(lstIncidents); 
     129 
     130        javax.swing.GroupLayout pnlIncidentsLayout = new javax.swing.GroupLayout(pnlIncidents); 
     131        pnlIncidents.setLayout(pnlIncidentsLayout); 
     132        pnlIncidentsLayout.setHorizontalGroup( 
     133            pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     134            .addGroup(pnlIncidentsLayout.createSequentialGroup() 
     135                .addGroup(pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     136                    .addComponent(btnClear) 
     137                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 211, javax.swing.GroupLayout.PREFERRED_SIZE)) 
     138                .addGap(0, 173, Short.MAX_VALUE)) 
     139        ); 
     140        pnlIncidentsLayout.setVerticalGroup( 
     141            pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     142            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlIncidentsLayout.createSequentialGroup() 
     143                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE) 
     144                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
     145                .addComponent(btnClear) 
     146                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
     147        ); 
     148 
    92149        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    93150        getContentPane().setLayout(layout); 
     
    97154                .addComponent(pnlEvents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
    98155                .addContainerGap()) 
     156            .addGroup(layout.createSequentialGroup() 
     157                .addGap(76, 76, 76) 
     158                .addComponent(pnlIncidents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
     159                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    99160        ); 
    100161        layout.setVerticalGroup( 
     
    102163            .addGroup(layout.createSequentialGroup() 
    103164                .addComponent(pnlEvents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
    104                 .addGap(0, 129, Short.MAX_VALUE)) 
     165                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
     166                .addComponent(pnlIncidents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
     167                .addContainerGap()) 
    105168        ); 
    106169 
    107170        pack(); 
    108171    }// </editor-fold>//GEN-END:initComponents 
     172 
     173    private void btnClearActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnClearActionPerformed 
     174    {//GEN-HEADEREND:event_btnClearActionPerformed 
     175        String selectedItem =  lstIncidents.getSelectedValue(); 
     176        if (selectedItem == null) 
     177        { 
     178            JOptionPane.showMessageDialog(this, "No Incident Selected", "Warning", JOptionPane.INFORMATION_MESSAGE); 
     179        } 
     180        else 
     181        { 
     182            System.out.println("Clicked Incident:" + selectedItem); 
     183            if (driver != null) driver.clearIncident(selectedItem); 
     184            lstIncidents.clearSelection(); 
     185            // Remove selectedItem from list model; 
     186            incidents.remove(selectedItem); 
     187            // Update the list displayed 
     188            String[] array = new String[incidents.size()]; 
     189            array = incidents.toArray(array); 
     190            lstIncidents.setListData(array); 
     191        } 
     192    }//GEN-LAST:event_btnClearActionPerformed 
    109193 
    110194    /** 
     
    141225                sample.add("Greetings"); 
    142226                sample.add("Earthling"); 
    143                 ATMSBatchViewer view = new ATMSBatchViewer(); 
     227                List<String> items = new ArrayList<String>(); 
     228                items.add("Able"); items.add("Baker"); 
     229                ATMSBatchViewer view = new ATMSBatchViewer(null,items); 
    144230                view.setVisible(true); 
    145231                view.update("01", sample); 
     
    150236 
    151237    // Variables declaration - do not modify//GEN-BEGIN:variables 
     238    private javax.swing.JButton btnClear; 
     239    private javax.swing.JScrollPane jScrollPane1; 
    152240    private javax.swing.JList<String> lstEvents; 
     241    private javax.swing.JList<String> lstIncidents; 
    153242    private javax.swing.JPanel pnlEvents; 
     243    private javax.swing.JPanel pnlIncidents; 
    154244    private javax.swing.JScrollPane scrollEvents; 
    155245    private javax.swing.JLabel txtClockTime; 
Note: See TracChangeset for help on using the changeset viewer.