Browse Source

无JIRA任务,使历史颜色存储最大值生效

final/10.0
yaoh.wu 6 years ago
parent
commit
688e96673d
  1. 13
      designer-base/src/main/java/com/fr/design/style/color/ColorSelectConfigManager.java

13
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 { public class ColorSelectConfigManager implements XMLReadable {
// 最近使用的颜色个数 // 最大存储的最近使用的颜色个数
private int colorNum = 20; private int colorNum = 20;
// 最近使用颜色 // 最近使用颜色
@ -51,7 +51,7 @@ public class ColorSelectConfigManager implements XMLReadable {
} }
// 过滤重复的最近使用颜色 // 过滤重复的最近使用颜色
// 最近使用的颜色需要放到最前面 // 最近使用的颜色需要放到"最前面","最前面"是在面板部分做的,是 colors 的逆序,因此保证最新的放在 list 的最后,
colors.remove(color); colors.remove(color);
colors.add(color); colors.add(color);
@ -78,11 +78,18 @@ public class ColorSelectConfigManager implements XMLReadable {
public void writeXML(XMLPrintWriter writer) { public void writeXML(XMLPrintWriter writer) {
writer.startTAG(RECENT_COLOR_TAG); writer.startTAG(RECENT_COLOR_TAG);
if (this.colors != null && !this.colors.isEmpty()) { 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.startTAG(COLOR_TAG);
writer.attr("colors", colors.get(i).getRGB()); writer.attr("colors", colors.get(i).getRGB());
writer.end(); writer.end();
} }
} }
writer.end(); writer.end();
} }

Loading…
Cancel
Save