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}