You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.4 KiB
86 lines
3.4 KiB
package com.fr.design.widget.ui; |
|
|
|
import com.fr.design.designer.IntervalConstants; |
|
import com.fr.design.gui.icheckbox.UICheckBox; |
|
import com.fr.design.gui.icombobox.DictionaryComboBox; |
|
import com.fr.design.gui.icombobox.DictionaryConstants; |
|
import com.fr.design.gui.ilable.UILabel; |
|
import com.fr.design.gui.ispinner.UISpinner; |
|
import com.fr.design.layout.TableLayout; |
|
import com.fr.design.layout.TableLayoutHelper; |
|
import com.fr.design.utils.gui.UIComponentUtils; |
|
import com.fr.form.ui.MultiFileEditor; |
|
|
|
import javax.swing.BorderFactory; |
|
import javax.swing.JPanel; |
|
import java.awt.BorderLayout; |
|
import java.awt.Component; |
|
import java.awt.Dimension; |
|
|
|
public class MultiFileEditorPane extends FieldEditorDefinePane<MultiFileEditor> { |
|
private DictionaryComboBox acceptType; |
|
private UICheckBox singleFileCheckBox; |
|
private UISpinner fileSizeField; |
|
|
|
public MultiFileEditorPane() { |
|
this.initComponents(); |
|
} |
|
|
|
|
|
@Override |
|
protected String title4PopupWindow() { |
|
return "file"; |
|
} |
|
|
|
@Override |
|
protected JPanel setFirstContentPane() { |
|
JPanel contenter = new JPanel(new BorderLayout()); |
|
|
|
singleFileCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Single_File_Upload")); |
|
UIComponentUtils.setLineWrap(singleFileCheckBox); |
|
singleFileCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); |
|
acceptType = new DictionaryComboBox(DictionaryConstants.acceptTypes, DictionaryConstants.fileTypeDisplays); |
|
// acceptType.setPreferredSize(new Dimension(100, 20)); |
|
fileSizeField = new UISpinner(0, Integer.MAX_VALUE, 1); |
|
fileSizeField.setPreferredSize(new Dimension(140, 20)); |
|
|
|
JPanel fileSizePane = new JPanel(new BorderLayout()); |
|
UILabel fileTypeLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_File_Type")); |
|
UILabel fileSizeLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Size_Limit")); |
|
fileSizePane.add(fileSizeField, BorderLayout.CENTER); |
|
fileSizePane.add(new UILabel(" KB"), BorderLayout.EAST); |
|
|
|
double f = TableLayout.FILL; |
|
double p = TableLayout.PREFERRED; |
|
Component[][] components = new Component[][]{ |
|
new Component[]{singleFileCheckBox, null}, |
|
new Component[]{fileTypeLabel, acceptType}, |
|
new Component[]{fileSizeLabel, fileSizePane}, |
|
}; |
|
double[] rowSize = {p, p, p}; |
|
double[] columnSize = {p, f}; |
|
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}}; |
|
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); |
|
contenter.add(panel, BorderLayout.CENTER); |
|
|
|
return contenter; |
|
} |
|
|
|
@Override |
|
protected void populateSubFieldEditorBean(MultiFileEditor e) { |
|
// 这里存在兼容问题 getAccept可能没在待选项目中 |
|
acceptType.setSelectedItem(e.getAccept()); |
|
singleFileCheckBox.setSelected(e.isSingleFile()); |
|
fileSizeField.setValue(e.getMaxSize()); |
|
} |
|
|
|
@Override |
|
protected MultiFileEditor updateSubFieldEditorBean() { |
|
MultiFileEditor ob = new MultiFileEditor(); |
|
ob.setAccept((String) acceptType.getSelectedItem()); |
|
ob.setSingleFile(singleFileCheckBox.isSelected()); |
|
ob.setMaxSize(fileSizeField.getValue()); |
|
return ob; |
|
} |
|
|
|
}
|
|
|