diff --git a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java index f9c9ddab6..f2b1e8e5b 100644 --- a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java +++ b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java @@ -439,9 +439,14 @@ public abstract class DesignTableDataManager { * @throws Exception 异常 */ public static EmbeddedTableData previewTableDataNeedInputParameters(TableDataSource tableDataSource, TableData tabledata, int rowCount, boolean needLoadingBar) throws Exception { - return previewTableData(tableDataSource, tabledata, rowCount, true, needLoadingBar); + return previewTableDataNeedInputParameters(tableDataSource, tabledata, rowCount, needLoadingBar, null); } + public static EmbeddedTableData previewTableDataNeedInputParameters(TableDataSource tableDataSource, TableData tabledata, int rowCount, boolean needLoadingBar, AutoProgressBar progressBar) throws Exception { + return previewTableData(tableDataSource, tabledata, rowCount, true, needLoadingBar, progressBar); + } + + /** * 预览不需要参数的数据集 * @@ -478,7 +483,16 @@ public abstract class DesignTableDataManager { * @return */ private static EmbeddedTableData previewTableData(TableDataSource tableDataSource, TableData tabledata, int rowCount, boolean isMustInputParameters, boolean needLoadingBar) throws Exception { - final AutoProgressBar loadingBar = PreviewTablePane.getInstance().getProgressBar(); + return previewTableData(tableDataSource, tabledata, rowCount, isMustInputParameters, needLoadingBar, null); + } + + private static EmbeddedTableData previewTableData(TableDataSource tableDataSource, TableData tabledata, int rowCount, boolean isMustInputParameters, boolean needLoadingBar, AutoProgressBar progressBar) throws Exception { + final AutoProgressBar loadingBar; + if (progressBar == null) { + loadingBar = PreviewTablePane.getInstance().getProgressBar(); + } else { + loadingBar = progressBar; + } ParameterProvider[] parameters = DataOperator.getInstance().getTableDataParameters(tabledata); if (ArrayUtils.isEmpty(parameters)) { parameters = tabledata.getParameters(Calculator.createCalculator()); diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java index 2cd16b494..8d8e3a48c 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java @@ -372,7 +372,7 @@ public class PreviewTablePane extends BasicPane { connectionBar.close(); } TableDataSource dataSource = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().getTarget(); - previewTableData = DesignTableDataManager.previewTableDataNeedInputParameters(dataSource, tableData, (int) maxPreviewNumberField.getValue(), true); + previewTableData = DesignTableDataManager.previewTableDataNeedInputParameters(dataSource, tableData, (int) maxPreviewNumberField.getValue(), true, progressBar); // parameterInputDialog // update之后的parameters,转成一个parameterMap,用于预览TableData PreviewTableModel previewModel = new PreviewTableModel(previewTableData.createDataModel(null), (int) maxPreviewNumberField.getValue()); diff --git a/designer-base/src/main/java/com/fr/design/locale/impl/SupportLocaleImpl.java b/designer-base/src/main/java/com/fr/design/locale/impl/SupportLocaleImpl.java index e192336d6..904a6c18b 100644 --- a/designer-base/src/main/java/com/fr/design/locale/impl/SupportLocaleImpl.java +++ b/designer-base/src/main/java/com/fr/design/locale/impl/SupportLocaleImpl.java @@ -138,8 +138,9 @@ public enum SupportLocaleImpl implements SupportLocale { @Override public Set support() { Set set = new HashSet(); - set.add(Locale.CHINA); - set.add(Locale.TAIWAN); + set.add(Locale.US); + set.add(Locale.KOREA); + set.add(Locale.JAPAN); return set; } }, @@ -151,9 +152,8 @@ public enum SupportLocaleImpl implements SupportLocale { @Override public Set support() { Set set = new HashSet(); - set.add(Locale.US); - set.add(Locale.KOREA); - set.add(Locale.JAPAN); + set.add(Locale.CHINA); + set.add(Locale.TAIWAN); return set; } } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java index a31b77650..42365dcc5 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java @@ -328,6 +328,8 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta if (DesignModeContext.isAuthorityEditing()) { doResize(); } + //刷新FixedPopupPane的位置 + EastRegionContainerPane.getInstance().freshCurrentPopupPane(); } }); this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); @@ -972,6 +974,8 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta * @param jt 添加的模板. */ public void addAndActivateJTemplate(JTemplate jt) { + //切换文件后清空FixedPopupPane面板 + EastRegionContainerPane.getInstance().clearCurrentPopupPane(); //释放模板对象 ActionFactory.editorRelease(); if (jt == null || jt.getEditingFILE() == null) { @@ -991,6 +995,8 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta * @param jt 模板 */ public void activateJTemplate(JTemplate jt) { + //切换文件后清空FixedPopupPane面板 + EastRegionContainerPane.getInstance().clearCurrentPopupPane(); //释放模板对象 ActionFactory.editorRelease(); if (jt == null || jt.getEditingFILE() == null) { @@ -1101,7 +1107,8 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta * @date 2014-10-14-下午6:31:05 */ private void openFile(FILE tplFile) { - + //切换文件后清空FixedPopupPane面板 + EastRegionContainerPane.getInstance().clearCurrentPopupPane(); if (tplFile != null) { int index = HistoryTemplateListCache.getInstance().contains(tplFile); if (index != -1) { diff --git a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java index 35ab552f5..5d4a240dd 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/EastRegionContainerPane.java @@ -67,6 +67,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { private JPanel leftPane; private JPanel rightPane; private FixedPopupPane currentPopupPane; + private UIButton currentButton; private static final int CONTAINER_WIDTH = containerWidth(); private static final int TAB_WIDTH = 38; private static final int TAB_BUTTON_WIDTH = 32; @@ -495,17 +496,17 @@ public class EastRegionContainerPane extends UIEastResizableContainer { public void replaceAuthorityEditionPane(JComponent pane) { propertyItemMap.get(KEY_AUTHORITY_EDITION).replaceContentPane(pane); } - + public JComponent getAuthorityEditionPane() { return propertyItemMap.get(KEY_AUTHORITY_EDITION).getContentPane(); } - + public void replaceConfiguredRolesPane(JComponent pane) { propertyItemMap.get(KEY_CONFIGURED_ROLES).replaceContentPane(pane); } - + public void replaceKeyPane(final String key, final JComponent pane) { - + //需要放到 ui 线程中处理 UIUtil.invokeLaterIfNeeded(new Runnable() { @Override @@ -514,11 +515,11 @@ public class EastRegionContainerPane extends UIEastResizableContainer { } }); } - + public JComponent getConfiguredRolesPane() { return propertyItemMap.get(KEY_CONFIGURED_ROLES).getContentPane(); } - + public void addParameterPane(JComponent paraPane) { propertyItemMap.get(KEY_WIDGET_SETTINGS).replaceHeaderPane(paraPane); } @@ -929,6 +930,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { } else { hideCurrentPopupPane(); currentPopupPane = popupPane; + currentButton = button; GUICoreUtils.showPopupMenu(popupPane, button, -popupPane.getPreferredSize().width, 0); } } @@ -1009,6 +1011,35 @@ public class EastRegionContainerPane extends UIEastResizableContainer { } } + /** + * @Description:刷新currentPopupPane面板位置,当设计器缩放时会调用这个函数 + * @param + * @return: + * @Author: Henry.Wang + * @date: 2020/7/30 11:39 + */ + public void freshCurrentPopupPane() { + if(currentPopupPane.isVisible()){ + hideCurrentPopupPane(); + if (currentPopupPane != null && currentButton != null && !isRightPaneVisible()) { + GUICoreUtils.showPopupMenu(currentPopupPane, currentButton, -currentPopupPane.getPreferredSize().width, 0); + } + } + } + + /** + * @Description:清空currentPopupPane数据,当切换模板时会调用这个函数 + * @param + * @return: + * @Author: Henry.Wang + * @date: 2020/7/30 11:42 + */ + public void clearCurrentPopupPane() { + hideCurrentPopupPane(); + currentPopupPane = null; + currentButton = null; + } + // 弹出属性面板的工具条 private class PopupToolPane extends JPanel { private String title; diff --git a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 775b03747..c81c6749f 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -592,7 +592,12 @@ public abstract class ToolBarMenuDock { shortCuts.add(SeparatorDef.DEFAULT); shortCuts.add(new VideoAction()); - shortCuts.add(new TutorialAction()); + LocaleCenter.buildAction(new LocaleAction() { + @Override + public void execute() { + shortCuts.add(new TutorialAction()); + } + }, SupportLocaleImpl.TUTORIAL_COMMUNITY); shortCuts.add(new QuestionAction()); shortCuts.add(new TechSolutionAction()); @@ -625,13 +630,6 @@ public abstract class ToolBarMenuDock { shortCuts.add(new TechSupportAction()); } }, SupportLocaleImpl.TECH_SUPPORT_COMMUNITY); - - LocaleCenter.buildAction(new LocaleAction() { - @Override - public void execute() { - shortCuts.add(new TutorialAction()); - } - }, SupportLocaleImpl.TUTORIAL_COMMUNITY); shortCuts.add(SeparatorDef.DEFAULT); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsCacheFileNodeFile.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsCacheFileNodeFile.java index 67ab8dfb0..16062c293 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsCacheFileNodeFile.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/common/VcsCacheFileNodeFile.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.vcs.common; +import com.fr.io.FineEncryptUtils; import com.fr.base.io.XMLEncryptUtils; import com.fr.file.FileNodeFILE; import com.fr.file.filetree.FileNode; @@ -48,7 +49,7 @@ public class VcsCacheFileNodeFile extends FileNodeFILE { ); return envPath.endsWith(".cpt") || envPath.endsWith(".frm") - ? XMLEncryptUtils.decodeInputStream(in) : in; + ? XMLEncryptUtils.decodeInputStream(FineEncryptUtils.decode(in)) : in; } diff --git a/designer-base/src/main/java/com/fr/file/FileFILE.java b/designer-base/src/main/java/com/fr/file/FileFILE.java index c4f58fa1a..fca6835bf 100644 --- a/designer-base/src/main/java/com/fr/file/FileFILE.java +++ b/designer-base/src/main/java/com/fr/file/FileFILE.java @@ -1,5 +1,6 @@ package com.fr.file; +import com.fr.io.FineEncryptUtils; import com.fr.base.io.XMLEncryptUtils; import com.fr.design.gui.itree.filetree.FileComparator; import com.fr.design.gui.itree.filetree.FileTreeIcon; @@ -186,7 +187,7 @@ public class FileFILE implements FILE { public InputStream asInputStream() throws Exception { InputStream in = new java.io.FileInputStream(file); return file.getName().endsWith(".cpt") || file.getName().endsWith(".frm") - ? XMLEncryptUtils.decodeInputStream(EncryptUtils.decodeInputStream(in)) : in; + ? XMLEncryptUtils.decodeInputStream(EncryptUtils.decodeInputStream(FineEncryptUtils.decode(in))) : in; } /** diff --git a/designer-base/src/main/java/com/fr/file/FileNodeFILE.java b/designer-base/src/main/java/com/fr/file/FileNodeFILE.java index 138cfe345..b033d229b 100644 --- a/designer-base/src/main/java/com/fr/file/FileNodeFILE.java +++ b/designer-base/src/main/java/com/fr/file/FileNodeFILE.java @@ -2,6 +2,7 @@ package com.fr.file; import com.fr.base.BaseUtils; import com.fr.base.FRContext; +import com.fr.io.FineEncryptUtils; import com.fr.base.io.XMLEncryptUtils; import com.fr.design.file.NodeAuthProcessor; import com.fr.design.gui.itree.filetree.FileNodeComparator; @@ -388,7 +389,7 @@ public class FileNodeFILE implements FILE { ); return envPath.endsWith(".cpt") || envPath.endsWith(".frm") - ? XMLEncryptUtils.decodeInputStream(EncryptUtils.decodeInputStream(in)) : in; + ? XMLEncryptUtils.decodeInputStream(EncryptUtils.decodeInputStream(FineEncryptUtils.decode(in))) : in; } /**