帆软报表设计器源代码。
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.
 
 
 
 

91 lines
2.7 KiB

package com.fr.design.parameter;
import com.fr.base.Parameter;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Component;
public class ParameterPane extends BasicBeanPane<Parameter> {
/*
* richer:参数定义面板
* ——————6.5中,参数面板做出较大改动,取消了在参数定义的地方设置编辑器的做法
* ——————默认参数界面也自动生成,并且能给用户看
* ——————参数面板的大小尽量使用(600, 350),可以统一
*/
// 参数名字
private UITextField nameTextField;
// 参数默认值
private ValueEditorPane valueEditor;
public ParameterPane() {
this.initComponents();
}
protected void initComponents() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
nameTextField = new UITextField(10);
nameTextField.setEditable(false);
JPanel textFieldPanel=FRGUIPaneFactory.createBorderLayout_S_Pane();
textFieldPanel.add(nameTextField,BorderLayout.CENTER);
valueEditor = ValueEditorPaneFactory.createBasicValueEditorPane();
// richer:要排列显示的控件
Component[][] components = {{null},
{ null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name") + ":"),textFieldPanel },
{ null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Utils_Default_Value") + ":"),valueEditor }
};
double p =TableLayout.PREFERRED;
double f =TableLayout.FILL;
double[] rowSize = {p, p, p, p};
double[] columnSize = {p, p, f, p, p};
JPanel centerPane = TableLayoutHelper.createGapTableLayoutPane(
components, rowSize, columnSize, 20, 10);
this.add(centerPane, BorderLayout.CENTER);
}
public void setNameEditable(boolean bool) {
this.nameTextField.setEditable(true);
}
@Override
protected String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Parameter");
}
@Override
public void populateBean(Parameter parameter) {
if (parameter == null) {
return;
}
this.nameTextField.setText(parameter.getName());
this.valueEditor.populate(parameter.getValue());
}
@Override
public Parameter updateBean() {
Parameter parameter = new Parameter();
parameter.setName(this.nameTextField.getText());
parameter.setValue(valueEditor.update());
return parameter;
}
public void checkValid() throws Exception{
this.valueEditor.checkValid();
}
}