001package jmri.jmrix.lenz.liusbserver;
002
003import javax.swing.JPanel;
004
005/**
006 * Handle configuring an XpressNet layout connection via a LIUSB Server.
007 * <p>
008 * This uses the {@link LIUSBServerAdapter} class to do the actual connection.
009 *
010 * @author Paul Bender Copyright (C) 2009
011 *
012 * @see LIUSBServerAdapter
013 */
014public class ConnectionConfig extends jmri.jmrix.AbstractNetworkConnectionConfig {
015
016    /**
017     * Ctor for an object being created during load process.
018     * Swing init is deferred.
019     * @param p network port adapter.
020     */
021    public ConnectionConfig(jmri.jmrix.NetworkPortAdapter p) {
022        super(p);
023    }
024
025    /**
026     * Ctor for a connection configuration with no preexisting adapter.
027     * {@link #setInstance()} will fill the adapter member.
028     */
029    public ConnectionConfig() {
030        super();
031    }
032
033    @Override
034    public String name() {
035        return Bundle.getMessage("LenzLiusbServerName");
036    }
037
038    /**
039     * {@inheritDoc}
040     */
041    @Override
042    protected void setInstance() {
043        if (adapter == null) {
044            adapter = new LIUSBServerAdapter();
045        }
046    }
047
048    /**
049     * {@inheritDoc}
050     */
051    @Override
052    public void loadDetails(JPanel details) {
053        super.loadDetails(details);
054        hostNameField.setText(LIUSBServerAdapter.DEFAULT_IP_ADDRESS);
055        hostNameField.setEnabled(false); // we can't change this now.
056        portFieldLabel.setText(Bundle.getMessage("CommunicationPortLabel"));
057        portField.setText(String.valueOf(LIUSBServerAdapter.COMMUNICATION_TCP_PORT));
058        portField.setEnabled(false); // we can't change this now.
059        options.get(adapter.getOption1Name()).getComponent().setEnabled(false); // we can't change this now.
060    }
061
062}