diff --git a/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java b/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java index 946cfe450..15c6cb705 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java @@ -7,8 +7,8 @@ import com.fr.design.data.datapane.connect.DatabaseConnectionPane; import com.fr.design.dialog.BasicDialog; import com.fr.design.gui.NameInspector; import com.fr.design.menu.MenuKeySet; -import com.fr.design.os.OSBasedAction; -import com.fr.design.os.OSSupportCenter; +import com.fr.stable.os.support.OSBasedAction; +import com.fr.stable.os.support.OSSupportCenter; import com.fr.design.os.impl.DatabaseDialogAction; import com.fr.file.ConnectionConfig; import com.fr.general.IOUtils; diff --git a/designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java b/designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java index 96e17fa75..7b41f6fd8 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java @@ -2,10 +2,10 @@ package com.fr.design.actions.server; import com.fr.design.actions.UpdateAction; import com.fr.design.menu.MenuKeySet; -import com.fr.design.os.OSBasedAction; -import com.fr.design.os.OSSupportCenter; import com.fr.design.os.impl.PMDialogAction; import com.fr.general.IOUtils; +import com.fr.stable.os.support.OSBasedAction; +import com.fr.stable.os.support.OSSupportCenter; import javax.swing.*; import java.awt.event.ActionEvent; diff --git a/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java b/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java index 1480d7f12..90318823f 100644 --- a/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java +++ b/designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java @@ -3,8 +3,8 @@ package com.fr.design.gui.iprogressbar; import com.fr.design.constants.UIConstants; import com.fr.design.dialog.UIDialog; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.os.OSBasedAction; -import com.fr.design.os.OSSupportCenter; +import com.fr.stable.os.support.OSBasedAction; +import com.fr.stable.os.support.OSSupportCenter; import com.fr.design.os.impl.SupportOSImpl; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.FRFont; 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 ee2cc2f2e..c0183fb0f 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 @@ -40,8 +40,6 @@ import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; import com.fr.design.mainframe.vcs.common.VcsHelper; import com.fr.design.menu.MenuManager; import com.fr.design.menu.ShortCut; -import com.fr.design.os.OSBasedAction; -import com.fr.design.os.OSSupportCenter; import com.fr.design.os.impl.SupportOSImpl; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.event.EventDispatcher; @@ -61,6 +59,8 @@ import com.fr.stable.OperatingSystem; import com.fr.stable.ProductConstants; import com.fr.stable.StringUtils; import com.fr.stable.image4j.codec.ico.ICODecoder; +import com.fr.stable.os.support.OSBasedAction; +import com.fr.stable.os.support.OSSupportCenter; import com.fr.stable.project.ProjectConstants; import com.fr.start.OemHandler; import com.fr.workspace.WorkContext; 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 fafc89efa..c24ac2484 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 @@ -54,8 +54,6 @@ import com.fr.design.menu.MenuDef; import com.fr.design.menu.SeparatorDef; import com.fr.design.menu.ShortCut; import com.fr.design.menu.ToolBarDef; -import com.fr.design.os.OSBasedAction; -import com.fr.design.os.OSSupportCenter; import com.fr.design.os.impl.SupportOSImpl; import com.fr.design.remote.action.RemoteDesignAuthManagerAction; import com.fr.design.update.actions.SoftwareUpdateAction; @@ -73,6 +71,8 @@ import com.fr.plugin.observer.PluginEventListener; import com.fr.plugin.observer.PluginEventType; import com.fr.stable.ArrayUtils; import com.fr.stable.StringUtils; +import com.fr.stable.os.support.OSBasedAction; +import com.fr.stable.os.support.OSSupportCenter; import com.fr.start.OemHandler; import com.fr.workspace.WorkContext; import org.jetbrains.annotations.Nullable; diff --git a/designer-base/src/main/java/com/fr/design/os/OSBasedAction.java b/designer-base/src/main/java/com/fr/design/os/OSBasedAction.java deleted file mode 100644 index 3a7540d5e..000000000 --- a/designer-base/src/main/java/com/fr/design/os/OSBasedAction.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.fr.design.os; - -public interface OSBasedAction { - void execute(); -} diff --git a/designer-base/src/main/java/com/fr/design/os/OSSupportCenter.java b/designer-base/src/main/java/com/fr/design/os/OSSupportCenter.java deleted file mode 100644 index 9945e2dd7..000000000 --- a/designer-base/src/main/java/com/fr/design/os/OSSupportCenter.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.fr.design.os; - -import com.fr.invoke.Reflect; -import java.util.HashMap; -import java.util.Map; - -public class OSSupportCenter { - - private static Map,OSBasedAction> osBasedActionMap = new HashMap,OSBasedAction>(); - public static void buildAction(OSBasedAction action, SupportOS supportOS){ - if(supportOS.support()){ - action.execute(); - } - } - - public static T getAction(Class clazz) { - OSBasedAction action = osBasedActionMap.get(clazz); - if(action == null){ - action = Reflect.on(clazz).create().get(); - osBasedActionMap.put(clazz,action); - } - return (T) action; - } -} diff --git a/designer-base/src/main/java/com/fr/design/os/SupportOS.java b/designer-base/src/main/java/com/fr/design/os/SupportOS.java deleted file mode 100644 index 9f25b39a2..000000000 --- a/designer-base/src/main/java/com/fr/design/os/SupportOS.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.fr.design.os; - -public interface SupportOS { - //判断是否支持 - boolean support(); -} diff --git a/designer-base/src/main/java/com/fr/design/os/impl/DatabaseDialogAction.java b/designer-base/src/main/java/com/fr/design/os/impl/DatabaseDialogAction.java index 1e7ef3566..a47b94cc1 100644 --- a/designer-base/src/main/java/com/fr/design/os/impl/DatabaseDialogAction.java +++ b/designer-base/src/main/java/com/fr/design/os/impl/DatabaseDialogAction.java @@ -7,15 +7,19 @@ import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; -import com.fr.design.os.OSBasedAction; import com.fr.file.ConnectionConfig; import com.fr.stable.os.OperatingSystem; +import com.fr.stable.os.support.OSBasedAction; import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.Configurations; import com.fr.transaction.WorkerFacade; import static com.fr.design.actions.server.ConnectionListAction.doWithDatasourceManager; -//数据连接窗口 +/** + * 数据连接窗口 + * @author pengda + * @date 2019/10/9 + */ public class DatabaseDialogAction implements OSBasedAction { @Override diff --git a/designer-base/src/main/java/com/fr/design/os/impl/DemoAction.java b/designer-base/src/main/java/com/fr/design/os/impl/DemoAction.java new file mode 100644 index 000000000..412213184 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/os/impl/DemoAction.java @@ -0,0 +1,59 @@ +package com.fr.design.os.impl; + +import com.fr.log.FineLoggerFactory; +import com.fr.stable.StableUtils; +import com.fr.stable.os.OperatingSystem; +import com.fr.stable.os.support.OSBasedAction; + +import java.io.IOException; +/** + * @author pengda + * @date 2019/10/9 + */ +public class DemoAction implements OSBasedAction { + + @Override + public void execute() { + String installHome = StableUtils.getInstallHome(); + if (installHome == null) { + FineLoggerFactory.getLogger().error("Can not find the install home, please check it."); + return; + } + + String executorPath; + + if (OperatingSystem.isMacos()) { + executorPath = StableUtils.pathJoin(installHome, "bin", "designer.app"); + } else if(OperatingSystem.isWindows()){ + executorPath = StableUtils.pathJoin(installHome, "bin", "designer.exe demo"); + }else{ + executorPath = StableUtils.pathJoin(installHome, "bin", "designer.sh demo"); + } + + if (OperatingSystem.isMacos()) { + ProcessBuilder builder = new ProcessBuilder(); + builder.command("open", "-a", executorPath, "--args", "demo"); + try { + builder.start(); + } catch (IOException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + } else if(OperatingSystem.isWindows()){ + // ProcessBuilder这种方式在window下报错:系统找不到指定文件 + Runtime rt = Runtime.getRuntime(); + try { + rt.exec(executorPath); + } catch (IOException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + }else{ + //先用和win一样的方式 + Runtime rt = Runtime.getRuntime(); + try { + rt.exec(executorPath); + } catch (IOException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + } + } +} diff --git a/designer-base/src/main/java/com/fr/design/os/impl/PMDialogAction.java b/designer-base/src/main/java/com/fr/design/os/impl/PMDialogAction.java index e853e2aeb..0595d887c 100644 --- a/designer-base/src/main/java/com/fr/design/os/impl/PMDialogAction.java +++ b/designer-base/src/main/java/com/fr/design/os/impl/PMDialogAction.java @@ -2,13 +2,17 @@ package com.fr.design.os.impl; import com.fr.config.ServerPreferenceConfig; import com.fr.design.extra.WebViewDlgHelper; -import com.fr.design.os.OSBasedAction; import com.fr.design.upm.UpmFinder; import com.fr.design.utils.DesignUtils; import com.fr.stable.os.Arch; import com.fr.stable.os.OperatingSystem; +import com.fr.stable.os.support.OSBasedAction; -//插件管理窗口 +/** + * 插件管理窗口 + * @author pengda + * @date 2019/10/9 + */ public class PMDialogAction implements OSBasedAction { private static String PLUGIN_MANAGER_ROUTE = "#management/plugin"; @Override diff --git a/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java b/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java index 0f1665be0..dc7ea4954 100644 --- a/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java +++ b/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java @@ -1,23 +1,33 @@ package com.fr.design.os.impl; -import com.fr.design.os.SupportOS; import com.fr.stable.os.Arch; import com.fr.stable.os.OperatingSystem; - +import com.fr.stable.os.support.SupportOS; +/** + * @author pengda + * @date 2019/10/9 + */ public enum SupportOSImpl implements SupportOS { - //登录 + + /** + * ARM下屏蔽登录 + */ USERINFOPANE{ public boolean support(){ return Arch.getArch() != Arch.ARM; } }, - //透明度 + /** + * Linux系统屏蔽透明度 + */ OPACITY{ public boolean support(){ return !OperatingSystem.isLinux(); } }, - //FineUI选项 + /** + * Linux系统屏蔽FineUI选项 + */ FINEUI{ public boolean support(){ return !OperatingSystem.isLinux(); diff --git a/designer-base/src/main/java/com/fr/design/os/impl/UpdateDialogAction.java b/designer-base/src/main/java/com/fr/design/os/impl/UpdateDialogAction.java index 8047528bf..f0a2a0ee8 100644 --- a/designer-base/src/main/java/com/fr/design/os/impl/UpdateDialogAction.java +++ b/designer-base/src/main/java/com/fr/design/os/impl/UpdateDialogAction.java @@ -1,12 +1,16 @@ package com.fr.design.os.impl; import com.fr.design.mainframe.DesignerContext; -import com.fr.design.os.OSBasedAction; import com.fr.design.update.ui.dialog.UpdateMainDialog; import com.fr.design.utils.DesignUtils; import com.fr.stable.os.OperatingSystem; +import com.fr.stable.os.support.OSBasedAction; -//更新升级窗口 +/** + * 更新升级窗口 + * @author pengda + * @date 2019/10/9 + */ public class UpdateDialogAction implements OSBasedAction { private static String UPDATE_ROUTE = "#management/backup"; @Override @@ -18,5 +22,4 @@ public class UpdateDialogAction implements OSBasedAction { DesignUtils.visitEnvServerByParameters( UPDATE_ROUTE,null,null); } } - } diff --git a/designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java b/designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java index eda560ce5..d65d8fec5 100644 --- a/designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java +++ b/designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java @@ -2,9 +2,9 @@ package com.fr.design.update.actions; import com.fr.base.BaseUtils; import com.fr.design.actions.UpdateAction; -import com.fr.design.os.OSBasedAction; -import com.fr.design.os.OSSupportCenter; import com.fr.design.os.impl.UpdateDialogAction; +import com.fr.stable.os.support.OSBasedAction; +import com.fr.stable.os.support.OSSupportCenter; import java.awt.event.ActionEvent; diff --git a/designer-base/src/main/java/com/fr/start/Demo.java b/designer-base/src/main/java/com/fr/start/Demo.java index 820d71ccf..58f4050fd 100644 --- a/designer-base/src/main/java/com/fr/start/Demo.java +++ b/designer-base/src/main/java/com/fr/start/Demo.java @@ -1,56 +1,13 @@ package com.fr.start; - -import com.fr.log.FineLoggerFactory; -import com.fr.stable.os.OperatingSystem; -import com.fr.stable.StableUtils; - -import java.io.IOException; +import com.fr.design.os.impl.DemoAction; +import com.fr.stable.os.support.OSBasedAction; +import com.fr.stable.os.support.OSSupportCenter; public class Demo { public static void main(String[] args) { - String installHome = StableUtils.getInstallHome(); - if (installHome == null) { - FineLoggerFactory.getLogger().error("Can not find the install home, please check it."); - return; - } - - String executorPath; - - if (OperatingSystem.isMacos()) { - executorPath = StableUtils.pathJoin(installHome, "bin", "designer.app"); - } else if(OperatingSystem.isWindows()){ - executorPath = StableUtils.pathJoin(installHome, "bin", "designer.exe demo"); - }else{ - executorPath = StableUtils.pathJoin(installHome, "bin", "designer.sh demo"); - } - - if (OperatingSystem.isMacos()) { - ProcessBuilder builder = new ProcessBuilder(); - builder.command("open", "-a", executorPath, "--args", "demo"); - try { - builder.start(); - } catch (IOException e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } - } else if(OperatingSystem.isWindows()){ - // ProcessBuilder这种方式在window下报错:系统找不到指定文件 - Runtime rt = Runtime.getRuntime(); - try { - rt.exec(executorPath); - } catch (IOException e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } - }else{ - //先用和win一样的方式 - Runtime rt = Runtime.getRuntime(); - try { - rt.exec(executorPath); - } catch (IOException e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } - } - + OSBasedAction osBasedAction = OSSupportCenter.getAction(DemoAction.class); + osBasedAction.execute(); System.exit(0); } } \ No newline at end of file diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java index 76a4f394a..38e6c4a6a 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java @@ -54,8 +54,6 @@ import com.fr.design.mainframe.form.FormReportComponentComposite; import com.fr.design.mainframe.loghandler.DesignerLogAppender; import com.fr.design.mainframe.socketio.DesignerSocketIO; import com.fr.design.module.DesignModuleFactory; -import com.fr.design.os.OSBasedAction; -import com.fr.design.os.OSSupportCenter; import com.fr.design.os.impl.SupportOSImpl; import com.fr.design.parameter.FormParameterReader; import com.fr.design.parameter.ParameterPropertyPane; @@ -94,6 +92,8 @@ import com.fr.report.cell.painter.CellImagePainter; import com.fr.stable.ArrayUtils; import com.fr.stable.ParameterProvider; import com.fr.stable.bridge.StableFactory; +import com.fr.stable.os.support.OSBasedAction; +import com.fr.stable.os.support.OSSupportCenter; import com.fr.stable.plugin.ExtraDesignClassManagerProvider; import com.fr.stable.script.CalculatorProviderContext; import com.fr.stable.script.ValueConverter;