001package jmri.jmrix.sprog.update; 002 003import javax.swing.JOptionPane; 004import jmri.jmrix.sprog.SprogSystemConnectionMemo; 005import org.slf4j.Logger; 006import org.slf4j.LoggerFactory; 007 008/** 009 * Display the firmware version of the attached SPROG hardware. 010 * 011 * @author Andrew Crosland Copyright (C) 2008 012 */ 013public class SprogVersionFrame extends jmri.util.JmriJFrame implements SprogVersionListener { 014 015 private SprogSystemConnectionMemo _memo = null; 016 017 public SprogVersionFrame(SprogSystemConnectionMemo memo) { 018 super(); 019 _memo = memo; 020 } 021 022 /** 023 * {@inheritDoc} 024 */ 025 @Override 026 synchronized public void initComponents() { 027 setTitle(Bundle.getMessage("SprogVersionTitle")); 028 029 // add help menu to window 030 addHelpMenu("package.jmri.jmrix.sprog.update.SprogVersionFrame", true); 031 032 // Start the query 033 SprogVersionQuery query = _memo.getSprogVersionQuery(); 034 query.requestVersion(this); 035 } 036 037 /** 038 * {@inheritDoc} 039 */ 040 @Override 041 synchronized public void notifyVersion(SprogVersion v) { 042 log.debug("Version {} notified", v.toString()); 043 JOptionPane.showMessageDialog(null, Bundle.getMessage("SprogVersionDialogString", v.toString()), 044 Bundle.getMessage("SprogVersionTitle"), JOptionPane.INFORMATION_MESSAGE); 045 setVisible(false); 046 dispose(); 047 } 048 049 /** 050 * Removes SprogVersionListener. 051 * {@inheritDoc} 052 */ 053 @Override 054 public void dispose() { 055 _memo.getSprogVersionQuery().removeSprogVersionListener(this); 056 super.dispose(); 057 } 058 059 private final static Logger log = LoggerFactory.getLogger(SprogVersionFrame.class); 060}