001package jmri.jmrit.operations.setup.backup; 002 003import java.awt.event.ActionEvent; 004import java.io.IOException; 005 006import javax.swing.AbstractAction; 007 008import jmri.InstanceManager; 009import jmri.ShutDownManager; 010import jmri.jmrit.operations.OperationsManager; 011import jmri.jmrit.operations.OperationsXml; 012import jmri.util.swing.*; 013 014/** 015 * Swing action to load the operation demo files. 016 * 017 * @author Bob Jacobsen Copyright (C) 2001 018 * @author Daniel Boudreau Copyright (C) 2008 019 * @author Gregory Madsen Copyright(C) 2012 020 */ 021public class LoadDemoAction extends AbstractAction { 022 023// private final static Logger log = LoggerFactory.getLogger(LoadDemoAction.class); 024 025 public LoadDemoAction() { 026 super(Bundle.getMessage("LoadDemo")); 027 } 028 029 @Override 030 public void actionPerformed(ActionEvent e) { 031 // check to see if files are dirty 032 if (OperationsXml.areFilesDirty()) { 033 if (JmriJOptionPane.showConfirmDialog(null, Bundle.getMessage("OperationsFilesModified"), 034 Bundle.getMessage("SaveOperationFiles"), JmriJOptionPane.YES_NO_OPTION) == JmriJOptionPane.YES_OPTION) { 035 OperationsXml.save(); 036 } 037 } 038 039 int results = JmriJOptionPane.showConfirmDialog(null, Bundle.getMessage("AreYouSureDemoFiles"), 040 Bundle.getMessage("LoadDemo"), JmriJOptionPane.OK_CANCEL_OPTION); 041 if (results != JmriJOptionPane.OK_OPTION) { 042 return; 043 } 044 045 AutoBackup backup = InstanceManager.getDefault(AutoBackup.class); 046 047 try { 048 backup.autoBackup(); 049 050 backup.loadDemoFiles(); 051 052 // now deregister shut down task 053 // If Trains window was opened, then task is active 054 // otherwise it is normal to not have the task running 055 InstanceManager.getDefault(OperationsManager.class).setShutDownTask(null); 056 057 JmriJOptionPane.showMessageDialog(null, Bundle.getMessage("YouMustRestartAfterLoadDemo"), 058 Bundle.getMessage("LoadDemoSuccessful"), JmriJOptionPane.INFORMATION_MESSAGE); 059 060 InstanceManager.getDefault(ShutDownManager.class).restart(); 061 062 } catch (IOException ex) { 063 ExceptionContext context = new ExceptionContext(ex, Bundle.getMessage("LoadingDemoFiles"), 064 Bundle.getMessage("LoadingDemoMakeSure")); 065 ExceptionDisplayFrame.displayExceptionDisplayFrame(null, context); 066 } 067 } 068} 069 070