From 688e96673df662477f51ce9a5f2bfd22c6ad9de5 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 3 Sep 2018 17:11:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E4=BD=BF=E5=8E=86=E5=8F=B2=E9=A2=9C=E8=89=B2=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E5=80=BC=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../style/color/ColorSelectConfigManager.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/style/color/ColorSelectConfigManager.java b/designer-base/src/main/java/com/fr/design/style/color/ColorSelectConfigManager.java index aaea88ea9..14307ee53 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/ColorSelectConfigManager.java +++ b/designer-base/src/main/java/com/fr/design/style/color/ColorSelectConfigManager.java @@ -16,7 +16,7 @@ import java.util.List; */ public class ColorSelectConfigManager implements XMLReadable { - // 最近使用的颜色个数 + // 最大存储的最近使用的颜色个数 private int colorNum = 20; // 最近使用颜色 @@ -51,7 +51,7 @@ public class ColorSelectConfigManager implements XMLReadable { } // 过滤重复的最近使用颜色 - // 最近使用的颜色需要放到最前面 + // 最近使用的颜色需要放到"最前面","最前面"是在面板部分做的,是 colors 的逆序,因此保证最新的放在 list 的最后, colors.remove(color); colors.add(color); @@ -78,11 +78,18 @@ public class ColorSelectConfigManager implements XMLReadable { public void writeXML(XMLPrintWriter writer) { writer.startTAG(RECENT_COLOR_TAG); if (this.colors != null && !this.colors.isEmpty()) { - for (int i = 0; i < this.colors.size(); i++) { + // 只应该存储 max 个,其他颜色存了也没用 + // 从 colors 的尾部开始计算,从尾往头数 max 个,但是存储的时候还是要从头往尾 + int size = colors.size(); + + int beginIndex = size > colorNum ? size - colorNum : 0; + + for (int i = beginIndex; i < this.colors.size(); i++) { writer.startTAG(COLOR_TAG); writer.attr("colors", colors.get(i).getRGB()); writer.end(); } + } writer.end(); }