001package jmri.jmrit.operations.locations.gui; 002 003import java.awt.GridBagLayout; 004 005import javax.swing.*; 006 007import jmri.jmrit.operations.locations.Location; 008import jmri.jmrit.operations.locations.Track; 009import jmri.jmrit.operations.locations.tools.ChangeTrackTypeAction; 010import jmri.jmrit.operations.locations.tools.TrackDestinationEditAction; 011 012/** 013 * Frame for user edit of a classification/interchange track. 014 * 015 * @author Dan Boudreau Copyright (C) 2008, 2011, 2012, 2025 016 */ 017public class InterchangeEditFrame extends TrackEditFrame { 018 019 JCheckBox quickServiceCheckBox = new JCheckBox(Bundle.getMessage("QuickService")); 020 021 JPanel panelQuickService = panelOpt4; 022 023 public InterchangeEditFrame() { 024 super(Bundle.getMessage("AddInterchange")); 025 } 026 027 @Override 028 public void initComponents(Track track) { 029 setTitle(Bundle.getMessage("EditInterchange", track.getLocation().getName())); 030 initComponents(track.getLocation(), track); 031 } 032 033 @Override 034 public void initComponents(Location location, Track track) { 035 _type = Track.INTERCHANGE; 036 037 // setup the optional panel with quick service checkbox 038 panelQuickService.setLayout(new GridBagLayout()); 039 panelQuickService.setBorder(BorderFactory.createTitledBorder(Bundle 040 .getMessage("QuickService"))); 041 addItem(panelQuickService, quickServiceCheckBox, 0, 0); 042 quickServiceCheckBox.setToolTipText(Bundle.getMessage("QuickServiceTip")); 043 044 super.initComponents(location, track); 045 046 _toolMenu.insert(new TrackDestinationEditAction(this), 0); 047 _toolMenu.insert(new ChangeTrackTypeAction(this), TOOL_MENU_OFFSET + 1); 048 addHelpMenu("package.jmri.jmrit.operations.Operations_Interchange", true); // NOI18N 049 050 // override text strings for tracks 051 // panelTrainDir.setBorder(BorderFactory.createTitledBorder(Bundle.getMessage("TrainInterchange"))); 052 paneCheckBoxes.setBorder(BorderFactory.createTitledBorder(Bundle.getMessage("TypesInterchange"))); 053 deleteTrackButton.setText(Bundle.getMessage("DeleteInterchange")); 054 addTrackButton.setText(Bundle.getMessage("AddInterchange")); 055 saveTrackButton.setText(Bundle.getMessage("SaveInterchange")); 056 057 // setup the check boxes 058 if (track != null) { 059 quickServiceCheckBox.setSelected(track.isQuickServiceEnabled()); 060 } 061 062 // finish 063 pack(); 064 setVisible(true); 065 } 066 067 @Override 068 protected void enableButtons(boolean enabled) { 069 quickServiceCheckBox.setEnabled(enabled); 070 super.enableButtons(enabled); 071 } 072 073 @Override 074 protected void saveTrack(Track track) { 075 track.setQuickServiceEnabled(quickServiceCheckBox.isSelected()); 076 super.saveTrack(track); 077 } 078 079 @Override 080 public void propertyChange(java.beans.PropertyChangeEvent e) { 081 if (e.getPropertyName().equals(Track.LOAD_OPTIONS_CHANGED_PROPERTY)) { 082 quickServiceCheckBox.setSelected(_track.isQuickServiceEnabled()); 083 } 084 super.propertyChange(e); 085 } 086 087// private final static Logger log = LoggerFactory.getLogger(InterchangeEditFrame.class); 088}