001package jmri.jmrit.logix;
002
003import org.slf4j.Logger;
004import org.slf4j.LoggerFactory;
005
006import jmri.SpeedStepMode;
007import jmri.Throttle;
008
009/**
010 * A JInternalFrame that contains a JSlider to control loco speed, and buttons
011 * for forward, reverse and STOP.
012 *
013 * @author Pete Cressman Copyright 2020
014 */
015public class LearnControlPanel extends jmri.jmrit.throttle.ControlPanel {
016
017    private LearnThrottleFrame _throttleFrame;
018
019    LearnControlPanel(LearnThrottleFrame ltf) {
020        super();
021        _throttleFrame = ltf;
022        
023    }
024    // update the state of this panel if any of the properties change
025    @Override
026    public void propertyChange(java.beans.PropertyChangeEvent e) {
027        if (log.isDebugEnabled()) {
028            log.debug("propertyChange: {}, newValue= {}", e.getPropertyName(), e.getNewValue().toString());
029        }
030        if (e.getPropertyName().equals(Throttle.SPEEDSETTING)) {
031            float speed = ((Float) e.getNewValue()).floatValue();
032            _throttleFrame.setSpeedSetting(speed);
033        } else if (e.getPropertyName().equals(Throttle.SPEEDSTEPS)) {
034            SpeedStepMode steps = (SpeedStepMode)e.getNewValue();
035            _throttleFrame.setSpeedStepMode(steps);
036        } else if (e.getPropertyName().equals(Throttle.ISFORWARD)) {
037            boolean Forward = ((Boolean) e.getNewValue()).booleanValue();
038            _throttleFrame.setButtonForward(Forward);
039        }
040        super.propertyChange(e);
041    }
042
043    private static final Logger log = LoggerFactory.getLogger(LearnControlPanel.class);
044}