001package jmri.jmrit.operations.automation.actions;
002
003import jmri.InstanceManager;
004import jmri.jmrit.operations.setup.Setup;
005import jmri.jmrit.operations.trains.TrainManager;
006import jmri.jmrit.operations.trains.schedules.TrainScheduleManager;
007
008public class UpdateSwitchListAction extends Action {
009
010    private static final int _code = ActionCodes.UPDATE_SWITCHLIST;
011
012    @Override
013    public int getCode() {
014        return _code;
015    }
016
017    @Override
018    public String getName() {
019        if (Setup.isSwitchListRealTime() && !InstanceManager.getDefault(TrainManager.class).isPrintPreviewEnabled()) {
020            return Bundle.getMessage("PrintSwitchListChanges");
021        } else if (Setup.isSwitchListRealTime() && InstanceManager.getDefault(TrainManager.class).isPrintPreviewEnabled()) {
022            return Bundle.getMessage("PreviewSwitchListChanges");
023        } else {
024            return Bundle.getMessage("UpdateSwitchList");
025        }
026    }
027
028    @Override
029    public void doAction() {
030        if (getAutomationItem() != null) {
031            setRunning(true);
032            InstanceManager.getDefault(TrainScheduleManager.class).buildSwitchLists();
033            finishAction(true);
034        }
035    }
036
037    @Override
038    public void cancelAction() {
039        // no cancel for this action     
040    }
041}