001package jmri.jmrix.bachrus.speedmatcher.speedStepScale; 002 003import java.util.Locale; 004 005import jmri.jmrix.bachrus.speedmatcher.SpeedMatcher.SpeedTableStep; 006import static jmri.jmrix.bachrus.speedmatcher.speedStepScale.SpeedStepScaleSpeedMatcher.getSpeedForSpeedTableStep; 007 008/** 009 * Wrapper class for a SpeedTableStep and its corresponding speed, including a 010 * toString override for use in a speed selector combobox. 011 * 012 * @author toddt 013 */ 014public class SpeedTableStepSpeed { 015 016 private final SpeedTableStep speedTableStep; 017 private final float speed; 018 019 /** 020 * Creates a SpeedTableStepSpeed from the given speedTableStep 021 * @param speedTableStep the SpeedTableStep to use 022 */ 023 public SpeedTableStepSpeed(SpeedTableStep speedTableStep) { 024 this.speedTableStep = speedTableStep; 025 this.speed = getSpeedForSpeedTableStep(this.speedTableStep.getSpeedStep()); 026 } 027 028 /** 029 * Gets this SpeedTableStepSpeed's SpeedTableStep 030 * @return this SpeedTableStepSpeed's SpeedTableStep 031 */ 032 public SpeedTableStep getSpeedTableStep() { 033 return speedTableStep; 034 } 035 036 /** 037 * Gets this SpeedTableStepSpeed's speed 038 * @return the Speed TableStepSpeed's speed 039 */ 040 public float getSpeed() { 041 return speed; 042 } 043 044 /** 045 * Converts this SpeedTableStepSpeed to an I18N string. 046 * @return a single decimal string of this SpeedTableStepSpeed's speed 047 */ 048 @Override 049 public String toString() { 050 return String.format(Locale.getDefault(), "%.1f", this.speed); 051 } 052}