Changeset 183 in tmcsimulator for trunk/src/tmcsim/client/ATMSBatchViewer.java
- Timestamp:
- 10/28/2017 03:51:23 PM (9 years ago)
- File:
-
- 1 edited
-
trunk/src/tmcsim/client/ATMSBatchViewer.java (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/tmcsim/client/ATMSBatchViewer.java
r168 r183 1 2 1 package tmcsim.client; 3 2 3 import atmsdriver.model.TrafficEvent; 4 import java.text.ParseException; 4 5 import java.util.ArrayList; 5 import java.util.HashSet;6 6 import java.util.LinkedList; 7 7 import java.util.List; 8 import java.util.Queue; 9 import java.util.Set; 10 import java.util.Vector; 8 import java.util.logging.Level; 9 import java.util.logging.Logger; 11 10 import javax.swing.AbstractListModel; 12 import javax.swing.JLabel;13 import javax.swing.JList;14 11 import javax.swing.JOptionPane; 15 import tmcsim.cadsimulator.CADServer;16 12 17 13 /** … … 19 15 * @author jdalbey 20 16 */ 21 public class ATMSBatchViewer extends javax.swing.JFrame 17 public class ATMSBatchViewer extends javax.swing.JFrame 22 18 { 23 /** Reference to the driver associated with this GUI */ 24 private ATMSBatchDriver driver; 19 20 /** 21 * Reference to the driver associated with this GUI 22 */ 23 private ATMSBatchDriver driver; 25 24 private final List<String> incidents; 25 26 26 /** 27 27 * Creates new form ATMSBatchViewer. 28 * 28 29 * @param incidents a list of incidents to show in a list. 29 30 */ 30 public ATMSBatchViewer(ATMSBatchDriver driver, List<String> incidentList) 31 public ATMSBatchViewer(ATMSBatchDriver driver, List<String> incidentList) 31 32 { 32 33 initComponents(); 33 this.driver = driver; 34 this.driver = driver; 34 35 this.incidents = incidentList; 35 36 lstIncidents.setModel(new javax.swing.AbstractListModel<String>() 36 37 { 37 public int getSize() { return incidents.size(); } 38 public String getElementAt(int i) { return incidents.get(i); } 39 }); 38 public int getSize() 39 { 40 return incidents.size(); 41 } 42 43 public String getElementAt(int i) 44 { 45 return incidents.get(i); 46 } 47 }); 40 48 } 41 49 42 public void update(String currentTime, String atmsTime, Queue<String> events)50 public void update(String currentTime, String atmsTime, List<TrafficEvent> events) 43 51 { 44 52 lstEvents.setModel(new MyListModel(events)); 45 txtClockTime.setText(currentTime + " / " + atmsTime);53 txtClockTime.setText(currentTime + " / " + atmsTime); 46 54 } 55 47 56 class MyListModel extends AbstractListModel<String> 48 57 { 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]; } 58 59 TrafficEvent[] strings;// = { "item 1", "item 2" }; 60 61 public MyListModel(List<TrafficEvent> events) 62 { 63 strings = events.toArray(new TrafficEvent[events.size()]); 64 } 65 66 public int getSize() 67 { 68 return strings.length; 69 } 70 71 public String getElementAt(int i) 72 { 73 return strings[i].rawString; 74 } 56 75 } 76 57 77 /** 58 78 * This method is called from within the constructor to initialize the form. … … 70 90 txtClockTime = new javax.swing.JLabel(); 71 91 pnlIncidents = new javax.swing.JPanel(); 72 btnClear = new javax.swing.JButton();73 92 jScrollPane1 = new javax.swing.JScrollPane(); 74 93 lstIncidents = new javax.swing.JList<>(); 94 btnClear = new javax.swing.JButton(); 75 95 76 96 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); … … 112 132 ); 113 133 134 lstIncidents.setFont(new java.awt.Font("Noto Mono", 0, 15)); // NOI18N 135 lstIncidents.setModel(new javax.swing.AbstractListModel<String>() 136 { 137 String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; 138 public int getSize() { return strings.length; } 139 public String getElementAt(int i) { return strings[i]; } 140 }); 141 lstIncidents.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); 142 jScrollPane1.setViewportView(lstIncidents); 143 114 144 btnClear.setText("Clear Incident"); 115 145 btnClear.addActionListener(new java.awt.event.ActionListener() … … 126 156 pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 127 157 .addGroup(pnlIncidentsLayout.createSequentialGroup() 128 .addComponent(btnClear) 158 .addGroup(pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 159 .addComponent(btnClear) 160 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 211, javax.swing.GroupLayout.PREFERRED_SIZE)) 129 161 .addGap(0, 0, Short.MAX_VALUE)) 130 162 ); … … 132 164 pnlIncidentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 133 165 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlIncidentsLayout.createSequentialGroup() 134 .addGap(185, 185, 185) 166 .addContainerGap() 167 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE) 168 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 135 169 .addComponent(btnClear) 136 170 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 137 171 ); 138 139 lstIncidents.setFont(new java.awt.Font("Noto Mono", 0, 15)); // NOI18N140 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 172 149 173 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); … … 152 176 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 153 177 .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) 178 .addGap(1, 1, 1) 179 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) 180 .addGroup(layout.createSequentialGroup() 181 .addGap(12, 12, 12) 159 182 .addComponent(pnlIncidents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 160 183 .addComponent(pnlEvents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 161 .addGap(0, 2 7, Short.MAX_VALUE))184 .addGap(0, 26, Short.MAX_VALUE)) 162 185 ); 163 186 layout.setVerticalGroup( … … 166 189 .addComponent(pnlEvents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 167 190 .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))) 191 .addComponent(pnlIncidents, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 173 192 .addContainerGap()) 174 193 ); … … 179 198 private void btnClearActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnClearActionPerformed 180 199 {//GEN-HEADEREND:event_btnClearActionPerformed 181 String selectedItem = lstIncidents.getSelectedValue();200 String selectedItem = lstIncidents.getSelectedValue(); 182 201 if (selectedItem == null) 183 202 { … … 187 206 { 188 207 System.out.println("Clicked Incident:" + selectedItem); 189 if (driver != null) driver.clearIncident(selectedItem); 208 if (driver != null) 209 { 210 driver.clearIncident(selectedItem); 211 } 190 212 lstIncidents.clearSelection(); 191 213 // Remove selectedItem from list model; … … 201 223 * @param args the command line arguments 202 224 */ 203 public static void main(String args[]) { 225 public static void main(String args[]) 226 { 204 227 /* Set the Nimbus look and feel */ 205 228 //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> … … 207 230 * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 208 231 */ 209 try { 210 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 211 if ("Nimbus".equals(info.getName())) { 232 try 233 { 234 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) 235 { 236 if ("Nimbus".equals(info.getName())) 237 { 212 238 javax.swing.UIManager.setLookAndFeel(info.getClassName()); 213 239 break; 214 240 } 215 241 } 216 } catch (ClassNotFoundException ex) { 242 } 243 catch (ClassNotFoundException ex) 244 { 217 245 java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 218 } catch (InstantiationException ex) { 246 } 247 catch (InstantiationException ex) 248 { 219 249 java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 220 } catch (IllegalAccessException ex) { 250 } 251 catch (IllegalAccessException ex) 252 { 221 253 java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 222 } catch (javax.swing.UnsupportedLookAndFeelException ex) { 254 } 255 catch (javax.swing.UnsupportedLookAndFeelException ex) 256 { 223 257 java.util.logging.Logger.getLogger(ATMSBatchViewer.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 224 258 } … … 226 260 227 261 /* 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 262 java.awt.EventQueue.invokeLater(new Runnable() 263 { 264 public void run() 265 { 266 try 267 { 268 TrafficEvent alpha = new TrafficEvent("181 00:01:30 405 S 0.6 11.0 G"); 269 TrafficEvent beta = new TrafficEvent("183 00:12:30 405 S 0.6 11.0 G"); 270 TrafficEvent charly = new TrafficEvent("181 00:22:00 5 S 0.6 11.0 G"); 271 LinkedList<TrafficEvent> sample = new LinkedList<TrafficEvent>(); 272 sample.add(alpha); 273 sample.add(beta); 274 List<String> items = new ArrayList<String>(); 275 items.add("180"); 276 items.add("1291"); 277 ATMSBatchViewer view = new ATMSBatchViewer(null, items); 278 view.setVisible(true); 279 view.update("01", "02", sample); 280 } 281 catch (ParseException ex) 282 { 283 Logger.getLogger(ATMSBatchViewer.class.getName()).log(Level.SEVERE, null, ex); 284 } 285 239 286 } 240 287 });
Note: See TracChangeset
for help on using the changeset viewer.
