|
|
|
@ -3,13 +3,16 @@ package com.fr.design.widget.ui.designer.mobile.component;
|
|
|
|
|
import com.fr.base.mobile.MobileScanCodeAttr; |
|
|
|
|
import com.fr.design.beans.BasicBeanPane; |
|
|
|
|
import com.fr.design.constants.LayoutConstants; |
|
|
|
|
import com.fr.design.gui.ibutton.UIRadioButton; |
|
|
|
|
import com.fr.design.gui.icheckbox.UICheckBox; |
|
|
|
|
import com.fr.design.gui.ilable.UILabel; |
|
|
|
|
import com.fr.design.i18n.Toolkit; |
|
|
|
|
import com.fr.design.layout.FRGUIPaneFactory; |
|
|
|
|
import com.fr.design.layout.TableLayout; |
|
|
|
|
import com.fr.design.layout.TableLayoutHelper; |
|
|
|
|
import com.fr.design.layout.VerticalFlowLayout; |
|
|
|
|
|
|
|
|
|
import javax.swing.ButtonGroup; |
|
|
|
|
import javax.swing.JPanel; |
|
|
|
|
import java.awt.BorderLayout; |
|
|
|
|
import java.awt.Component; |
|
|
|
@ -25,25 +28,38 @@ public class MobileTextFieldInputSettingPane extends BasicBeanPane<MobileScanCod
|
|
|
|
|
private final UICheckBox scanCodeCheckBox; |
|
|
|
|
private final UICheckBox nfcInputCheckBox; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* NFC内容类型面板 |
|
|
|
|
*/ |
|
|
|
|
private final NfcContentTypePane nfcContentTypePane = new NfcContentTypePane(); |
|
|
|
|
|
|
|
|
|
public MobileTextFieldInputSettingPane() { |
|
|
|
|
this.setLayout(FRGUIPaneFactory.createBorderLayout()); |
|
|
|
|
manualInputCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Mobile_Manual_Input"), true); |
|
|
|
|
scanCodeCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Mobile_Scan_Code_Input"), true); |
|
|
|
|
nfcInputCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Mobile_NFC_Input"), false); |
|
|
|
|
nfcInputCheckBox.addChangeListener(e -> { |
|
|
|
|
UICheckBox source = (UICheckBox) e.getSource(); |
|
|
|
|
// 更新面板是否可见
|
|
|
|
|
updateNfcContentTypePane(source.isSelected(), nfcContentTypePane.getSelectedType()); |
|
|
|
|
}); |
|
|
|
|
initComponents(); |
|
|
|
|
// 初始状态,内容类型面板不可见
|
|
|
|
|
nfcContentTypePane.setVisible(false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void initComponents() { |
|
|
|
|
Component[][] components = new Component[][]{ |
|
|
|
|
new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Mobile_Input_Way")), manualInputCheckBox}, |
|
|
|
|
new Component[]{null, scanCodeCheckBox}, |
|
|
|
|
new Component[]{null, nfcInputCheckBox} |
|
|
|
|
new Component[]{null, nfcInputCheckBox}, |
|
|
|
|
new Component[]{null, nfcContentTypePane}, |
|
|
|
|
}; |
|
|
|
|
double p = TableLayout.PREFERRED; |
|
|
|
|
double f = TableLayout.FILL; |
|
|
|
|
double[] rowSize = {p, p, p}; |
|
|
|
|
double[] rowSize = {p, p, p, p}; |
|
|
|
|
double[] columnSize = {p, f}; |
|
|
|
|
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}}; |
|
|
|
|
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}}; |
|
|
|
|
JPanel settingPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.HGAP_LARGE, LayoutConstants.VGAP_LARGE); |
|
|
|
|
this.add(settingPane, BorderLayout.NORTH); |
|
|
|
|
} |
|
|
|
@ -53,6 +69,7 @@ public class MobileTextFieldInputSettingPane extends BasicBeanPane<MobileScanCod
|
|
|
|
|
manualInputCheckBox.setSelected(ob.isSupportManual()); |
|
|
|
|
scanCodeCheckBox.setSelected(ob.isSupportScan()); |
|
|
|
|
nfcInputCheckBox.setSelected(ob.isSupportNFC()); |
|
|
|
|
updateNfcContentTypePane(ob.isSupportNFC(), ob.getNfcContentType()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -66,6 +83,18 @@ public class MobileTextFieldInputSettingPane extends BasicBeanPane<MobileScanCod
|
|
|
|
|
ob.setSupportManual(manualInputCheckBox.isSelected()); |
|
|
|
|
ob.setSupportScan(scanCodeCheckBox.isSelected()); |
|
|
|
|
ob.setSupportNFC(nfcInputCheckBox.isSelected()); |
|
|
|
|
ob.setNfcContentType(nfcContentTypePane.getSelectedType()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 更新NFC内容类型面板(可见、选项) |
|
|
|
|
* |
|
|
|
|
* @param visible 是否可见 |
|
|
|
|
* @param contentType 内容类型 |
|
|
|
|
*/ |
|
|
|
|
private void updateNfcContentTypePane(boolean visible, MobileScanCodeAttr.NFCContentType contentType) { |
|
|
|
|
nfcContentTypePane.setVisible(visible); |
|
|
|
|
nfcContentTypePane.setSelectedType(contentType); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -74,4 +103,59 @@ public class MobileTextFieldInputSettingPane extends BasicBeanPane<MobileScanCod
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* NFC内容类型面板封装 |
|
|
|
|
*/ |
|
|
|
|
private class NfcContentTypePane extends JPanel { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 类型-卡片内容 |
|
|
|
|
*/ |
|
|
|
|
private UIRadioButton contentTypeButton; |
|
|
|
|
/** |
|
|
|
|
* 类型-UID |
|
|
|
|
*/ |
|
|
|
|
private UIRadioButton uidTypeButton; |
|
|
|
|
|
|
|
|
|
NfcContentTypePane() { |
|
|
|
|
VerticalFlowLayout layout = new VerticalFlowLayout(); |
|
|
|
|
layout.setAlignLeft(true); |
|
|
|
|
this.setLayout(layout); |
|
|
|
|
|
|
|
|
|
contentTypeButton = new UIRadioButton(Toolkit.i18nText("Fine-Design_Mobile_NFC_Content_Type_Content")); |
|
|
|
|
uidTypeButton = new UIRadioButton(Toolkit.i18nText("Fine-Design_Mobile_NFC_Content_Type_UID")); |
|
|
|
|
contentTypeButton.setSelected(true); |
|
|
|
|
uidTypeButton.setSelected(false); |
|
|
|
|
|
|
|
|
|
ButtonGroup buttonGroup = new ButtonGroup(); |
|
|
|
|
buttonGroup.add(contentTypeButton); |
|
|
|
|
buttonGroup.add(uidTypeButton); |
|
|
|
|
|
|
|
|
|
this.add(contentTypeButton); |
|
|
|
|
this.add(uidTypeButton); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 根据NFCContentType,设置Button的选中状态 |
|
|
|
|
* |
|
|
|
|
* @param contentType |
|
|
|
|
*/ |
|
|
|
|
void setSelectedType(MobileScanCodeAttr.NFCContentType contentType) { |
|
|
|
|
contentTypeButton.setSelected(contentType == MobileScanCodeAttr.NFCContentType.CONTENT); |
|
|
|
|
uidTypeButton.setSelected(contentType == MobileScanCodeAttr.NFCContentType.UID); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 获取当前选中Button代表的NFCContentType |
|
|
|
|
* |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
MobileScanCodeAttr.NFCContentType getSelectedType() { |
|
|
|
|
return uidTypeButton.isSelected() ? |
|
|
|
|
MobileScanCodeAttr.NFCContentType.UID : |
|
|
|
|
MobileScanCodeAttr.NFCContentType.CONTENT; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|