diff --git a/designer-base/src/main/java/com/fr/design/gui/UILookAndFeel.java b/designer-base/src/main/java/com/fr/design/gui/UILookAndFeel.java index a8e45b24c..c33f3e0fc 100644 --- a/designer-base/src/main/java/com/fr/design/gui/UILookAndFeel.java +++ b/designer-base/src/main/java/com/fr/design/gui/UILookAndFeel.java @@ -1,5 +1,6 @@ package com.fr.design.gui; +import com.fr.base.svg.IconUtils; import com.fr.design.gui.borders.UIFrameBorder; import com.fr.design.gui.borders.UIInternalFrameBorder; import com.fr.design.gui.borders.UITableHeaderBorder; @@ -160,10 +161,10 @@ public class UILookAndFeel extends MetalLookAndFeel { table.put("Tree.collapsedIcon", loadIcon("TreePlusIcon.png", this)); table.put("Tree.openIcon", loadIcon("TreeFolderOpenedIcon.png", this)); table.put("Tree.closedIcon", loadIcon("TreeFolderClosedIcon.png", this)); - table.put("Tree.leafIcon", loadIcon("TreeLeafIcon.svg", this)); + table.put("Tree.leafIcon", loadIcon("TreeLeafIcon.png", this)); table.put("FileView.directoryIcon", loadIcon("DirectoryIcon.png", this)); table.put("FileView.computerIcon", loadIcon("ComputerIcon.png", this)); - table.put("FileView.fileIcon", loadIcon("FileIcon.svg", this)); + table.put("FileView.fileIcon", IconUtils.readIcon("/com/fr/design/images/lookandfeel/FileIcon.svg")); table.put("FileView.floppyDriveIcon", loadIcon("FloppyIcon.png", this)); table.put("FileView.hardDriveIcon", loadIcon("HarddiskIcon.png", this)); table.put("FileChooser.detailsViewIcon", loadIcon("FileDetailsIcon.png", this)); diff --git a/designer-base/src/main/java/com/fr/design/worker/save/SaveFailureHandler.java b/designer-base/src/main/java/com/fr/design/worker/save/SaveFailureHandler.java index 119668ec6..42ef95978 100644 --- a/designer-base/src/main/java/com/fr/design/worker/save/SaveFailureHandler.java +++ b/designer-base/src/main/java/com/fr/design/worker/save/SaveFailureHandler.java @@ -113,12 +113,14 @@ public class SaveFailureHandler implements ThrowableHandler { new Object[] {Toolkit.i18nText("Fine_Design_Template_SaveAs_Backup"), Toolkit.i18nText("Fine-Design_Basic_Button_Cancel")}, null); if (option == JOptionPane.YES_OPTION) { JTemplate template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); - if (template != null) { + if (JTemplate.isValid(template)) { TemplateUtils.createAndOpenTemplate( Toolkit.i18nText("Fine_Design_Template_Backup"), new FileNodeFILE(new FileNode(template.getPath(), false)), true, - false); + true, + // 创建并打开备份模板后,关闭原模板,无需释放原模板锁(因为已经被超管手动清除了) + () -> HistoryTemplateListCache.getInstance().closeSelectedReport(template)); } } } 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 index 6b7a2f5fb..14b8d5107 100644 --- 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 @@ -13,14 +13,14 @@ import java.util.Map; * 根据本地化信息设置服务器图表空数据提示图标 * * @author obo - * @version 11.0 - * Created by obo on 2023/3/22 + * @since 11.0 + * Created 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 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"); @@ -34,4 +34,5 @@ public class EmptyDataMark implements LocaleMark { BufferedImage result = map.get(GeneralContext.getLocale()); return result == null ? US_EMPTY_DATA : result; } + } diff --git a/designer-realize/src/main/java/com/fr/design/sort/celldscolumn/CellDSColumnSortGroupPane.java b/designer-realize/src/main/java/com/fr/design/sort/celldscolumn/CellDSColumnSortGroupPane.java index 788f1a57c..01c5eafc0 100644 --- a/designer-realize/src/main/java/com/fr/design/sort/celldscolumn/CellDSColumnSortGroupPane.java +++ b/designer-realize/src/main/java/com/fr/design/sort/celldscolumn/CellDSColumnSortGroupPane.java @@ -8,6 +8,8 @@ import com.fr.design.sort.common.AbstractSortItemPane; import com.fr.report.cell.cellattr.core.group.DSColumn; import com.fr.report.core.sort.sortexpression.SortExpression; +import java.util.Map; + public class CellDSColumnSortGroupPane extends AbstractSortGroupPane { DSColumn dsColumn; @@ -24,7 +26,8 @@ public class CellDSColumnSortGroupPane extends AbstractSortGroupPane { CellDSColumnSortItemPane cellDSColumnSortItemPane = new CellDSColumnSortItemPane(sortItemPaneWidth, sortItemPaneRightWidth); java.util.Map tableDataWrapperMap = DesignTableDataManager.getAllEditingDataSet(HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getTarget()); - TableDataWrapper tableDataWrapper = tableDataWrapperMap.get(dsColumn.getDSName()); + Map allDataSetIncludingProcedure = DesignTableDataManager.getAllDataSetIncludingProcedure(tableDataWrapperMap); + TableDataWrapper tableDataWrapper = allDataSetIncludingProcedure.get(dsColumn.getDSName()); if (tableDataWrapper != null) { java.util.List columnNameList = tableDataWrapper.calculateColumnNameList(); String[] columnNames = new String[columnNameList.size()];