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}