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-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}; - } - }); + })); } });