1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.gui.component;
21
22 import java.awt.Component;
23 import java.awt.Insets;
24 import java.awt.event.ActionEvent;
25
26 import javax.swing.AbstractAction;
27 import javax.swing.Action;
28 import javax.swing.Box;
29 import javax.swing.BoxLayout;
30 import javax.swing.JButton;
31 import javax.swing.JCheckBox;
32 import javax.swing.JPanel;
33 import javax.swing.JTextField;
34
35 import org.xnap.XNap;
36 import org.xnap.gui.action.EnableAction;
37 import org.xnap.gui.util.IconHelper;
38
39 /***
40 * Provides a panel with a <code>JTextField</code> and a button for file
41 * selection.
42 */
43 public class PortPanel extends JPanel {
44
45
46
47 private JCheckBox jcbEnable;
48 private JTextField jtfPort;
49
50
51
52 public PortPanel(boolean selected, String text, int size)
53 {
54 setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
55
56 jtfPort = new ValidatedTextField
57 (text, size, ValidatedTextField.NUMBERS_INT + ";-");
58
59 EnableAction ac = new EnableAction
60 (XNap.tr("Enable"), new Component[] { jtfPort }, selected);
61
62 jcbEnable = new XNapCheckBox(ac);
63 add(jcbEnable);
64
65 add(Box.createHorizontalStrut(5));
66
67 add(jtfPort);
68
69 add(Box.createHorizontalStrut(1));
70
71 JButton jbCheck = new XNapButton(new PortCheckAction());
72 jbCheck.setMargin(new Insets(1, 1, 1, 1));
73 add(jbCheck);
74 }
75
76
77
78 public String getPort()
79 {
80 return jtfPort.getText();
81 }
82
83 public boolean isSelected()
84 {
85 return jcbEnable.isSelected();
86 }
87
88
89
90 private class PortCheckAction extends AbstractAction
91 {
92 public PortCheckAction()
93 {
94 putValue(IconHelper.XNAP_ICON, "help.png");
95 putValue(Action.SHORT_DESCRIPTION,
96 XNap.tr("Verifies if the selected port can be reached from outside."));
97
98
99 setEnabled(false);
100 }
101
102 public void actionPerformed(ActionEvent event)
103 {
104 }
105 }
106
107 }