📄 serversettingpanel.java
字号:
package jp.co.ntl.swing.ext;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JCheckBox;
import javax.swing.JOptionPane;
import javax.swing.SpringLayout;
import javax.swing.Box;
import javax.swing.BoxLayout;
import jp.co.ntl.swing.NumberField;
import jp.co.ntl.swing.SpringUtilities;
import jp.co.ntl.swing.ext.GroupPanel;
import jp.co.ntl.preference.PreferenceInfo;
import jp.co.ntl.Util;
import jp.co.ntl.ext.CheckUtil;
public class ServerSettingPanel extends AbstractDetailInfoPanel implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private JLabel lblName;
private JTextField txtName;
private JLabel lblPort;
private NumberField txtPort;
private JLabel lblPath;
private JTextField txtPath;
private JLabel lblAuthType;
private JComboBox cmbAuthType;
private JLabel lblSessionTimer;
private NumberField txtSessionTimer;
private JLabel lblSessionTimerUnit;
private JLabel lblCardRWAddr;
private JTextField txtCardRWAddr;
private JLabel lblFelicaSysCode;
private NumberField txtFelicaSysCode;
private JCheckBox checkHttps;
private GroupPanel groupCardRW;
public ServerSettingPanel() {
super(false, null);
}
protected void setParams(Object[] params) {
}
protected void buildComponents() {
Resource.load(Util.getCurrentLocale());
setLayout(new SpringLayout());
JPanel panel = new JPanel(new SpringLayout());
lblName = new JLabel(Resource.getString(Resource.SERVER_SETTING_NAME));
panel.add(lblName);
txtName = new JTextField();
txtName.setPreferredSize(new Dimension(200, 24));
panel.add(txtName);
lblPort = new JLabel(Resource.getString(Resource.SERVER_SETTING_PORT));
panel.add(lblPort);
txtPort = new NumberField(5, NumberField.UINT);
txtPort.setPreferredSize(new Dimension(50, 24));
panel.add(txtPort);
lblPath = new JLabel(Resource.getString(Resource.SERVER_SETTING_PATH));
panel.add(lblPath);
txtPath = new JTextField();
txtPath.setPreferredSize(new Dimension(200, 24));
panel.add(txtPath);
lblAuthType = new JLabel(Resource.getString(Resource.SERVER_SETTING_AUTHTYPE));
panel.add(lblAuthType);
String[] items = {
Resource.getString(Resource.SERVER_SETTING_AUTH_USB),
Resource.getString(Resource.SERVER_SETTING_AUTH_LOGIN),
Resource.getString(Resource.SERVER_SETTING_AUTH_NET_FELICA),
};
cmbAuthType = new JComboBox(items);
panel.add(cmbAuthType);
lblSessionTimer = new JLabel(Resource.getString(Resource.SERVER_SETTING_SESSION_TIMER));
panel.add(lblSessionTimer);
JPanel panelSessionTimer = new JPanel();
panelSessionTimer.setLayout(new BoxLayout(panelSessionTimer, BoxLayout.X_AXIS));
panelSessionTimer.setBorder(BorderFactory.createEmptyBorder(2, 0, 2, 0));
txtSessionTimer = new NumberField(4, NumberField.UINT);
txtSessionTimer.setPreferredSize(new Dimension(50, 24));
panelSessionTimer.add(txtSessionTimer);
panelSessionTimer.add(Box.createRigidArea(new Dimension(10, 0)));
lblSessionTimerUnit = new JLabel(Resource.getString(Resource.SERVER_SETTING_SESSION_TIMER_UNIT));
panelSessionTimer.add(lblSessionTimerUnit);
panel.add(panelSessionTimer);
SpringUtilities.makeCompactGrid(panel, panel.getComponentCount() / 2, 2, 10, 10, 10, 10);
add(panel);
groupCardRW = new GroupPanel(Resource.getString(Resource.SERVER_SETTING_CARD_RW));
groupCardRW.setLayout(new SpringLayout());
lblCardRWAddr = new JLabel(Resource.getString(Resource.SERVER_SETTING_CARD_RW_ADDR));
groupCardRW.add(lblCardRWAddr);
txtCardRWAddr = new JTextField();
txtCardRWAddr.setPreferredSize(new Dimension(200, 24));
groupCardRW.add(txtCardRWAddr);
lblFelicaSysCode = new JLabel(Resource.getString(Resource.SERVER_SETTING_FELICA_SYS_CODE));
groupCardRW.add(lblFelicaSysCode);
txtFelicaSysCode = new NumberField(5, NumberField.UINT);
txtFelicaSysCode.setPreferredSize(new Dimension(50, 24));
groupCardRW.add(txtFelicaSysCode);
SpringUtilities.makeCompactGrid(groupCardRW, groupCardRW.getComponentCount() / 2, 2, 20, 20, 20, 20);
add(groupCardRW);
JPanel p2 = new JPanel(new SpringLayout());
checkHttps = new JCheckBox(Resource.getString(Resource.SERVER_SETTING_HTTPS));
p2.add(checkHttps);
checkHttps.setEnabled(false);
SpringUtilities.makeCompactGrid(p2, p2.getComponentCount(), 1, 10, 10, 10, 10);
add(p2);
SpringUtilities.makeCompactGrid(this, this.getComponentCount(), 1, 0, 0, 0, 0);
setDefaultButton(OK_BUTTON);
setValuesToComponent();
cmbAuthType.addActionListener(this);
}
public JButton[] getButtons() {
if (clientKind == PreferenceInfo.CLIENT_MAC) {
return new JButton[] {
new JButton(Resource.getString(Resource.SERVER_SETTING_CANCEL)),
new JButton(Resource.getString(Resource.SERVER_SETTING_OK))
};
} else {
return new JButton[] {
new JButton(Resource.getString(Resource.SERVER_SETTING_OK)),
new JButton(Resource.getString(Resource.SERVER_SETTING_CANCEL))
};
}
}
protected void setValuesToComponent() {
txtName.setText(Util.getPreferenceInfo().getHost());
txtPort.setText(Integer.toString(Util.getPreferenceInfo().getPort()));
txtPath.setText(Util.getPreferenceInfo().getPath());
checkHttps.setSelected(Util.getPreferenceInfo().isUseHttps());
cmbAuthType.setSelectedIndex(Util.getPreferenceInfo().getAuthType());
txtSessionTimer.setText(Integer.toString(Util.getPreferenceInfo().getSessionTimerValue()));
txtCardRWAddr.setText(Util.getPreferenceInfo().getCardRWAddr());
txtFelicaSysCode.setText(String.valueOf(Util.getPreferenceInfo().getFelicaSysCode()));
lblAuthType.setEnabled(Util.getPreferenceInfo().isAllowSelectedAuthType());
cmbAuthType.setEnabled(Util.getPreferenceInfo().isAllowSelectedAuthType());
setAuthTypeState();
}
protected void setValuesFromComponent() {
Util.getPreferenceInfo().setHost(txtName.getText());
Util.getPreferenceInfo().setPort(Integer.parseInt(txtPort.getText()));
Util.getPreferenceInfo().setPath(txtPath.getText());
Util.getPreferenceInfo().setUseHttps(checkHttps.isSelected());
Util.getPreferenceInfo().setAuthType(cmbAuthType.getSelectedIndex());
Util.getPreferenceInfo().setSessionTimerValue(Integer.parseInt(txtSessionTimer.getText()));
Util.getPreferenceInfo().setCardRWAddr(txtCardRWAddr.getText());
Util.getPreferenceInfo().setFelicaSysCode(Integer.parseInt(txtFelicaSysCode.getText()));
try {
Util.getPreferenceInfo().writeXml();
if (JOptionPane.showConfirmDialog(
this,
Resource.getString(Resource.CONFIRM_RESTART),
Resource.getString(Resource.TITLE_MESSAGE),
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
System.exit(0);
}
} catch (IOException e) {
DialogManager.showMessage(this, DialogManager.ERROR_WRITE_SETTING);
}
}
protected void setAuthTypeState() {
boolean[] b = {false, false};
switch (cmbAuthType.getSelectedIndex()) {
case PreferenceInfo.AUTH_LOGIN:
b[0] = true;
break;
case PreferenceInfo.AUTH_NET_FELICA:
b[1] = true;
break;
}
lblSessionTimer.setEnabled(b[0]);
txtSessionTimer.setEnabled(b[0]);
lblSessionTimerUnit.setEnabled(b[0]);
groupCardRW.setEnabled(b[1]);
lblCardRWAddr.setEnabled(b[1]);
txtCardRWAddr.setEnabled(b[1]);
lblFelicaSysCode.setEnabled(b[1]);
txtFelicaSysCode.setEnabled(b[1]);
}
protected boolean checkValues() {
CheckUtil chk;
chk = new CheckUtil(Resource.getString(Resource.SERVER_SETTING_NAME), this);
// 儂僗僩柤偑NULL偐敾掕
if (chk.isNull(txtName.getText())) {
return false;
}
// 儂僗僩柤偺擖椡挿傪敾掕
if (chk.isLengthOver(txtName.getText(), PreferenceInfo.MAX_HOST_LEN)) {
return false;
}
// 儂僗僩柤偑惓偟偄抣偐敾掕
if (txtName.getText().indexOf(".") >= 0) {
// IP傾僪儗僗偺応崌
if (chk.isValidIPAddress(txtName.getText())) {
return false;
}
} else {
// 儂僗僩柤偺応崌
if (chk.isValidateChar(txtName.getText())) {
return false;
}
}
chk = new CheckUtil(Resource.getString(Resource.SERVER_SETTING_PORT), this);
// 億乕僩斣崋偑NULL偐敾掕
if (chk.isNull(txtPort.getText())) {
return false;
}
// 億乕僩斣崋偺忋壓尷抣傪敾掕
if (chk.isRangeOver(Integer.parseInt(txtPort.getText()), PreferenceInfo.MIN_PORT_NUM, PreferenceInfo.MAX_PORT_NUM)) {
return false;
}
chk = new CheckUtil(Resource.getString(Resource.SERVER_SETTING_PATH), this);
// 僷僗柤偑NULL偐敾掕
if (chk.isNull(txtPath.getText())) {
return false;
}
// 僷僗柤偺擖椡挿傪敾掕
if (chk.isLengthOver(txtPath.getText(), PreferenceInfo.MAX_PATH_LEN)) {
return false;
}
switch (cmbAuthType.getSelectedIndex()) {
case PreferenceInfo.AUTH_LOGIN:
chk = new CheckUtil(Resource.getString(Resource.SERVER_SETTING_SESSION_TIMER), this);
// 僙僢僔儑儞僞僀儉傾僂僩抣偑NULL偐敾掕
if (chk.isNull(txtSessionTimer.getText())) {
return false;
}
// 僙僢僔儑儞僞僀儉傾僂僩抣偺忋壓尷抣傪敾掕
if (chk.isRangeOver(Integer.parseInt(txtSessionTimer.getText()), PreferenceInfo.MIN_SESSION_TIMER_VALUE, PreferenceInfo.MAX_SESSION_TIMER_VALUE)) {
return false;
}
break;
case PreferenceInfo.AUTH_NET_FELICA:
chk = new CheckUtil(Resource.getString(Resource.SERVER_SETTING_CARD_RW_ADDR), this);
// 僇乕僪R/W僱僢僩儚乕僋傾僪儗僗偑NULL偐敾掕
if (chk.isNull(txtCardRWAddr.getText())) {
return false;
}
// 僇乕僪R/W僱僢僩儚乕僋傾僪儗僗偺擖椡挿傪敾掕
if (chk.isLengthOver(txtCardRWAddr.getText(), PreferenceInfo.MAX_CARD_RW_ADDR_LEN)) {
return false;
}
// 僇乕僪R/W僱僢僩儚乕僋傾僪儗僗偑惓偟偄抣偐敾掕
if (chk.isValidIPAddress(txtCardRWAddr.getText())) {
return false;
}
chk = new CheckUtil(Resource.getString(Resource.SERVER_SETTING_FELICA_SYS_CODE), this);
// 僼僃儕僇僇乕僪僔僗僥儉僐乕僪偑NULL偐敾掕
if (chk.isNull(txtFelicaSysCode.getText())) {
return false;
}
// 僼僃儕僇僔僗僥儉僐乕僪偺忋壓尷抣傪敾掕
if (chk.isRangeOver(Integer.parseInt(txtFelicaSysCode.getText()), PreferenceInfo.MIN_FELICA_SYS_CODE, PreferenceInfo.MAX_FELICA_SYS_CODE)) {
return false;
}
break;
}
return true;
}
public void actionPerformed(ActionEvent ae) {
Object obj = ae.getSource();
if (obj == cmbAuthType) {
setAuthTypeState();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -