From 39b9162dafcd350928cda0df2b0a5b29911803d6 Mon Sep 17 00:00:00 2001 From: Starryi Date: Tue, 24 Aug 2021 21:22:30 +0800 Subject: [PATCH 1/5] =?UTF-8?q?REPORT-57984=20=E3=80=90=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E3=80=91=E8=AE=BE=E7=BD=AE=E4=BA=862?= =?UTF-8?q?=E4=B8=AA=E5=90=8C=E6=A0=B7=E4=B8=8D=E5=90=8C=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E7=9A=84=E6=B5=85=E8=89=B2=E4=B8=BB=E9=A2=98=EF=BC=8C=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=97=B6=E5=8B=BE=E9=80=89=E4=BA=862=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 另存为时的主题内存对象与当前主题对象是同一个导致的 【改动思路】 同上 --- .../theme/TemplateThemeProfilePane.java | 58 ++++++++++++------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java index 81915c7708..956fb98ef1 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java @@ -25,6 +25,7 @@ import com.fr.design.mainframe.theme.edit.ui.ColorListPane; import com.fr.design.mainframe.theme.edit.ui.LabelUtils; import com.fr.design.mainframe.theme.ui.BorderUtils; import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; @@ -311,7 +312,11 @@ public abstract class TemplateThemeProfilePane extends } public void populateBean(T theme) { - this.theme = theme; + try { + this.theme = (T) theme.clone(); + } catch (CloneNotSupportedException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } isPopulating = true; String name = theme.getName(); @@ -448,26 +453,7 @@ public abstract class TemplateThemeProfilePane extends confirmButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - T theme = updateBean(); - boolean canBeSaved = checkThemeCanBeSavedAndUpdateUI(true, nameTextField, nameErrorLabel, confirmButton); - if (canBeSaved && theme != null) { - theme.setName(nameTextField.getText()); - theme.setRemovable(true); - theme.setMutable(true); - Configurations.modify(new WorkerFacade(config.getClass()) { - @Override - public void run() { - config.addTheme(theme, true); - } - }.addCallBack(new CallBackAdaptor() { - @Override - public void afterCommit() { - super.afterCommit(); - exit(); - parent.exit(); - } - })); - } + saveAsNew(nameTextField.getText()); } }); @@ -540,6 +526,36 @@ public abstract class TemplateThemeProfilePane extends return container; } + private void saveAsNew(String name) { + T newThemeObject = null; + try { + newThemeObject = (T) updateBean().clone(); + } catch (CloneNotSupportedException ex) { + FineLoggerFactory.getLogger().error(ex.getMessage(), ex); + return; + } + boolean canBeSaved = checkThemeCanBeSavedAndUpdateUI(true, nameTextField, nameErrorLabel, confirmButton); + if (canBeSaved && newThemeObject != null) { + newThemeObject.setName(name); + newThemeObject.setRemovable(true); + newThemeObject.setMutable(true); + T finalNewThemeObject = newThemeObject; + Configurations.modify(new WorkerFacade(config.getClass()) { + @Override + public void run() { + config.addTheme(finalNewThemeObject, true); + } + }.addCallBack(new CallBackAdaptor() { + @Override + public void afterCommit() { + super.afterCommit(); + exit(); + parent.exit(); + } + })); + } + } + public void exit() { this.dispose(); } From 0cbca81a5092745f1e2f8e8f4a82fe8f22501117 Mon Sep 17 00:00:00 2001 From: Starryi Date: Wed, 25 Aug 2021 03:24:54 +0800 Subject: [PATCH 2/5] =?UTF-8?q?REPORT-58010=20=E3=80=90=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E3=80=91=E5=8F=A6=E5=AD=98=E7=9A=84=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E6=98=BE=E7=A4=BA=E4=B8=8E=E4=BA=A4=E4=BA=92=E4=B8=8D?= =?UTF-8?q?=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 修改另存为对话框的界面 【改动思路】 同上 --- .../fr/design/mainframe/theme/TemplateThemeProfilePane.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java index 956fb98ef1..18ccb9a02f 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeProfilePane.java @@ -517,8 +517,9 @@ public abstract class TemplateThemeProfilePane extends JPanel container = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel nameTextPane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane(20, 5); - nameTextPane.add(nameTextField); + nameTextPane.setBorder(BorderFactory.createEmptyBorder(20, 0, 0, 0)); nameTextPane.add(new UILabel(Toolkit.i18nText("Fine-Design_Template_Theme_Save_As_Pane_Name_Label"))); + nameTextPane.add(nameTextField); container.add(nameTextPane, BorderLayout.CENTER); container.add(nameErrorLabel, BorderLayout.SOUTH); From e211f16be5440a0f6a93859c9b230bdf7c8c7390 Mon Sep 17 00:00:00 2001 From: Starryi Date: Wed, 25 Aug 2021 03:47:04 +0800 Subject: [PATCH 3/5] =?UTF-8?q?REPORT-58003=20=E3=80=90=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E3=80=91=E6=A8=A1=E6=9D=BF=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E8=BF=87=E9=95=BF=E6=97=B6=E6=97=A0=E6=B3=95=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 修改主题列表项的界面 【改动思路】 同上 --- .../java/com/fr/design/mainframe/theme/TemplateThemeBlock.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeBlock.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeBlock.java index b61cd97988..541de2ead9 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeBlock.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeBlock.java @@ -104,7 +104,7 @@ public class TemplateThemeBlock extends JPanel { UILabel titleLabel = new UILabel(name); titleLabel.setToolTipText(name); - infoPane.add(titleLabel, BorderLayout.WEST); + infoPane.add(titleLabel, BorderLayout.CENTER); if (profilePane != null) { addProfileButton(infoPane); From d6d262096880290c51658b1beccee540ff99b15b Mon Sep 17 00:00:00 2001 From: Starryi Date: Wed, 25 Aug 2021 03:52:50 +0800 Subject: [PATCH 4/5] =?UTF-8?q?REPORT-57966=20=E3=80=90=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E3=80=91=E6=A8=A1=E6=9D=BF=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=9A=84=E2=88=9A=E6=98=BE=E7=A4=BA=E4=B8=8D?= =?UTF-8?q?=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 动态获取列表项的尺寸,计算图标的位置 【改动思路】 同上 --- .../com/fr/design/mainframe/theme/TemplateThemeBlock.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeBlock.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeBlock.java index 541de2ead9..afb2671103 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeBlock.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/TemplateThemeBlock.java @@ -23,8 +23,10 @@ import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.Image; import java.awt.Rectangle; +import java.awt.RenderingHints; import java.awt.Window; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -179,12 +181,14 @@ public class TemplateThemeBlock extends JPanel { @Override public void paint(Graphics g) { super.paint(g); + Graphics2D g2d = (Graphics2D) g; + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); if (template != null) { TemplateThemeConfig templateUsingConfig = template.getUsingTemplateThemeConfig(); TemplateTheme templateTheme = template.getTemplateTheme(); if (templateUsingConfig == this.config && StringUtils.equals(templateTheme.getName(), name)) { - theme4currentTemplateMarkIcon.paintIcon(this, g, 176, 0); + theme4currentTemplateMarkIcon.paintIcon(this, g, getWidth() - 25, 0); } } From 0f953c1357f5b72b49c6cbf1d25edbc11fd2cef7 Mon Sep 17 00:00:00 2001 From: Starryi Date: Wed, 25 Aug 2021 10:15:14 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=9B=A0=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=EF=BC=8C=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95=E6=9F=A5?= =?UTF-8?q?=E6=89=BE=E5=88=B0=20=E4=B8=BB=E9=A2=98=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=BA=A7=E7=94=9F=E7=9A=84NPE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/mainframe/JTemplate.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index 543a2c3ca8..b88deffda7 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -1715,6 +1715,9 @@ public abstract class JTemplate> protected void setUpTheme4NewTemplate() { TemplateTheme theme = getUsingTemplateThemeConfig().cachedFetchTheme4NewTemplate(); + if (theme != null) { + theme = getUsingTemplateThemeConfig().createNewTheme(); + } TemplateThemeAttrMark themeAttrMark = template.getAttrMark(TemplateThemeAttrMark.XML_TAG); if (themeAttrMark == null) { themeAttrMark = new TemplateThemeAttrMark();