diff --git a/designer-base/src/main/java/com/fr/design/gui/controlpane/UIControlPane.java b/designer-base/src/main/java/com/fr/design/gui/controlpane/UIControlPane.java index f7229136f..f9a3ed0db 100644 --- a/designer-base/src/main/java/com/fr/design/gui/controlpane/UIControlPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/controlpane/UIControlPane.java @@ -212,7 +212,7 @@ public abstract class UIControlPane extends JControlPane { } // 点击"编辑"按钮,弹出面板 - class PopupEditDialog extends JDialog { + protected class PopupEditDialog extends JDialog { private JComponent editPane; private PopupToolPane popupToolPane; private static final int WIDTH = 570; diff --git a/designer-base/src/main/java/com/fr/start/BaseDesigner.java b/designer-base/src/main/java/com/fr/start/BaseDesigner.java index 2633cedd4..360e9cdfa 100644 --- a/designer-base/src/main/java/com/fr/start/BaseDesigner.java +++ b/designer-base/src/main/java/com/fr/start/BaseDesigner.java @@ -3,6 +3,7 @@ */ package com.fr.start; +import com.fr.base.extension.FileExtension; import com.fr.common.report.ReportState; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; @@ -34,6 +35,7 @@ import com.fr.stable.OperatingSystem; import com.fr.start.event.LazyStartupEvent; import com.fr.workspace.base.WorkspaceStatus; + import java.awt.Window; import java.io.File; import java.lang.reflect.Method; @@ -121,14 +123,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock { } File f = new File(arg); String path = f.getAbsolutePath(); - boolean pathends1 = path.endsWith(".cpt") - || path.endsWith(".xls"); - boolean pathends2 = path.endsWith(".xlsx") - || path.endsWith(".frm"); - boolean pathends3 = path.endsWith(".form") - || path.endsWith(".cht"); - boolean pathends4 = pathends1 || pathends2 || pathends3; - if (pathends4 || path.endsWith(".chart")) { + if (isAcceptFilePathEnd(path)) { file = new FileFILE(f); } } @@ -148,6 +143,21 @@ public abstract class BaseDesigner extends ToolBarMenuDock { } } + private boolean isAcceptFilePathEnd(String path) { + FileExtension[] acceptFileExtensions = new FileExtension[]{ + FileExtension.CPT, FileExtension.XLS, FileExtension.XLSX, FileExtension.FRM, FileExtension.CHT, FileExtension.VIS + }; + for (FileExtension acceptFileExtension : acceptFileExtensions) { + String[] extensions = acceptFileExtension.getExtensions(); + for (String extension : extensions) { + if (path.endsWith("." + extension)) { + return true; + } + } + } + return false; + } + private boolean openFile(final DesignerFrame df, boolean isException, FILE file) { //启动时打开指定文件的接口 diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartUIListControlPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartUIListControlPane.java index ce8253b98..823012f58 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartUIListControlPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartUIListControlPane.java @@ -128,7 +128,7 @@ public abstract class VanChartUIListControlPane extends UIListControlPane implem public void populate(Nameable[] nameableArray) { //特殊处理,使用instanceof判断,弹出不同的面板 - if (SwingUtilities.getWindowAncestor(this) instanceof JDialog) { + if (SwingUtilities.getWindowAncestor(this) instanceof PopupEditDialog) { popupEditDialog = new HyperDialog(cardPane); } super.populate(nameableArray); @@ -136,7 +136,7 @@ public abstract class VanChartUIListControlPane extends UIListControlPane implem protected void popupEditDialog(Point mousePos) { //特殊处理,处理连续弹窗情况,弹出面板定为方式不同 - if (SwingUtilities.getWindowAncestor(this) instanceof JDialog) { + if (SwingUtilities.getWindowAncestor(this) instanceof PopupEditDialog) { GUICoreUtils.centerWindow(popupEditDialog); popupEditDialog.setVisible(true); return;