Warning: Can't use blame annotator:
svn blame failed on trunk/src/tmcsim/client/ATMSBatchViewer.java: ("Can't find a temporary directory: Internal error", 20014)

source: tmcsimulator/trunk/src/tmcsim/client/ATMSBatchViewer.java @ 168

Revision 168, 12.0 KB checked in by jdalbey, 9 years ago (diff)

Station.java Fix "OP" typo. ATMSBatchViewer Change panel width.

RevLine 
1
2package tmcsim.client;
3
4import java.util.ArrayList;
5import java.util.HashSet;
6import java.util.LinkedList;
7import java.util.List;
8import java.util.Queue;
9import java.util.Set;
10import java.util.Vector;
11import javax.swing.AbstractListModel;
12import javax.swing.JLabel;
13import javax.swing.JList;
14import javax.swing.JOptionPane;
15import tmcsim.cadsimulator.CADServer;
16
17/**
18 *
19 * @author jdalbey
20 */
21public class ATMSBatchViewer extends javax.swing.JFrame 
22{
23    /** Reference to the driver associated with this GUI */
24    private ATMSBatchDriver driver; 
25    private final List<String> incidents;
26    /**
27     * Creates new form ATMSBatchViewer.
28     * @param incidents a list of incidents to show in a list.
29     */
30    public ATMSBatchViewer(ATMSBatchDriver driver, List<String> incidentList) 
31    {
32        initComponents();
33        this.driver = driver; 
34        this.incidents = incidentList;
35        lstIncidents.setModel(new javax.swing.AbstractListModel<String>()
36        {
37            public int getSize() { return incidents.size(); }
38            public String getElementAt(int i) { return incidents.get(i); }
39        });       
40    }
41
42    public void update(String currentTime, String atmsTime, Queue<String> events)
43    {
44        lstEvents.setModel(new MyListModel(events));
45        txtClockTime.setText(currentTime + " / " +atmsTime);
46    }
47    class MyListModel extends AbstractListModel<String>
48    {
49            String[] strings = { "item 1", "item 2" };
50            public MyListModel(Queue<String> events)
51            {
52                strings = events.toArray(new String[events.size()]);               
53            }
54            public int getSize() { return strings.length; }
55            public String getElementAt(int i) { return strings[i]; }       
56    }
57    /**
58     * This method is called from within the constructor to initialize the form.
59     * WARNING: Do NOT modify this code. The content of this method is always
60     * regenerated by the Form Editor.
61     */
62    @SuppressWarnings("unchecked")
63    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
64    private void initComponents()
65    {
66
67        pnlEvents = new javax.swing.JPanel();
68        scrollEvents = new javax.swing.JScrollPane();
69        lstEvents = new javax.swing.JList<>();
70        txtClockTime = new javax.swing.JLabel();
71        pnlIncidents = new javax.swing.JPanel();
72        btnClear = new javax.swing.JButton();
73        jScrollPane1 = new javax.swing.JScrollPane();
74        lstIncidents = new javax.swing.JList<>();
75
76        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
77        setTitle("ATMS Batch Driver");
78
79        lstEvents.setFont(new java.awt.Font("Noto Mono", 0, 12)); // NOI18N
80        lstEvents.setModel(new javax.swing.AbstractListModel<String>()
81        {
82            String[] strings = { "item 1", "item 2" };
83            public int getSize() { return strings.length; }
84            public String getElementAt(int i) { return strings[i]; }
85        });
86        scrollEvents.setViewportView(lstEvents);
87
88        txtClockTime.setFont(new java.awt.Font("Noto Sans", 1, 14)); // NOI18N
89        txtClockTime.setText("0:00:00");
90
91        javax.swing.GroupLayout pnlEventsLayout = new javax.swing.GroupLayout(pnlEvents);
92        pnlEvents.setLayout(pnlEventsLayout);
93        pnlEventsLayout.setHorizontalGroup(
94            pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
95            .addGroup(pnlEventsLayout.createSequentialGroup()
96                .addGroup(pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
97                    .addGroup(pnlEventsLayout.createSequentialGroup()
98                        .addGap(112, 112, 112)
99                        .addComponent(txtClockTime, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE))
100                    .addGroup(pnlEventsLayout.createSequentialGroup()
101                        .addContainerGap()
102                        .addComponent(scrollEvents, javax.swing.GroupLayout.PREFERRED_SIZE, 430, javax.swing.GroupLayout.PREFERRED_SIZE)))
103                .addContainerGap(20, Short.MAX_VALUE))
104        );
105        pnlEventsLayout.setVerticalGroup(
106            pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
107            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlEventsLayout.createSequentialGroup()
108                .addComponent(txtClockTime, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
109                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
110                .addComponent(scrollEvents, javax.swing.GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)
111                .addContainerGap())
112        );
113
114        btnClear.setText("Clear Incident");
115        btnClear.addActionListener(new java.awt.event.ActionListener()
116        {
117            public void actionPerformed(java.awt.event.ActionEvent evt)
118            {
119                btnClearActionPerformed(evt);
120            }
121        });
122
123        javax.swing.GroupLayout pnlIncidentsLayout = new javax.swing.GroupLayout(pnlIncidents);
124        pnlIncidents.setLayout(pnlIncidentsLayout);
125        pnlIncidentsLayout.setHorizontalGroup(
126            pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
127            .addGroup(pnlIncidentsLayout.createSequentialGroup()
128                .addComponent(btnClear)
129                .addGap(0, 0, Short.MAX_VALUE))
130        );
131        pnlIncidentsLayout.setVerticalGroup(
132            pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
133            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlIncidentsLayout.createSequentialGroup()
134                .addGap(185, 185, 185)
135                .addComponent(btnClear)
136                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
137        );
138
139        lstIncidents.setFont(new java.awt.Font("Noto Mono", 0, 15)); // NOI18N
140        lstIncidents.setModel(new javax.swing.AbstractListModel<String>()
141        {
142            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
143            public int getSize() { return strings.length; }
144            public String getElementAt(int i) { return strings[i]; }
145        });
146        lstIncidents.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
147        jScrollPane1.setViewportView(lstIncidents);
148
149        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
150        getContentPane().setLayout(layout);
151        layout.setHorizontalGroup(
152            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
153            .addGroup(layout.createSequentialGroup()
154                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
155                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
156                        .addContainerGap()
157                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 211, javax.swing.GroupLayout.PREFERRED_SIZE)
158                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
159                        .addComponent(pnlIncidents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
160                    .addComponent(pnlEvents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
161                .addGap(0, 27, Short.MAX_VALUE))
162        );
163        layout.setVerticalGroup(
164            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
165            .addGroup(layout.createSequentialGroup()
166                .addComponent(pnlEvents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
167                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
168                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
169                    .addComponent(pnlIncidents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
170                    .addGroup(layout.createSequentialGroup()
171                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE)
172                        .addGap(0, 0, Short.MAX_VALUE)))
173                .addContainerGap())
174        );
175
176        pack();
177    }// </editor-fold>//GEN-END:initComponents
178
179    private void btnClearActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnClearActionPerformed
180    {//GEN-HEADEREND:event_btnClearActionPerformed
181        String selectedItem =  lstIncidents.getSelectedValue();
182        if (selectedItem == null)
183        {
184            JOptionPane.showMessageDialog(this, "No Incident Selected", "Warning", JOptionPane.INFORMATION_MESSAGE);
185        }
186        else
187        {
188            System.out.println("Clicked Incident:" + selectedItem);
189            if (driver != null) driver.clearIncident(selectedItem);
190            lstIncidents.clearSelection();
191            // Remove selectedItem from list model;
192            incidents.remove(selectedItem);
193            // Update the list displayed
194            String[] array = new String[incidents.size()];
195            array = incidents.toArray(array);
196            lstIncidents.setListData(array);
197        }
198    }//GEN-LAST:event_btnClearActionPerformed
199
200    /**
201     * @param args the command line arguments
202     */
203    public static void main(String args[]) {
204        /* Set the Nimbus look and feel */
205        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
206        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
207         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
208         */
209        try {
210            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
211                if ("Nimbus".equals(info.getName())) {
212                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
213                    break;
214                }
215            }
216        } catch (ClassNotFoundException ex) {
217            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
218        } catch (InstantiationException ex) {
219            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
220        } catch (IllegalAccessException ex) {
221            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
222        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
223            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
224        }
225        //</editor-fold>
226
227        /* Create and display the form */
228        java.awt.EventQueue.invokeLater(new Runnable() {
229            public void run() {
230                Queue<String> sample = new LinkedList<String>();
231                sample.add("Greetings");
232                sample.add("Earthling");
233                List<String> items = new ArrayList<String>();
234                items.add("Able"); items.add("Baker");
235                ATMSBatchViewer view = new ATMSBatchViewer(null,items);
236                view.setVisible(true);
237                view.update("01", "02", sample);
238               
239            }
240        });
241    }
242
243    // Variables declaration - do not modify//GEN-BEGIN:variables
244    private javax.swing.JButton btnClear;
245    private javax.swing.JScrollPane jScrollPane1;
246    private javax.swing.JList<String> lstEvents;
247    private javax.swing.JList<String> lstIncidents;
248    private javax.swing.JPanel pnlEvents;
249    private javax.swing.JPanel pnlIncidents;
250    private javax.swing.JScrollPane scrollEvents;
251    private javax.swing.JLabel txtClockTime;
252    // End of variables declaration//GEN-END:variables
253}
Note: See TracBrowser for help on using the repository browser.