From 24f2f13bf442eb53d19938dd21716a509a24b1b2 Mon Sep 17 00:00:00 2001 From: "alex.sung" Date: Mon, 17 Jun 2019 15:11:57 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E6=B2=A1=E6=9C=89=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=E6=97=B6=E7=94=A8uuid=E4=BD=9C=E4=B8=BA=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/messagecollect/entity/FileEntityBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java index c8ac3b32c0..28d6322c5b 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java @@ -109,7 +109,7 @@ public class FileEntityBuilder { String filePath = FOCUS_POINT_FILE_ROOT_PATH + CoreConstants.SEPARATOR + today + CoreConstants.SEPARATOR + keyFileName; String bbsUserName = MarketConfig.getInstance().getBbsUsername(); String uuid = DesignerEnvManager.getEnvManager().getUUID(); - String name = bbsUserName == null ? uuid : bbsUserName; + String name = StringUtils.isEmpty(bbsUserName) ? uuid : bbsUserName; client.uploadFile(file, filePath, name, FILE_FROM); addMessageQueue(filePath, bbsUserName, uuid); From 3cf0d45159f5370dd9e5ce6bb0e882f65edf8c80 Mon Sep 17 00:00:00 2001 From: "alex.sung" Date: Tue, 18 Jun 2019 09:30:53 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B9=B1=E7=A0=81?= =?UTF-8?q?=E5=92=8C=E5=85=A5=E5=BA=93=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/FileEntityBuilder.java | 31 +------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java index 28d6322c5b..4497a0b28f 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/entity/FileEntityBuilder.java @@ -2,12 +2,9 @@ package com.fr.design.mainframe.messagecollect.entity; import com.fr.config.MarketConfig; import com.fr.design.DesignerEnvManager; -import com.fr.general.CloudCenter; import com.fr.general.CloudClient; import com.fr.general.IOUtils; -import com.fr.general.http.HttpToolbox; import com.fr.json.JSONArray; -import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; import com.fr.stable.CommonUtils; import com.fr.stable.CoreConstants; @@ -22,7 +19,6 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; -import java.util.HashMap; import java.util.UUID; /** @@ -32,11 +28,7 @@ import java.util.UUID; public class FileEntityBuilder { private static final String FOCUS_POINT_FILE_ROOT_PATH = "FocusPoint"; - private static final String FOCUS_POINT_FILE_UPLOAD_TOPIC = "__fine_intelli_file_upload__"; private static final String FILE_FROM = "design"; - private static final String FOCUS_POINT_FILE_UPLOAD_TYPE = "FocusPoint"; - private static final String FOCUS_POINT_FILE_UPLOAD_URL = CloudCenter.getInstance().acquireUrlByKind("design.feedback"); - private static final String FOCUS_POINT_URL_KEY = "focuspoint"; /** * 文件夹路径 @@ -111,27 +103,6 @@ public class FileEntityBuilder { String uuid = DesignerEnvManager.getEnvManager().getUUID(); String name = StringUtils.isEmpty(bbsUserName) ? uuid : bbsUserName; - client.uploadFile(file, filePath, name, FILE_FROM); - addMessageQueue(filePath, bbsUserName, uuid); - } - - private static void addMessageQueue(String filePath, String userName, String uuid) { - JSONObject uploadInfo = new JSONObject(FOCUS_POINT_FILE_UPLOAD_URL); - String focusPointUrl = uploadInfo.optString(FOCUS_POINT_URL_KEY); - try { - HashMap params = new HashMap<>(); - params.put("topic", FOCUS_POINT_FILE_UPLOAD_TOPIC); - params.put("username", URLEncoder.encode(userName, EncodeConstants.ENCODING_UTF_8)); - params.put("uuid", uuid); - params.put("filepath", filePath); - params.put("timestamp", String.valueOf(System.currentTimeMillis())); - params.put("signature", String.valueOf(CommonUtils.signature())); - params.put("type", FOCUS_POINT_FILE_UPLOAD_TYPE); - if(StringUtils.isNotEmpty(focusPointUrl)){ - HttpToolbox.post(focusPointUrl, params); - } - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } + client.uploadFile(file, filePath, URLEncoder.encode(name, EncodeConstants.ENCODING_UTF_8), FILE_FROM); } } From a98259b93025cff9fcc6d8f8948b9c0e889de5e9 Mon Sep 17 00:00:00 2001 From: Hades Date: Fri, 21 Jun 2019 16:20:51 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E5=B0=86=E6=89=80=E6=9C=89=E6=B5=B7?= =?UTF-8?q?=E5=A4=96=E7=89=88=E8=AE=BE=E8=AE=A1=E5=99=A8=E7=9A=84=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=9B=9E=E4=BC=A0=E5=8A=9F=E8=83=BD=E9=98=89=E5=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/DesignerEnvManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java index dcc588fa35..b50f38b73d 100644 --- a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java +++ b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java @@ -688,7 +688,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { * @return 是否加入产品改良 */ public boolean isJoinProductImprove() { - return joinProductImprove; + return Locale.CHINA.equals(GeneralContext.getLocale()) && this.joinProductImprove; } /** From 4e218c7456bb1ab10da554b9d0bdb66eca8469dc Mon Sep 17 00:00:00 2001 From: Hades Date: Tue, 25 Jun 2019 10:08:53 +0800 Subject: [PATCH 04/13] =?UTF-8?q?KERNEL-582=20=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E5=AE=9A=E5=88=B6=E7=9A=84=E5=9C=B0=E6=96=B9=E4=BC=9A=E8=B6=8A?= =?UTF-8?q?=E6=9D=A5=E8=B6=8A=E5=A4=9A=EF=BC=8C=E6=83=B3=E5=8A=9E=E6=B3=95?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E8=BF=99=E7=A7=8Dif=20else=E5=86=99=E6=B3=95?= =?UTF-8?q?=20&&=20REPORT-18522=20=E5=B0=86=E6=89=80=E6=9C=89=E6=B5=B7?= =?UTF-8?q?=E5=A4=96=E7=89=88=E8=AE=BE=E8=AE=A1=E5=99=A8=E7=9A=84=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=9B=9E=E4=BC=A0=E5=8A=9F=E8=83=BD=E9=98=89=E5=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/DesignerEnvManager.java | 6 +++- .../design/actions/community/VideoAction.java | 18 ++++------ .../locale/impl/ProductImproveMark.java | 31 ++++++++++++++++ .../com/fr/design/locale/impl/SplashMark.java | 35 ++++++++++++++++++ .../fr/design/locale/impl/UserInfoMark.java | 36 +++++++++++++++++++ .../com/fr/design/locale/impl/VideoMark.java | 35 ++++++++++++++++++ .../mainframe/toolbar/ToolBarMenuDock.java | 27 +++++++++----- .../start/CollectUserInformationDialog.java | 22 +++--------- .../main/java/com/fr/start/SplashContext.java | 14 +++----- 9 files changed, 176 insertions(+), 48 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/locale/impl/ProductImproveMark.java create mode 100644 designer-base/src/main/java/com/fr/design/locale/impl/SplashMark.java create mode 100644 designer-base/src/main/java/com/fr/design/locale/impl/UserInfoMark.java create mode 100644 designer-base/src/main/java/com/fr/design/locale/impl/VideoMark.java diff --git a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java index b50f38b73d..7370d4d55d 100644 --- a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java +++ b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java @@ -14,6 +14,7 @@ import com.fr.design.env.DesignerWorkspaceType; import com.fr.design.env.LocalDesignerWorkspaceInfo; import com.fr.design.env.RemoteDesignerWorkspaceInfo; import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.locale.impl.ProductImproveMark; import com.fr.design.mainframe.vcs.VcsConfigManager; import com.fr.design.update.push.DesignerPushUpdateConfigManager; import com.fr.design.style.color.ColorSelectConfigManager; @@ -23,6 +24,8 @@ import com.fr.general.ComparatorUtils; import com.fr.general.FRLogFormatter; import com.fr.general.GeneralContext; import com.fr.general.IOUtils; +import com.fr.general.locale.LocaleCenter; +import com.fr.general.locale.LocaleMark; import com.fr.general.xml.GeneralXMLTools; import com.fr.log.FineLoggerFactory; import com.fr.stable.CommonUtils; @@ -688,7 +691,8 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { * @return 是否加入产品改良 */ public boolean isJoinProductImprove() { - return Locale.CHINA.equals(GeneralContext.getLocale()) && this.joinProductImprove; + LocaleMark localeMark = LocaleCenter.getMark(ProductImproveMark.class); + return localeMark.getValue() && this.joinProductImprove; } /** diff --git a/designer-base/src/main/java/com/fr/design/actions/community/VideoAction.java b/designer-base/src/main/java/com/fr/design/actions/community/VideoAction.java index 4fabbd6da6..f3cb21bc70 100644 --- a/designer-base/src/main/java/com/fr/design/actions/community/VideoAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/community/VideoAction.java @@ -1,16 +1,16 @@ package com.fr.design.actions.community; -import com.fr.base.BaseUtils; import com.fr.design.actions.UpdateAction; +import com.fr.design.locale.impl.VideoMark; import com.fr.design.menu.MenuKeySet; import com.fr.design.utils.BrowseUtils; -import com.fr.general.CloudCenter; -import com.fr.general.GeneralContext; import com.fr.general.IOUtils; +import com.fr.general.locale.LocaleCenter; +import com.fr.general.locale.LocaleMark; import javax.swing.*; import java.awt.event.ActionEvent; -import java.util.Locale; + public class VideoAction extends UpdateAction { @@ -27,14 +27,8 @@ public class VideoAction extends UpdateAction @Override public void actionPerformed(ActionEvent arg0) { - String url; - if (GeneralContext.getLocale().equals(Locale.US)) { - url = CloudCenter.getInstance().acquireUrlByKind("bbs.video.en"); - } else { - url = CloudCenter.getInstance().acquireUrlByKind("bbs.video"); - } - BrowseUtils.browser(url); - + LocaleMark localeMark = LocaleCenter.getMark(VideoMark.class); + BrowseUtils.browser(localeMark.getValue()); } public static final MenuKeySet VIDEO = new MenuKeySet() { @Override diff --git a/designer-base/src/main/java/com/fr/design/locale/impl/ProductImproveMark.java b/designer-base/src/main/java/com/fr/design/locale/impl/ProductImproveMark.java new file mode 100644 index 0000000000..b7a05975cb --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/locale/impl/ProductImproveMark.java @@ -0,0 +1,31 @@ +package com.fr.design.locale.impl; + +import com.fr.general.GeneralContext; +import com.fr.general.locale.LocaleMark; + +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +/** + * @author Hades + * @date 2019/6/24 + */ +public class ProductImproveMark implements LocaleMark { + + private Map map = new HashMap<>(); + + public ProductImproveMark() { + map.put(Locale.CHINA, true); + map.put(Locale.TAIWAN, false); + map.put(Locale.US, false); + map.put(Locale.KOREA, false); + map.put(Locale.JAPAN, false); + } + + @Override + public Boolean getValue() { + Boolean result = map.get(GeneralContext.getLocale()); + return result == null ? false : result; + } +} diff --git a/designer-base/src/main/java/com/fr/design/locale/impl/SplashMark.java b/designer-base/src/main/java/com/fr/design/locale/impl/SplashMark.java new file mode 100644 index 0000000000..790108978f --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/locale/impl/SplashMark.java @@ -0,0 +1,35 @@ +package com.fr.design.locale.impl; + +import com.fr.design.DesignerEnvManager; +import com.fr.general.GeneralContext; +import com.fr.general.locale.LocaleMark; + +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +/** + * @author Hades + * @date 2019/6/24 + */ +public class SplashMark implements LocaleMark { + + private Map map = new HashMap(); + private static final String SPLASH_PATH = "/com/fr/design/images/splash_10.gif"; + private static final String SPLASH_EN_PATH = "/com/fr/design/images/splash_10_en.gif"; + private static final String SPLASH_JP_PATH = "/com/fr/design/images/splash_10_jp.gif"; + + public SplashMark() { + map.put(Locale.CHINA, SPLASH_PATH); + map.put(Locale.KOREA, SPLASH_EN_PATH); + map.put(Locale.JAPAN, SPLASH_JP_PATH); + map.put(Locale.US, SPLASH_EN_PATH); + map.put(Locale.TAIWAN, SPLASH_EN_PATH); + } + + @Override + public String getValue() { + String result = map.get(DesignerEnvManager.getEnvManager().getLanguage()); + return result == null ? SPLASH_EN_PATH : result; + } +} diff --git a/designer-base/src/main/java/com/fr/design/locale/impl/UserInfoMark.java b/designer-base/src/main/java/com/fr/design/locale/impl/UserInfoMark.java new file mode 100644 index 0000000000..3739c49f6a --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/locale/impl/UserInfoMark.java @@ -0,0 +1,36 @@ +package com.fr.design.locale.impl; + +import com.fr.general.CloudCenter; +import com.fr.general.GeneralContext; +import com.fr.general.locale.LocaleMark; + +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +/** + * @author Hades + * @date 2019/6/24 + */ +public class UserInfoMark implements LocaleMark { + + private Map map = new HashMap<>(); + private static final String CN_LOGIN_HTML = CloudCenter.getInstance().acquireUrlByKind("frlogin.cn"); + private static final String EN_LOGIN_HTML = CloudCenter.getInstance().acquireUrlByKind("frlogin.en"); + private static final String TW_LOGIN_HTML = CloudCenter.getInstance().acquireUrlByKind("frlogin.tw"); + private static final String JP_LOGIN_HTML = CloudCenter.getInstance().acquireUrlByKind("frlogin.jp"); + + public UserInfoMark() { + map.put(Locale.CHINA, CN_LOGIN_HTML); + map.put(Locale.KOREA, EN_LOGIN_HTML); + map.put(Locale.JAPAN, JP_LOGIN_HTML); + map.put(Locale.US, EN_LOGIN_HTML); + map.put(Locale.TAIWAN, TW_LOGIN_HTML); + } + + @Override + public String getValue() { + String result = map.get(GeneralContext.getLocale()); + return result == null ? EN_LOGIN_HTML : result; + } +} diff --git a/designer-base/src/main/java/com/fr/design/locale/impl/VideoMark.java b/designer-base/src/main/java/com/fr/design/locale/impl/VideoMark.java new file mode 100644 index 0000000000..2071faba3f --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/locale/impl/VideoMark.java @@ -0,0 +1,35 @@ +package com.fr.design.locale.impl; + +import com.fr.general.CloudCenter; +import com.fr.general.GeneralContext; +import com.fr.general.locale.LocaleMark; + +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +/** + * @author Hades + * @date 2019/6/24 + */ +public class VideoMark implements LocaleMark { + + private Map map = new HashMap<>(); + private static final String VIDEO_EN = CloudCenter.getInstance().acquireUrlByKind("bbs.video.en"); + private static final String VIDEO_CN = CloudCenter.getInstance().acquireUrlByKind("bbs.video"); + private static final String VIDEO_TW = CloudCenter.getInstance().acquireUrlByKind("bbs.video.tw"); + + public VideoMark() { + map.put(Locale.CHINA, VIDEO_CN); + map.put(Locale.KOREA, VIDEO_EN); + map.put(Locale.JAPAN, VIDEO_EN); + map.put(Locale.US, VIDEO_EN); + map.put(Locale.TAIWAN, VIDEO_TW); + } + + @Override + public String getValue() { + String result = map.get(GeneralContext.getLocale()); + return result == null ? VIDEO_EN : result; + } +} diff --git a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 7e0d6b3597..bd7bd0a2ad 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -58,6 +58,9 @@ import com.fr.design.remote.action.RemoteDesignAuthManagerAction; import com.fr.design.utils.ThemeUtils; import com.fr.general.ComparatorUtils; import com.fr.general.GeneralContext; +import com.fr.general.locale.LocaleAction; +import com.fr.general.locale.LocaleCenter; +import com.fr.general.locale.impl.SupportLocaleImpl; import com.fr.log.FineLoggerFactory; import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginRuntime; @@ -240,7 +243,7 @@ public abstract class ToolBarMenuDock { public MenuDef[] menus(final ToolBarMenuDockPlus plus) { //删除之前创建的插件菜单监听 clearPluginListeners(); - java.util.List menuList = new java.util.ArrayList(); + final java.util.List menuList = new java.util.ArrayList(); // 添加文件菜单 menuList.add(createFileMenuDef(plus)); @@ -258,10 +261,13 @@ public abstract class ToolBarMenuDock { // 添加帮助菜单 menuList.add(createHelpMenuDef()); - if (GeneralContext.getLocale().equals(Locale.CHINA) || GeneralContext.getLocale().equals(Locale.TAIWAN)) { - // 添加社区菜单 - addCommunityMenuDef(menuList); - } + LocaleCenter.buildAction(new LocaleAction() { + @Override + public void execute() { + addCommunityMenuDef(menuList); + } + }, SupportLocaleImpl.COMMUNITY); + // 添加全部UpdateAction到actionmanager中 addAllUpdateActionsToList(menuList); @@ -532,7 +538,7 @@ public abstract class ToolBarMenuDock { * @return 社区菜单的子菜单 */ public ShortCut[] createCommunityShortCuts() { - java.util.List shortCuts = new ArrayList(); + final java.util.List shortCuts = new ArrayList(); shortCuts.add(new BBSAction()); shortCuts.add(new VideoAction()); shortCuts.add(new TutorialAction()); @@ -543,9 +549,12 @@ public abstract class ToolBarMenuDock { shortCuts.add(new CusDemandAction()); shortCuts.add(new CenterAction()); shortCuts.add(new SignAction()); - if (Locale.TAIWAN.equals(GeneralContext.getLocale())) { - shortCuts.add(new FacebookFansAction()); - } + LocaleCenter.buildAction(new LocaleAction() { + @Override + public void execute() { + shortCuts.add(new FacebookFansAction()); + } + }, SupportLocaleImpl.FACEBOOK); return shortCuts.toArray(new ShortCut[shortCuts.size()]); } diff --git a/designer-realize/src/main/java/com/fr/start/CollectUserInformationDialog.java b/designer-realize/src/main/java/com/fr/start/CollectUserInformationDialog.java index c32c2307d2..139030642c 100644 --- a/designer-realize/src/main/java/com/fr/start/CollectUserInformationDialog.java +++ b/designer-realize/src/main/java/com/fr/start/CollectUserInformationDialog.java @@ -8,11 +8,14 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextarea.DescriptionTextArea; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.locale.impl.UserInfoMark; import com.fr.design.mainframe.ActiveKeyGenerator; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.CloudCenter; import com.fr.general.ComparatorUtils; import com.fr.general.GeneralContext; +import com.fr.general.locale.LocaleCenter; +import com.fr.general.locale.LocaleMark; import javax.swing.*; import javax.swing.border.TitledBorder; @@ -31,11 +34,6 @@ public class CollectUserInformationDialog extends UIDialog { private static final int ONLINE_VERIFY_TIMEOUT = 30 * 1000; - private static final String CN_LOGIN_HTML = CloudCenter.getInstance().acquireUrlByKind("frlogin.cn"); - private static final String EN_LOGIN_HTML = CloudCenter.getInstance().acquireUrlByKind("frlogin.en"); - private static final String TW_LOGIN_HTML = CloudCenter.getInstance().acquireUrlByKind("frlogin.tw"); - private static final String JP_LOGIN_HTML = CloudCenter.getInstance().acquireUrlByKind("frlogin.jp"); - private UITextField keyTextField; private ActionListener actionListener = new ActionListener() { @@ -129,19 +127,9 @@ public class CollectUserInformationDialog extends UIDialog { private void getKeyAction() { - Locale locale = GeneralContext.getLocale(); - String url = EN_LOGIN_HTML; - if (ComparatorUtils.equals(locale, Locale.TAIWAN)) { - url = TW_LOGIN_HTML; - } - if (ComparatorUtils.equals(locale, Locale.CHINA)) { - url = CN_LOGIN_HTML; - } - if (ComparatorUtils.equals(locale, Locale.JAPAN)) { - url = JP_LOGIN_HTML; - } + LocaleMark localeMark = LocaleCenter.getMark(UserInfoMark.class); try { - Desktop.getDesktop().browse(new URI(url)); + Desktop.getDesktop().browse(new URI(localeMark.getValue())); } catch (Exception ignored) { } diff --git a/designer-realize/src/main/java/com/fr/start/SplashContext.java b/designer-realize/src/main/java/com/fr/start/SplashContext.java index 87a4237e0d..ab358e8d71 100644 --- a/designer-realize/src/main/java/com/fr/start/SplashContext.java +++ b/designer-realize/src/main/java/com/fr/start/SplashContext.java @@ -1,12 +1,14 @@ package com.fr.start; -import com.fr.design.DesignerEnvManager; import com.fr.design.i18n.Toolkit; +import com.fr.design.locale.impl.SplashMark; import com.fr.design.mainframe.bbs.BBSConstants; import com.fr.event.Event; import com.fr.event.EventDispatcher; import com.fr.event.Listener; import com.fr.general.GeneralContext; +import com.fr.general.locale.LocaleCenter; +import com.fr.general.locale.LocaleMark; import com.fr.module.ModuleEvent; import com.fr.stable.StringUtils; @@ -168,13 +170,7 @@ public class SplashContext { } private static String getSplashPath() { - Locale locale = DesignerEnvManager.getEnvManager().getLanguage(); - if (Locale.US.equals(locale) || Locale.KOREA.equals(locale) || Locale.TAIWAN.equals(locale)) { - return "/com/fr/design/images/splash_10_en.gif"; - } else if (Locale.JAPAN.equals(locale)) { - return "/com/fr/design/images/splash_10_jp.gif"; - } else { - return "/com/fr/design/images/splash_10.gif"; - } + LocaleMark localeMark = LocaleCenter.getMark(SplashMark.class); + return localeMark.getValue(); } } \ No newline at end of file From 70184cdb0fae354577424e76f6d8c00a4b979649 Mon Sep 17 00:00:00 2001 From: Hades Date: Tue, 25 Jun 2019 10:46:03 +0800 Subject: [PATCH 05/13] update --- .../design/locale/impl/SupportLocaleImpl.java | 44 +++++++++++++++++++ .../mainframe/toolbar/ToolBarMenuDock.java | 2 +- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 designer-base/src/main/java/com/fr/design/locale/impl/SupportLocaleImpl.java diff --git a/designer-base/src/main/java/com/fr/design/locale/impl/SupportLocaleImpl.java b/designer-base/src/main/java/com/fr/design/locale/impl/SupportLocaleImpl.java new file mode 100644 index 0000000000..61de25937c --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/locale/impl/SupportLocaleImpl.java @@ -0,0 +1,44 @@ +package com.fr.design.locale.impl; + +import com.fr.general.locale.SupportLocale; + +import java.util.HashSet; +import java.util.Locale; +import java.util.Set; + +/** + * 某些国际化环境支持的操作 + * 需要增加/删除支持的语言 统一在这里修改 无须改动业务代码 + * 后续有新的不同语言下的差异操作 添加新的枚举 + * @author Hades + * @date 2019/6/24 + */ +public enum SupportLocaleImpl implements SupportLocale { + + /** + * 社区菜单支持的国际化环境 + */ + COMMUNITY { + @Override + public Set support() { + Set set = new HashSet(); + set.add(Locale.CHINA); + set.add(Locale.TAIWAN); + return set; + } + }, + + /** + * Facebook支持的国际化环境 + */ + FACEBOOK { + @Override + public Set support() { + Set set = new HashSet(); + set.add(Locale.TAIWAN); + return set; + } + } + + +} diff --git a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index bd7bd0a2ad..8a739f54f1 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -60,7 +60,7 @@ import com.fr.general.ComparatorUtils; import com.fr.general.GeneralContext; import com.fr.general.locale.LocaleAction; import com.fr.general.locale.LocaleCenter; -import com.fr.general.locale.impl.SupportLocaleImpl; +import com.fr.design.locale.impl.SupportLocaleImpl; import com.fr.log.FineLoggerFactory; import com.fr.plugin.context.PluginContext; import com.fr.plugin.context.PluginRuntime; From cb3f74bc8aabbb304ef8b5d6b5b204838fc59e9c Mon Sep 17 00:00:00 2001 From: Hades Date: Wed, 3 Jul 2019 11:46:13 +0800 Subject: [PATCH 06/13] =?UTF-8?q?REPORT-18955=20=E5=A1=AB=E6=8A=A5?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E9=85=8D=E7=BD=AE=EF=BC=8C=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E7=9A=84=E5=88=A0=E9=99=A4=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E7=81=B0=E8=89=B2=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/write/submit/DBManipulationPane.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java index 2e36ea5d8a..6692155dce 100644 --- a/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java +++ b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java @@ -279,7 +279,12 @@ public class DBManipulationPane extends BasicBeanPane { addSubmitConditionButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - final DSColumnLiteConditionPane conditionPane = new DSColumnLiteConditionPane(); + final DSColumnLiteConditionPane conditionPane = new DSColumnLiteConditionPane() { + @Override + protected boolean isNeedDoWithCondition(Condition liteCondition) { + return liteCondition != null; + } + }; String[] columns = chooseTable.currentColumnNames(); if (columns != null && columns.length > 0) { conditionPane.populateColumns(chooseTable.currentColumnNames()); From faf998dfd801179b578630f131ea7261895a57bc Mon Sep 17 00:00:00 2001 From: Lanlan Date: Wed, 3 Jul 2019 15:30:00 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E5=86=85=E5=AD=98=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=EF=BC=9A=E8=AE=BE=E8=AE=A1=E5=99=A8=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E6=8F=92=E4=BB=B6=E9=9A=8Flic=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E4=B8=8D=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/extra/PluginUtils.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java b/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java index 92a8388647..98e6a75311 100644 --- a/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java +++ b/designer-base/src/main/java/com/fr/design/extra/PluginUtils.java @@ -233,6 +233,8 @@ public class PluginUtils { jo.put("onTrial", pluginContext.isOnTrial()); jo.put("deadline", getDeadline(pluginContext)); jo.put("registerFailed", pluginContext.isRegisterFailed()); + jo.put("selfState", pluginContext.getSelfState()); + jo.put("switchedReason", pluginContext.getSwitchedReason()); ja.put(jo); } }catch (Exception e){ From 8eab15c47338ef53840f1a52611b5c62c9eef811 Mon Sep 17 00:00:00 2001 From: zheng Date: Wed, 3 Jul 2019 16:22:14 +0800 Subject: [PATCH 08/13] =?UTF-8?q?CHART-9576=20=E8=BF=9C=E7=A8=8B=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=20=E8=AE=BE=E8=AE=A1=E5=99=A8=E4=B8=AD=E7=94=A8?= =?UTF-8?q?=E5=AE=9E=E6=97=B6=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../van/chart/drillmap/designer/data/comp/MapDataTree.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/van/chart/drillmap/designer/data/comp/MapDataTree.java b/designer-chart/src/main/java/com/fr/van/chart/drillmap/designer/data/comp/MapDataTree.java index 642630f149..1bbb60e5d3 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/drillmap/designer/data/comp/MapDataTree.java +++ b/designer-chart/src/main/java/com/fr/van/chart/drillmap/designer/data/comp/MapDataTree.java @@ -6,7 +6,6 @@ import com.fr.general.ComparatorUtils; import com.fr.plugin.chart.map.designer.type.GEOJSONTreeHelper; import com.fr.plugin.chart.map.server.ChartGEOJSONHelper; import com.fr.plugin.chart.map.server.CompatibleGEOJSONHelper; -import com.fr.geojson.helper.GEOJSONHelper; import com.fr.stable.StringUtils; import javax.swing.JTree; @@ -98,7 +97,7 @@ public class MapDataTree extends JTree { } String dirPath = el.getUserObject().toString(); String url = CompatibleGEOJSONHelper.getJsonUrlByPathIncludeParam(dirPath); - if (GEOJSONHelper.getInstance().isValidDirPath(dirPath) && ComparatorUtils.equals(jsonUrl, url)){ + if (GEOJSONTreeHelper.isValidDirPath(dirPath) && ComparatorUtils.equals(jsonUrl, url)) { selectTreeNode(el, m_model); return el; } @@ -151,7 +150,7 @@ public class MapDataTree extends JTree { DefaultMutableTreeNode el = els.nextElement(); String path = el.getUserObject().toString(); String fileName = ChartGEOJSONHelper.getPresentNameWithPath(path); - if (GEOJSONHelper.getInstance().isValidDirPath(path) && StringUtils.contains(fileName, text)) { + if (GEOJSONTreeHelper.isValidDirPath(path) && StringUtils.contains(fileName, text)) { selectTreeNode(el, m_model); return; } From ad5153b945ded1ab03e0afeb06a665ea8308e462 Mon Sep 17 00:00:00 2001 From: zack Date: Fri, 5 Jul 2019 11:06:42 +0800 Subject: [PATCH 09/13] =?UTF-8?q?REPORT-18855=20&=20REPORT-18857=20jpg?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E6=8C=81=E4=B9=85=E5=8C=96=E9=81=97=E6=BC=8F?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E4=BA=9B=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/actions/insert/flot/ImageFloatAction.java | 2 +- .../src/main/java/com/fr/design/headerfooter/ImagePane.java | 2 +- .../src/main/java/com/fr/design/mainframe/JWorkBook.java | 4 +--- designer-realize/src/main/java/com/fr/grid/Grid.java | 1 - 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ImageFloatAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ImageFloatAction.java index 9ba3ee9961..d7f98a2122 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ImageFloatAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ImageFloatAction.java @@ -87,7 +87,7 @@ public class ImageFloatAction extends ElementCaseAction { if (selectedFile != null && selectedFile.isFile()) { CellImage cellImage = selectImagePane.update(); - Image image = cellImage.getImage(); + Image image = cellImage.getBufferImage(); JTemplate currentEditingTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); currentEditingTemplate.setPictureElem(floatElement, cellImage); diff --git a/designer-realize/src/main/java/com/fr/design/headerfooter/ImagePane.java b/designer-realize/src/main/java/com/fr/design/headerfooter/ImagePane.java index 1011f8036c..02d46c82aa 100644 --- a/designer-realize/src/main/java/com/fr/design/headerfooter/ImagePane.java +++ b/designer-realize/src/main/java/com/fr/design/headerfooter/ImagePane.java @@ -78,7 +78,7 @@ public class ImagePane extends BasicPane { } public Image update() { - return this.imagePreviewPane.getImage(); + return this.imagePreviewPane.getImageWithSuffix(); } /** diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java index 6e72e98fef..07136bc1ef 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java @@ -68,7 +68,6 @@ import com.fr.file.FILE; import com.fr.file.FileNodeFILE; import com.fr.file.filetree.FileNode; import com.fr.general.ComparatorUtils; -import com.fr.general.ImageWithSuffix; import com.fr.general.ModuleContext; import com.fr.grid.Grid; import com.fr.grid.GridUtils; @@ -90,7 +89,6 @@ import com.fr.report.elementcase.TemplateElementCase; import com.fr.report.poly.PolyWorkSheet; import com.fr.report.worksheet.WorkSheet; import com.fr.stable.ArrayUtils; -import com.fr.stable.CoreGraphHelper; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.module.Module; @@ -623,7 +621,7 @@ public class JWorkBook extends JTemplate { if (workBook instanceof WorkBookAdapter) { elem.setValue(new CellImagePainter(cellImage)); } else { - elem.setValue(ImageWithSuffix.build(cellImage.getImage(),cellImage.getSuffix())); + elem.setValue(cellImage.getImage()); } } diff --git a/designer-realize/src/main/java/com/fr/grid/Grid.java b/designer-realize/src/main/java/com/fr/grid/Grid.java index 16b8924731..19e68a9139 100644 --- a/designer-realize/src/main/java/com/fr/grid/Grid.java +++ b/designer-realize/src/main/java/com/fr/grid/Grid.java @@ -961,7 +961,6 @@ public class Grid extends BaseGridComponent { if (!ComparatorUtils.equals_exactly(oldValue, newValue)) { if (newValue instanceof CellImage) { CellImage cellImage = (CellImage) newValue; - newValue = cellImage.getImage(); JTemplate currentEditingTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); currentEditingTemplate.setPictureElem(selectedFloatElement, cellImage); From 4020cf334a2942ee5de4c694b6bbdf6908d272aa Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Fri, 5 Jul 2019 14:43:44 +0800 Subject: [PATCH 10/13] =?UTF-8?q?REPORT-19058=20=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E6=9A=82=E5=AD=98=E6=96=87=E4=BB=B6=E4=B8=BA?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/file/StashedFILE.java | 5 ++++ .../java/com/fr/file/StashedFILETest.java | 23 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 designer-base/src/test/java/com/fr/file/StashedFILETest.java diff --git a/designer-base/src/main/java/com/fr/file/StashedFILE.java b/designer-base/src/main/java/com/fr/file/StashedFILE.java index 181af28601..454433874e 100644 --- a/designer-base/src/main/java/com/fr/file/StashedFILE.java +++ b/designer-base/src/main/java/com/fr/file/StashedFILE.java @@ -71,4 +71,9 @@ public class StashedFILE extends AbstractFILE { public boolean isEnvFile() { return false; } + + @Override + public String toString() { + return FILEFactory.MEM_PREFIX + getName(); + } } diff --git a/designer-base/src/test/java/com/fr/file/StashedFILETest.java b/designer-base/src/test/java/com/fr/file/StashedFILETest.java new file mode 100644 index 0000000000..f3c358574b --- /dev/null +++ b/designer-base/src/test/java/com/fr/file/StashedFILETest.java @@ -0,0 +1,23 @@ +package com.fr.file; + +import org.easymock.EasyMock; +import org.junit.Assert; +import org.junit.Test; + +public class StashedFILETest { + + /** + * 用于测试暂存文件未保存时的提示 + */ + @Test + public void testToString() { + FILE file = EasyMock.mock(FILE.class); + String name = "getA.cpt"; + EasyMock.expect(file.getName()).andReturn(name).once(); + EasyMock.replay(file); + FILE stashedFILE = new StashedFILE(file, new byte[0]); + String expectString = FILEFactory.MEM_PREFIX + name; + Assert.assertEquals(expectString, stashedFILE + ""); + EasyMock.verify(file); + } +} From 47be65f2c504e3e156caf8fc7a88619bb481c5b1 Mon Sep 17 00:00:00 2001 From: zack Date: Fri, 5 Jul 2019 16:04:32 +0800 Subject: [PATCH 11/13] =?UTF-8?q?REPORT-18855=20=E5=8A=A0=E4=B8=8B?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com.fr/design/mainframe/JFileTest.java | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 designer-realize/src/test/java/com.fr/design/mainframe/JFileTest.java diff --git a/designer-realize/src/test/java/com.fr/design/mainframe/JFileTest.java b/designer-realize/src/test/java/com.fr/design/mainframe/JFileTest.java new file mode 100644 index 0000000000..2d153c920a --- /dev/null +++ b/designer-realize/src/test/java/com.fr/design/mainframe/JFileTest.java @@ -0,0 +1,69 @@ +package com.fr.design.mainframe; + +import com.fr.config.dao.DaoContext; +import com.fr.config.dao.impl.LocalClassHelperDao; +import com.fr.config.dao.impl.LocalEntityDao; +import com.fr.config.dao.impl.LocalXmlEntityDao; +import com.fr.form.main.Form; +import com.fr.form.ui.ElementCaseEditor; +import com.fr.general.ImageWithSuffix; +import com.fr.general.ModuleContext; +import com.fr.main.impl.WorkBook; +import com.fr.report.cell.DefaultTemplateCellElement; +import com.fr.report.cell.TemplateCellElement; +import com.fr.report.cell.cellattr.CellImage; +import com.fr.report.restriction.CellCountRestriction; +import com.fr.report.restriction.ReportRestrictionScene; +import com.fr.report.worksheet.FormElementCase; +import com.fr.report.worksheet.WorkSheet; +import com.fr.restriction.Restrictions; +import com.fr.stable.module.Module; +import com.fr.start.Designer; +import junit.framework.TestCase; +import org.junit.Assert; + +import java.awt.image.BufferedImage; + +public class JFileTest extends TestCase { + @Override + protected void setUp() throws Exception { + DaoContext.setEntityDao(new LocalEntityDao()); + DaoContext.setClassHelperDao(new LocalClassHelperDao()); + DaoContext.setXmlEntityDao(new LocalXmlEntityDao()); + Restrictions.register(ReportRestrictionScene.CELL_COUNT, new CellCountRestriction()); + ModuleContext.startModule(Module.PAGE_MODULE); + ModuleContext.startModule(Module.VIEW_MODULE); + Designer designer = new Designer(new String[0]); + } + + public void testJWorkBook() { + WorkBook workBook = new WorkBook(); + WorkSheet workSheet = new WorkSheet(); + workBook.addReport("sheet1", workSheet); + TemplateCellElement cellElement = new DefaultTemplateCellElement(); + workSheet.addCellElement(cellElement); + ImageWithSuffix imageWithSuffix = ImageWithSuffix.build(new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB), "jpg"); + CellImage cellImage = new CellImage(); + cellImage.setImage(imageWithSuffix); + JWorkBook jWorkBook = new JWorkBook(workBook, "text"); + jWorkBook.setPictureElem(cellElement, cellImage); + Assert.assertEquals(imageWithSuffix, cellElement.getValue()); + } + + public void testJForm() { + Form form = new Form(); + ElementCaseEditor editor = new ElementCaseEditor(); + FormElementCase elementCase = new FormElementCase(); + TemplateCellElement cellElement = new DefaultTemplateCellElement(); + elementCase.addCellElement(cellElement); + editor.setElementCase(elementCase); + form.getContainer().addWidget(editor); + ImageWithSuffix imageWithSuffix = ImageWithSuffix.build(new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB), "jpg"); + CellImage cellImage = new CellImage(); + cellImage.setImage(imageWithSuffix); + JForm jForm = new JForm(); + jForm.setTarget(form); + jForm.setPictureElem(cellElement, cellImage); + Assert.assertEquals(imageWithSuffix, cellElement.getValue()); + } +} \ No newline at end of file From 8c911c3c21339fa3f95b6e6d4ea4946d4201bdae Mon Sep 17 00:00:00 2001 From: zack Date: Fri, 5 Jul 2019 16:05:51 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E6=8D=A2=E4=B8=AA=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/test/java/com.fr/design/mainframe/JFileTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-realize/src/test/java/com.fr/design/mainframe/JFileTest.java b/designer-realize/src/test/java/com.fr/design/mainframe/JFileTest.java index 2d153c920a..3b5bd1a14e 100644 --- a/designer-realize/src/test/java/com.fr/design/mainframe/JFileTest.java +++ b/designer-realize/src/test/java/com.fr/design/mainframe/JFileTest.java @@ -36,7 +36,7 @@ public class JFileTest extends TestCase { Designer designer = new Designer(new String[0]); } - public void testJWorkBook() { + public void testJWorkBookSetPicture() { WorkBook workBook = new WorkBook(); WorkSheet workSheet = new WorkSheet(); workBook.addReport("sheet1", workSheet); @@ -50,7 +50,7 @@ public class JFileTest extends TestCase { Assert.assertEquals(imageWithSuffix, cellElement.getValue()); } - public void testJForm() { + public void testJFormSetPicture() { Form form = new Form(); ElementCaseEditor editor = new ElementCaseEditor(); FormElementCase elementCase = new FormElementCase(); From 2fe09845f647ced64297eff64c4c5f8c1d2b1fcb Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Fri, 5 Jul 2019 17:05:47 +0800 Subject: [PATCH 13/13] =?UTF-8?q?REPORT-19059=20=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=90=8C=E5=90=8D=E7=A8=8B=E5=BA=8F=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E8=BF=98=E6=98=AF=E4=BD=BF=E7=94=A8=E4=B8=8A?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E7=8E=AF=E5=A2=83=E7=9A=84sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/data/DesignTableDataManager.java | 15 +-- .../data/DesignTableDataManagerTest.java | 102 ++++++++++++++++++ 2 files changed, 107 insertions(+), 10 deletions(-) create mode 100644 designer-base/src/test/java/com/fr/design/data/DesignTableDataManagerTest.java diff --git a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java index 9c892de011..44de37ea82 100644 --- a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java +++ b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java @@ -41,7 +41,7 @@ import javax.swing.event.ChangeListener; import java.io.ByteArrayOutputStream; import java.text.Collator; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; @@ -123,6 +123,7 @@ public abstract class DesignTableDataManager { * @param dsNameChangedMap 改变名字的数据集 */ public static void fireDSChanged(Map dsNameChangedMap) { + clearGlobalDs(); if (!dsNameChangedMap.isEmpty()) { setDsNameChangedMap(dsNameChangedMap); } @@ -334,15 +335,9 @@ public abstract class DesignTableDataManager { private static void addStoreProcedureData(java.util.Map resMap) { ProcedureConfig procedureConfig = ProcedureConfig.getInstance(); - String[] namearray = new String[0]; - @SuppressWarnings("unchecked") - java.util.Iterator nameIt = procedureConfig.getProcedures().keySet().iterator(); - while (nameIt.hasNext()) { - namearray = (String[]) ArrayUtils.add(namearray, nameIt.next()); - } - Arrays.sort(namearray, Collator.getInstance(java.util.Locale.CHINA)); - - for (String name : namearray) { + List names = new ArrayList<>(procedureConfig.getProcedures().keySet()); + Collections.sort(names, Collator.getInstance(java.util.Locale.CHINA)); + for (String name : names) { StoreProcedure storeProcedure = procedureConfig.getProcedure(name); if (globalDsCache.containsKey(name)) { resMap.put(name, globalDsCache.get(name)); diff --git a/designer-base/src/test/java/com/fr/design/data/DesignTableDataManagerTest.java b/designer-base/src/test/java/com/fr/design/data/DesignTableDataManagerTest.java new file mode 100644 index 0000000000..8d2f522c06 --- /dev/null +++ b/designer-base/src/test/java/com/fr/design/data/DesignTableDataManagerTest.java @@ -0,0 +1,102 @@ +package com.fr.design.data; + +import com.fr.base.TableData; +import com.fr.data.impl.storeproc.StoreProcedure; +import com.fr.design.data.tabledata.wrapper.TableDataFactory; +import com.fr.design.data.tabledata.wrapper.TableDataWrapper; +import com.fr.file.ProcedureConfig; +import com.fr.file.TableDataConfig; +import org.easymock.EasyMock; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.api.easymock.PowerMock; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor; +import org.powermock.modules.junit4.PowerMockRunner; + +import java.util.HashMap; +import java.util.Map; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({TableDataFactory.class, StoreProcedure.class, TableDataConfig.class, ProcedureConfig.class}) +@SuppressStaticInitializationFor({"com.fr.design.data.tabledata.wrapper.TableDataFactory"}) +public class DesignTableDataManagerTest { + + @Test + public void testFireDataChange() { + + DesignTableDataManager.envChange(); + + + PowerMock.mockStatic(TableDataConfig.class); + + TableDataConfig config = EasyMock.mock(TableDataConfig.class); + TableDataConfig config2 = EasyMock.mock(TableDataConfig.class); + + TableData td1 = EasyMock.mock(TableData.class); + TableData td2 = EasyMock.mock(TableData.class); + TableData td3 = EasyMock.mock(TableData.class); + TableData td4 = EasyMock.mock(TableData.class); + EasyMock.expect(config.getTableData("firstData")).andReturn(td1).once(); + EasyMock.expect(config.getTableData("secondData")).andReturn(td2).once(); + EasyMock.expect(config2.getTableData("firstData")).andReturn(td3).once(); + EasyMock.expect(config2.getTableData("secondData")).andReturn(td4).once(); + + EasyMock.expect(TableDataConfig.getInstance()).andReturn(config).once().andReturn(config2).once(); + + PowerMock.mockStatic(TableDataFactory.class); + EasyMock.expect(TableDataFactory.getSortOfChineseNameOfServerData(config)) + .andReturn(new String[]{"firstData", "secondData"}).once(); + EasyMock.expect(TableDataFactory.getSortOfChineseNameOfServerData(config2)) + .andReturn(new String[]{"firstData", "secondData"}).once(); + + + ProcedureConfig proConfig = EasyMock.mock(ProcedureConfig.class); + StoreProcedure pc1 = PowerMock.createMock(StoreProcedure.class); + StoreProcedure pc2 = PowerMock.createMock(StoreProcedure.class); + ProcedureConfig proConfig2 = EasyMock.mock(ProcedureConfig.class); + StoreProcedure pc3 = PowerMock.createMock(StoreProcedure.class); + StoreProcedure pc4 = PowerMock.createMock(StoreProcedure.class); + + Map procedureMap = new HashMap<>(); + procedureMap.put("firstPRO", pc1); + procedureMap.put("secondPRO", pc2); + EasyMock.expect(proConfig.getProcedure("firstPRO")).andReturn(pc1).once(); + EasyMock.expect(proConfig.getProcedure("secondPRO")).andReturn(pc2).once(); + + Map procedureMap2 = new HashMap<>(); + procedureMap2.put("firstPRO", pc3); + procedureMap2.put("secondPRO", pc4); + EasyMock.expect(proConfig2.getProcedure("firstPRO")).andReturn(pc3).once(); + EasyMock.expect(proConfig2.getProcedure("secondPRO")).andReturn(pc4).once(); + + EasyMock.expect(proConfig.getProcedures()).andReturn(procedureMap).once(); + EasyMock.expect(proConfig2.getProcedures()).andReturn(procedureMap2).once(); + + PowerMock.mockStatic(ProcedureConfig.class); + EasyMock.expect(ProcedureConfig.getInstance()).andReturn(proConfig).once().andReturn(proConfig2).once(); + + EasyMock.replay(proConfig, config, config2, proConfig2); + PowerMock.replay(TableDataFactory.class, TableDataConfig.class, ProcedureConfig.class); + + + Map map = DesignTableDataManager.getAllEditingDataSet(null); + Assert.assertEquals(4, map.size()); + Assert.assertSame(pc1, map.get("firstPRO").getTableData()); + Assert.assertSame(pc2, map.get("secondPRO").getTableData()); + Assert.assertSame(td1, map.get("firstData").getTableData()); + Assert.assertSame(td2, map.get("secondData").getTableData()); + + DesignTableDataManager.fireDSChanged(new HashMap()); + + Map map2 = DesignTableDataManager.getAllEditingDataSet(null); + Assert.assertEquals(4, map2.size()); + Assert.assertSame(pc3, map2.get("firstPRO").getTableData()); + Assert.assertSame(pc4, map2.get("secondPRO").getTableData()); + Assert.assertSame(td3, map2.get("firstData").getTableData()); + Assert.assertSame(td4, map2.get("secondData").getTableData()); + + + } +}