001package jmri.jmrit.operations.trains.gui;
002
003import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
004
005import java.awt.Dimension;
006
007import javax.swing.JMenu;
008import javax.swing.JMenuBar;
009
010import jmri.jmrit.operations.OperationsFrame;
011import jmri.jmrit.operations.setup.Control;
012import jmri.jmrit.operations.trains.Train;
013import jmri.jmrit.operations.trains.tools.*;
014
015/**
016 * Conductor Frame. Shows work for a train one location at a time.
017 *
018 * @author Dan Boudreau Copyright (C) 2011, 2013, 2026
019 * 
020 */
021public class TrainConductorFrame extends OperationsFrame {
022
023    public TrainConductorFrame(Train train) {
024        super(new TrainConductorPanel(train));
025        this.initComponents(train);
026    }
027
028    @SuppressFBWarnings(value = "BC_UNCONFIRMED_CAST_OF_RETURN_VALUE")
029    private void initComponents(Train train) {
030        super.initComponents();
031
032        if (train != null) {
033            setTitle(Bundle.getMessage("TitleTrainConductor") + " (" + train.getName() + ")");
034        }
035
036        // build menu
037        JMenuBar menuBar = new JMenuBar();
038        if (train != null) {
039            JMenu toolMenu = new JMenu(Bundle.getMessage("MenuTools"));
040            toolMenu.add(new YardmasterByTrackAction((TrainConductorPanel) getContentPane()));
041            toolMenu.addSeparator();
042            toolMenu.add(new ShowCarsByLocationAction((TrainConductorPanel) getContentPane()));
043            toolMenu.addSeparator();
044            toolMenu.add(new ShowCarsInTrainAction(train));
045            toolMenu.add(new PrintShowCarsInTrainRouteAction(false, train));
046            toolMenu.add(new PrintShowCarsInTrainRouteAction(true, train));
047            toolMenu.addSeparator();
048            toolMenu.add(new ToggleShowFullLocationName());
049            menuBar.add(toolMenu);
050        }
051        setJMenuBar(menuBar);
052        addHelpMenu("package.jmri.jmrit.operations.Operations_TrainConductor", true); // NOI18N
053
054        initMinimumSize(new Dimension(Control.panelWidth500, Control.panelHeight500));
055    }
056}