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 @ 158

Revision 158, 11.6 KB checked in by jdalbey, 9 years ago (diff)

ATMSBatchDriver: Removed diagnostic output of ATMS time. build.xml fixed ATMSBatchDriver.jar target.

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(javax.swing.GroupLayout.Alignment.TRAILING, pnlEventsLayout.createSequentialGroup()
96                .addContainerGap(74, Short.MAX_VALUE)
97                .addComponent(scrollEvents, javax.swing.GroupLayout.PREFERRED_SIZE, 354, javax.swing.GroupLayout.PREFERRED_SIZE)
98                .addGap(59, 59, 59))
99            .addGroup(pnlEventsLayout.createSequentialGroup()
100                .addGap(112, 112, 112)
101                .addComponent(txtClockTime, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE)
102                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
103        );
104        pnlEventsLayout.setVerticalGroup(
105            pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
106            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlEventsLayout.createSequentialGroup()
107                .addComponent(txtClockTime, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
108                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
109                .addComponent(scrollEvents, javax.swing.GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE)
110                .addContainerGap())
111        );
112
113        btnClear.setText("Clear Incident");
114        btnClear.addActionListener(new java.awt.event.ActionListener()
115        {
116            public void actionPerformed(java.awt.event.ActionEvent evt)
117            {
118                btnClearActionPerformed(evt);
119            }
120        });
121
122        lstIncidents.setFont(new java.awt.Font("Noto Mono", 0, 15)); // NOI18N
123        lstIncidents.setModel(new javax.swing.AbstractListModel<String>()
124        {
125            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
126            public int getSize() { return strings.length; }
127            public String getElementAt(int i) { return strings[i]; }
128        });
129        lstIncidents.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
130        jScrollPane1.setViewportView(lstIncidents);
131
132        javax.swing.GroupLayout pnlIncidentsLayout = new javax.swing.GroupLayout(pnlIncidents);
133        pnlIncidents.setLayout(pnlIncidentsLayout);
134        pnlIncidentsLayout.setHorizontalGroup(
135            pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
136            .addGroup(pnlIncidentsLayout.createSequentialGroup()
137                .addGroup(pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
138                    .addComponent(btnClear)
139                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 211, javax.swing.GroupLayout.PREFERRED_SIZE))
140                .addGap(0, 173, Short.MAX_VALUE))
141        );
142        pnlIncidentsLayout.setVerticalGroup(
143            pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
144            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlIncidentsLayout.createSequentialGroup()
145                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE)
146                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
147                .addComponent(btnClear)
148                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
149        );
150
151        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
152        getContentPane().setLayout(layout);
153        layout.setHorizontalGroup(
154            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
155            .addGroup(layout.createSequentialGroup()
156                .addComponent(pnlEvents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
157                .addContainerGap())
158            .addGroup(layout.createSequentialGroup()
159                .addGap(76, 76, 76)
160                .addComponent(pnlIncidents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
161                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, 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                .addComponent(pnlIncidents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
169                .addContainerGap())
170        );
171
172        pack();
173    }// </editor-fold>//GEN-END:initComponents
174
175    private void btnClearActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnClearActionPerformed
176    {//GEN-HEADEREND:event_btnClearActionPerformed
177        String selectedItem =  lstIncidents.getSelectedValue();
178        if (selectedItem == null)
179        {
180            JOptionPane.showMessageDialog(this, "No Incident Selected", "Warning", JOptionPane.INFORMATION_MESSAGE);
181        }
182        else
183        {
184            System.out.println("Clicked Incident:" + selectedItem);
185            if (driver != null) driver.clearIncident(selectedItem);
186            lstIncidents.clearSelection();
187            // Remove selectedItem from list model;
188            incidents.remove(selectedItem);
189            // Update the list displayed
190            String[] array = new String[incidents.size()];
191            array = incidents.toArray(array);
192            lstIncidents.setListData(array);
193        }
194    }//GEN-LAST:event_btnClearActionPerformed
195
196    /**
197     * @param args the command line arguments
198     */
199    public static void main(String args[]) {
200        /* Set the Nimbus look and feel */
201        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
202        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
203         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
204         */
205        try {
206            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
207                if ("Nimbus".equals(info.getName())) {
208                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
209                    break;
210                }
211            }
212        } catch (ClassNotFoundException ex) {
213            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
214        } catch (InstantiationException ex) {
215            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
216        } catch (IllegalAccessException ex) {
217            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
218        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
219            java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
220        }
221        //</editor-fold>
222
223        /* Create and display the form */
224        java.awt.EventQueue.invokeLater(new Runnable() {
225            public void run() {
226                Queue<String> sample = new LinkedList<String>();
227                sample.add("Greetings");
228                sample.add("Earthling");
229                List<String> items = new ArrayList<String>();
230                items.add("Able"); items.add("Baker");
231                ATMSBatchViewer view = new ATMSBatchViewer(null,items);
232                view.setVisible(true);
233                view.update("01", "02", sample);
234               
235            }
236        });
237    }
238
239    // Variables declaration - do not modify//GEN-BEGIN:variables
240    private javax.swing.JButton btnClear;
241    private javax.swing.JScrollPane jScrollPane1;
242    private javax.swing.JList<String> lstEvents;
243    private javax.swing.JList<String> lstIncidents;
244    private javax.swing.JPanel pnlEvents;
245    private javax.swing.JPanel pnlIncidents;
246    private javax.swing.JScrollPane scrollEvents;
247    private javax.swing.JLabel txtClockTime;
248    // End of variables declaration//GEN-END:variables
249}
Note: See TracBrowser for help on using the repository browser.