001package jmri.jmrit.operations.rollingstock.engines.tools; 002 003import java.awt.event.ActionEvent; 004 005import javax.swing.AbstractAction; 006 007import jmri.InstanceManager; 008import jmri.jmrit.operations.rollingstock.engines.Engine; 009import jmri.jmrit.operations.rollingstock.engines.EngineManager; 010import jmri.jmrit.operations.rollingstock.engines.gui.EnginesTableFrame; 011import jmri.util.swing.JmriJOptionPane; 012 013/** 014 * This routine will remove all engines from the operation database. 015 * 016 * @author Dan Boudreau Copyright (C) 2007 017 */ 018public class DeleteEngineRosterAction extends AbstractAction { 019 020 EnginesTableFrame _enginesTableFrame; 021 022 public DeleteEngineRosterAction(EnginesTableFrame enginesTableFrame) { 023 super(Bundle.getMessage("MenuItemDelete")); 024 // delete all cars on a track or location 025 if (enginesTableFrame.enginesTableModel.trackName != null) { 026 String actionName = Bundle.getMessage("MenuDeleteEnginesTrack", 027 enginesTableFrame.enginesTableModel.trackName); 028 putValue(NAME, actionName); 029 } else if (enginesTableFrame.enginesTableModel.locationName != null) { 030 String actionName = Bundle.getMessage("MenuDeleteEnginesLocation", 031 enginesTableFrame.enginesTableModel.locationName); 032 putValue(NAME, actionName); 033 } 034 _enginesTableFrame = enginesTableFrame; 035 } 036 037 @Override 038 public void actionPerformed(ActionEvent ae) { 039 if (_enginesTableFrame.enginesTableModel.trackName == null && 040 _enginesTableFrame.enginesTableModel.locationName == null) { 041 if (JmriJOptionPane.showConfirmDialog(null, Bundle.getMessage("engineSureDelete"), 042 Bundle.getMessage("engineDeleteAll"), 043 JmriJOptionPane.OK_CANCEL_OPTION) == JmriJOptionPane.OK_OPTION) { 044 log.debug("removing all engines from roster"); 045 InstanceManager.getDefault(EngineManager.class).deleteAll(); 046 } 047 } else { 048 // delete all cars on track or location 049 String message = Bundle.getMessage("engineDeleteEnginesTrack", 050 _enginesTableFrame.enginesTableModel.trackName); 051 if (_enginesTableFrame.enginesTableModel.trackName == null) { 052 message = Bundle.getMessage("engineDeleteEnginesLocation", 053 _enginesTableFrame.enginesTableModel.locationName); 054 } 055 if (JmriJOptionPane.showConfirmDialog(null, message, 056 Bundle.getMessage("engineDeleteAll"), 057 JmriJOptionPane.OK_CANCEL_OPTION) == JmriJOptionPane.OK_OPTION) { 058 for (Engine engine : _enginesTableFrame.enginesTableModel.getSelectedEngineList()) { 059 InstanceManager.getDefault(EngineManager.class).deregister(engine); 060 } 061 } 062 } 063 } 064 065 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(DeleteEngineRosterAction.class); 066}