From ac014703c1c78d562c2deb3ad2ba94f1ce3c7318 Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 18 Jul 2018 12:04:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-9246=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E4=B8=AD=E6=9C=89=E5=A5=BD=E5=A4=9A=E9=85=8D=E7=BD=AE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=93=8D=E4=BD=9C=20=E4=B8=AD=E5=A4=B9=E6=9D=82?= =?UTF-8?q?=E4=BA=86=E5=BE=88=E5=A4=9A=E7=9A=84=E4=B8=9A=E5=8A=A1=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E5=B0=86=E4=B8=9A=E5=8A=A1=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=92=8C=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9=E5=89=A5=E7=A6=BB?= =?UTF-8?q?=E5=87=BA=E6=9D=A5=EF=BC=8CConfigurations.update=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E4=B8=AD=E5=B0=BD=E9=87=8F=E5=8F=AA=E5=8C=85=E5=90=AB?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE=E7=9A=84=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/server/ConnectionListAction.java | 36 +- .../actions/server/GlobalParameterAction.java | 20 +- .../actions/server/GlobalTableDataAction.java | 42 +- .../actions/server/ProcedureListAction.java | 18 +- .../connect/ConnectionComboBoxPanel.java | 29 +- .../java/com/fr/env/RemoteEnvURLTest.java | 398 +++++++++--------- .../actions/report/ReportWebAttrAction.java | 16 +- .../actions/server/WidgetManagerAction.java | 20 +- 8 files changed, 289 insertions(+), 290 deletions(-) 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 e14b22b6d..0be0a7c32 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,7 +1,6 @@ package com.fr.design.actions.server; -import com.fr.config.Configuration; import com.fr.data.impl.Connection; import com.fr.design.actions.UpdateAction; import com.fr.design.data.datapane.connect.ConnectionManagerPane; @@ -16,10 +15,11 @@ import com.fr.file.ConnectionConfig; import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.locale.InterProviderFactory; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; -import javax.swing.*; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; import java.util.Map; @@ -74,26 +74,27 @@ public class ConnectionListAction extends UpdateAction { final BasicDialog databaseListDialog = databaseManagerPane.showLargeWindow(designerFrame, null); databaseListDialog.addDialogActionListener(new DialogActionAdapter() { public void doOk() { - Configurations.update(new Worker() { + if (!databaseManagerPane.isNamePermitted()) { + databaseListDialog.setDoOKSucceed(false); + return; + } + Configurations.modify(new WorkerFacade(ConnectionConfig.class) { @Override public void run() { - if (!databaseManagerPane.isNamePermitted()) { - databaseListDialog.setDoOKSucceed(false); - return; - } - if (!doWithDatasourceManager(datasourceManager, databaseManagerPane, databaseListDialog)) { - //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 - return; - } - DesignerContext.getDesignerBean("databasename").refreshBeanElement(); + databaseManagerPane.update(datasourceManager); } - + }.addCallBack(new CallBackAdaptor() { @Override - public Class[] targets() { - return new Class[]{ConnectionConfig.class}; + public boolean beforeCommit() { + //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 + return doWithDatasourceManager(datasourceManager, databaseManagerPane, databaseListDialog); } - }); + @Override + public void afterCommit() { + DesignerContext.getDesignerBean("databasename").refreshBeanElement(); + } + })); } }); databaseListDialog.setVisible(true); @@ -109,7 +110,6 @@ public class ConnectionListAction extends UpdateAction { * @return boolean 是否更新成功 */ public static boolean doWithDatasourceManager(ConnectionConfig datasourceManager, ConnectionShowPane connectionShowPane, BasicDialog databaseListDialog) { - connectionShowPane.update(datasourceManager); boolean isFailed = false; //存在请重命名则不能更新 int index = isConnectionMapContainsRename(datasourceManager); diff --git a/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java b/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java index d141b3b7b..2e5294f35 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/GlobalParameterAction.java @@ -5,7 +5,6 @@ package com.fr.design.actions.server; import com.fr.base.BaseUtils; import com.fr.base.ParameterConfig; -import com.fr.config.Configuration; import com.fr.config.ServerPreferenceConfig; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; @@ -16,10 +15,11 @@ import com.fr.design.mainframe.DesignerFrame; import com.fr.design.menu.MenuKeySet; import com.fr.design.parameter.ParameterManagerPane; import com.fr.general.Inter; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; -import javax.swing.*; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; @@ -49,23 +49,21 @@ public class GlobalParameterAction extends UpdateAction { parameterManagerPane.populate(ParameterConfig.getInstance().getGlobalParameters()); parameterManagerDialog.addDialogActionListener(new DialogActionAdapter() { public void doOk() { - Configurations.update(new Worker() { + Configurations.modify(new WorkerFacade(ServerPreferenceConfig.class) { @Override public void run() { - //apply new parameter list. parameterManagerPane.update(); + } + }.addCallBack(new CallBackAdaptor() { + @Override + public void afterCommit() { DesignModelAdapter model = DesignModelAdapter.getCurrentModelAdapter(); if (model != null) { model.parameterChanged(); } parameterManagerDialog.setDoOKSucceed(!parameterManagerPane.isContainsRename()); } - - @Override - public Class[] targets() { - return new Class[]{ServerPreferenceConfig.class}; - } - }); + })); } }); diff --git a/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java b/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java index b723b9928..2969cf444 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java @@ -21,10 +21,12 @@ import com.fr.file.ProcedureConfig; import com.fr.file.TableDataConfig; import com.fr.general.Inter; import com.fr.locale.InterProviderFactory; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; -import javax.swing.*; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; import java.util.HashMap; import java.util.Map; @@ -92,33 +94,35 @@ public class GlobalTableDataAction extends UpdateAction implements ResponseDataS globalTableDataDialog.addDialogActionListener(new DialogActionAdapter() { + @Override public void doOk() { - Configurations.update(new Worker() { + if (!globalTableDataPane.isNamePermitted()) { + globalTableDataDialog.setDoOKSucceed(false); + return; + } + + DesignTableDataManager.clearGlobalDs(); + + Configurations.modify(new WorkerFacade(TableDataConfig.class) { @Override public void run() { - if (!globalTableDataPane.isNamePermitted()) { - globalTableDataDialog.setDoOKSucceed(false); - return; - } - - DesignTableDataManager.clearGlobalDs(); globalTableDataPane.update(tableDataConfig); - if (!doWithDatasourceManager(tableDataConfig, globalTableDataPane, globalTableDataDialog)) { - //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 - return; - } - // 刷新共有数据集 - TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); - fireDSChanged(globalTableDataPane.getDsChangedNameMap()); } - + }.addCallBack(new CallBackAdaptor() { @Override - public Class[] targets() { - return new Class[]{TableDataConfig.class}; + public boolean beforeCommit() { + //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 + return doWithDatasourceManager(tableDataConfig, globalTableDataPane, globalTableDataDialog); } - }); + @Override + public void afterCommit() { + // 刷新共有数据集 + TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); + fireDSChanged(globalTableDataPane.getDsChangedNameMap()); + } + })); } }); globalTableDataDialog.setVisible(true); diff --git a/designer-base/src/main/java/com/fr/design/actions/server/ProcedureListAction.java b/designer-base/src/main/java/com/fr/design/actions/server/ProcedureListAction.java index 53b41097e..60969bd8d 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/ProcedureListAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/ProcedureListAction.java @@ -1,7 +1,6 @@ package com.fr.design.actions.server; import com.fr.base.BaseUtils; -import com.fr.config.Configuration; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; import com.fr.design.data.DesignTableDataManager; @@ -13,8 +12,9 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; import com.fr.file.ProcedureConfig; import com.fr.general.Inter; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; import java.awt.event.ActionEvent; @@ -44,20 +44,18 @@ public class ProcedureListAction extends UpdateAction { BasicDialog databaseListDialog = databaseManagerPane.showLargeWindow(designerFrame, null); databaseListDialog.addDialogActionListener(new DialogActionAdapter() { public void doOk() { - Configurations.update(new Worker() { + DesignTableDataManager.clearGlobalDs(); + Configurations.modify(new WorkerFacade(ProcedureConfig.class) { @Override public void run() { - DesignTableDataManager.clearGlobalDs(); databaseManagerPane.update(procedureConfig); - TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); } - + }.addCallBack(new CallBackAdaptor() { @Override - public Class[] targets() { - return new Class[]{ProcedureConfig.class}; + public void afterCommit() { + TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); } - }); - + })); } }); databaseListDialog.setVisible(true); diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java index f63b37d6c..68db344fb 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java @@ -1,7 +1,5 @@ package com.fr.design.data.datapane.connect; -import com.fr.base.FRContext; -import com.fr.config.Configuration; import com.fr.data.impl.AbstractDatabaseConnection; import com.fr.data.impl.Connection; import com.fr.data.impl.NameDatabaseConnection; @@ -13,11 +11,12 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.file.ConnectionConfig; import com.fr.general.ComparatorUtils; import com.fr.stable.StringUtils; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; import com.fr.workspace.WorkContext; -import javax.swing.*; +import javax.swing.SwingUtilities; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; @@ -100,22 +99,24 @@ public class ConnectionComboBoxPanel extends ItemEditableComboBoxPanel { connectionListDialog.setDoOKSucceed(false); return; } - Configurations.update(new Worker() { + + Configurations.modify(new WorkerFacade(ConnectionConfig.class) { @Override public void run() { - if (!ConnectionListAction.doWithDatasourceManager(connectionConfig, connectionListPane, - connectionListDialog)) { - //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 - return; - } - DesignerContext.getDesignerBean("databasename").refreshBeanElement(); + connectionListPane.update(connectionConfig); + } + }.addCallBack(new CallBackAdaptor() { + @Override + public boolean beforeCommit() { + //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 + return ConnectionListAction.doWithDatasourceManager(connectionConfig, connectionListPane, connectionListDialog); } @Override - public Class[] targets() { - return new Class[]{ConnectionConfig.class}; + public void afterCommit() { + DesignerContext.getDesignerBean("databasename").refreshBeanElement(); } - }); + })); } }); diff --git a/designer-base/src/test/java/com/fr/env/RemoteEnvURLTest.java b/designer-base/src/test/java/com/fr/env/RemoteEnvURLTest.java index f86720fc8..24dd6a73f 100644 --- a/designer-base/src/test/java/com/fr/env/RemoteEnvURLTest.java +++ b/designer-base/src/test/java/com/fr/env/RemoteEnvURLTest.java @@ -1,199 +1,199 @@ -package com.fr.env; - -import org.junit.Assert; -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -/** - * @author yaohwu - */ -public class RemoteEnvURLTest { - - @Test - public void testURLParser() { - - String a; - RemoteEnvURL b; - - // https or http begin - a = "www.baidu.com:9090/web/servlet/a"; - b = new RemoteEnvURL(a); - Assert.assertFalse(b.getHttps()); - - a = "http://www.baidu.com:9090/web/servlet/a"; - b = new RemoteEnvURL(a); - Assert.assertFalse(b.getHttps()); - - a = "https://www.baidu.com:9090/web/servlet/a"; - b = new RemoteEnvURL(a); - Assert.assertTrue(b.getHttps()); - // https or http end - - // host begin - a = "https://www.baidu.com/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("www.baidu.com", b.getHost()); - - a = "https://baidu.com/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("baidu.com", b.getHost()); - - a = "https://192.168.1/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("192.168.1", b.getHost()); - - a = "https://中文·o((⊙﹏⊙))o囖/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("中文·o((⊙﹏⊙))o囖", b.getHost()); - - a = "https://a.b.c.d.e.f/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("a.b.c.d.e.f", b.getHost()); - // host end - - //port begin - a = "https://www.baidu.com:9090/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("9090", b.getPort()); - - a = "https://www.baidu.com:/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("", b.getPort()); - - a = "https://www.baidu.com/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("", b.getPort()); - - a = "https://www.baidu.com:kk/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("kk", b.getPort()); - - a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); - - a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖"; - b = new RemoteEnvURL(a); - assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); - - a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖///////"; - b = new RemoteEnvURL(a); - assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); - //port end - - - //web begin - - a = "https://www.baidu.com:9090///"; - b = new RemoteEnvURL(a); - assertEquals("", b.getWeb()); - - a = "https://www.baidu.com:9090"; - b = new RemoteEnvURL(a); - assertEquals("", b.getWeb()); - - a = "https://www.baidu.com:9090/"; - b = new RemoteEnvURL(a); - assertEquals("", b.getWeb()); - - a = "https://www.baidu.com:9090///web///servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("web", b.getWeb()); - - a = "https://www.baidu.com:9090/web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("web", b.getWeb()); - - a = "https://www.baidu.com:9090/中文·o((⊙﹏⊙))o囖/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("中文·o((⊙﹏⊙))o囖", b.getWeb()); - - a = "https://www.baidu.com:9090/web///servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("web", b.getWeb()); - - a = "https://www.baidu.com:9090///web/servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("web", b.getWeb()); - //web end - - //servlet begin - a = "https://www.baidu.com:9090///web////servlet/a"; - b = new RemoteEnvURL(a); - assertEquals("servlet", b.getServlet()); - - a = "https://www.baidu.com:9090"; - b = new RemoteEnvURL(a); - assertEquals("", b.getServlet()); - - a = "https://www.baidu.com:9090/"; - b = new RemoteEnvURL(a); - assertEquals("", b.getServlet()); - - a = "https://www.baidu.com:9090//"; - b = new RemoteEnvURL(a); - assertEquals("", b.getServlet()); - - a = "https://www.baidu.com:9090//web"; - b = new RemoteEnvURL(a); - assertEquals("", b.getServlet()); - - a = "https://www.baidu.com:9090//web//"; - b = new RemoteEnvURL(a); - assertEquals("", b.getServlet()); - - a = "https://www.baidu.com:9090//web/"; - b = new RemoteEnvURL(a); - assertEquals("", b.getServlet()); - - a = "https://www.baidu.com:9090//web//"; - b = new RemoteEnvURL(a); - assertEquals("", b.getServlet()); - - a = "https://www.baidu.com:9090//web/a/"; - b = new RemoteEnvURL(a); - assertEquals("a", b.getServlet()); - - a = "https://www.baidu.com:9090//web/a"; - b = new RemoteEnvURL(a); - assertEquals("a", b.getServlet()); - - - a = "https://www.baidu.com:9090//web/a//"; - b = new RemoteEnvURL(a); - assertEquals("a", b.getServlet()); - - a = "https://www.baidu.com:9090//web/中文·o((⊙﹏⊙))o囖//"; - b = new RemoteEnvURL(a); - assertEquals("中文·o((⊙﹏⊙))o囖", b.getServlet()); - - a = "https://www.baidu.com//web//"; - b = new RemoteEnvURL(a); - assertEquals("", b.getServlet()); - - a = "https://www.baidu.com//web/a/"; - b = new RemoteEnvURL(a); - assertEquals("a", b.getServlet()); - - a = "https://www.baidu.com//web/a"; - b = new RemoteEnvURL(a); - assertEquals("a", b.getServlet()); - - - a = "https://www.baidu.com//web/a//"; - b = new RemoteEnvURL(a); - assertEquals("a", b.getServlet()); - // servlet end - - //others begin - a = "https://www.baidu.com/web/servlet/ahttps://www.baidu.com/web/servlet/a"; - b = new RemoteEnvURL(a); - Assert.assertTrue(b.getHttps()); - assertEquals("www.baidu.com", b.getHost()); - assertEquals("", b.getPort()); - assertEquals("web", b.getWeb()); - assertEquals("servlet", b.getServlet()); - //others begin - } -} +//package com.fr.env; +// +//import org.junit.Assert; +//import org.junit.Test; +// +//import static org.junit.Assert.assertEquals; +// +///** +// * @author yaohwu +// */ +//public class RemoteEnvURLTest { +// +// @Test +// public void testURLParser() { +// +// String a; +// RemoteEnvURL b; +// +// // https or http begin +// a = "www.baidu.com:9090/web/servlet/a"; +// b = new RemoteEnvURL(a); +// Assert.assertFalse(b.getHttps()); +// +// a = "http://www.baidu.com:9090/web/servlet/a"; +// b = new RemoteEnvURL(a); +// Assert.assertFalse(b.getHttps()); +// +// a = "https://www.baidu.com:9090/web/servlet/a"; +// b = new RemoteEnvURL(a); +// Assert.assertTrue(b.getHttps()); +// // https or http end +// +// // host begin +// a = "https://www.baidu.com/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("www.baidu.com", b.getHost()); +// +// a = "https://baidu.com/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("baidu.com", b.getHost()); +// +// a = "https://192.168.1/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("192.168.1", b.getHost()); +// +// a = "https://中文·o((⊙﹏⊙))o囖/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("中文·o((⊙﹏⊙))o囖", b.getHost()); +// +// a = "https://a.b.c.d.e.f/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("a.b.c.d.e.f", b.getHost()); +// // host end +// +// //port begin +// a = "https://www.baidu.com:9090/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("9090", b.getPort()); +// +// a = "https://www.baidu.com:/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getPort()); +// +// a = "https://www.baidu.com/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getPort()); +// +// a = "https://www.baidu.com:kk/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("kk", b.getPort()); +// +// a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); +// +// a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖"; +// b = new RemoteEnvURL(a); +// assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); +// +// a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖///////"; +// b = new RemoteEnvURL(a); +// assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); +// //port end +// +// +// //web begin +// +// a = "https://www.baidu.com:9090///"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getWeb()); +// +// a = "https://www.baidu.com:9090"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getWeb()); +// +// a = "https://www.baidu.com:9090/"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getWeb()); +// +// a = "https://www.baidu.com:9090///web///servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("web", b.getWeb()); +// +// a = "https://www.baidu.com:9090/web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("web", b.getWeb()); +// +// a = "https://www.baidu.com:9090/中文·o((⊙﹏⊙))o囖/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("中文·o((⊙﹏⊙))o囖", b.getWeb()); +// +// a = "https://www.baidu.com:9090/web///servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("web", b.getWeb()); +// +// a = "https://www.baidu.com:9090///web/servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("web", b.getWeb()); +// //web end +// +// //servlet begin +// a = "https://www.baidu.com:9090///web////servlet/a"; +// b = new RemoteEnvURL(a); +// assertEquals("servlet", b.getServlet()); +// +// a = "https://www.baidu.com:9090"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getServlet()); +// +// a = "https://www.baidu.com:9090/"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getServlet()); +// +// a = "https://www.baidu.com:9090//"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getServlet()); +// +// a = "https://www.baidu.com:9090//web"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getServlet()); +// +// a = "https://www.baidu.com:9090//web//"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getServlet()); +// +// a = "https://www.baidu.com:9090//web/"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getServlet()); +// +// a = "https://www.baidu.com:9090//web//"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getServlet()); +// +// a = "https://www.baidu.com:9090//web/a/"; +// b = new RemoteEnvURL(a); +// assertEquals("a", b.getServlet()); +// +// a = "https://www.baidu.com:9090//web/a"; +// b = new RemoteEnvURL(a); +// assertEquals("a", b.getServlet()); +// +// +// a = "https://www.baidu.com:9090//web/a//"; +// b = new RemoteEnvURL(a); +// assertEquals("a", b.getServlet()); +// +// a = "https://www.baidu.com:9090//web/中文·o((⊙﹏⊙))o囖//"; +// b = new RemoteEnvURL(a); +// assertEquals("中文·o((⊙﹏⊙))o囖", b.getServlet()); +// +// a = "https://www.baidu.com//web//"; +// b = new RemoteEnvURL(a); +// assertEquals("", b.getServlet()); +// +// a = "https://www.baidu.com//web/a/"; +// b = new RemoteEnvURL(a); +// assertEquals("a", b.getServlet()); +// +// a = "https://www.baidu.com//web/a"; +// b = new RemoteEnvURL(a); +// assertEquals("a", b.getServlet()); +// +// +// a = "https://www.baidu.com//web/a//"; +// b = new RemoteEnvURL(a); +// assertEquals("a", b.getServlet()); +// // servlet end +// +// //others begin +// a = "https://www.baidu.com/web/servlet/ahttps://www.baidu.com/web/servlet/a"; +// b = new RemoteEnvURL(a); +// Assert.assertTrue(b.getHttps()); +// assertEquals("www.baidu.com", b.getHost()); +// assertEquals("", b.getPort()); +// assertEquals("web", b.getWeb()); +// assertEquals("servlet", b.getServlet()); +// //others begin +// } +//} diff --git a/designer-realize/src/main/java/com/fr/design/actions/report/ReportWebAttrAction.java b/designer-realize/src/main/java/com/fr/design/actions/report/ReportWebAttrAction.java index 1c10ca25b..ef503b8cb 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/report/ReportWebAttrAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/report/ReportWebAttrAction.java @@ -3,7 +3,6 @@ */ package com.fr.design.actions.report; -import com.fr.config.Configuration; import com.fr.design.actions.JWorkBookAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; @@ -13,8 +12,9 @@ import com.fr.design.menu.KeySetUtils; import com.fr.design.webattr.ReportWebAttrPane; import com.fr.general.IOUtils; import com.fr.main.TemplateWorkBook; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; import com.fr.web.attr.ReportWebAttr; import java.awt.event.ActionEvent; @@ -56,19 +56,17 @@ public class ReportWebAttrAction extends JWorkBookAction { dialog.addDialogActionListener(new DialogActionAdapter() { @Override public void doOk() { - Configurations.update(new Worker() { + Configurations.modify(new WorkerFacade(ReportWebAttr.class) { @Override public void run() { wbTpl.setReportWebAttr(reportWebAttrPane.update()); - jwb.fireTargetModified(); } - + }.addCallBack(new CallBackAdaptor() { @Override - public Class[] targets() { - return new Class[]{ReportWebAttr.class}; + public void afterCommit() { + jwb.fireTargetModified(); } - }); - + })); } }); diff --git a/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java b/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java index b7cb025e8..f1001eafe 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/server/WidgetManagerAction.java @@ -1,7 +1,6 @@ package com.fr.design.actions.server; import com.fr.base.BaseUtils; -import com.fr.config.Configuration; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; import com.fr.design.dialog.BasicDialog; @@ -12,10 +11,11 @@ import com.fr.design.menu.MenuKeySet; import com.fr.design.webattr.WidgetManagerPane; import com.fr.form.ui.WidgetInfoConfig; import com.fr.general.Inter; +import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; -import com.fr.transaction.Worker; +import com.fr.transaction.WorkerFacade; -import javax.swing.*; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; public class WidgetManagerAction extends UpdateAction { @@ -45,22 +45,22 @@ public class WidgetManagerAction extends UpdateAction { BasicDialog widgetConfigDialog = widgetManagerPane.showLargeWindow(designerFrame, new DialogActionAdapter() { @Override public void doOk() { - Configurations.update(new Worker() { + + Configurations.modify(new WorkerFacade(WidgetInfoConfig.class) { @Override public void run() { widgetManagerPane.update(widgetManager); + } + }.addCallBack(new CallBackAdaptor() { + @Override + public void afterCommit() { DesignModelAdapter model = DesignModelAdapter.getCurrentModelAdapter(); if (model != null) { model.widgetConfigChanged(); } designerFrame.getSelectedJTemplate().refreshToolArea(); } - - @Override - public Class[] targets() { - return new Class[]{WidgetInfoConfig.class}; - } - }); + })); } }); From ebcdebb688aa31c76796e0521ab6ff27c4a1080e Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 18 Jul 2018 12:48:45 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=97=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/env/RemoteEnvURLTest.java | 398 +++++++++--------- 1 file changed, 199 insertions(+), 199 deletions(-) diff --git a/designer-base/src/test/java/com/fr/env/RemoteEnvURLTest.java b/designer-base/src/test/java/com/fr/env/RemoteEnvURLTest.java index 24dd6a73f..f86720fc8 100644 --- a/designer-base/src/test/java/com/fr/env/RemoteEnvURLTest.java +++ b/designer-base/src/test/java/com/fr/env/RemoteEnvURLTest.java @@ -1,199 +1,199 @@ -//package com.fr.env; -// -//import org.junit.Assert; -//import org.junit.Test; -// -//import static org.junit.Assert.assertEquals; -// -///** -// * @author yaohwu -// */ -//public class RemoteEnvURLTest { -// -// @Test -// public void testURLParser() { -// -// String a; -// RemoteEnvURL b; -// -// // https or http begin -// a = "www.baidu.com:9090/web/servlet/a"; -// b = new RemoteEnvURL(a); -// Assert.assertFalse(b.getHttps()); -// -// a = "http://www.baidu.com:9090/web/servlet/a"; -// b = new RemoteEnvURL(a); -// Assert.assertFalse(b.getHttps()); -// -// a = "https://www.baidu.com:9090/web/servlet/a"; -// b = new RemoteEnvURL(a); -// Assert.assertTrue(b.getHttps()); -// // https or http end -// -// // host begin -// a = "https://www.baidu.com/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("www.baidu.com", b.getHost()); -// -// a = "https://baidu.com/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("baidu.com", b.getHost()); -// -// a = "https://192.168.1/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("192.168.1", b.getHost()); -// -// a = "https://中文·o((⊙﹏⊙))o囖/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("中文·o((⊙﹏⊙))o囖", b.getHost()); -// -// a = "https://a.b.c.d.e.f/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("a.b.c.d.e.f", b.getHost()); -// // host end -// -// //port begin -// a = "https://www.baidu.com:9090/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("9090", b.getPort()); -// -// a = "https://www.baidu.com:/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getPort()); -// -// a = "https://www.baidu.com/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getPort()); -// -// a = "https://www.baidu.com:kk/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("kk", b.getPort()); -// -// a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); -// -// a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖"; -// b = new RemoteEnvURL(a); -// assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); -// -// a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖///////"; -// b = new RemoteEnvURL(a); -// assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); -// //port end -// -// -// //web begin -// -// a = "https://www.baidu.com:9090///"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getWeb()); -// -// a = "https://www.baidu.com:9090"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getWeb()); -// -// a = "https://www.baidu.com:9090/"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getWeb()); -// -// a = "https://www.baidu.com:9090///web///servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("web", b.getWeb()); -// -// a = "https://www.baidu.com:9090/web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("web", b.getWeb()); -// -// a = "https://www.baidu.com:9090/中文·o((⊙﹏⊙))o囖/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("中文·o((⊙﹏⊙))o囖", b.getWeb()); -// -// a = "https://www.baidu.com:9090/web///servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("web", b.getWeb()); -// -// a = "https://www.baidu.com:9090///web/servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("web", b.getWeb()); -// //web end -// -// //servlet begin -// a = "https://www.baidu.com:9090///web////servlet/a"; -// b = new RemoteEnvURL(a); -// assertEquals("servlet", b.getServlet()); -// -// a = "https://www.baidu.com:9090"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getServlet()); -// -// a = "https://www.baidu.com:9090/"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getServlet()); -// -// a = "https://www.baidu.com:9090//"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getServlet()); -// -// a = "https://www.baidu.com:9090//web"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getServlet()); -// -// a = "https://www.baidu.com:9090//web//"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getServlet()); -// -// a = "https://www.baidu.com:9090//web/"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getServlet()); -// -// a = "https://www.baidu.com:9090//web//"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getServlet()); -// -// a = "https://www.baidu.com:9090//web/a/"; -// b = new RemoteEnvURL(a); -// assertEquals("a", b.getServlet()); -// -// a = "https://www.baidu.com:9090//web/a"; -// b = new RemoteEnvURL(a); -// assertEquals("a", b.getServlet()); -// -// -// a = "https://www.baidu.com:9090//web/a//"; -// b = new RemoteEnvURL(a); -// assertEquals("a", b.getServlet()); -// -// a = "https://www.baidu.com:9090//web/中文·o((⊙﹏⊙))o囖//"; -// b = new RemoteEnvURL(a); -// assertEquals("中文·o((⊙﹏⊙))o囖", b.getServlet()); -// -// a = "https://www.baidu.com//web//"; -// b = new RemoteEnvURL(a); -// assertEquals("", b.getServlet()); -// -// a = "https://www.baidu.com//web/a/"; -// b = new RemoteEnvURL(a); -// assertEquals("a", b.getServlet()); -// -// a = "https://www.baidu.com//web/a"; -// b = new RemoteEnvURL(a); -// assertEquals("a", b.getServlet()); -// -// -// a = "https://www.baidu.com//web/a//"; -// b = new RemoteEnvURL(a); -// assertEquals("a", b.getServlet()); -// // servlet end -// -// //others begin -// a = "https://www.baidu.com/web/servlet/ahttps://www.baidu.com/web/servlet/a"; -// b = new RemoteEnvURL(a); -// Assert.assertTrue(b.getHttps()); -// assertEquals("www.baidu.com", b.getHost()); -// assertEquals("", b.getPort()); -// assertEquals("web", b.getWeb()); -// assertEquals("servlet", b.getServlet()); -// //others begin -// } -//} +package com.fr.env; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +/** + * @author yaohwu + */ +public class RemoteEnvURLTest { + + @Test + public void testURLParser() { + + String a; + RemoteEnvURL b; + + // https or http begin + a = "www.baidu.com:9090/web/servlet/a"; + b = new RemoteEnvURL(a); + Assert.assertFalse(b.getHttps()); + + a = "http://www.baidu.com:9090/web/servlet/a"; + b = new RemoteEnvURL(a); + Assert.assertFalse(b.getHttps()); + + a = "https://www.baidu.com:9090/web/servlet/a"; + b = new RemoteEnvURL(a); + Assert.assertTrue(b.getHttps()); + // https or http end + + // host begin + a = "https://www.baidu.com/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("www.baidu.com", b.getHost()); + + a = "https://baidu.com/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("baidu.com", b.getHost()); + + a = "https://192.168.1/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("192.168.1", b.getHost()); + + a = "https://中文·o((⊙﹏⊙))o囖/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("中文·o((⊙﹏⊙))o囖", b.getHost()); + + a = "https://a.b.c.d.e.f/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("a.b.c.d.e.f", b.getHost()); + // host end + + //port begin + a = "https://www.baidu.com:9090/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("9090", b.getPort()); + + a = "https://www.baidu.com:/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("", b.getPort()); + + a = "https://www.baidu.com/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("", b.getPort()); + + a = "https://www.baidu.com:kk/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("kk", b.getPort()); + + a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); + + a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖"; + b = new RemoteEnvURL(a); + assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); + + a = "https://www.baidu.com:中文·o((⊙﹏⊙))o囖///////"; + b = new RemoteEnvURL(a); + assertEquals("中文·o((⊙﹏⊙))o囖", b.getPort()); + //port end + + + //web begin + + a = "https://www.baidu.com:9090///"; + b = new RemoteEnvURL(a); + assertEquals("", b.getWeb()); + + a = "https://www.baidu.com:9090"; + b = new RemoteEnvURL(a); + assertEquals("", b.getWeb()); + + a = "https://www.baidu.com:9090/"; + b = new RemoteEnvURL(a); + assertEquals("", b.getWeb()); + + a = "https://www.baidu.com:9090///web///servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("web", b.getWeb()); + + a = "https://www.baidu.com:9090/web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("web", b.getWeb()); + + a = "https://www.baidu.com:9090/中文·o((⊙﹏⊙))o囖/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("中文·o((⊙﹏⊙))o囖", b.getWeb()); + + a = "https://www.baidu.com:9090/web///servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("web", b.getWeb()); + + a = "https://www.baidu.com:9090///web/servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("web", b.getWeb()); + //web end + + //servlet begin + a = "https://www.baidu.com:9090///web////servlet/a"; + b = new RemoteEnvURL(a); + assertEquals("servlet", b.getServlet()); + + a = "https://www.baidu.com:9090"; + b = new RemoteEnvURL(a); + assertEquals("", b.getServlet()); + + a = "https://www.baidu.com:9090/"; + b = new RemoteEnvURL(a); + assertEquals("", b.getServlet()); + + a = "https://www.baidu.com:9090//"; + b = new RemoteEnvURL(a); + assertEquals("", b.getServlet()); + + a = "https://www.baidu.com:9090//web"; + b = new RemoteEnvURL(a); + assertEquals("", b.getServlet()); + + a = "https://www.baidu.com:9090//web//"; + b = new RemoteEnvURL(a); + assertEquals("", b.getServlet()); + + a = "https://www.baidu.com:9090//web/"; + b = new RemoteEnvURL(a); + assertEquals("", b.getServlet()); + + a = "https://www.baidu.com:9090//web//"; + b = new RemoteEnvURL(a); + assertEquals("", b.getServlet()); + + a = "https://www.baidu.com:9090//web/a/"; + b = new RemoteEnvURL(a); + assertEquals("a", b.getServlet()); + + a = "https://www.baidu.com:9090//web/a"; + b = new RemoteEnvURL(a); + assertEquals("a", b.getServlet()); + + + a = "https://www.baidu.com:9090//web/a//"; + b = new RemoteEnvURL(a); + assertEquals("a", b.getServlet()); + + a = "https://www.baidu.com:9090//web/中文·o((⊙﹏⊙))o囖//"; + b = new RemoteEnvURL(a); + assertEquals("中文·o((⊙﹏⊙))o囖", b.getServlet()); + + a = "https://www.baidu.com//web//"; + b = new RemoteEnvURL(a); + assertEquals("", b.getServlet()); + + a = "https://www.baidu.com//web/a/"; + b = new RemoteEnvURL(a); + assertEquals("a", b.getServlet()); + + a = "https://www.baidu.com//web/a"; + b = new RemoteEnvURL(a); + assertEquals("a", b.getServlet()); + + + a = "https://www.baidu.com//web/a//"; + b = new RemoteEnvURL(a); + assertEquals("a", b.getServlet()); + // servlet end + + //others begin + a = "https://www.baidu.com/web/servlet/ahttps://www.baidu.com/web/servlet/a"; + b = new RemoteEnvURL(a); + Assert.assertTrue(b.getHttps()); + assertEquals("www.baidu.com", b.getHost()); + assertEquals("", b.getPort()); + assertEquals("web", b.getWeb()); + assertEquals("servlet", b.getServlet()); + //others begin + } +}