001package jmri.jmrit.operations.locations.gui;
002
003import java.awt.Dimension;
004
005import javax.swing.*;
006
007import jmri.jmrit.operations.OperationsFrame;
008import jmri.jmrit.operations.locations.Location;
009import jmri.jmrit.operations.locations.tools.PrintSwitchListAction;
010import jmri.jmrit.operations.locations.tools.ShowCarsByLocationAction;
011import jmri.jmrit.operations.setup.Control;
012import jmri.jmrit.operations.setup.Setup;
013
014/**
015 * Yardmaster Frame. Shows work at one location.
016 *
017 * @author Dan Boudreau Copyright (C) 2013, 2026
018 */
019public class YardmasterFrame extends OperationsFrame {
020
021    public YardmasterFrame(Location location) {
022        super(Bundle.getMessage("Yardmaster"), new YardmasterPanel(location));
023        this.initComponents(location);
024    }
025
026    private void initComponents(Location location) {
027        super.initComponents();
028
029        if (location != null) {
030            // build menu
031            JMenuBar menuBar = new JMenuBar();
032            JMenu toolMenu = new JMenu(Bundle.getMessage("MenuTools"));
033            toolMenu.add(new ShowCarsByLocationAction(false, location, null));
034            toolMenu.addSeparator();
035            toolMenu.add(new YardmasterByTrackAction(location));
036            JMenuItem print = toolMenu.add(new PrintSwitchListAction(location, false));
037            JMenuItem preview = toolMenu.add(new PrintSwitchListAction(location, true));
038            menuBar.add(toolMenu);
039            setJMenuBar(menuBar);
040
041            // add tool tip if in consolidation mode: "Disabled when switch list
042            // is in consolidation mode"
043            if (!Setup.isSwitchListRealTime()) {
044                print.setToolTipText(Bundle.getMessage("TipDisabled"));
045                preview.setToolTipText(Bundle.getMessage("TipDisabled"));
046            }
047            setTitle(Bundle.getMessage("Yardmaster") + " " + location.getName());
048        }
049
050        addHelpMenu("package.jmri.jmrit.operations.Operations_Yardmaster", true); // NOI18N
051
052        initMinimumSize(new Dimension(Control.panelWidth500, Control.panelHeight500));
053    }
054
055    // private static final Logger log =
056    // LoggerFactory.getLogger(YardmasterFrame.class);
057}