From c805bc341069b90326fc9313d085e18bccb8d33e Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 27 Dec 2016 14:30:33 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-1138=20=E6=A8=A1=E6=9D=BF=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/javascript/ListenerEditPane.java | 82 +++++++++---------- .../fr/design/widget/CellWidgetCardPane.java | 1 + .../design/gui/frpane/ListenerUpdatePane.java | 5 ++ .../fr/design/gui/frpane/UIComboBoxPane.java | 6 ++ .../javascript/JavaScriptActionPane.java | 15 +--- 5 files changed, 53 insertions(+), 56 deletions(-) diff --git a/designer/src/com/fr/design/javascript/ListenerEditPane.java b/designer/src/com/fr/design/javascript/ListenerEditPane.java index 8c76497af..6f24a4ba9 100644 --- a/designer/src/com/fr/design/javascript/ListenerEditPane.java +++ b/designer/src/com/fr/design/javascript/ListenerEditPane.java @@ -6,13 +6,15 @@ import java.awt.Component; import java.awt.FlowLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; -import java.util.ArrayList; -import java.util.List; +import java.util.*; import javax.swing.BorderFactory; import javax.swing.JPanel; +import com.fr.design.ExtraDesignClassManager; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.beans.FurtherBasicBeanPane; +import com.fr.design.fun.JavaScriptActionProvider; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; @@ -22,19 +24,14 @@ import com.fr.design.mainframe.JTemplate; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.write.submit.DBManipulationPane; import com.fr.form.event.Listener; -import com.fr.general.ComparatorUtils; import com.fr.general.Inter; -import com.fr.js.Commit2DBJavaScript; -import com.fr.js.CustomActionJavaScript; -import com.fr.js.EmailJavaScript; -import com.fr.js.FormSubmitJavaScript; import com.fr.js.JavaScript; -import com.fr.js.JavaScriptImpl; public class ListenerEditPane extends BasicBeanPane { private UITextField nameText; private UIComboBox styleBox; private CardLayout card; + private List> cards; private JPanel hyperlinkPane; private JavaScriptImplPane javaScriptPane; @@ -66,6 +63,7 @@ public class ListenerEditPane extends BasicBeanPane { * @param defaultArgs 初始化参数 */ public void initComponents(String[] defaultArgs) { + cards = new ArrayList>(); this.setLayout(FRGUIPaneFactory.createBorderLayout()); JPanel namePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); nameText = new UITextField(8); @@ -100,10 +98,25 @@ public class ListenerEditPane extends BasicBeanPane { // 发送邮件 emailPane = new EmailPane(); hyperlinkPane.add(EMAIL,emailPane); - + cards.add(javaScriptPane); + cards.add(commit2DBJavaScriptPane); + cards.add(customActionPane); + cards.add(emailPane); + + Set 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); + } + } + hyperlinkPane.setBorder(BorderFactory.createTitledBorder(Inter.getLocText("JavaScript_Set"))); this.add(hyperlinkPane); - + styleBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { card.show(hyperlinkPane, styleBox.getSelectedItem().toString()); @@ -131,47 +144,28 @@ public class ListenerEditPane extends BasicBeanPane { if (this.listener == null) { this.listener = new Listener(); } - this.nameText.setText(listener.getEventName()); - JavaScript js = listener.getAction(); - if (js instanceof JavaScriptImpl) { - styleBox.setSelectedItem(JS); - card.show(hyperlinkPane, JS); - javaScriptPane.populateBean((JavaScriptImpl)js); - } else if (js instanceof FormSubmitJavaScript){ - styleBox.setSelectedItem(FORMSUBMIT); - card.show(hyperlinkPane, FORMSUBMIT); - formSubmitScriptPane.populateBean((FormSubmitJavaScript)js); - } else if (js instanceof Commit2DBJavaScript) { - styleBox.setSelectedItem(DBCOMMIT); - card.show(hyperlinkPane, DBCOMMIT); - commit2DBJavaScriptPane.populateBean((Commit2DBJavaScript)js); - } else if (js instanceof EmailJavaScript){ - styleBox.setSelectedItem(EMAIL); - card.show(hyperlinkPane, EMAIL); - emailPane.populateBean((EmailJavaScript)js); - } else if (js instanceof CustomActionJavaScript){ - styleBox.setSelectedItem(CUSTOMACTION); - card.show(hyperlinkPane, CUSTOMACTION); - customActionPane.populateBean((CustomActionJavaScript) js); + 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{ + this.cards.get(this.styleBox.getSelectedIndex()).checkValid(); + } + @Override public Listener updateBean(){ this.listener.setEventName(this.nameText.getText()); - if (ComparatorUtils.equals(styleBox.getSelectedItem(), JS)) { - this.listener.setAction(javaScriptPane.updateBean()); - } else if (ComparatorUtils.equals(styleBox.getSelectedItem(), FORMSUBMIT)) { - this.listener.setAction(formSubmitScriptPane.updateBean()); - } else if (ComparatorUtils.equals(styleBox.getSelectedItem(), DBCOMMIT)) { - this.listener.setAction(commit2DBJavaScriptPane.updateBean()); - } else if (ComparatorUtils.equals(styleBox.getSelectedItem(),EMAIL)){ - this.listener.setAction(emailPane.updateBean()); - } else if (ComparatorUtils.equals(styleBox.getSelectedItem(), CUSTOMACTION)){ - this.listener.setAction(customActionPane.updateBean()); - } + FurtherBasicBeanPane pane = this.cards.get(this.styleBox.getSelectedIndex()); + this.listener.setAction(pane.updateBean()); return this.listener; } } \ No newline at end of file diff --git a/designer/src/com/fr/design/widget/CellWidgetCardPane.java b/designer/src/com/fr/design/widget/CellWidgetCardPane.java index d1c81d53a..02c04a303 100644 --- a/designer/src/com/fr/design/widget/CellWidgetCardPane.java +++ b/designer/src/com/fr/design/widget/CellWidgetCardPane.java @@ -155,6 +155,7 @@ public class CellWidgetCardPane extends BasicPane { */ public void checkValid() throws Exception { currentEditorDefinePane.checkValid(); + eventTabPane.checkValid(); } //:jackie 如果选择的项有形态,则将形态面板加入tab面板 diff --git a/designer_base/src/com/fr/design/gui/frpane/ListenerUpdatePane.java b/designer_base/src/com/fr/design/gui/frpane/ListenerUpdatePane.java index 6ade755f0..6af817032 100644 --- a/designer_base/src/com/fr/design/gui/frpane/ListenerUpdatePane.java +++ b/designer_base/src/com/fr/design/gui/frpane/ListenerUpdatePane.java @@ -45,4 +45,9 @@ public abstract class ListenerUpdatePane extends BasicBeanPane { return editing; } + + @Override + public void checkValid() throws Exception{ + actionPane.checkValid(); + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/gui/frpane/UIComboBoxPane.java b/designer_base/src/com/fr/design/gui/frpane/UIComboBoxPane.java index 99a126e12..f24ce8a71 100644 --- a/designer_base/src/com/fr/design/gui/frpane/UIComboBoxPane.java +++ b/designer_base/src/com/fr/design/gui/frpane/UIComboBoxPane.java @@ -133,6 +133,12 @@ public abstract class UIComboBoxPane extends BasicBeanPane { return cards.get(jcb.getSelectedIndex()).updateBean(); } + @Override + public void checkValid() throws Exception { + cards.get(jcb.getSelectedIndex()).checkValid(); + + } + public int getSelectedIndex() { return jcb.getSelectedIndex(); } diff --git a/designer_base/src/com/fr/design/javascript/JavaScriptActionPane.java b/designer_base/src/com/fr/design/javascript/JavaScriptActionPane.java index 52648e444..52baa72ed 100644 --- a/designer_base/src/com/fr/design/javascript/JavaScriptActionPane.java +++ b/designer_base/src/com/fr/design/javascript/JavaScriptActionPane.java @@ -43,15 +43,6 @@ public abstract class JavaScriptActionPane extends UIComboBoxPane { contentDBManiPane = new ArrayList(); contentDBManiPane.add(createDBManipulationPane()); paneList.add(new Commit2DBJavaScriptPane(this, contentDBManiPane)); - paneList.add(new ProcessJSImplPane() { - private static final long serialVersionUID = 1; - - @Override - protected Editor[] getCorrespondEditors() { - return isForm() ? ValueEditorPaneFactory.formEditors() : ValueEditorPaneFactory.extendedEditors(); - } - } - ); paneList.add(initEmaiPane()); Set javaScriptActionProviders = ExtraDesignClassManager.getInstance().getArray(JavaScriptActionProvider.XML_TAG); if (javaScriptActionProviders != null) { @@ -179,10 +170,10 @@ public abstract class JavaScriptActionPane extends UIComboBoxPane { * 生成界面默认的组建 * * @return 返回生成的面板 - */ - public static JavaScriptActionPane createDefault() { - return new JavaScriptActionPane() { + */ + public static JavaScriptActionPane createDefault() { + return new JavaScriptActionPane() { @Override public DBManipulationPane createDBManipulationPane() { return new DBManipulationPane();