Browse Source

REPORT-11538 自定义提交事件设计器部分bug

final/10.0
yaoh.wu 6 years ago
parent
commit
8dfe80a6a5
  1. 475
      designer-base/src/main/java/com/fr/design/gui/columnrow/ColumnRowPane.java
  2. 260
      designer-realize/src/main/java/com/fr/design/javascript/ListenerEditPane.java

475
designer-base/src/main/java/com/fr/design/gui/columnrow/ColumnRowPane.java

@ -1,8 +1,17 @@
package com.fr.design.gui.columnrow; package com.fr.design.gui.columnrow;
import java.awt.BorderLayout; import com.fr.design.designer.IntervalConstants;
import java.awt.Dimension; import com.fr.design.event.UIObserver;
import java.awt.GridLayout; import com.fr.design.event.UIObserverListener;
import com.fr.design.gui.ispinner.ColumnRowSpinner;
import com.fr.design.gui.ispinner.UIBasicSpinner;
import com.fr.design.gui.ispinner.UpperCaseSpinner;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.ComparatorUtils;
import com.fr.stable.ColumnRow;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import javax.swing.JFormattedTextField; import javax.swing.JFormattedTextField;
import javax.swing.JPanel; import javax.swing.JPanel;
@ -16,19 +25,9 @@ import javax.swing.text.AbstractDocument;
import javax.swing.text.AttributeSet; import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException; import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter; import javax.swing.text.DocumentFilter;
import java.awt.BorderLayout;
import com.fr.design.designer.IntervalConstants; import java.awt.Dimension;
import com.fr.design.event.UIObserver; import java.awt.GridLayout;
import com.fr.design.event.UIObserverListener;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.gui.ispinner.UIBasicSpinner;
import com.fr.design.gui.ispinner.UpperCaseSpinner;
import com.fr.design.gui.ispinner.ColumnRowSpinner;
import com.fr.general.ComparatorUtils;
import com.fr.stable.ColumnRow;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.design.utils.gui.GUICoreUtils;
/** /**
* the component to edit ColumnRow * the component to edit ColumnRow
@ -37,224 +36,228 @@ import com.fr.design.utils.gui.GUICoreUtils;
*/ */
public class ColumnRowPane extends JPanel implements UIObserver { public class ColumnRowPane extends JPanel implements UIObserver {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static String[] columnarray = new String[1000]; private static String[] columnarray = new String[1000];
private static String[] rowarray = new String[5000]; private static String[] rowarray = new String[5000];
protected UpperCaseSpinner columnSpinner; protected UpperCaseSpinner columnSpinner;
protected UIBasicSpinner rowSpinner; protected UIBasicSpinner rowSpinner;
static { static {
for (int i = 1; i < 1000; i++) { for (int i = 1; i <= 1000; i++) {
columnarray[i - 1] = StableUtils.convertIntToABC(i); columnarray[i - 1] = StableUtils.convertIntToABC(i);
} }
for (int i = 1; i < 5000; i++) { for (int i = 1; i <= 5000; i++) {
rowarray[i - 1] = StringUtils.EMPTY + i; rowarray[i - 1] = StringUtils.EMPTY + i;
} }
} }
protected DocumentListener d = new DocumentListener() { protected DocumentListener d = new DocumentListener() {
@Override @Override
public void removeUpdate(DocumentEvent e) { public void removeUpdate(DocumentEvent e) {
String rolText = ((DefaultEditor) columnSpinner.getEditor()).getTextField().getText(); String rolText = ((DefaultEditor) columnSpinner.getEditor()).getTextField().getText();
String rowText = ((DefaultEditor) rowSpinner.getEditor()).getTextField().getText(); String rowText = ((DefaultEditor) rowSpinner.getEditor()).getTextField().getText();
if (rolText == null || rolText.length() == 0 || rowText == null || rowText.length() == 0) { if (rolText == null || rolText.length() == 0 || rowText == null || rowText.length() == 0) {
return; return;
} }
int col = StableUtils.convertABCToInt(rolText) - 1; int col = StableUtils.convertABCToInt(rolText) - 1;
int row = Integer.parseInt(rowText) - 1; int row = Integer.parseInt(rowText) - 1;
setColumnRow(ColumnRow.valueOf(col, row)); setColumnRow(ColumnRow.valueOf(col, row));
} }
@Override @Override
public void insertUpdate(DocumentEvent e) { public void insertUpdate(DocumentEvent e) {
int col = StableUtils.convertABCToInt(((DefaultEditor) columnSpinner.getEditor()).getTextField().getText()) - 1; int col = StableUtils.convertABCToInt(((DefaultEditor) columnSpinner.getEditor()).getTextField().getText()) - 1;
int row = Integer.parseInt(((DefaultEditor) rowSpinner.getEditor()).getTextField().getText()) - 1; int row = Integer.parseInt(((DefaultEditor) rowSpinner.getEditor()).getTextField().getText()) - 1;
setColumnRow(ColumnRow.valueOf(col, row)); setColumnRow(ColumnRow.valueOf(col, row));
} }
@Override @Override
public void changedUpdate(DocumentEvent e) { public void changedUpdate(DocumentEvent e) {
} }
}; };
private UIObserverListener uiObserverListener; private UIObserverListener uiObserverListener;
private ColumnRow cr; private ColumnRow cr;
public ColumnRowPane() { public ColumnRowPane() {
this.initComponents(); this.initComponents();
iniListener(); iniListener();
} }
/** /**
* 初始化元素 * 初始化元素
*/ */
public void initComponents() { public void initComponents() {
this.setLayout(new GridLayout(0, 2, IntervalConstants.INTERVAL_L6, 0)); this.setLayout(new GridLayout(0, 2, IntervalConstants.INTERVAL_L6, 0));
initColSpinner(); initColSpinner();
this.add(columnSpinner, BorderLayout.WEST); this.add(columnSpinner, BorderLayout.WEST);
initRowSpinner(); initRowSpinner();
this.add(rowSpinner); this.add(rowSpinner);
this.addDocumentListener(d); this.addDocumentListener(d);
} }
private void iniListener() { private void iniListener() {
if (shouldResponseChangeListener()) { if (shouldResponseChangeListener()) {
this.addChangeListener(new ChangeListener() { this.addChangeListener(new ChangeListener() {
@Override @Override
public void stateChanged(ChangeEvent e) { public void stateChanged(ChangeEvent e) {
if (uiObserverListener == null) { if (uiObserverListener == null) {
return; return;
} }
uiObserverListener.doChange(); uiObserverListener.doChange();
} }
}); });
} }
} }
protected void initRowSpinner() { protected void initRowSpinner() {
rowSpinner = new ColumnRowSpinner((new SpinnerListModel(rowarray))) { rowSpinner = new ColumnRowSpinner((new SpinnerListModel(rowarray))) {
public boolean shouldResponseChangeListener() { public boolean shouldResponseChangeListener() {
return false; return false;
} }
}; };
rowSpinner.setPreferredSize(new Dimension(60, 24)); rowSpinner.setPreferredSize(new Dimension(60, 24));
JFormattedTextField rftf = GUICoreUtils.getSpinnerTextField(rowSpinner); JFormattedTextField rftf = GUICoreUtils.getSpinnerTextField(rowSpinner);
if (rftf != null) { if (rftf != null) {
rftf.setColumns(4); // specify more width than we need rftf.setColumns(4); // specify more width than we need
rftf.setHorizontalAlignment(UITextField.LEFT); rftf.setHorizontalAlignment(UITextField.LEFT);
} }
} }
protected void initColSpinner() { protected void initColSpinner() {
SpinnerListModel columnSpinnerListModel = new SpinnerListModel(columnarray); SpinnerListModel columnSpinnerListModel = new SpinnerListModel(columnarray);
columnSpinner = new UpperCaseSpinner(columnSpinnerListModel) { columnSpinner = new UpperCaseSpinner(columnSpinnerListModel) {
public boolean shouldResponseChangeListener() { public boolean shouldResponseChangeListener() {
return false; return false;
} }
}; };
columnSpinner.setPreferredSize(new Dimension(60, 24)); columnSpinner.setPreferredSize(new Dimension(60, 24));
JFormattedTextField cftf = GUICoreUtils.getSpinnerTextField(columnSpinner); JFormattedTextField cftf = GUICoreUtils.getSpinnerTextField(columnSpinner);
if (cftf != null) { if (cftf != null) {
cftf.setColumns(3); // specify more width than we need cftf.setColumns(3); // specify more width than we need
cftf.setHorizontalAlignment(UITextField.LEFT); cftf.setHorizontalAlignment(UITextField.LEFT);
} }
((AbstractDocument) cftf.getDocument()).setDocumentFilter(new DocumentFilter() { ((AbstractDocument) cftf.getDocument()).setDocumentFilter(new DocumentFilter() {
public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException { public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
fb.insertString(offset, string.toUpperCase(), attr); fb.insertString(offset, string.toUpperCase(), attr);
} }
public void replace(FilterBypass fb, int offset, int length, String string, AttributeSet attr) throws BadLocationException { public void replace(FilterBypass fb, int offset, int length, String string, AttributeSet attr) throws BadLocationException {
if (string != null) { if (string != null) {
string = string.toUpperCase(); string = string.toUpperCase();
} }
fb.replace(offset, length, string, attr); fb.replace(offset, length, string, attr);
} }
}); });
} }
protected void addDocumentListener(DocumentListener l) { protected void addDocumentListener(DocumentListener l) {
((DefaultEditor) columnSpinner.getEditor()).getTextField().getDocument().addDocumentListener(l); ((DefaultEditor) columnSpinner.getEditor()).getTextField().getDocument().addDocumentListener(l);
((DefaultEditor) rowSpinner.getEditor()).getTextField().getDocument().addDocumentListener(l); ((DefaultEditor) rowSpinner.getEditor()).getTextField().getDocument().addDocumentListener(l);
} }
private void removeDocumentListener(DocumentListener l) { private void removeDocumentListener(DocumentListener l) {
((DefaultEditor) columnSpinner.getEditor()).getTextField().getDocument().removeDocumentListener(l); ((DefaultEditor) columnSpinner.getEditor()).getTextField().getDocument().removeDocumentListener(l);
((DefaultEditor) rowSpinner.getEditor()).getTextField().getDocument().removeDocumentListener(l); ((DefaultEditor) rowSpinner.getEditor()).getTextField().getDocument().removeDocumentListener(l);
} }
/** /**
* columnSpinner与rowSpinner应该整体考虑设置ColumnRow应该只触发一次事件 * columnSpinner与rowSpinner应该整体考虑设置ColumnRow应该只触发一次事件
* *
* @param columnRow * @param columnRow
*/ */
public void setColumnRow(ColumnRow columnRow) { public void setColumnRow(ColumnRow columnRow) {
if (!ComparatorUtils.equals(cr, columnRow)) { if (!ComparatorUtils.equals(cr, columnRow)) {
setGlobalName(); setGlobalName();
removeDocumentListener(d); removeDocumentListener(d);
cr = columnRow; cr = columnRow;
addDocumentListener(d); addDocumentListener(d);
fireChanged(); fireChanged();
} }
} }
public void setGlobalName(){ public void setGlobalName() {
} }
public void populate(ColumnRow columnRow) { public void populate(ColumnRow columnRow) {
cr = columnRow; cr = columnRow;
int column = columnRow.getColumn(); int column = columnRow.getColumn();
if (column < 0) { if (column < 0) {
column = 0; column = 0;
} }
removeDocumentListener(d); removeDocumentListener(d);
columnSpinner.setValue(StableUtils.convertIntToABC(column + 1)); columnSpinner.setValue(StableUtils.convertIntToABC(column + 1));
int row = columnRow.getRow(); int row = columnRow.getRow();
// shoc 小于0就蹦了 // shoc 小于0就蹦了
if (row < 0) { if (row < 0) {
row = 0; row = 0;
} }
rowSpinner.setValue("" + (row + 1)); rowSpinner.setValue("" + (row + 1));
addDocumentListener(d); addDocumentListener(d);
fireChanged(); fireChanged();
} }
public ColumnRow update() { public ColumnRow update() {
return cr; return cr;
} }
/** /**
* 添加一个listener到listenerList中 * 添加一个listener到listenerList中
* @param l 监听 *
*/ * @param l 监听
public void addChangeListener(ChangeListener l) { */
this.listenerList.add(ChangeListener.class, l); public void addChangeListener(ChangeListener l) {
} this.listenerList.add(ChangeListener.class, l);
}
/**
* 从listenerList中移除一个listener /**
* @param l 监听 * 从listenerList中移除一个listener
*/ *
public void removeChangeListener(ChangeListener l) { * @param l 监听
this.listenerList.remove(ChangeListener.class, l); */
} public void removeChangeListener(ChangeListener l) {
this.listenerList.remove(ChangeListener.class, l);
// august: Process the listeners last to first }
protected void fireChanged() {
Object[] listeners = listenerList.getListenerList(); // august: Process the listeners last to first
protected void fireChanged() {
for (int i = listeners.length - 2; i >= 0; i -= 2) { Object[] listeners = listenerList.getListenerList();
if (listeners[i] == ChangeListener.class) {
((ChangeListener) listeners[i + 1]).stateChanged(new ChangeEvent(this)); for (int i = listeners.length - 2; i >= 0; i -= 2) {
} if (listeners[i] == ChangeListener.class) {
} ((ChangeListener) listeners[i + 1]).stateChanged(new ChangeEvent(this));
} }
}
/** }
* 给组件登记一个观察者监听事件
* @param listener 监听 /**
*/ * 给组件登记一个观察者监听事件
public void registerChangeListener(UIObserverListener listener) { *
uiObserverListener = listener; * @param listener 监听
} */
public void registerChangeListener(UIObserverListener listener) {
/** uiObserverListener = listener;
* 组件是否需要响应添加的观察者事件 }
* @return 如果需要响应观察者事件则返回true否则返回false
*/ /**
public boolean shouldResponseChangeListener() { * 组件是否需要响应添加的观察者事件
return true; *
} * @return 如果需要响应观察者事件则返回true否则返回false
*/
public boolean shouldResponseChangeListener() {
return true;
}
} }

260
designer-realize/src/main/java/com/fr/design/javascript/ListenerEditPane.java

@ -7,6 +7,7 @@ import com.fr.design.fun.JavaScriptActionProvider;
import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.JTemplate;
@ -28,140 +29,143 @@ import java.util.List;
import java.util.Set; import java.util.Set;
public class ListenerEditPane extends BasicBeanPane<Listener> { public class ListenerEditPane extends BasicBeanPane<Listener> {
private UITextField nameText; private UITextField nameText;
private UIComboBox styleBox; private UIComboBox styleBox;
private CardLayout card; private CardLayout card;
private List<FurtherBasicBeanPane<? extends JavaScript>> cards; private List<FurtherBasicBeanPane<? extends JavaScript>> cards;
private JPanel hyperlinkPane; private JPanel hyperlinkPane;
private JavaScriptImplPane javaScriptPane;
private FormSubmitJavaScriptPane formSubmitScriptPane;
private Commit2DBJavaScriptPane commit2DBJavaScriptPane;
// 自定义事件
private CustomActionPane customActionPane;
// 发送邮件
private EmailPane emailPane;
private static final String JS = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JavaScript");
private static final String FORMSUBMIT = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JavaScript_Form_Submit");
private static final String DBCOMMIT = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JavaScript_Commit_To_Database");
private static final String CUSTOMACTION= com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JavaScript_Custom_Submit");
private static final String EMAIL = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Email_Sent_Email");
private Listener listener;
public ListenerEditPane() {
this.initComponents(new String[0]);
}
public ListenerEditPane(String[] defaultArgs) { private static final String JS = Toolkit.i18nText("Fine-Design_Report_JavaScript");
this.initComponents(defaultArgs); private static final String DBCOMMIT = Toolkit.i18nText("Fine-Design_Basic_JavaScript_Commit_To_Database");
} private static final String CUSTOMACTION = Toolkit.i18nText("Fine-Design_Report_Submit_Type_Custom");
private static final String EMAIL = Toolkit.i18nText("Fine-Design_Report_Email_Sent_Email");
/** private Listener listener;
* 初始化各个组件
* @param defaultArgs 初始化参数
*/
public void initComponents(String[] defaultArgs) {
cards = new ArrayList<FurtherBasicBeanPane<? extends JavaScript>>();
this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel namePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
nameText = new UITextField(8);
nameText.setEditable(false);
namePane.add(nameText, BorderLayout.WEST);
String[] style = {JS, DBCOMMIT, CUSTOMACTION,EMAIL};
styleBox = new UIComboBox(style);
namePane.add(styleBox);
namePane = GUICoreUtils.createFlowPane(new Component[]{new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Event_Name") + ":"), nameText, new UILabel(" " + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Event_Type") + ":"), styleBox}, FlowLayout.LEFT);
namePane.setBorder(BorderFactory.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Event_Name_Type")));
this.add(namePane, BorderLayout.NORTH);
card = new CardLayout();
hyperlinkPane = FRGUIPaneFactory.createCardLayout_S_Pane();
hyperlinkPane.setLayout(card);
javaScriptPane = new JavaScriptImplPane(defaultArgs);
hyperlinkPane.add(JS, javaScriptPane);
// 提交入库
List dbmaniList = new ArrayList();
dbmaniList.add(autoCreateDBManipulationPane());
commit2DBJavaScriptPane = new Commit2DBJavaScriptPane(JavaScriptActionPane.defaultJavaScriptActionPane,
dbmaniList);
hyperlinkPane.add(DBCOMMIT, commit2DBJavaScriptPane);
// 自定义事件
customActionPane = new CustomActionPane();
hyperlinkPane.add(CUSTOMACTION, customActionPane);
// 发送邮件
emailPane = new EmailPane();
hyperlinkPane.add(EMAIL,emailPane);
cards.add(javaScriptPane);
cards.add(commit2DBJavaScriptPane);
cards.add(customActionPane);
cards.add(emailPane);
//其他事件
addOtherEvent();
hyperlinkPane.setBorder(BorderFactory.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JavaScript_Set")));
this.add(hyperlinkPane);
styleBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
card.show(hyperlinkPane, styleBox.getSelectedItem().toString());
}
});
}
private void addOtherEvent(){ public ListenerEditPane() {
Set<JavaScriptActionProvider> javaScriptActionProviders = ExtraDesignClassManager.getInstance().getArray(JavaScriptActionProvider.XML_TAG); this.initComponents(new String[0]);
if (javaScriptActionProviders != null) { }
for (JavaScriptActionProvider jsp : javaScriptActionProviders) {
FurtherBasicBeanPane pane = jsp.getJavaScriptActionPane(); public ListenerEditPane(String[] defaultArgs) {
String title = pane.title4PopupWindow(); this.initComponents(defaultArgs);
styleBox.addItem(title); }
hyperlinkPane.add(title, pane);
cards.add(pane);
}
}
}
/** /**
* 根据有无单元格创建 DBManipulationPane * 初始化各个组件
* @return 有单元格有智能添加单元格等按钮返回 SmartInsertDBManipulationPane *
* @param defaultArgs 初始化参数
*/ */
private DBManipulationPane autoCreateDBManipulationPane() { public void initComponents(String[] defaultArgs) {
JTemplate jTemplate = DesignerContext.getDesignerFrame().getSelectedJTemplate(); cards = new ArrayList<>();
return jTemplate.createDBManipulationPane(); this.setLayout(FRGUIPaneFactory.createBorderLayout());
} JPanel namePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
nameText = new UITextField(8);
@Override nameText.setEditable(false);
protected String title4PopupWindow() { namePane.add(nameText, BorderLayout.WEST);
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Event_Set"); final String[] style = {JS, DBCOMMIT, CUSTOMACTION, EMAIL};
} styleBox = new UIComboBox(style);
namePane.add(styleBox);
@Override namePane = GUICoreUtils.createFlowPane(new Component[]{
public void populateBean(Listener listener) { new UILabel(" " + Toolkit.i18nText("Fine-Design_Report_Event_Name") + ":"),
this.listener = listener; nameText,
if (this.listener == null) { new UILabel(" " + Toolkit.i18nText("Fine-Design_Report_Event_Type") + ":"),
this.listener = new Listener(); styleBox},
} FlowLayout.LEFT);
this.nameText.setText(listener.getEventName()); namePane.setBorder(BorderFactory.createTitledBorder(Toolkit.i18nText("Fine-Design_Report_Event_Name_Type")));
JavaScript js = listener.getAction(); this.add(namePane, BorderLayout.NORTH);
for (int i = 0; i < this.cards.size(); i++) { card = new CardLayout();
FurtherBasicBeanPane pane = cards.get(i); hyperlinkPane = FRGUIPaneFactory.createCardLayout_S_Pane();
if (pane.accept(js)) { hyperlinkPane.setLayout(card);
styleBox.setSelectedItem(pane.title4PopupWindow()); JavaScriptImplPane javaScriptPane = new JavaScriptImplPane(defaultArgs);
card.show(hyperlinkPane, pane.title4PopupWindow()); hyperlinkPane.add(JS, javaScriptPane);
pane.populateBean(js); // 提交入库
return; List dbManiList = new ArrayList();
} dbManiList.add(autoCreateDBManipulationPane());
} Commit2DBJavaScriptPane commit2DBJavaScriptPane = new Commit2DBJavaScriptPane(JavaScriptActionPane.defaultJavaScriptActionPane,
} dbManiList);
hyperlinkPane.add(DBCOMMIT, commit2DBJavaScriptPane);
// 自定义事件
CustomActionPane customActionPane = new CustomActionPane();
hyperlinkPane.add(CUSTOMACTION, customActionPane);
// 发送邮件
EmailPane emailPane = new EmailPane();
hyperlinkPane.add(EMAIL, emailPane);
cards.add(javaScriptPane);
cards.add(commit2DBJavaScriptPane);
cards.add(customActionPane);
cards.add(emailPane);
//其他事件
addOtherEvent();
hyperlinkPane.setBorder(BorderFactory.createTitledBorder(Toolkit.i18nText("Fine-Design_Report_JavaScript_Set")));
this.add(hyperlinkPane);
styleBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
Object selected = styleBox.getSelectedItem();
if (selected == null) {
return;
}
card.show(hyperlinkPane, selected.toString());
}
});
}
private void addOtherEvent() {
Set<JavaScriptActionProvider> javaScriptActionProviders = ExtraDesignClassManager.getInstance().getArray(JavaScriptActionProvider.XML_TAG);
if (javaScriptActionProviders != null) {
for (JavaScriptActionProvider jsp : javaScriptActionProviders) {
FurtherBasicBeanPane pane = jsp.getJavaScriptActionPane();
String title = pane.title4PopupWindow();
styleBox.addItem(title);
hyperlinkPane.add(title, pane);
cards.add(pane);
}
}
}
/**
* 根据有无单元格创建 DBManipulationPane
*
* @return 有单元格有智能添加单元格等按钮返回 SmartInsertDBManipulationPane
*/
private DBManipulationPane autoCreateDBManipulationPane() {
JTemplate jTemplate = DesignerContext.getDesignerFrame().getSelectedJTemplate();
return jTemplate.createDBManipulationPane();
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Fine-Design_Report_Event_Set");
}
@Override
public void populateBean(Listener listener) {
this.listener = listener;
if (this.listener == null) {
this.listener = new Listener();
}
this.nameText.setText(listener.getEventName());
JavaScript js = listener.getAction();
for (int i = 0; i < this.cards.size(); i++) {
FurtherBasicBeanPane pane = cards.get(i);
if (pane.accept(js)) {
styleBox.setSelectedItem(pane.title4PopupWindow());
card.show(hyperlinkPane, pane.title4PopupWindow());
pane.populateBean(js);
return;
}
}
}
public void checkValid() throws Exception{ public void checkValid() throws Exception {
this.cards.get(this.styleBox.getSelectedIndex()).checkValid(); this.cards.get(this.styleBox.getSelectedIndex()).checkValid();
} }
@Override @Override
public Listener updateBean(){ public Listener updateBean() {
this.listener.setEventName(this.nameText.getText()); this.listener.setEventName(this.nameText.getText());
FurtherBasicBeanPane<? extends JavaScript> pane = this.cards.get(this.styleBox.getSelectedIndex()); FurtherBasicBeanPane<? extends JavaScript> pane = this.cards.get(this.styleBox.getSelectedIndex());
this.listener.setAction(pane.updateBean()); this.listener.setAction(pane.updateBean());
return this.listener; return this.listener;
} }
} }
Loading…
Cancel
Save