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.*; 010 011/** 012 * Frame for user edit of a classification/interchange track. 013 * 014 * @author Dan Boudreau Copyright (C) 2008, 2011, 2012, 2025 015 */ 016public class InterchangeEditFrame extends TrackEditFrame { 017 018 JCheckBox quickServiceCheckBox = new JCheckBox(Bundle.getMessage("QuickService")); 019 020 JPanel panelQuickService = panelOpt4; 021 022 public InterchangeEditFrame() { 023 super(Bundle.getMessage("AddInterchange")); 024 } 025 026 @Override 027 public void initComponents(Track track) { 028 setTitle(Bundle.getMessage("EditInterchange", track.getLocation().getName())); 029 initComponents(track.getLocation(), track); 030 } 031 032 @Override 033 public void initComponents(Location location, Track track) { 034 _type = Track.INTERCHANGE; 035 036 // setup the optional panel with quick service checkbox 037 panelQuickService.setLayout(new GridBagLayout()); 038 panelQuickService.setBorder(BorderFactory.createTitledBorder(Bundle 039 .getMessage("QuickService"))); 040 addItem(panelQuickService, quickServiceCheckBox, 0, 0); 041 quickServiceCheckBox.setToolTipText(Bundle.getMessage("QuickServiceTip")); 042 043 super.initComponents(location, track); 044 045 _toolMenu.insert(new TrackPriorityAction(_track), 0); 046 _toolMenu.insert(new TrackDestinationEditAction(this), 1); 047 _toolMenu.insert(new ChangeTrackTypeAction(this), TOOL_MENU_OFFSET + 2); 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}