From: <dan...@us...> - 2013-01-31 04:42:47
|
Revision: 22664 http://sourceforge.net/p/jmri/code/22664 Author: dan_boudreau Date: 2013-01-31 04:42:44 +0000 (Thu, 31 Jan 2013) Log Message: ----------- fix train property change Modified Paths: -------------- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java Modified: trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java =================================================================== --- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-01-31 03:45:32 UTC (rev 22663) +++ trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-01-31 04:42:44 UTC (rev 22664) @@ -95,7 +95,6 @@ JPanel pMoves = new JPanel(); JPanel pTrainRouteLocationComment = new JPanel(); JPanel pWork = new JPanel(); - // check boxes Hashtable<String, JCheckBox> carCheckBoxes = new Hashtable<String, JCheckBox>(); @@ -297,10 +296,15 @@ protected void comboBoxActionPerformed(java.awt.event.ActionEvent ae) { if (ae.getSource() == trainComboBox) { + if (_train != null) + _train.removePropertyChangeListener(this); _train = null; _visitNumber = 1; if (trainComboBox.getSelectedItem() != null && !trainComboBox.getSelectedItem().equals("")) _train = (Train) trainComboBox.getSelectedItem(); + // listen for train changes + if (_train != null) + _train.addPropertyChangeListener(this); update(); } if (ae.getSource() == trainVisitComboBox) { @@ -337,12 +341,6 @@ update(); } - private void clearAndUpdate(){ - carCheckBoxes.clear(); - setMode = false; - update(); - } - private void update() { log.debug("update, setMode " + setMode); removePropertyChangeListerners(); @@ -386,9 +384,6 @@ if (!_train.getRailroadName().equals("")) textRailRoadName.setText(_train.getRailroadName()); - // listen for train changes - _train.addPropertyChangeListener(this); - RouteLocation rl = null; boolean lastLocation = false; @@ -585,7 +580,6 @@ return MessageFormat.format(Bundle.getMessage("TrainDepartsCars"), new Object[] { rl.getName(), rl.getTrainDirectionString(), _train.getNumberCarsInTrain(rl), _train.getTrainLength(rl), Setup.getLengthUnit().toLowerCase(), _train.getTrainWeight(rl) }); - } private void updateTrainsComboBox() { @@ -618,9 +612,6 @@ //if (Control.showProperty && log.isDebugEnabled()) log.debug("Property change " +e.getPropertyName() + " for: "+e.getSource().toString() + " old: "+e.getOldValue()+ " new: "+e.getNewValue()); // NOI18N - if (e.getPropertyName().equals(Train.TRAIN_MOVE_COMPLETE_CHANGED_PROPERTY) - || e.getPropertyName().equals(Train.BUILT_CHANGED_PROPERTY)) - clearAndUpdate(); if ((e.getPropertyName().equals(RollingStock.ROUTE_LOCATION_CHANGED_PROPERTY) && e.getNewValue() == null) || (e.getPropertyName().equals(RollingStock.ROUTE_DESTINATION_CHANGED_PROPERTY) && e.getNewValue() == null) || e.getPropertyName().equals(RollingStock.TRAIN_CHANGED_PROPERTY)){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dan...@us...> - 2013-01-31 06:01:49
|
Revision: 22674 http://sourceforge.net/p/jmri/code/22674 Author: dan_boudreau Date: 2013-01-31 06:01:46 +0000 (Thu, 31 Jan 2013) Log Message: ----------- Only show trains with work Modified Paths: -------------- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java Modified: trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java =================================================================== --- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-01-31 05:55:23 UTC (rev 22673) +++ trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-01-31 06:01:46 UTC (rev 22674) @@ -588,10 +588,30 @@ if (_location != null) { List<Train> trains = trainManager.getTrainsArrivingThisLocationList(_location); for (int i = 0; i < trains.size(); i++) { - trainComboBox.addItem(trains.get(i)); + if(isThereWorkAtLocation(trains.get(i), _location)) + trainComboBox.addItem(trains.get(i)); } } } + + // returns true if there's work at location + private boolean isThereWorkAtLocation(Train train, Location location) { + List<String> carList = carManager.getByTrainDestinationList(train); + for (int i = 0; i < carList.size(); i++) { + Car car = carManager.getById(carList.get(i)); + if (car.getRouteLocation().getName().equals(location.getName()) + || car.getRouteDestination().getName().equals(location.getName())) + return true; + } + List<String> engList = engManager.getByTrainList(train); + for (int i = 0; i < engList.size(); i++) { + Engine eng = engManager.getById(engList.get(i)); + if (eng.getRouteLocation().getName().equals(location.getName()) + || eng.getRouteDestination().getName().equals(location.getName())) + return true; + } + return false; + } private void removePropertyChangeListerners(){ for (int i=0; i<rollingStock.size(); i++){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dan...@us...> - 2013-01-31 23:53:00
|
Revision: 22688 http://sourceforge.net/p/jmri/code/22688 Author: dan_boudreau Date: 2013-01-31 23:52:57 +0000 (Thu, 31 Jan 2013) Log Message: ----------- Add train property listeners Modified Paths: -------------- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java Modified: trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java =================================================================== --- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-01-31 17:48:13 UTC (rev 22687) +++ trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-01-31 23:52:57 UTC (rev 22688) @@ -254,6 +254,9 @@ addComboBoxAction(trainVisitComboBox); addHelpMenu("package.jmri.jmrit.operations.Operations_Locations", true); // NOI18N + + // listen for trains being built + addTrainListeners(); setMinimumSize(new Dimension(600, Control.panelHeight)); pack(); @@ -297,21 +300,19 @@ // Select Train and Visit protected void comboBoxActionPerformed(ActionEvent ae) { - if (ae.getSource() == trainComboBox) { - if (_train != null) - _train.removePropertyChangeListener(this); + // made the combo box not visible during updates, so ignore if not visible + if (ae.getSource() == trainComboBox && trainComboBox.isVisible()) { _train = null; - _visitNumber = 1; - if (trainComboBox.getSelectedItem() != null && !trainComboBox.getSelectedItem().equals("")) + if (trainComboBox.getSelectedItem() != null && !trainComboBox.getSelectedItem().equals("") + ) { _train = (Train) trainComboBox.getSelectedItem(); - // listen for train changes - if (_train != null) - _train.addPropertyChangeListener(this); + _visitNumber = 1; + } update(); } - if (ae.getSource() == trainVisitComboBox) { - // made the combo box not visible during updates, so ignore if not visible - if (trainVisitComboBox.getSelectedItem() != null && trainVisitComboBox.isVisible()) { + // made the combo box not visible during updates, so ignore if not visible + if (ae.getSource() == trainVisitComboBox && trainVisitComboBox.isVisible()) { + if (trainVisitComboBox.getSelectedItem() != null) { _visitNumber = (Integer) trainVisitComboBox.getSelectedItem(); update(); } @@ -602,6 +603,8 @@ } private void updateTrainsComboBox() { + Object selectedItem = trainComboBox.getSelectedItem(); + trainComboBox.setVisible(false); // used as a flag to ignore updates trainComboBox.removeAllItems(); trainComboBox.addItem(""); if (_location != null) { @@ -611,6 +614,9 @@ trainComboBox.addItem(trains.get(i)); } } + if (selectedItem != null) + trainComboBox.setSelectedItem(selectedItem); + trainComboBox.setVisible(true); } // returns true if there's work at location @@ -635,7 +641,30 @@ } return false; } + + private void addTrainListeners() { + log.debug("Adding train listerners"); + List<String> trains = TrainManager.instance().getTrainsByIdList(); + for (int i = 0; i < trains.size(); i++) { + Train train = TrainManager.instance().getTrainById(trains.get(i)); + if (train != null) + train.addPropertyChangeListener(this); + } + // listen for new trains being added + TrainManager.instance().addPropertyChangeListener(this); + } + private void removeTrainListeners() { + log.debug("Removing train listerners"); + List<String> trains = TrainManager.instance().getTrainsByIdList(); + for (int i = 0; i < trains.size(); i++) { + Train train = TrainManager.instance().getTrainById(trains.get(i)); + if (train != null) + train.removePropertyChangeListener(this); + } + TrainManager.instance().removePropertyChangeListener(this); + } + private void removePropertyChangeListerners() { for (int i = 0; i < rollingStock.size(); i++) { rollingStock.get(i).removePropertyChangeListener(this); @@ -644,15 +673,13 @@ } public void dispose() { + removeTrainListeners(); removePropertyChangeListerners(); - if (_train != null) { - _train.removePropertyChangeListener(this); - } super.dispose(); } public void propertyChange(java.beans.PropertyChangeEvent e) { - if (Control.showProperty && log.isDebugEnabled()) +// if (Control.showProperty && log.isDebugEnabled()) log.debug("Property change " + e.getPropertyName() + " for: " + e.getSource().toString() + " old: " + e.getOldValue() + " new: " + e.getNewValue()); // NOI18N if ((e.getPropertyName().equals(RollingStock.ROUTE_LOCATION_CHANGED_PROPERTY) && e.getNewValue() == null) @@ -669,6 +696,9 @@ } update(); } + if (e.getPropertyName().equals(Train.BUILT_CHANGED_PROPERTY)) { + updateTrainsComboBox(); + } } static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(YardmasterFrame.class.getName()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dan...@us...> - 2013-02-01 04:56:59
|
Revision: 22689 http://sourceforge.net/p/jmri/code/22689 Author: dan_boudreau Date: 2013-02-01 04:56:56 +0000 (Fri, 01 Feb 2013) Log Message: ----------- Add switch list comment to yardmaster window Modified Paths: -------------- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java Modified: trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java =================================================================== --- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-01-31 23:52:57 UTC (rev 22688) +++ trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-02-01 04:56:56 UTC (rev 22689) @@ -69,6 +69,7 @@ JLabel textTrainRouteComment = new JLabel(); JLabel textTrainRouteLocationComment = new JLabel(); JLabel textLocationComment = new JLabel(); + JLabel textSwitchListComment = new JLabel(); JLabel textLocationName = new JLabel(); // major buttons @@ -165,6 +166,11 @@ JPanel pLocationComment = new JPanel(); pLocationComment.setBorder(BorderFactory.createTitledBorder(Bundle.getMessage("LocationComment"))); pLocationComment.add(textLocationComment); + + // row 5 (switch list comment) + JPanel pSwitchListComment = new JPanel(); + pSwitchListComment.setBorder(BorderFactory.createTitledBorder(Bundle.getMessage("Comment"))); + pSwitchListComment.add(textSwitchListComment); // row 6 JPanel pRow6 = new JPanel(); @@ -224,6 +230,7 @@ getContentPane().add(pRow2); getContentPane().add(pLocationComment); + getContentPane().add(pSwitchListComment); getContentPane().add(pRow6); getContentPane().add(pTrainComment); getContentPane().add(pTrainRouteComment); @@ -242,9 +249,11 @@ // tool tips if (_location != null) { - textLocationName.setText(TrainCommon.splitString(_location.getName())); + textLocationName.setText(_location.getName()); textLocationComment.setText(_location.getComment()); pLocationComment.setVisible(!_location.getComment().equals("")); + textSwitchListComment.setText(_location.getSwitchListComment()); + pSwitchListComment.setVisible(!_location.getSwitchListComment().equals("")); updateTrainsComboBox(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dan...@us...> - 2013-02-09 22:11:24
|
Revision: 22758 http://sourceforge.net/p/jmri/code/22758 Author: dan_boudreau Date: 2013-02-09 22:11:21 +0000 (Sat, 09 Feb 2013) Log Message: ----------- Fix null pointer Modified Paths: -------------- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java Modified: trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java =================================================================== --- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-02-09 21:37:18 UTC (rev 22757) +++ trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-02-09 22:11:21 UTC (rev 22758) @@ -267,10 +267,11 @@ List<String> carList = carManager.getByTrainDestinationList(train); for (int i = 0; i < carList.size(); i++) { Car car = carManager.getById(carList.get(i)); - if (TrainCommon.splitString(car.getRouteLocation().getName()).equals( - TrainCommon.splitString(location.getName())) - || TrainCommon.splitString(car.getRouteDestination().getName()).equals( - TrainCommon.splitString(location.getName()))) + if ((car.getRouteLocation() != null && TrainCommon.splitString(car.getRouteLocation().getName()) + .equals(TrainCommon.splitString(location.getName()))) + || (car.getRouteDestination() != null && TrainCommon.splitString( + car.getRouteDestination().getName()).equals( + TrainCommon.splitString(location.getName())))) return true; } List<String> engList = engManager.getByTrainList(train); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dan...@us...> - 2013-04-22 21:40:45
|
Revision: 23265 http://sourceforge.net/p/jmri/code/23265 Author: dan_boudreau Date: 2013-04-22 21:40:42 +0000 (Mon, 22 Apr 2013) Log Message: ----------- Disable print and preview in yardmaster window rather than not showing them Modified Paths: -------------- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java Modified: trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java =================================================================== --- trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-04-22 21:05:36 UTC (rev 23264) +++ trunk/jmri/java/src/jmri/jmrit/operations/locations/YardmasterFrame.java 2013-04-22 21:40:42 UTC (rev 23265) @@ -110,16 +110,13 @@ pSwitchListComment.setVisible(!_location.getSwitchListComment().equals("")); updateTrainsComboBox(); - // The switch list must be accessed from the Trains window if running in consolidated mode - if (Setup.isSwitchListRealTime()) { - // build menu - JMenuBar menuBar = new JMenuBar(); - JMenu toolMenu = new JMenu(Bundle.getMessage("Tools")); - toolMenu.add(new PrintSwitchListAction(Bundle.getMessage("MenuItemPrint"), _location, false)); - toolMenu.add(new PrintSwitchListAction(Bundle.getMessage("MenuItemPreview"), _location, true)); - menuBar.add(toolMenu); - setJMenuBar(menuBar); - } + // build menu + JMenuBar menuBar = new JMenuBar(); + JMenu toolMenu = new JMenu(Bundle.getMessage("Tools")); + toolMenu.add(new PrintSwitchListAction(Bundle.getMessage("MenuItemPrint"), _location, false)); + toolMenu.add(new PrintSwitchListAction(Bundle.getMessage("MenuItemPreview"), _location, true)); + menuBar.add(toolMenu); + setJMenuBar(menuBar); } update(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |