001package jmri.jmrix.ieee802154.xbee;
002
003import javax.swing.JButton;
004import javax.swing.JPanel;
005import jmri.jmrix.ieee802154.xbee.swing.nodeconfig.XBeeNodeConfigAction;
006
007/**
008 * Definition of objects to handle configuring a layout connection
009 *
010 * @author Bob Jacobsen Copyright (C) 2003, 2006, 2007, 2008
011 */
012public class ConnectionConfig extends jmri.jmrix.AbstractSerialConnectionConfig {
013
014    /**
015     * Ctor for an object being created during load process; Swing init is
016     * deferred.
017     * @param p port adapter for connection
018     */
019    public ConnectionConfig(jmri.jmrix.SerialPortAdapter p) {
020        super(p);
021    }
022
023    /**
024     * Ctor for a connection configuration with no preexisting adapter.
025     * {@link #setInstance()} will fill the adapter member.
026     */
027    public ConnectionConfig() {
028        super();
029    }
030
031    JButton b = new JButton(Bundle.getMessage("ConfigureXbeeTitle"));
032
033    /**
034     * {@inheritDoc}
035     */
036    @Override
037    public void loadDetails(JPanel details) {
038        b.addActionListener(new XBeeNodeConfigAction());
039        if (!additionalItems.contains(b)) {
040            additionalItems.add(b);
041        }
042        super.loadDetails(details);
043    }
044
045    @Override
046    public String name() {
047        return Bundle.getMessage("XBeeNetworkTitle");
048    }
049
050    public boolean isOptList1Advanced() {
051        return false;
052    }
053
054    @Override
055    protected void setInstance() {
056        if (adapter == null) {
057            adapter = new XBeeAdapter();
058        }
059    }
060
061}