From 38ab2d46119568edb00b81f63c9e66b2db395d68 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Tue, 21 Mar 2023 09:51:47 +0800 Subject: [PATCH 1/3] =?UTF-8?q?REPORT-91743=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E5=85=B3=E9=97=AD=E6=A8=A1=E6=9D=BFA?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F=E8=A7=A6=E5=8F=91=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=EF=BC=8C=E8=AE=BE=E8=AE=A1=E5=99=A8=E9=A1=B5=E9=9D=A2=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E8=BF=98=E6=98=AF=E6=A8=A1=E6=9D=BFA=E7=9A=84?= =?UTF-8?q?=E5=86=85=E5=AE=B9=20=E5=90=8C=E6=AD=A510.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/file/MutilTempalteTabPane.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java b/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java index 047420294a..08fb3a8689 100644 --- a/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java +++ b/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java @@ -766,8 +766,8 @@ public class MutilTempalteTabPane extends JComponent { // 如果关闭的模板是当前选中的模板,则重新激活当前 selectIndex 的模板; // selectIndex 没有变化,但是对应的模板已经变成了前一张模板 if (closeIconIndex == selectedIndex || isCloseCurrent) { - // 如果 closeIconIndex 是最后一个被渲染画出的,那么预览上一个,防止数组越界 - if (closeIconIndex >= maxPaintIndex) { + // 如果当前关闭的模板在最右侧,那么预览上一个,防止数组越界 + if (selectedIndex >= maxPaintIndex) { // selectIndex 不会 <0 因为如果关闭的是打开的最后一个模板,那么关闭之后 openedTemplate.isEmpty() = true selectedIndex--; } @@ -953,6 +953,10 @@ public class MutilTempalteTabPane extends JComponent { return; } } + //参考CloseCurrentTemplateAction,在closeFormat与closeSpecifiedTemplate之前要先设定isCloseCurrent,这样关闭之后才会自动切换tab + if (checkCurrentClose(template)) { + setIsCloseCurrent(true); + } closeFormat(template); closeSpecifiedTemplate(template); DesignerContext.getDesignerFrame().getContentFrame().repaint(); @@ -985,6 +989,12 @@ public class MutilTempalteTabPane extends JComponent { } + private boolean checkCurrentClose(JTemplate template) { + JTemplate currentTemplate = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); + //10.0无JTemplate.isValid + return currentTemplate != null && ComparatorUtils.equals(template.getPath(), currentTemplate.getPath()); + } + private class MultiTemplateTabMouseMotionListener implements MouseMotionListener { /** From 8c6b1de9112dd53188da0a962d13d7ece471d9fd Mon Sep 17 00:00:00 2001 From: obo Date: Wed, 22 Mar 2023 19:49:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?REPORT-82787=20=E5=9B=BE=E8=A1=A8=E7=A9=BA?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8F=90=E7=A4=BA=E9=85=8D=E7=BD=AE=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E9=BB=98=E8=AE=A4=E5=9B=BE=E7=89=87=E9=9C=80?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E7=B9=81=E4=B8=AD=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/locale/impl/EmptyDataMark.java | 37 ++++++++++++++++++ .../module/ChartEmptyDataStylePane.java | 26 +++++------- .../images/zh_traditional_emptydata.png | Bin 0 -> 18659 bytes 3 files changed, 46 insertions(+), 17 deletions(-) create mode 100644 designer-chart/src/main/java/com/fr/design/locale/impl/EmptyDataMark.java create mode 100644 designer-chart/src/main/resources/com/fr/design/images/zh_traditional_emptydata.png diff --git a/designer-chart/src/main/java/com/fr/design/locale/impl/EmptyDataMark.java b/designer-chart/src/main/java/com/fr/design/locale/impl/EmptyDataMark.java new file mode 100644 index 0000000000..6b7a2f5fbd --- /dev/null +++ b/designer-chart/src/main/java/com/fr/design/locale/impl/EmptyDataMark.java @@ -0,0 +1,37 @@ +package com.fr.design.locale.impl; + +import com.fr.general.GeneralContext; +import com.fr.general.IOUtils; +import com.fr.general.locale.LocaleMark; + +import java.awt.image.BufferedImage; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +/** + * 根据本地化信息设置服务器图表空数据提示图标 + * + * @author obo + * @version 11.0 + * Created by obo on 2023/3/22 + */ +public class EmptyDataMark implements LocaleMark { + + private Map map = new HashMap<>(); + + private static final BufferedImage ZH_EMPTY_DATA = IOUtils.readImage("com/fr/design/images/zh_emptydata.png"); + private static final BufferedImage US_EMPTY_DATA = IOUtils.readImage("/com/fr/design/images/us_emptydata.png"); + private static final BufferedImage ZH_TRADITIONAL_EMPTY_DATA = IOUtils.readImage("/com/fr/design/images/zh_traditional_emptydata.png"); + + public EmptyDataMark() { + map.put(Locale.CHINA, ZH_EMPTY_DATA); + map.put(Locale.US, US_EMPTY_DATA); + map.put(Locale.TAIWAN, ZH_TRADITIONAL_EMPTY_DATA); + } + @Override + public BufferedImage getValue() { + BufferedImage result = map.get(GeneralContext.getLocale()); + return result == null ? US_EMPTY_DATA : result; + } +} diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java b/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java index 31718fda82..b4d1100d9f 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java @@ -10,31 +10,23 @@ import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.locale.impl.EmptyDataMark; import com.fr.design.style.background.image.ImageFileChooser; import com.fr.design.style.background.image.ImagePreviewPane; import com.fr.design.utils.ImageUtils; import com.fr.design.utils.gui.GUICoreUtils; -import com.fr.general.GeneralContext; -import com.fr.general.IOUtils; +import com.fr.general.locale.LocaleCenter; +import com.fr.general.locale.LocaleMark; import com.fr.stable.Constants; import com.fr.stable.CoreGraphHelper; import com.fr.stable.StringUtils; -import javax.swing.BorderFactory; -import javax.swing.ButtonGroup; -import javax.swing.JFileChooser; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.SwingWorker; -import java.io.File; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.GridLayout; -import java.awt.Image; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.image.BufferedImage; +import java.io.File; /** * Created by mengao on 2017/11/23. @@ -63,8 +55,8 @@ public class ChartEmptyDataStylePane extends AbstractAttrNoScrollPane { static { - DEFAULT_EMPTY_DATA_IMAGE = GeneralContext.isChineseEnv() ? IOUtils.readImage("com/fr/design/images/zh_emptydata.png") - : IOUtils.readImage("com/fr/design/images/us_emptydata.png"); + LocaleMark localeMark = LocaleCenter.getMark(EmptyDataMark.class); + DEFAULT_EMPTY_DATA_IMAGE = localeMark.getValue(); } @Override diff --git a/designer-chart/src/main/resources/com/fr/design/images/zh_traditional_emptydata.png b/designer-chart/src/main/resources/com/fr/design/images/zh_traditional_emptydata.png new file mode 100644 index 0000000000000000000000000000000000000000..738fa685adb223d384edfe6310251f31365a6830 GIT binary patch literal 18659 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 literal 0 HcmV?d00001 From 09eac6f6afc8e602ce99bbdc753cfc645863047d Mon Sep 17 00:00:00 2001 From: obo Date: Wed, 22 Mar 2023 19:57:25 +0800 Subject: [PATCH 3/3] =?UTF-8?q?REPORT-82787=20=E5=9B=BE=E8=A1=A8=E7=A9=BA?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8F=90=E7=A4=BA=E9=85=8D=E7=BD=AE=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E9=BB=98=E8=AE=A4=E5=9B=BE=E7=89=87=E9=9C=80?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E7=B9=81=E4=B8=AD=E7=89=88=E4=BC=98=E5=8C=96?= =?UTF-8?q?import?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/module/ChartEmptyDataStylePane.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java b/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java index b4d1100d9f..e73bae010e 100644 --- a/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java +++ b/designer-chart/src/main/java/com/fr/design/module/ChartEmptyDataStylePane.java @@ -21,8 +21,18 @@ import com.fr.stable.Constants; import com.fr.stable.CoreGraphHelper; import com.fr.stable.StringUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.ButtonGroup; +import javax.swing.JFileChooser; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.SwingWorker; +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.GridLayout; +import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage;