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}