001package jmri.jmrix.dccpp.swing.exrail; 002 003import java.awt.Frame; 004import java.awt.event.ActionEvent; 005 006import jmri.InstanceManager; 007import jmri.jmrix.dccpp.DCCppSystemConnectionMemo; 008import jmri.jmrix.dccpp.swing.DCCppSystemConnectionAction; 009 010/** 011 * Action to open the DCC-EX EXRAIL Automations window. 012 * 013 * @author Chad Francis Copyright (C) 2026 014 */ 015public class DCCppExrailAction extends DCCppSystemConnectionAction { 016 017 private DCCppExrailFrame frame = null; 018 019 public DCCppExrailAction(String name, DCCppSystemConnectionMemo memo) { 020 super(name, memo); 021 } 022 023 public DCCppExrailAction(DCCppSystemConnectionMemo memo) { 024 super(Bundle.getMessage("ExrailFrameTitle"), memo); 025 } 026 027 public DCCppExrailAction() { 028 this(InstanceManager.getNullableDefault(DCCppSystemConnectionMemo.class)); 029 } 030 031 @Override 032 public void actionPerformed(ActionEvent e) { 033 if (frame == null || !frame.isVisible()) { 034 DCCppSystemConnectionMemo memo = getSystemConnectionMemo(); 035 if (memo == null) { 036 log.error("connection memo was null!"); 037 return; 038 } 039 frame = new DCCppExrailFrame(memo); 040 frame.initComponents(); 041 frame.setVisible(true); 042 } 043 frame.setExtendedState(Frame.NORMAL); 044 frame.toFront(); 045 } 046 047 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(DCCppExrailAction.class); 048}