|
|
|
package com.fr.design.write.submit;
|
|
|
|
|
|
|
|
import com.fr.base.GraphHelper;
|
|
|
|
import com.fr.data.AbstractClassJob;
|
|
|
|
import com.fr.design.data.tabledata.tabledatapane.ClassNameSelectPane;
|
|
|
|
import com.fr.design.beans.BasicBeanPane;
|
|
|
|
import com.fr.design.formula.JavaEditorPane;
|
|
|
|
import com.fr.design.gui.frpane.ObjectProperiesPane;
|
|
|
|
import com.fr.design.gui.ibutton.UIButton;
|
|
|
|
import com.fr.design.gui.itextarea.UITextArea;
|
|
|
|
import com.fr.design.gui.itextfield.UITextField;
|
|
|
|
import com.fr.design.layout.FRGUIPaneFactory;
|
|
|
|
import com.fr.design.dialog.BasicDialog;
|
|
|
|
import com.fr.design.dialog.DialogActionAdapter;
|
|
|
|
|
|
|
|
import com.fr.stable.ListMap;
|
|
|
|
import com.fr.stable.StringUtils;
|
|
|
|
import com.fr.design.utils.gui.GUICoreUtils;
|
|
|
|
|
|
|
|
import javax.swing.*;
|
|
|
|
import java.awt.*;
|
|
|
|
import java.awt.event.ActionEvent;
|
|
|
|
import java.awt.event.ActionListener;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Author : Shockway
|
|
|
|
* Date: 13-7-29
|
|
|
|
* Time: 下午6:48
|
|
|
|
*/
|
|
|
|
public abstract class CustomJobPane extends BasicBeanPane {
|
|
|
|
protected UITextField classNameTextField;
|
|
|
|
protected ObjectProperiesPane objectProperiesPane;
|
|
|
|
private static final int DEFAULT_LENGTH = 17;
|
|
|
|
|
|
|
|
public CustomJobPane() {
|
|
|
|
this.setLayout(FRGUIPaneFactory.createBorderLayout());
|
|
|
|
JPanel reportletNamePane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane();
|
|
|
|
classNameTextField = new UITextField(getLengthOfTextField());
|
|
|
|
reportletNamePane.add(classNameTextField);
|
|
|
|
|
|
|
|
UIButton browserButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select"));
|
|
|
|
browserButton.setPreferredSize(new Dimension(
|
|
|
|
GraphHelper.getWidth(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")) + 22,
|
|
|
|
classNameTextField.getPreferredSize().height));
|
|
|
|
|
|
|
|
UIButton editButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Edit"));
|
|
|
|
editButton.setPreferredSize(new Dimension(
|
|
|
|
GraphHelper.getWidth(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select")) + 22,
|
|
|
|
classNameTextField.getPreferredSize().height));
|
|
|
|
|
|
|
|
reportletNamePane.add(browserButton);
|
|
|
|
reportletNamePane.add(editButton);
|
|
|
|
|
|
|
|
browserButton.addActionListener(new ActionListener() {
|
|
|
|
public void actionPerformed(ActionEvent evt) {
|
|
|
|
final ClassNameSelectPane bPane = new ClassNameSelectPane();
|
|
|
|
bPane.setClassPath(classNameTextField.getText());
|
|
|
|
bPane.showWindow(
|
|
|
|
SwingUtilities.getWindowAncestor(getWindowAncestor()),
|
|
|
|
new DialogActionAdapter() {
|
|
|
|
public void doOk() {
|
|
|
|
classNameTextField.setText(bPane.getClassPath());
|
|
|
|
checkAddButtonEnable();
|
|
|
|
}
|
|
|
|
}).setVisible(true);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
editButton.addActionListener(new ActionListener() {
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
final JavaEditorPane javaEditorPane = new JavaEditorPane(classNameTextField.getText(), JavaEditorPane.DEFAULT_SUBMIT_JOB);
|
|
|
|
final BasicDialog dlg = javaEditorPane.showMediumWindow(SwingUtilities.getWindowAncestor(CustomJobPane.this),
|
|
|
|
new DialogActionAdapter() {
|
|
|
|
public void doOk() {
|
|
|
|
classNameTextField.setText(javaEditorPane.getClassText());
|
|
|
|
checkAddButtonEnable();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
javaEditorPane.addSaveActionListener(new ActionListener() {
|
|
|
|
@Override
|
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
|
dlg.doOK();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
dlg.setVisible(true);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
reportletNamePane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Class_Name"), null));
|
|
|
|
this.add(reportletNamePane, BorderLayout.NORTH);
|
|
|
|
|
|
|
|
objectProperiesPane = new ObjectProperiesPane();
|
|
|
|
objectProperiesPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Property"), null));
|
|
|
|
this.add(objectProperiesPane, BorderLayout.CENTER);
|
|
|
|
|
|
|
|
UITextArea area = new UITextArea(2, 1);
|
|
|
|
area.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Extend_Class", "com.fr.data.AbstractSubmitTask"));
|
|
|
|
JPanel dsPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
|
|
|
|
dsPane.add(area);
|
|
|
|
dsPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Job_Description"), null));
|
|
|
|
this.add(dsPane, BorderLayout.SOUTH);
|
|
|
|
checkAddButtonEnable();
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getLengthOfTextField() {
|
|
|
|
return DEFAULT_LENGTH;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected String title4PopupWindow() {
|
|
|
|
return "CustomJob";
|
|
|
|
}
|
|
|
|
|
|
|
|
protected Component getWindowAncestor() {
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void populateBean(Object ob) {
|
|
|
|
if (ob == null) {
|
|
|
|
// 自定义提交新增时初始化页面 REPORT-59256
|
|
|
|
this.classNameTextField.setText(StringUtils.EMPTY);
|
|
|
|
this.objectProperiesPane.populateBean(new ListMap());
|
|
|
|
}
|
|
|
|
else if (ob instanceof AbstractClassJob) {
|
|
|
|
AbstractClassJob cj = (AbstractClassJob) ob;
|
|
|
|
this.classNameTextField.setText(cj.getClassName());
|
|
|
|
this.objectProperiesPane.populateBean(cj.getPropertyMap());
|
|
|
|
checkAddButtonEnable();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 添加按钮可用
|
|
|
|
*/
|
|
|
|
public void checkAddButtonEnable() {
|
|
|
|
objectProperiesPane.enableAddButton(StringUtils.isNotEmpty(classNameTextField.getText()));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 重置
|
|
|
|
*/
|
|
|
|
public void reset() {
|
|
|
|
this.classNameTextField.setText(null);
|
|
|
|
this.checkAddButtonEnable();
|
|
|
|
}
|
|
|
|
}
|