ca.parkie.portfinder.client.NetworkInterfaceDialog.java Source code

Java tutorial

Introduction

Here is the source code for ca.parkie.portfinder.client.NetworkInterfaceDialog.java

Source

/***********************************************************
 * Portfinder
 * Copyright 2010-2014 Christian Parkinson
 * Licensed under the GNU GPL.  See COPYING for full terms.
 ***********************************************************/

package ca.parkie.portfinder.client;

import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;

import javax.swing.*;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class NetworkInterfaceDialog {
    private JPanel contentPane;
    private JComboBox networkInterfaceCombo;
    private JButton okButton;

    private ComboBoxModel model;
    private JDialog dialog;

    public NetworkInterfaceDialog(JDialog dialog, String[] networkInterfaces) {
        this.dialog = dialog;

        String[] array = new String[networkInterfaces.length + 1];
        array[0] = null;
        System.arraycopy(networkInterfaces, 0, array, 1, networkInterfaces.length);
        model = new DefaultComboBoxModel(array);

        networkInterfaceCombo.setModel(model);
        networkInterfaceCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Object selected = model.getSelectedItem();
                okButton.setEnabled(selected != null);
            }
        });

        okButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                NetworkInterfaceDialog.this.dialog.dispose();
            }
        });
    }

    public JPanel getContentPane() {
        return contentPane;
    }

    public String getNetworkInterface() {
        return (String) model.getSelectedItem();
    }

    {
        // GUI initializer generated by IntelliJ IDEA GUI Designer
        // >>> IMPORTANT!! <<<
        // DO NOT EDIT OR ADD ANY CODE HERE!
        $$$setupUI$$$();
    }

    /**
     * Method generated by IntelliJ IDEA GUI Designer
     * >>> IMPORTANT!! <<<
     * DO NOT edit this method OR call it in your code!
     *
     * @noinspection ALL
     */
    private void $$$setupUI$$$() {
        contentPane = new JPanel();
        contentPane.setLayout(new FormLayout("fill:d:grow", "center:d:grow"));
        contentPane.setPreferredSize(new Dimension(370, 51));
        final JPanel panel1 = new JPanel();
        panel1.setLayout(new FormLayout(
                "fill:d:noGrow,left:4dlu:noGrow,fill:d:noGrow,left:4dlu:noGrow,fill:max(d;4px):noGrow",
                "center:30px:noGrow"));
        CellConstraints cc = new CellConstraints();
        contentPane.add(panel1, new CellConstraints(1, 1, 1, 1, CellConstraints.CENTER, CellConstraints.FILL,
                new Insets(11, 11, 11, 11)));
        final JLabel label1 = new JLabel();
        label1.setText("Select the network interface to use:");
        panel1.add(label1, cc.xy(1, 1, CellConstraints.LEFT, CellConstraints.DEFAULT));
        networkInterfaceCombo = new JComboBox();
        panel1.add(networkInterfaceCombo, cc.xy(3, 1));
        okButton = new JButton();
        okButton.setEnabled(false);
        okButton.setText("Ok");
        panel1.add(okButton, cc.xy(5, 1));
        label1.setLabelFor(networkInterfaceCombo);
    }

    /**
     * @noinspection ALL
     */
    public JComponent $$$getRootComponent$$$() {
        return contentPane;
    }
}