From 92342129f5da37be9d0de3bbbe64dbfc7e8ac979 Mon Sep 17 00:00:00 2001 From: Yvan Date: Tue, 19 Jul 2022 11:58:20 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-76076=20=E6=8F=92=E4=BB=B6=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86=E6=9C=BA?= =?UTF-8?q?=E5=88=B6=E4=BC=98=E5=8C=96-=E5=86=85=E7=BD=AE=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E5=A4=9A=E6=97=B6=EF=BC=8C=E6=B6=88=E6=81=AF=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E6=98=BE=E7=A4=BA=E5=BC=82=E5=B8=B8=20=E3=80=90?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=8E=9F=E5=9B=A0=E3=80=91=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E9=80=9A=E7=9F=A5=E4=B8=AD=E5=BF=83=E7=9A=84=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=BC=B9=E7=AA=97=EF=BC=8C=E5=BC=B9=E7=AA=97=E7=9A=84?= =?UTF-8?q?=E5=AE=BD=E5=BA=A6=E6=98=AF=E7=94=B1=E6=B6=88=E6=81=AF=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E9=95=BF=E5=BA=A6=E5=86=B3=E5=AE=9A=E7=9A=84=EF=BC=8C?= =?UTF-8?q?=E6=89=80=E4=BB=A5=E6=8F=92=E4=BB=B6=E8=BF=87=E5=A4=9A=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=BC=9A=E6=8A=8A=E5=BC=B9=E7=AA=97=E6=8B=89=E5=BE=97?= =?UTF-8?q?=E5=BE=88=E9=95=BF=20=E3=80=90=E6=94=B9=E5=8A=A8=E6=80=9D?= =?UTF-8?q?=E8=B7=AF=E3=80=91=E8=B7=9F=E4=BA=A7=E5=93=81=E6=B2=9F=E9=80=9A?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=88=86=E8=A1=8C=E9=80=BB?= =?UTF-8?q?=E8=BE=91=20=E3=80=90review=E5=BB=BA=E8=AE=AE=E3=80=91=E6=97=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../remind/PluginErrorDesignReminder.java | 30 +++++++++++++++---- .../remind/PluginErrorDesignReminderTest.java | 25 ++++++++++++++++ 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/plugin/remind/PluginErrorDesignReminder.java b/designer-base/src/main/java/com/fr/design/plugin/remind/PluginErrorDesignReminder.java index 7128fcc28..6ba1c115b 100644 --- a/designer-base/src/main/java/com/fr/design/plugin/remind/PluginErrorDesignReminder.java +++ b/designer-base/src/main/java/com/fr/design/plugin/remind/PluginErrorDesignReminder.java @@ -7,7 +7,6 @@ import com.fr.design.notification.Notification; import com.fr.design.notification.NotificationCenter; import com.fr.plugin.error.PluginErrorRemindHandler; import com.fr.plugin.error.PluginErrorReminder; -import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import com.fr.stable.collections.CollectionUtils; import com.fr.workspace.WorkContext; @@ -23,9 +22,10 @@ import java.util.List; public class PluginErrorDesignReminder implements PluginErrorReminder { private static final String MESSAGE_ID = "plugin-invalidate-remind"; - private static final String COMMA = "、"; - private static final String COLON = ":"; - private static final String NEW_LINE_TAG = "
"; + public static final String COMMA = "、"; + public static final String COLON = ":"; + public static final String NEW_LINE_TAG = "
"; + private static final int MAX_PLUGIN_NAME_PER_LINE = 3; private static class Holder { private static final PluginErrorDesignReminder INSTANCE = new PluginErrorDesignReminder(); @@ -84,13 +84,33 @@ public class PluginErrorDesignReminder implements PluginErrorReminder { .append(Toolkit.i18nText("Fine-Design_Plugin_Embed_Notice")) .append(COLON) .append(NEW_LINE_TAG) - .append(StableUtils.join(invalidatePluginNames, COMMA)) + .append(NEW_LINE_TAG) + .append(dealWithPluginNames(invalidatePluginNames)) + .append(NEW_LINE_TAG) .append(NEW_LINE_TAG) .append(Toolkit.i18nText("Fine-Design_Plugin_Embed_Description")) .append(NEW_LINE_TAG) .toString(); } + /** + * 处理消息中的插件名称展示 + * 由于Notification那边展示的弹窗是随消息宽度变化的,所以插件名称很多时会变得很长。这里做个分行 + * @return + * @param invalidatePluginNames + */ + public String dealWithPluginNames(List invalidatePluginNames) { + StringBuilder builder = new StringBuilder(); + for (int i = 0; i < invalidatePluginNames.size(); i++) { + String pluginName = invalidatePluginNames.get(i); + builder.append(pluginName); + if (i != invalidatePluginNames.size() - 1) { + builder.append(i % MAX_PLUGIN_NAME_PER_LINE == (MAX_PLUGIN_NAME_PER_LINE - 1) ? NEW_LINE_TAG : COMMA); + } + } + return builder.toString(); + } + /** * 构建通知对象 * @param message diff --git a/designer-base/src/test/java/com/fr/design/plugin/remind/PluginErrorDesignReminderTest.java b/designer-base/src/test/java/com/fr/design/plugin/remind/PluginErrorDesignReminderTest.java index 19f4ba66c..b7df5af5a 100644 --- a/designer-base/src/test/java/com/fr/design/plugin/remind/PluginErrorDesignReminderTest.java +++ b/designer-base/src/test/java/com/fr/design/plugin/remind/PluginErrorDesignReminderTest.java @@ -5,6 +5,7 @@ import com.fr.workspace.WorkContext; import com.fr.workspace.empty.EmptyWorkspace; import junit.framework.TestCase; import org.easymock.EasyMock; +import org.junit.Assert; import org.junit.Before; import org.junit.runner.RunWith; import org.powermock.api.easymock.PowerMock; @@ -12,6 +13,8 @@ import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * @author Yvan @@ -44,4 +47,26 @@ public class PluginErrorDesignReminderTest extends TestCase { PowerMock.verifyAll(); } + + public void testDealWithPluginNames() { + List pluginNames1 = Arrays.asList("1"); + String content1 = PluginErrorDesignReminder.getInstance().dealWithPluginNames(pluginNames1); + Assert.assertFalse(content1.contains(PluginErrorDesignReminder.COMMA)); + Assert.assertFalse(content1.contains(PluginErrorDesignReminder.NEW_LINE_TAG)); + + List pluginNames2 = Arrays.asList("1", "2"); + String content2 = PluginErrorDesignReminder.getInstance().dealWithPluginNames(pluginNames2); + Assert.assertTrue(content2.contains(PluginErrorDesignReminder.COMMA)); + Assert.assertFalse(content2.contains(PluginErrorDesignReminder.NEW_LINE_TAG)); + + List pluginNames3 = Arrays.asList("1", "2", "3", "4"); + String content3 = PluginErrorDesignReminder.getInstance().dealWithPluginNames(pluginNames3); + Assert.assertTrue(content3.contains(PluginErrorDesignReminder.COMMA)); + Assert.assertTrue(content3.contains(PluginErrorDesignReminder.NEW_LINE_TAG)); + + List pluginNames4 = Arrays.asList("1", "2", "3"); + String content4 = PluginErrorDesignReminder.getInstance().dealWithPluginNames(pluginNames4); + Assert.assertTrue(content4.contains(PluginErrorDesignReminder.COMMA)); + Assert.assertFalse(content4.contains(PluginErrorDesignReminder.NEW_LINE_TAG)); + } }