Browse Source

REPORT-59770 【主题切换】编辑主题时,主题配色修改以后,细节配置和整体预览里的颜色没有相应联动

【问题原因】
修复刷新界面时,触发fireChange导致数据改变的问题

【改动思路】
同上
final/11.0
Starryi 3 years ago
parent
commit
13944cc934
  1. 2
      designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java
  2. 7
      designer-base/src/main/java/com/fr/design/mainframe/theme/edit/ui/ColorListPane.java

2
designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java

@ -111,7 +111,7 @@ public abstract class TemplateThemeProfilePane<T extends TemplateTheme> extends
addAttributeChangeListener(new AttributeChangeListener() { addAttributeChangeListener(new AttributeChangeListener() {
@Override @Override
public void attributeChange() { public void attributeChange() {
if (!isPopulating) { if (!isPopulating && !refreshingThemedColor) {
valueChangeAction(); valueChangeAction();
} }
} }

7
designer-base/src/main/java/com/fr/design/mainframe/theme/edit/ui/ColorListPane.java

@ -40,6 +40,8 @@ public class ColorListPane extends JPanel implements UIObserver {
private final EventListenerList colorChangeListenerList = new EventListenerList(); private final EventListenerList colorChangeListenerList = new EventListenerList();
private UIObserverListener uiObserverListener; private UIObserverListener uiObserverListener;
private boolean isPopulating = false;
public ColorListPane() { public ColorListPane() {
this(DEFAULT_COLOR_COUNT, DEFAULT_COLOR_SIZE, DEFAULT_COLOR_GAP); this(DEFAULT_COLOR_COUNT, DEFAULT_COLOR_SIZE, DEFAULT_COLOR_GAP);
} }
@ -61,6 +63,9 @@ public class ColorListPane extends JPanel implements UIObserver {
colorButton.addChangeListener(new ChangeListener() { colorButton.addChangeListener(new ChangeListener() {
@Override @Override
public void stateChanged(ChangeEvent e) { public void stateChanged(ChangeEvent e) {
if (isPopulating) {
return;
}
colorList.set(index, colorButton.getSelectObject()); colorList.set(index, colorButton.getSelectObject());
fireColorStateChanged(); fireColorStateChanged();
} }
@ -88,6 +93,7 @@ public class ColorListPane extends JPanel implements UIObserver {
} }
public void populate(List<Color> colors) { public void populate(List<Color> colors) {
isPopulating = true;
colorList.clear(); colorList.clear();
for (int i = 0; i < colors.size(); i++) { for (int i = 0; i < colors.size(); i++) {
Color color = colors.get(i); Color color = colors.get(i);
@ -96,6 +102,7 @@ public class ColorListPane extends JPanel implements UIObserver {
colorButtons.get(i).setSelectObject(color); colorButtons.get(i).setSelectObject(color);
} }
} }
isPopulating = false;
} }
public List<Color> update() { public List<Color> update() {

Loading…
Cancel
Save