Changeset 206 in tmcsimulator for trunk/src/tmcsim/cadsimulator/managers/TrafficModelViewer.java
- Timestamp:
- 11/01/2017 12:31:34 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/tmcsim/cadsimulator/managers/TrafficModelViewer.java
r188 r206 7 7 import java.util.LinkedList; 8 8 import java.util.List; 9 import java.util.Observable; 10 import java.util.Observer; 11 import java.util.Vector; 9 12 import java.util.logging.Level; 10 13 import java.util.logging.Logger; … … 16 19 * @author jdalbey 17 20 */ 18 public class TrafficModelViewer extends javax.swing.JFrame 21 public class TrafficModelViewer extends javax.swing.JFrame implements Observer 19 22 { 20 23 … … 23 26 */ 24 27 private TrafficModelManager driver; 25 private finalList<String> incidents;28 private List<String> incidents; 26 29 27 30 /** … … 30 33 * @param incidents a list of incidents to show in a list. 31 34 */ 32 public TrafficModelViewer(TrafficModelManager driver , List<String> incidentList)35 public TrafficModelViewer(TrafficModelManager driver) 33 36 { 34 37 initComponents(); 35 38 this.driver = driver; 36 this.incidents = incidentList; 37 lstIncidents.setModel(new javax.swing.AbstractListModel<String>() 38 { 39 public int getSize() 40 { 41 return incidents.size(); 42 } 43 44 public String getElementAt(int i) 45 { 46 return incidents.get(i); 47 } 48 }); 39 txtClockTime.setText(driver.getClockTime()); 40 lstIncidents.setListData(driver.getIncidents()); 41 lstEvents.setModel(new MyListModel(driver.getEventQueue())); 42 43 // this.incidents = incidentList; 44 // lstIncidents.setModel(new javax.swing.AbstractListModel<String>() 45 // { 46 // public int getSize() 47 // { 48 // return incidents.size(); 49 // } 50 // 51 // public String getElementAt(int i) 52 // { 53 // return incidents.get(i); 54 // } 55 // }); 49 56 } 50 57 51 public void update(String currentTime, String atmsTime, List<TrafficEvent> events) 52 { 53 lstEvents.setModel(new MyListModel(events)); 54 txtClockTime.setText(currentTime + " / " + atmsTime); 58 // public void update(String currentTime, String atmsTime, List<TrafficEvent> events) 59 // { 60 // lstEvents.setModel(new MyListModel(events)); 61 // txtClockTime.setText(currentTime + " / " + atmsTime); 62 // } 63 64 @Override 65 public void update(Observable obs, Object obj) 66 { 67 if (obj == null) return; 68 if (obj instanceof String) 69 { 70 String currentTime = (String) obj; 71 txtClockTime.setText(currentTime); 72 } 73 if (obj instanceof Vector) 74 { 75 lstIncidents.setListData((Vector)obj); 76 } 77 if (obj instanceof LinkedList) 78 { 79 lstEvents.setModel(new MyListModel((LinkedList)obj)); 80 } 55 81 } 56 82 … … 90 116 lstEvents = new javax.swing.JList<>(); 91 117 txtClockTime = new javax.swing.JLabel(); 118 btnReload = new javax.swing.JButton(); 92 119 pnlIncidents = new javax.swing.JPanel(); 93 120 jScrollPane1 = new javax.swing.JScrollPane(); … … 109 136 txtClockTime.setFont(new java.awt.Font("Noto Sans", 1, 14)); // NOI18N 110 137 txtClockTime.setText("0:00:00"); 138 139 btnReload.setText("Reload"); 140 btnReload.addActionListener(new java.awt.event.ActionListener() 141 { 142 public void actionPerformed(java.awt.event.ActionEvent evt) 143 { 144 btnReloadActionPerformed(evt); 145 } 146 }); 111 147 112 148 javax.swing.GroupLayout pnlEventsLayout = new javax.swing.GroupLayout(pnlEvents); … … 115 151 pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 116 152 .addGroup(pnlEventsLayout.createSequentialGroup() 117 .addGroup(pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 118 .addGroup(pnlEventsLayout.createSequentialGroup() 119 .addGap(112, 112, 112) 120 .addComponent(txtClockTime, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE)) 121 .addGroup(pnlEventsLayout.createSequentialGroup() 122 .addContainerGap() 123 .addComponent(scrollEvents, javax.swing.GroupLayout.PREFERRED_SIZE, 430, javax.swing.GroupLayout.PREFERRED_SIZE))) 153 .addContainerGap() 154 .addComponent(scrollEvents, javax.swing.GroupLayout.PREFERRED_SIZE, 430, javax.swing.GroupLayout.PREFERRED_SIZE) 124 155 .addContainerGap(20, Short.MAX_VALUE)) 156 .addGroup(pnlEventsLayout.createSequentialGroup() 157 .addGap(112, 112, 112) 158 .addComponent(txtClockTime, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE) 159 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 160 .addComponent(btnReload) 161 .addGap(32, 32, 32)) 125 162 ); 126 163 pnlEventsLayout.setVerticalGroup( 127 164 pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 128 165 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlEventsLayout.createSequentialGroup() 129 .addComponent(txtClockTime, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) 166 .addGroup(pnlEventsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 167 .addComponent(txtClockTime, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) 168 .addComponent(btnReload)) 130 169 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 131 170 .addComponent(scrollEvents, javax.swing.GroupLayout.DEFAULT_SIZE, 172, Short.MAX_VALUE) … … 213 252 lstIncidents.clearSelection(); 214 253 // Remove selectedItem from list model; 215 incidents.remove(selectedItem);254 // incidents.remove(selectedItem); 216 255 // Update the list displayed 217 String[] array = new String[incidents.size()];218 array = incidents.toArray(array);219 lstIncidents.setListData(array);256 // String[] array = new String[incidents.size()]; 257 // array = incidents.toArray(array); 258 // lstIncidents.setListData(array); 220 259 } 221 260 }//GEN-LAST:event_btnClearActionPerformed 222 261 262 private void btnReloadActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnReloadActionPerformed 263 {//GEN-HEADEREND:event_btnReloadActionPerformed 264 String message = "Reload will delete all events in the queue and reload the events file."; 265 String title = "Please Confirm"; 266 // display the JOptionPane showConfirmDialog 267 int reply = JOptionPane.showConfirmDialog(this, message, title, JOptionPane.YES_NO_OPTION); 268 if (reply == JOptionPane.YES_OPTION) 269 { 270 driver.loadEvents(); 271 } 272 }//GEN-LAST:event_btnReloadActionPerformed 273 223 274 /** 224 275 * @param args the command line arguments … … 279 330 items.add("180"); 280 331 items.add("1291"); 281 TrafficModelViewer view = new TrafficModelViewer(null , items);332 TrafficModelViewer view = new TrafficModelViewer(null); 282 333 view.setVisible(true); 283 view.update("01", "02", sample);334 //view.update("01", "02", sample); 284 335 } 285 336 catch (ParseException ex) … … 294 345 // Variables declaration - do not modify//GEN-BEGIN:variables 295 346 private javax.swing.JButton btnClear; 347 private javax.swing.JButton btnReload; 296 348 private javax.swing.JScrollPane jScrollPane1; 297 349 private javax.swing.JList<String> lstEvents;
Note: See TracChangeset
for help on using the changeset viewer.
