From 3389d16af77ff3dc7d36e42c6a3693081f4bb23a Mon Sep 17 00:00:00 2001 From: Starryi Date: Thu, 9 Dec 2021 10:49:32 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-63760=20=E3=80=90=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E3=80=91=E6=92=A4=E9=94=80=E4=BB=A5=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E6=A0=B7=E5=BC=8F=E8=AE=BE=E7=BD=AE=E6=9C=89=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20&=20REPORT-64006=20=E3=80=90=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E3=80=91=E5=8D=95=E5=85=83=E6=A0=BC=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=A0=B7=E5=BC=8F=E8=83=8C=E6=99=AF=E8=89=B2?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 ColorBackgroundQuickPane注册监听器ChangeListenerImpl的逻辑不 能丢,因为里面有修改字段backgroundChange的逻辑.所以在监听器重复注 册以及UndoState重复生成时,应该保留ChangeListenerImpl, 而放弃 NewColorSelectBox内部自己注册ChangeListener. 【改动思路】 同上 --- .../ColorBackgroundQuickPane.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ColorBackgroundQuickPane.java b/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ColorBackgroundQuickPane.java index 88bedf17c..9d9eb0058 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ColorBackgroundQuickPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ColorBackgroundQuickPane.java @@ -19,7 +19,17 @@ public class ColorBackgroundQuickPane extends BackgroundQuickPane { public ColorBackgroundQuickPane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - colorSelectBox = new NewColorSelectBox(100); + colorSelectBox = new NewColorSelectBox(100) { + @Override + public boolean shouldResponseChangeListener() { + // ColorBackgroundQuickPane注册监听器ChangeListenerImpl的逻辑不能丢,因为里面有修改字段backgroundChange的逻辑. + // 所以在监听器重复注册以及UndoState重复生成时,应该保留ChangeListenerImpl, 而放弃NewColorSelectBox内部自己注册 + // ChangeListener + // REPORT-63760 【主题切换】撤销以后,样式设置有问题 + // REPORT-64006 【模板主题】单元格自定义样式背景色设置不生效 + return false; + } + }; this.add(colorSelectBox, BorderLayout.NORTH); } @@ -41,14 +51,10 @@ public class ColorBackgroundQuickPane extends BackgroundQuickPane { } @Override - public boolean shouldResponseChangeListener() { - // NewColorSelectBox实现了UIObserver接口,这里就不要重复注册监听器了,以避免产生重复UndoState. - return false; + public void registerChangeListener(final UIObserverListener listener) { + this.colorSelectBox.addSelectChangeListener(new ChangeListenerImpl(listener)); } - @Override - public void registerChangeListener(final UIObserverListener listener) { } - @Override /** * 是否为ColorBackground 类型