From 9c81cd7d35e92500b005d0665c3d98078b34e686 Mon Sep 17 00:00:00 2001 From: hzzz Date: Tue, 5 Jun 2018 14:42:49 +0800 Subject: [PATCH 1/4] merge --- .../gui/itree/filetree/TemplateFileTree.java | 7 +++---- .../RemoteDesignAuthorityManagerAction.java | 5 +++-- .../fr/design/remote/ui/UserManagerPane.java | 3 ++- .../fr/start/module/DesignerEnvProvider.java | 20 +++++++++---------- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java b/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java index 650712bb0..3da64b80d 100644 --- a/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java +++ b/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java @@ -1,8 +1,7 @@ package com.fr.design.gui.itree.filetree; import com.fr.base.Env; -import com.fr.base.operator.file.FileOperator; -import com.fr.core.env.proxy.EnvProxy; +import com.fr.base.operator.file.DefaultFileOperator; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.file.filetree.FileNode; import com.fr.log.FineLoggerFactory; @@ -102,8 +101,8 @@ public class TemplateFileTree extends EnvFileTree { } public FileNode[] listFile(String path) throws Exception { - String extra = EnvProxy.get(FileOperator.class).readExtraResourcePath(path); - return EnvProxy.get(FileOperator.class).list(extra, path); + String extra = DefaultFileOperator.getInstance().readExtraResourcePath(path); + return DefaultFileOperator.getInstance().list(extra, path); } /* diff --git a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java index 8d22b77a4..4967a18a1 100644 --- a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java +++ b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java @@ -9,6 +9,7 @@ import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.DesignerContext; import com.fr.design.remote.ui.AuthorityManagerPane; import com.fr.env.operator.authority.AuthorityOperator; +import com.fr.env.operator.authority.DefaultAuthorityOperator; import com.fr.general.Inter; import com.fr.log.FineLoggerFactory; import com.fr.report.DesignAuthority; @@ -37,7 +38,7 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { if (!FRContext.getCurrentEnv().isLocalEnv()) { try { // 远程设计获取全部设计成员的权限列表 - DesignAuthority[] authorities = EnvProxy.get(AuthorityOperator.class).getAuthorities(); + DesignAuthority[] authorities = DefaultAuthorityOperator.getInstance().getAuthorities(); if (authorities != null && authorities.length != 0) { managerPane.populate(authorities); } @@ -53,7 +54,7 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { if (!FRContext.getCurrentEnv().isLocalEnv()) { boolean success = false; try { - success = EnvProxy.get(AuthorityOperator.class).updateAuthorities(authorities); + success = DefaultAuthorityOperator.getInstance().updateAuthorities(authorities); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } diff --git a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java index 2c568583a..76893c18e 100644 --- a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java @@ -18,6 +18,7 @@ import com.fr.design.remote.ui.list.AddingMemberListCellRender; import com.fr.design.remote.ui.list.MemberListSelectedChangeListener; import com.fr.env.RemoteDesignMember; import com.fr.env.operator.decision.DecisionOperator; +import com.fr.env.operator.decision.DefaultDecisionOperator; import com.fr.general.Inter; import com.fr.stable.StringUtils; import com.fr.third.guava.collect.ImmutableList; @@ -282,7 +283,7 @@ public class UserManagerPane extends BasicPane { protected List doInBackground() { addingMembers.clear(); String username = EnvConfigUtils.getUsername(EnvContext.currentEnv()); - addingMembers.addAll(EnvProxy.get(DecisionOperator.class).getMembers(username, keyword)); + addingMembers.addAll(DefaultDecisionOperator.getInstance().getMembers(username, keyword)); return addingMembers; } diff --git a/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java b/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java index 65d37eca6..e67fdf298 100644 --- a/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java +++ b/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java @@ -6,13 +6,13 @@ import com.fr.base.StoreProcedureParameter; import com.fr.base.TableData; import com.fr.base.env.serializer.OldSerializerAdapter; import com.fr.base.env.serializer.ProcedureDataModelSerializer; -import com.fr.base.env.user.RemoteUserCenter; +import com.fr.base.env.user.RemoteUserCenterProvider; import com.fr.base.operator.connection.DataConnectionOperator; -import com.fr.base.operator.connection.LocalDataConnectionOperator; +import com.fr.base.operator.connection.DefaultDataConnectionOperator; import com.fr.base.operator.file.FileOperator; -import com.fr.base.operator.file.LocalFileOperator; +import com.fr.base.operator.file.DefaultFileOperator; import com.fr.core.env.operator.envinfo.EnvInfoOperator; -import com.fr.core.env.operator.envinfo.LocalEnvInfoOperator; +import com.fr.core.env.operator.envinfo.DefaultEnvInfoOperator; import com.fr.core.env.operator.user.UserCenter; import com.fr.core.env.proxy.EnvProxy; import com.fr.data.core.db.TableProcedure; @@ -26,7 +26,7 @@ import com.fr.general.ComparatorUtils; import com.fr.module.Activator; import com.fr.start.EnvSwitcher; import com.fr.start.StartServer; -import com.fr.startup.opeartors.LocalUserCenter; +import com.fr.startup.opeartors.UserCenterProvider; import java.io.InputStream; import java.io.OutputStream; @@ -66,11 +66,11 @@ public class DesignerEnvProvider extends Activator { private void initEnvOperators() { addSerializers(); - EnvProxy.addLocalService(FileOperator.class, new LocalFileOperator()); - EnvProxy.addLocalService(DataConnectionOperator.class, new LocalDataConnectionOperator()); - EnvProxy.addLocalService(EnvInfoOperator.class, new LocalEnvInfoOperator()); - EnvProxy.addLocalService(UserCenter.class, new LocalUserCenter()); - EnvProxy.addRemoteService(UserCenter.class, new RemoteUserCenter()); + EnvProxy.addLocalService(FileOperator.class, new DefaultFileOperator()); + EnvProxy.addLocalService(DataConnectionOperator.class, new DefaultDataConnectionOperator()); + EnvProxy.addLocalService(EnvInfoOperator.class, new DefaultEnvInfoOperator()); + EnvProxy.addLocalService(UserCenter.class, new UserCenterProvider()); + EnvProxy.addRemoteService(UserCenter.class, new RemoteUserCenterProvider()); } private void addSerializers() { From 0653833e893aa686f9c9e2d4eee42e5da5b67bd8 Mon Sep 17 00:00:00 2001 From: hzzz Date: Wed, 6 Jun 2018 13:53:02 +0800 Subject: [PATCH 2/4] env --- .../gui/itree/filetree/TemplateFileTree.java | 7 +- .../fr/design/mainframe/DesignerFrame.java | 17 +- .../loghandler/socketio/DesignerSocketIO.java | 9 +- .../RemoteDesignAuthorityManagerAction.java | 5 +- .../fr/design/remote/ui/UserManagerPane.java | 3 +- .../src/com/fr/design/utils/DesignUtils.java | 34 +- designer-base/src/com/fr/env/RemoteEnv.java | 8 +- designer-base/src/com/fr/env/SignIn.java | 27 +- .../fr/start/module/DesignerEnvProvider.java | 298 ++++++++++-------- .../start/module/DesignerModuleActivator.java | 12 +- 10 files changed, 206 insertions(+), 214 deletions(-) diff --git a/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java b/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java index 3da64b80d..650712bb0 100644 --- a/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java +++ b/designer-base/src/com/fr/design/gui/itree/filetree/TemplateFileTree.java @@ -1,7 +1,8 @@ package com.fr.design.gui.itree.filetree; import com.fr.base.Env; -import com.fr.base.operator.file.DefaultFileOperator; +import com.fr.base.operator.file.FileOperator; +import com.fr.core.env.proxy.EnvProxy; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.file.filetree.FileNode; import com.fr.log.FineLoggerFactory; @@ -101,8 +102,8 @@ public class TemplateFileTree extends EnvFileTree { } public FileNode[] listFile(String path) throws Exception { - String extra = DefaultFileOperator.getInstance().readExtraResourcePath(path); - return DefaultFileOperator.getInstance().list(extra, path); + String extra = EnvProxy.get(FileOperator.class).readExtraResourcePath(path); + return EnvProxy.get(FileOperator.class).list(extra, path); } /* diff --git a/designer-base/src/com/fr/design/mainframe/DesignerFrame.java b/designer-base/src/com/fr/design/mainframe/DesignerFrame.java index 828c6623b..7c1b0ba0c 100644 --- a/designer-base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer-base/src/com/fr/design/mainframe/DesignerFrame.java @@ -7,6 +7,7 @@ import com.fr.base.BaseUtils; import com.fr.base.Env; import com.fr.base.FRContext; import com.fr.core.env.EnvConfig; +import com.fr.core.env.EnvContext; import com.fr.core.env.resource.EnvConfigUtils; import com.fr.design.DesignModelAdapter; import com.fr.design.DesignState; @@ -317,7 +318,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta public void on(PluginEvent event) { refreshNorthEastPane(northEastPane, ad); - DesignUtils.refreshDesignerFrame(FRContext.getCurrentEnv()); + DesignUtils.refreshDesignerFrame(); } }, new PluginFilter() { @@ -682,10 +683,8 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta /** * 报表运行环境改变时,需要刷新某些面板 - * - * @param env 环境 */ - public void refreshEnv(Env env) { + public void refreshEnv() { this.setTitle(); DesignerFrameFileDealerPane.getInstance().refreshDockingView(); @@ -965,14 +964,8 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta DesignerEnvManager.getEnvManager().saveXMLFile(); - Env currentEnv = FRContext.getCurrentEnv(); - try { - EventDispatcher.fire(BEFORE_SIGN_OUT); - currentEnv.signOut(); - EventDispatcher.fire(AFTER_SIGN_OUT); - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } + EnvContext.signOut(); + this.setVisible(false); this.dispose(); diff --git a/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java b/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java index 23393dcb2..ac5a2ab01 100644 --- a/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java +++ b/designer-base/src/com/fr/design/mainframe/loghandler/socketio/DesignerSocketIO.java @@ -10,7 +10,6 @@ import com.fr.design.mainframe.loghandler.DesignerLogHandler; import com.fr.event.Event; import com.fr.event.EventDispatcher; import com.fr.event.Listener; -import com.fr.event.Null; import com.fr.general.LogRecordTime; import com.fr.general.LogUtils; import com.fr.log.FineLoggerFactory; @@ -43,18 +42,18 @@ public class DesignerSocketIO { }; static { - EventDispatcher.listen(EnvEvent.AFTER_SIGN_OUT, new Listener() { + EventDispatcher.listen(EnvEvent.AFTER_SIGN_OUT, new Listener() { @Override - public void on(Event event, Null param) { + public void on(Event event, EnvConfig param) { if (socketIO.isPresent()) { socketIO.get().close(); socketIO = Optional.absent(); } } }); - EventDispatcher.listen(EnvEvent.AFTER_SIGN_IN, new Listener() { + EventDispatcher.listen(EnvEvent.AFTER_SIGN_IN, new Listener() { @Override - public void on(Event event, Null param) { + public void on(Event event, EnvConfig param) { updateSocket(); } }); diff --git a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java index 4967a18a1..8d22b77a4 100644 --- a/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java +++ b/designer-base/src/com/fr/design/remote/action/RemoteDesignAuthorityManagerAction.java @@ -9,7 +9,6 @@ import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.DesignerContext; import com.fr.design.remote.ui.AuthorityManagerPane; import com.fr.env.operator.authority.AuthorityOperator; -import com.fr.env.operator.authority.DefaultAuthorityOperator; import com.fr.general.Inter; import com.fr.log.FineLoggerFactory; import com.fr.report.DesignAuthority; @@ -38,7 +37,7 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { if (!FRContext.getCurrentEnv().isLocalEnv()) { try { // 远程设计获取全部设计成员的权限列表 - DesignAuthority[] authorities = DefaultAuthorityOperator.getInstance().getAuthorities(); + DesignAuthority[] authorities = EnvProxy.get(AuthorityOperator.class).getAuthorities(); if (authorities != null && authorities.length != 0) { managerPane.populate(authorities); } @@ -54,7 +53,7 @@ public class RemoteDesignAuthorityManagerAction extends UpdateAction { if (!FRContext.getCurrentEnv().isLocalEnv()) { boolean success = false; try { - success = DefaultAuthorityOperator.getInstance().updateAuthorities(authorities); + success = EnvProxy.get(AuthorityOperator.class).updateAuthorities(authorities); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } diff --git a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java index 76893c18e..2c568583a 100644 --- a/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java +++ b/designer-base/src/com/fr/design/remote/ui/UserManagerPane.java @@ -18,7 +18,6 @@ import com.fr.design.remote.ui.list.AddingMemberListCellRender; import com.fr.design.remote.ui.list.MemberListSelectedChangeListener; import com.fr.env.RemoteDesignMember; import com.fr.env.operator.decision.DecisionOperator; -import com.fr.env.operator.decision.DefaultDecisionOperator; import com.fr.general.Inter; import com.fr.stable.StringUtils; import com.fr.third.guava.collect.ImmutableList; @@ -283,7 +282,7 @@ public class UserManagerPane extends BasicPane { protected List doInBackground() { addingMembers.clear(); String username = EnvConfigUtils.getUsername(EnvContext.currentEnv()); - addingMembers.addAll(DefaultDecisionOperator.getInstance().getMembers(username, keyword)); + addingMembers.addAll(EnvProxy.get(DecisionOperator.class).getMembers(username, keyword)); return addingMembers; } diff --git a/designer-base/src/com/fr/design/utils/DesignUtils.java b/designer-base/src/com/fr/design/utils/DesignUtils.java index 1148d64f4..d8b4d9fff 100644 --- a/designer-base/src/com/fr/design/utils/DesignUtils.java +++ b/designer-base/src/com/fr/design/utils/DesignUtils.java @@ -1,15 +1,16 @@ package com.fr.design.utils; import com.fr.base.BaseUtils; -import com.fr.base.Env; import com.fr.base.EnvException; import com.fr.base.FRContext; import com.fr.base.FeedBackInfo; import com.fr.base.ServerConfig; import com.fr.base.Utils; import com.fr.base.remote.RemoteDeziConstants; +import com.fr.core.env.EnvConfig; +import com.fr.core.env.EnvContext; +import com.fr.core.env.resource.LocalEnvConfig; import com.fr.dav.DavXMLUtils; -import com.fr.dav.LocalEnv; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; import com.fr.design.fun.DesignerEnvProcessor; @@ -31,8 +32,11 @@ import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.start.StartServer; -import javax.swing.*; -import java.awt.*; +import javax.swing.JOptionPane; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import java.awt.Desktop; +import java.awt.Font; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.ByteArrayInputStream; @@ -184,20 +188,16 @@ public class DesignUtils { }); } - /** * 当前的报表运行环境切换到env * * @param env 需要切换去的环境 */ - public static void switchToEnv(Env env) { + public static void switchToEnv(EnvConfig env) throws Exception { if (env == null) { return; } - Env oldEnv = FRContext.getCurrentEnv(); - String oldEnvPath = oldEnv == null ? null : oldEnv.getPath(); - // 看一下这个env在DesignerEnvManager里面有没有对应的,有的话就setCurrentEnvName DesignerEnvManager envManager = DesignerEnvManager.getEnvManager(); java.util.Iterator nameIt = envManager.getEnvNameIterator(); @@ -209,19 +209,19 @@ public class DesignUtils { } } - // 更新CurrentEnv于FRContext & DesignerEnvManager - FRContext.setCurrentEnv(env); + EnvConfig oldEnv = EnvContext.currentEnv(); + String oldEnvPath = oldEnv == null ? null : oldEnv.getPath(); + + EnvContext.signIn(env); - refreshDesignerFrame(env); + refreshDesignerFrame(); // 当换了运行环境,重置服务器,让它下次预览时重启 - if (env instanceof LocalEnv && !ComparatorUtils.equals(env.getPath(), oldEnvPath)) { + if (env instanceof LocalEnvConfig && !ComparatorUtils.equals(env.getPath(), oldEnvPath)) { StartServer.currentEnvChanged(); } } - public static void refreshDesignerFrame(Env env) { - - final Env run_env = env; + public static void refreshDesignerFrame() { // 刷新DesignerFrame里面的面板 SwingUtilities.invokeLater(new Runnable() { @@ -230,7 +230,7 @@ public class DesignUtils { if (DesignerContext.getDesignerFrame() == null) { return; } - DesignerContext.getDesignerFrame().refreshEnv(run_env); + DesignerContext.getDesignerFrame().refreshEnv(); DesignerContext.getDesignerFrame().repaint();// kunsnat: 切换环境后 刷新下 报表. 比如图表某些风格改变. } }); diff --git a/designer-base/src/com/fr/env/RemoteEnv.java b/designer-base/src/com/fr/env/RemoteEnv.java index 8e17a4e22..318ee267a 100644 --- a/designer-base/src/com/fr/env/RemoteEnv.java +++ b/designer-base/src/com/fr/env/RemoteEnv.java @@ -41,6 +41,7 @@ import com.fr.stable.SvgProvider; import com.fr.stable.file.XMLFileManagerProvider; import com.fr.stable.project.ProjectConstants; import com.fr.stable.xml.XMLTools; +import com.fr.third.guava.base.Strings; import com.fr.third.guava.collect.ImmutableMap; import com.fr.web.ResourceConstants; @@ -75,6 +76,7 @@ import static com.fr.third.guava.base.Preconditions.checkArgument; * @author null */ public class RemoteEnv extends AbstractEnv implements DesignAuthorityConfigurable { + private static final String CERT_KEY = "javax.net.ssl.trustStore"; private static final String PWD_KEY = "javax.net.ssl.trustStorePassword"; private static final String HTTPS_PREFIX = "https:"; @@ -138,7 +140,6 @@ public class RemoteEnv extends AbstractEnv implements DesignAuthorityConfigurabl } - /** * nameValuePairs,这个参数要接着this.path,拼成一个URL,否则服务器端req.getParameter是无法得到的 * @@ -214,7 +215,7 @@ public class RemoteEnv extends AbstractEnv implements DesignAuthorityConfigurabl EnvConstants.USERNAME, getUser(), EnvConstants.PWD, getPassword()); String res = HttpToolbox.post(url, params, headers); - if (res == null) { + if (Strings.isNullOrEmpty(res)) { if (needMessage) { JOptionPane.showMessageDialog(component, Inter.getLocText("Datasource-Connection_failed")); } @@ -237,7 +238,7 @@ public class RemoteEnv extends AbstractEnv implements DesignAuthorityConfigurabl return false; } else { if (needMessage) { - JOptionPane.showMessageDialog(component, Inter.getLocText(new String[]{"Datasource-Connection_failed", "Version-does-not-support"}, new String[]{",", "!"})); + JOptionPane.showMessageDialog(component, Inter.getLocText("Datasource-Connection_failed")); } else { FineLoggerFactory.getLogger().info(Inter.getLocText(new String[]{"Datasource-Connection_failed", "Version-does-not-support"}, new String[]{",", "!"})); } @@ -818,7 +819,6 @@ public class RemoteEnv extends AbstractEnv implements DesignAuthorityConfigurabl } - /** * 获取当前env的build文件路径 */ diff --git a/designer-base/src/com/fr/env/SignIn.java b/designer-base/src/com/fr/env/SignIn.java index 1e3167794..faa2c584f 100644 --- a/designer-base/src/com/fr/env/SignIn.java +++ b/designer-base/src/com/fr/env/SignIn.java @@ -1,13 +1,11 @@ package com.fr.env; -import com.fr.base.FRContext; import com.fr.core.env.EnvConfig; import com.fr.core.env.EnvContext; import com.fr.core.env.EnvEvent; -import com.fr.core.env.resource.EnvConfigUtils; -import com.fr.core.env.resource.RemoteEnvConfig; -import com.fr.dav.LocalEnv; +import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.DesignerFrame; import com.fr.design.utils.DesignUtils; import com.fr.event.Event; import com.fr.event.EventDispatcher; @@ -17,7 +15,6 @@ import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import javax.swing.JOptionPane; -import javax.swing.UIManager; public class SignIn { @@ -26,20 +23,14 @@ public class SignIn { EventDispatcher.listen(EnvEvent.CONNECTION_ERROR, new Listener() { @Override public void on(Event event, Null param) { - if (JOptionPane.showConfirmDialog(null, Inter.getLocText("FR-Remote_Connect2Server_Again"), UIManager.getString("OptionPane.titleText"), JOptionPane.YES_NO_OPTION) - == JOptionPane.OK_OPTION) { - try { - EnvContext.signIn(EnvContext.currentEnv()); - } catch (Exception e) { - FRContext.getLogger().error(e.getMessage()); - } - } + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Datasource-Connection_failed")); } }); } /** * 注册入环境 + * * @param selectedEnv 选择的环境 * @throws Exception 异常 */ @@ -47,15 +38,7 @@ public class SignIn { if (EnvContext.currentEnv() != null && !ComparatorUtils.equals(EnvContext.currentEnv(), selectedEnv)) { EnvContext.signOut(); } - EnvContext.signIn(selectedEnv); - DesignUtils.switchToEnv(trans(selectedEnv)); - } - private static com.fr.base.Env trans(EnvConfig env) { - if (env instanceof RemoteEnvConfig) { - return new RemoteEnv(env.getPath(), EnvConfigUtils.getUsername(env), EnvConfigUtils.getPassword(env)); - } else { - return new LocalEnv(); - } + DesignUtils.switchToEnv(selectedEnv); } } \ No newline at end of file diff --git a/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java b/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java index 68e7a4c9a..89120ab38 100644 --- a/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java +++ b/designer-realize/src/com/fr/start/module/DesignerEnvProvider.java @@ -1,20 +1,29 @@ package com.fr.start.module; +import com.fr.base.FRContext; import com.fr.base.ModifiedTable; import com.fr.base.Parameter; import com.fr.base.StoreProcedureParameter; import com.fr.base.TableData; import com.fr.base.env.serializer.OldSerializerAdapter; import com.fr.base.env.serializer.ProcedureDataModelSerializer; -import com.fr.base.env.user.RemoteUserCenter; -import com.fr.core.env.operator.user.UserCenter; +import com.fr.core.env.EnvConfig; +import com.fr.core.env.EnvEvent; import com.fr.core.env.proxy.EnvProxy; +import com.fr.core.env.resource.EnvConfigUtils; +import com.fr.core.env.resource.LocalEnvConfig; +import com.fr.core.env.resource.RemoteEnvConfig; import com.fr.data.core.db.TableProcedure; import com.fr.data.impl.Connection; import com.fr.data.impl.storeproc.ProcedureDataModel; import com.fr.data.impl.storeproc.StoreProcedure; import com.fr.dav.DavXMLUtils; +import com.fr.dav.LocalEnv; import com.fr.design.DesignerEnvManager; +import com.fr.env.RemoteEnv; +import com.fr.event.Event; +import com.fr.event.EventDispatcher; +import com.fr.event.Listener; import com.fr.file.filetree.FileNode; import com.fr.general.ComparatorUtils; import com.fr.module.Activator; @@ -44,181 +53,190 @@ public class DesignerEnvProvider extends Activator { } } initDesignerEnv(); - + getRoot().setSingleton(EnvSwitcher.class, new EnvSwitcher()); //设置好环境即可,具体跟环境有关的模块会自动调用 getRoot().getSingleton(EnvSwitcher.class).switch2LastEnv(); } - + private void initDesignerEnv() { - addSerializers(); - EnvProxy.addRemoteService(UserCenter.class, new RemoteUserCenter()); + EventDispatcher.listen(EnvEvent.BEFORE_SIGN_IN, new Listener() { + @Override + public void on(Event event, EnvConfig envConfig) { + if (envConfig instanceof RemoteEnvConfig) { + RemoteEnv remoteEnv = new RemoteEnv(envConfig.getPath(), EnvConfigUtils.getUsername(envConfig), EnvConfigUtils.getPassword(envConfig)); + FRContext.setCurrentEnv(remoteEnv); + } else if (envConfig instanceof LocalEnvConfig) { + FRContext.setCurrentEnv(new LocalEnv()); + } + } + }); } - - + + private void addSerializers() { - + EnvProxy.addSerializer(ProcedureDataModel[].class, new ProcedureDataModelSerializer()); - + EnvProxy.addSerializer(ModifiedTable.class, new OldSerializerAdapter( - new OldSerializerAdapter.OldSerializer() { - - @Override - public void serializer(ModifiedTable obj, OutputStream out) throws Exception { - - DavXMLUtils.writeXMLModifiedTables(obj, out); - } - }, - new OldSerializerAdapter.OldDeserializer() { - - @Override - public ModifiedTable deserializer(InputStream in) throws Exception { - - return DavXMLUtils.readXMLModifiedTables(in); + new OldSerializerAdapter.OldSerializer() { + + @Override + public void serializer(ModifiedTable obj, OutputStream out) throws Exception { + + DavXMLUtils.writeXMLModifiedTables(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + + @Override + public ModifiedTable deserializer(InputStream in) throws Exception { + + return DavXMLUtils.readXMLModifiedTables(in); + } } - } )); - + EnvProxy.addSerializer(com.fr.data.impl.Connection.class, new OldSerializerAdapter( - new OldSerializerAdapter.OldSerializer() { - - @Override - public void serializer(Connection obj, OutputStream out) { - - DavXMLUtils.writeXMLFileDatabaseConnection(obj, out); - } - }, - new OldSerializerAdapter.OldDeserializer() { - - @Override - public Connection deserializer(InputStream in) throws Exception { - - return DavXMLUtils.readXMLDatabaseConnection(in); + new OldSerializerAdapter.OldSerializer() { + + @Override + public void serializer(Connection obj, OutputStream out) { + + DavXMLUtils.writeXMLFileDatabaseConnection(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + + @Override + public Connection deserializer(InputStream in) throws Exception { + + return DavXMLUtils.readXMLDatabaseConnection(in); + } } - } )); - + EnvProxy.addSerializer(FileNode[].class, new OldSerializerAdapter( - new OldSerializerAdapter.OldSerializer() { - - @Override - public void serializer(FileNode[] obj, OutputStream out) { - - DavXMLUtils.writeXMLFileNodes(obj, out); - } - }, - new OldSerializerAdapter.OldDeserializer() { - - @Override - public FileNode[] deserializer(InputStream in) { - - return DavXMLUtils.readXMLFileNodes(in); + new OldSerializerAdapter.OldSerializer() { + + @Override + public void serializer(FileNode[] obj, OutputStream out) { + + DavXMLUtils.writeXMLFileNodes(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + + @Override + public FileNode[] deserializer(InputStream in) { + + return DavXMLUtils.readXMLFileNodes(in); + } } - } )); - + EnvProxy.addSerializer(TableProcedure[].class, new OldSerializerAdapter( - new OldSerializerAdapter.OldSerializer() { - - @Override - public void serializer(TableProcedure[] obj, OutputStream out) { - - DavXMLUtils.writeXMLFileSQLTable(obj, out); - } - }, - new OldSerializerAdapter.OldDeserializer() { - - @Override - public TableProcedure[] deserializer(InputStream in) throws Exception { - - return DavXMLUtils.readXMLSQLTables(in); + new OldSerializerAdapter.OldSerializer() { + + @Override + public void serializer(TableProcedure[] obj, OutputStream out) { + + DavXMLUtils.writeXMLFileSQLTable(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + + @Override + public TableProcedure[] deserializer(InputStream in) throws Exception { + + return DavXMLUtils.readXMLSQLTables(in); + } } - } )); - + EnvProxy.addSerializer(TableData.class, new OldSerializerAdapter( - new OldSerializerAdapter.OldSerializer() { - - @Override - public void serializer(TableData obj, OutputStream out) { - - DavXMLUtils.writeXMLFileTableData(obj, out); - } - }, - new OldSerializerAdapter.OldDeserializer() { - - @Override - public TableData deserializer(InputStream in) throws Exception { - - return DavXMLUtils.readXMLTableData(in); + new OldSerializerAdapter.OldSerializer() { + + @Override + public void serializer(TableData obj, OutputStream out) { + + DavXMLUtils.writeXMLFileTableData(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + + @Override + public TableData deserializer(InputStream in) throws Exception { + + return DavXMLUtils.readXMLTableData(in); + } } - } )); - + EnvProxy.addSerializer(Parameter[].class, new OldSerializerAdapter( - new OldSerializerAdapter.OldSerializer() { - - @Override - public void serializer(Parameter[] obj, OutputStream out) { - - DavXMLUtils.writeXMLFileParameters(obj, out); - } - }, - new OldSerializerAdapter.OldDeserializer() { - - @Override - public Parameter[] deserializer(InputStream in) throws Exception { - - return DavXMLUtils.readXMLParameters(in); + new OldSerializerAdapter.OldSerializer() { + + @Override + public void serializer(Parameter[] obj, OutputStream out) { + + DavXMLUtils.writeXMLFileParameters(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + + @Override + public Parameter[] deserializer(InputStream in) throws Exception { + + return DavXMLUtils.readXMLParameters(in); + } } - } )); - + EnvProxy.addSerializer(StoreProcedure.class, new OldSerializerAdapter( - new OldSerializerAdapter.OldSerializer() { - - @Override - public void serializer(StoreProcedure obj, OutputStream out) { - - DavXMLUtils.writeXMLFileStoreProcedure(obj, out); - } - }, - new OldSerializerAdapter.OldDeserializer() { - - @Override - public StoreProcedure deserializer(InputStream in) throws Exception { - - return DavXMLUtils.readXMLStoreProcedure(in); + new OldSerializerAdapter.OldSerializer() { + + @Override + public void serializer(StoreProcedure obj, OutputStream out) { + + DavXMLUtils.writeXMLFileStoreProcedure(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + + @Override + public StoreProcedure deserializer(InputStream in) throws Exception { + + return DavXMLUtils.readXMLStoreProcedure(in); + } } - } )); - + EnvProxy.addSerializer(StoreProcedureParameter[].class, new OldSerializerAdapter( - new OldSerializerAdapter.OldSerializer() { - - @Override - public void serializer(StoreProcedureParameter[] obj, OutputStream out) { - - DavXMLUtils.writeXMLFileParameters(obj, out); - } - }, - new OldSerializerAdapter.OldDeserializer() { - - @Override - public StoreProcedureParameter[] deserializer(InputStream in) throws Exception { - - return DavXMLUtils.readXMLStoreProcedureParameters(in); + new OldSerializerAdapter.OldSerializer() { + + @Override + public void serializer(StoreProcedureParameter[] obj, OutputStream out) { + + DavXMLUtils.writeXMLFileParameters(obj, out); + } + }, + new OldSerializerAdapter.OldDeserializer() { + + @Override + public StoreProcedureParameter[] deserializer(InputStream in) throws Exception { + + return DavXMLUtils.readXMLStoreProcedureParameters(in); + } } - } )); } - + @Override public void stop() { //清空模块 getRoot().removeSingleton(EnvSwitcher.class); } - - + + } diff --git a/designer-realize/src/com/fr/start/module/DesignerModuleActivator.java b/designer-realize/src/com/fr/start/module/DesignerModuleActivator.java index b6abbdf85..276c9de34 100644 --- a/designer-realize/src/com/fr/start/module/DesignerModuleActivator.java +++ b/designer-realize/src/com/fr/start/module/DesignerModuleActivator.java @@ -14,25 +14,25 @@ import com.fr.stable.module.ModuleListener; * 之后慢慢将DesignerModule拆成Activator */ public class DesignerModuleActivator extends Activator implements Prepare { - + @Override public void start() { - + ModuleContext.registerModuleListener(getModule().upFindSingleton(ModuleListener.class)); ModuleContext.startModule(DesignerModule.class.getName()); ModuleContext.clearModuleListener(); DesignerSocketIO.init(); } - + @Override public void stop() { - + } - + @Override public void prepare() { - + addMutable(InterMutableKey.Path, "com/fr/design/i18n/main", "com/fr/design/i18n/chart"); } } From 30924b65519025f396ebfdeee2d0c0eb57f0a3c8 Mon Sep 17 00:00:00 2001 From: hzzz Date: Wed, 6 Jun 2018 14:31:42 +0800 Subject: [PATCH 3/4] env --- .../src/com/fr/design/utils/DesignUtils.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/designer-base/src/com/fr/design/utils/DesignUtils.java b/designer-base/src/com/fr/design/utils/DesignUtils.java index bfef66ee7..22cf51aba 100644 --- a/designer-base/src/com/fr/design/utils/DesignUtils.java +++ b/designer-base/src/com/fr/design/utils/DesignUtils.java @@ -9,7 +9,6 @@ import com.fr.base.Utils; import com.fr.base.remote.RemoteDeziConstants; import com.fr.core.env.EnvConfig; import com.fr.core.env.EnvContext; -import com.fr.core.env.resource.LocalEnvConfig; import com.fr.dav.DavXMLUtils; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; @@ -193,7 +192,7 @@ public class DesignUtils { * * @param env 需要切换去的环境 */ - public static void switchToEnv(EnvConfig env) throws Exception { + public static void switchToEnv(EnvConfig env) { if (env == null) { return; } @@ -208,16 +207,8 @@ public class DesignUtils { break; } } - EnvConfig oldEnv = EnvContext.currentEnv(); - String oldEnvPath = oldEnv == null ? null : oldEnv.getPath(); - EnvContext.signIn(env); - refreshDesignerFrame(); - // 当换了运行环境,重置服务器,让它下次预览时重启 - if (env instanceof LocalEnvConfig && !ComparatorUtils.equals(env.getPath(), oldEnvPath)) { - StartServer.currentEnvChanged(); - } } public static void refreshDesignerFrame() { From 5d0ff4b4f69aff35354879e454c48ceeb09bb0a6 Mon Sep 17 00:00:00 2001 From: hzzz Date: Wed, 6 Jun 2018 17:29:08 +0800 Subject: [PATCH 4/4] env --- .../fr/design/mainframe/loghandler/DesignerLogHandler.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/designer-base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java b/designer-base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java index 846583538..ef5325215 100644 --- a/designer-base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java +++ b/designer-base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java @@ -1,7 +1,6 @@ package com.fr.design.mainframe.loghandler; import com.fr.base.BaseUtils; -import com.fr.base.ServerConfig; import com.fr.base.FRContext; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.imenu.UIMenuItem; @@ -38,9 +37,9 @@ import java.util.logging.LogRecord; import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER; public class DesignerLogHandler { - protected static final int INFO_INT = com.fr.third.apache.log4j.Level.INFO.toInt(); - protected static final int ERROR_INT = com.fr.third.apache.log4j.Level.ERROR.toInt(); - protected static final int WARN_INT = com.fr.third.apache.log4j.Level.WARN.toInt(); + protected static final int INFO_INT = Level.INFO.intValue(); + protected static final int ERROR_INT = Level.SEVERE.intValue(); + protected static final int WARN_INT = Level.WARNING.intValue(); private static final int GAP_X = -150; private static final int INFO_GAP_Y = -60; private static final int ERRO_GAP_Y = -40;