From 6f975b1733943dc78bf9f4f0c5e08920e60cf750 Mon Sep 17 00:00:00 2001 From: richie Date: Thu, 16 May 2019 20:03:02 +0800 Subject: [PATCH] =?UTF-8?q?KERNEL-493=20=E7=BB=9F=E4=B8=80=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E5=92=8C=E5=B9=B3=E5=8F=B0=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/actions/file/PreferencePane.java | 23 +++++--- .../actions/server/ConnectionListAction.java | 10 ++++ .../java/com/fr/design/ui/ModernUIPane.java | 9 +++ .../database/UniverseDatabaseComponent.java | 39 +++++++++++++ .../upm/database/UniverseDatabaseDialog.java | 32 +++++++++++ .../upm/database/UniverseDatabaseOpener.java | 36 ++++++++++++ .../upm/database/UniverseDatabasePane.java | 38 +++++++++++++ .../com/fr/design/upm/database/database.js | 57 +++++++++++++++++++ 8 files changed, 237 insertions(+), 7 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseComponent.java create mode 100644 designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseDialog.java create mode 100644 designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseOpener.java create mode 100644 designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabasePane.java create mode 100644 designer-base/src/main/resources/com/fr/design/upm/database/database.js diff --git a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java index 7afc21d31..447e6652b 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java @@ -138,6 +138,7 @@ public class PreferencePane extends BasicPane { private UISpinner cachingTemplateSpinner; private UICheckBox openDebugComboBox; private UICheckBox useOptimizedUPMCheckbox; + private UICheckBox useUniverseDBMCheckbox; private UICheckBox joinProductImproveCheckBox; private UICheckBox autoPushUpdateCheckBox; @@ -186,17 +187,22 @@ public class PreferencePane extends BasicPane { JPanel oraclePane = FRGUIPaneFactory.createTitledBorderPane("Oracle" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Oracle_All_Tables")); oracleSpace = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Show_All_Oracle_Tables")); oraclePane.add(oracleSpace); -// -// JPanel debuggerPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Basic_Develop_Tools")); -// openDebugComboBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Open_Debug_Window")); -// debuggerPane.add(openDebugComboBox, BorderLayout.CENTER); -// advancePane.add(debuggerPane); + + JPanel debuggerPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Basic_Develop_Tools")); + openDebugComboBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Basic_Open_Debug_Window")); + debuggerPane.add(openDebugComboBox, BorderLayout.CENTER); + advancePane.add(debuggerPane); JPanel upmSelectorPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Update_Plugin_Manager")); useOptimizedUPMCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Use_New_Update_Plugin_Manager")); upmSelectorPane.add(useOptimizedUPMCheckbox); advancePane.add(upmSelectorPane); + JPanel dbmSelectorPane = FRGUIPaneFactory.createTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Database_Manager")); + useUniverseDBMCheckbox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Use_Universe_Database_Manager")); + dbmSelectorPane.add(useUniverseDBMCheckbox); + advancePane.add(dbmSelectorPane); + JPanel improvePane = FRGUIPaneFactory.createVerticalTitledBorderPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Product_Improve")); joinProductImproveCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Join_Product_Improve")); improvePane.add(joinProductImproveCheckBox); @@ -636,9 +642,11 @@ public class PreferencePane extends BasicPane { this.portEditor.setValue(new Integer(designerEnvManager.getEmbedServerPort())); -// openDebugComboBox.setSelected(designerEnvManager.isOpenDebug()); + openDebugComboBox.setSelected(designerEnvManager.isOpenDebug()); useOptimizedUPMCheckbox.setSelected(ServerPreferenceConfig.getInstance().isUseOptimizedUPM()); + useUniverseDBMCheckbox.setSelected(ServerPreferenceConfig.getInstance().isUseUniverseDBM()); + this.oracleSpace.setSelected(designerEnvManager.isOracleSystemSpace()); this.cachingTemplateSpinner.setValue(designerEnvManager.getCachingTemplateLimit()); this.joinProductImproveCheckBox.setSelected(designerEnvManager.isJoinProductImprove()); @@ -702,7 +710,7 @@ public class PreferencePane extends BasicPane { designerEnvManager.setJettyServerPort(portEditor.getValue().intValue()); -// designerEnvManager.setOpenDebug(openDebugComboBox.isSelected()); + designerEnvManager.setOpenDebug(openDebugComboBox.isSelected()); designerEnvManager.setOracleSystemSpace(this.oracleSpace.isSelected()); designerEnvManager.setCachingTemplateLimit((int) this.cachingTemplateSpinner.getValue()); @@ -737,6 +745,7 @@ public class PreferencePane extends BasicPane { @Override public void run() { ServerPreferenceConfig.getInstance().setUseOptimizedUPM(useOptimizedUPMCheckbox.isSelected()); + ServerPreferenceConfig.getInstance().setUseUniverseDBM(useUniverseDBMCheckbox.isSelected()); } @Override diff --git a/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java b/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java index 89f2ac3c3..5c76dbf18 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java @@ -1,6 +1,7 @@ package com.fr.design.actions.server; +import com.fr.config.ServerPreferenceConfig; import com.fr.data.impl.Connection; import com.fr.design.actions.UpdateAction; import com.fr.design.data.datapane.connect.ConnectionManagerPane; @@ -12,6 +13,7 @@ import com.fr.design.gui.NameInspector; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; import com.fr.design.menu.MenuKeySet; +import com.fr.design.upm.database.UniverseDatabaseOpener; import com.fr.file.ConnectionConfig; import com.fr.general.IOUtils; import com.fr.transaction.CallBackAdaptor; @@ -58,6 +60,14 @@ public class ConnectionListAction extends UpdateAction { * @param evt 事件 */ public void actionPerformed(ActionEvent evt) { + if (ServerPreferenceConfig.getInstance().isUseUniverseDBM()) { + UniverseDatabaseOpener.showUniverseDatabaseDialog(); + } else { + openDesignDatabaseManager(); + } + } + + private void openDesignDatabaseManager() { DesignerFrame designerFrame = DesignerContext.getDesignerFrame(); final ConnectionConfig datasourceManager = ConnectionConfig.getInstance(); final ConnectionManagerPane databaseManagerPane = new ConnectionManagerPane() { diff --git a/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java b/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java index 99a4fe97c..3e94fe6be 100644 --- a/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java +++ b/designer-base/src/main/java/com/fr/design/ui/ModernUIPane.java @@ -52,6 +52,8 @@ public class ModernUIPane extends BasicPane { toolbar.add(openDebugButton); UIButton reloadButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Reload")); toolbar.add(reloadButton); + UIButton closeButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Close_Window")); + toolbar.add(closeButton); openDebugButton.addActionListener(new ActionListener() { @Override @@ -66,6 +68,13 @@ public class ModernUIPane extends BasicPane { browser.reloadIgnoringCache(); } }); + + closeButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + SwingUtilities.getWindowAncestor(ModernUIPane.this).setVisible(false); + } + }); BrowserPreferences.setChromiumSwitches("--remote-debugging-port=9222"); initializeBrowser(); add(new BrowserView(browser), BorderLayout.CENTER); diff --git a/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseComponent.java b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseComponent.java new file mode 100644 index 000000000..106b1a0aa --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseComponent.java @@ -0,0 +1,39 @@ +package com.fr.design.upm.database; + +import com.fr.web.struct.AssembleComponent; +import com.fr.web.struct.Atom; +import com.fr.web.struct.browser.RequestClient; +import com.fr.web.struct.category.ScriptPath; +import com.fr.web.struct.category.StylePath; +import com.fr.web.struct.impl.FineUI; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019-05-16 + */ +public class UniverseDatabaseComponent extends AssembleComponent { + + public static final UniverseDatabaseComponent KEY = new UniverseDatabaseComponent(); + + private UniverseDatabaseComponent() { + + } + + @Override + public ScriptPath script(RequestClient req) { + return ScriptPath.build("/com/fr/design/upm/database/database.js"); + } + + @Override + public StylePath style(RequestClient req) { + return StylePath.EMPTY; + } + + @Override + public Atom[] refer() { + return new Atom[]{ + FineUI.KEY + }; + } +} diff --git a/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseDialog.java b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseDialog.java new file mode 100644 index 000000000..1fe983ea7 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseDialog.java @@ -0,0 +1,32 @@ +package com.fr.design.upm.database; + +import com.fr.design.dialog.BasicPane; +import com.fr.design.dialog.UIDialog; +import com.fr.design.utils.gui.GUICoreUtils; + +import javax.swing.*; +import java.awt.*; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019-05-16 + */ +public class UniverseDatabaseDialog extends UIDialog { + + public UniverseDatabaseDialog(Frame frame, BasicPane pane) { + super(frame); + setUndecorated(true); + JPanel panel = (JPanel) getContentPane(); + panel.setLayout(new BorderLayout()); + add(pane, BorderLayout.CENTER); + setSize(new Dimension(800, 500)); + GUICoreUtils.centerWindow(this); + setResizable(false); + } + + @Override + public void checkValid() throws Exception { + + } +} diff --git a/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseOpener.java b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseOpener.java new file mode 100644 index 000000000..dee5de0f5 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabaseOpener.java @@ -0,0 +1,36 @@ +package com.fr.design.upm.database; + +import com.fr.design.dialog.UIDialog; +import com.fr.design.mainframe.DesignerContext; + +import javax.swing.*; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019-05-16 + */ +public class UniverseDatabaseOpener { + + private static UIDialog dialog = null; + + public static UIDialog getDialog() { + return dialog; + } + + public static void showUniverseDatabaseDialog() { + UniverseDatabasePane upmPane = new UniverseDatabasePane(); + if (dialog == null) { + dialog = new UniverseDatabaseDialog(DesignerContext.getDesignerFrame(), upmPane); + } + dialog.setVisible(true); + } + + public static void closeWindow() { + if (dialog != null) { + dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + dialog.setVisible(false); + dialog = null; + } + } +} diff --git a/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabasePane.java b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabasePane.java new file mode 100644 index 000000000..ac53d9426 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/upm/database/UniverseDatabasePane.java @@ -0,0 +1,38 @@ +package com.fr.design.upm.database; + +import com.fr.design.dialog.BasicPane; +import com.fr.design.ui.ModernUIPane; +import com.teamdev.jxbrowser.chromium.JSValue; +import com.teamdev.jxbrowser.chromium.events.ScriptContextAdapter; +import com.teamdev.jxbrowser.chromium.events.ScriptContextEvent; + +import java.awt.*; + +/** + * @author richie + * @version 10.0 + * Created by richie on 2019-05-16 + */ +public class UniverseDatabasePane extends BasicPane { + + private ModernUIPane modernUIPane; + + @Override + protected String title4PopupWindow() { + return "Database"; + } + + public UniverseDatabasePane() { + setLayout(new BorderLayout()); + modernUIPane = new ModernUIPane.Builder() + .withComponent(UniverseDatabaseComponent.KEY) + .prepare(new ScriptContextAdapter() { + @Override + public void onScriptContextCreated(ScriptContextEvent event) { + JSValue window = event.getBrowser().executeJavaScriptAndReturnValue("window"); + } + }) + .build(); + add(modernUIPane, BorderLayout.CENTER); + } +} diff --git a/designer-base/src/main/resources/com/fr/design/upm/database/database.js b/designer-base/src/main/resources/com/fr/design/upm/database/database.js new file mode 100644 index 000000000..529aa92ff --- /dev/null +++ b/designer-base/src/main/resources/com/fr/design/upm/database/database.js @@ -0,0 +1,57 @@ +window.addEventListener("load", function (ev) { + var combo1 = BI.createWidget({ + type: "bi.vertical", + items: [ + { + type: "bi.text_value_combo", + text: "选项1", + width: 300, + items: [ + { + el: { + type: "bi.single_select_radio_item", + width: 290, + text: "选项1", + value: 1 + }, + text: "选项1", + value: 1, + lgap: 10 + }, + { + el: { + type: "bi.single_select_radio_item", + width: 290, + text: "选项2", + value: 2 + }, + lgap: 10, + text: "选项2", + value: 2 + }, + { + el: { + type: "bi.single_select_radio_item", + width: 290, + text: "选项3", + value: 3 + }, + lgap: 10, + text: "选项3", + value: 3 + } + ] + } + ] + }); + + BI.createWidget({ + type:"bi.absolute", + element: "body", + items: [{ + el: combo1, + left: 100, + top: 100 + }] + }); +}); \ No newline at end of file