001package jmri.jmrit.throttle;
002
003
004import jmri.DccLocoAddress;
005import jmri.jmrit.roster.RosterEntry;
006
007/**
008 * 
009 * An interface to abstract UI controllers of throttle
010 *  (ThrottleFrame for Swing throttles for instance)
011 * 
012 * @author Lionel Jeanson 2026
013 */
014public interface ThrottleControllerUI {
015    
016    /**
017     * Return that throttle control container
018     *
019     * @return the throttle control container
020     */
021    ThrottleControllersUIContainer getThrottleControllersContainer();
022    
023    /**
024     * Set that throttle control container
025     *
026     * @param tw the throttle control container to set
027     */
028    void setThrottleControllersContainer(ThrottleControllersUIContainer tw);
029    
030    /**
031     * Set that throttle control roster entry
032     *
033     * @param re the roster entry
034     */
035    void setRosterEntry(RosterEntry re);
036    
037    /**
038     * Set that throttle control address
039     *
040     * @param number address number
041     * @param isLong is long address
042     */    
043    void setAddress(int number, boolean isLong);
044    
045    /**
046     * Set that throttle control address
047     *
048     * @param la DccLocoAddress
049     */     
050    void setAddress(DccLocoAddress la);
051    
052    /**
053     * Emergency stop that throttle
054     *
055     */        
056    void eStop();
057    
058    /**
059     * Bring that throttle control to front
060     *
061     */        
062    void toFront();
063}