001package jmri.jmrit.operations.rollingstock.engines; 002 003import java.awt.Dimension; 004import java.util.List; 005import java.util.ResourceBundle; 006 007import jmri.InstanceManager; 008import jmri.jmrit.operations.OperationsXml; 009import jmri.jmrit.operations.rollingstock.RollingStockSetFrame; 010import jmri.jmrit.operations.setup.Control; 011import jmri.util.swing.JmriJOptionPane; 012 013/** 014 * Frame for user to place engine on the layout 015 * 016 * @author Dan Boudreau Copyright (C) 2008, 2010 017 */ 018public class EngineSetFrame extends RollingStockSetFrame<Engine> { 019 020 protected static final ResourceBundle rb = ResourceBundle 021 .getBundle("jmri.jmrit.operations.rollingstock.engines.JmritOperationsEnginesBundle"); 022 023 EngineManager manager = InstanceManager.getDefault(EngineManager.class); 024 EngineManagerXml managerXml = InstanceManager.getDefault(EngineManagerXml.class); 025 026 Engine _engine; 027 028 public EngineSetFrame() { 029 super(Bundle.getMessage("TitleEngineSet")); 030 } 031 032 @Override 033 public void initComponents() { 034 super.initComponents(); 035 036 // build menu 037 addHelpMenu("package.jmri.jmrit.operations.Operations_LocomotivesSet", true); // NOI18N 038 039 // disable location unknown, final destination fields 040 locationUnknownCheckBox.setVisible(false); 041 paneOptional.setVisible(false); 042 pFinalDestination.setVisible(false); 043 autoTrainCheckBox.setVisible(false); 044 045 // tool tips 046 outOfServiceCheckBox.setToolTipText(getRb().getString("TipLocoOutOfService")); 047 048 initMinimumSize(new Dimension(Control.panelWidth500, Control.panelHeight300)); 049 } 050 051 public void load(Engine engine) { 052 _engine = engine; 053 super.load(engine); 054 } 055 056 @Override 057 protected ResourceBundle getRb() { 058 return rb; 059 } 060 061 @Override 062 protected boolean save() { 063 if (!super.save()) { 064 return false; 065 } 066 // check for train change 067 checkTrain(_engine); 068 // is this engine part of a consist? 069 if (_engine.getConsist() != null) { 070 if (JmriJOptionPane.showConfirmDialog(this, Bundle.getMessage("engineInConsist"), 071 Bundle.getMessage("enginePartConsist"), JmriJOptionPane.YES_NO_OPTION) == JmriJOptionPane.YES_OPTION) { 072 // convert cars list to rolling stock list 073 List<Engine> list = _engine.getConsist().getEngines(); 074 if (!updateGroup(list)) { 075 return false; 076 } 077 } 078 } 079 OperationsXml.save(); 080 return true; 081 } 082 083// private final static Logger log = LoggerFactory.getLogger(EngineSetFrame.class); 084}