Browse Source

REPORT-19946 Linux设计器

persist/11.0
pengda 5 years ago
parent
commit
0b2406d64c
  1. 21
      designer-base/src/main/java/com/fr/design/RestartHelper.java
  2. 3
      designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java
  3. 12
      designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java
  4. 3
      designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java
  5. 8
      designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java
  6. 3
      designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java
  7. 9
      designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java
  8. 11
      designer-base/src/main/java/com/fr/design/update/push/DesignerPushUpdateManager.java
  9. 20
      designer-base/src/main/java/com/fr/start/Demo.java
  10. 10
      designer-realize/src/main/java/com/fr/design/mainframe/bbs/UserInfoLabel.java
  11. 3
      designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java

21
designer-base/src/main/java/com/fr/design/RestartHelper.java

@ -5,7 +5,7 @@ import com.fr.general.ComparatorUtils;
import com.fr.general.GeneralUtils; import com.fr.general.GeneralUtils;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.OperatingSystem; import com.fr.stable.os.OperatingSystem;
import com.fr.stable.StableUtils; import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
@ -168,10 +168,13 @@ public class RestartHelper {
}catch (Exception e){ }catch (Exception e){
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);
} }
if (OperatingSystem.isMacOS()) { if (OperatingSystem.isMacos()) {
restartInMacOS(installHome, filesToBeDelete); restartInMacOS(installHome, filesToBeDelete);
} else { } else if(OperatingSystem.isWindows()){
restartInWindows(installHome, filesToBeDelete); restartInWindows(installHome, filesToBeDelete);
}else{
//增加一个Linux系统
restartInLinux(installHome,filesToBeDelete);
} }
} catch (Exception e) { } catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);
@ -210,4 +213,16 @@ public class RestartHelper {
builder.command(commands); builder.command(commands);
builder.start(); builder.start();
} }
private static void restartInLinux(String installHome, String[] filesToBeDelete) throws Exception {
ProcessBuilder builder = new ProcessBuilder();
List<String> commands = new ArrayList<String>();
//现在先写的是restart.sh
commands.add(installHome + File.separator + "bin" + File.separator + "restart.sh");
if (ArrayUtils.isNotEmpty(filesToBeDelete)) {
commands.add(StableUtils.join(filesToBeDelete, "+"));
}
builder.command(commands);
builder.start();
}
} }

3
designer-base/src/main/java/com/fr/design/actions/server/ConnectionListAction.java

@ -16,6 +16,7 @@ import com.fr.design.menu.MenuKeySet;
import com.fr.design.dcm.UniversalDatabaseOpener; import com.fr.design.dcm.UniversalDatabaseOpener;
import com.fr.file.ConnectionConfig; import com.fr.file.ConnectionConfig;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
import com.fr.stable.os.OperatingSystem;
import com.fr.transaction.CallBackAdaptor; import com.fr.transaction.CallBackAdaptor;
import com.fr.transaction.Configurations; import com.fr.transaction.Configurations;
import com.fr.transaction.WorkerFacade; import com.fr.transaction.WorkerFacade;
@ -60,7 +61,7 @@ public class ConnectionListAction extends UpdateAction {
* @param evt 事件 * @param evt 事件
*/ */
public void actionPerformed(ActionEvent evt) { public void actionPerformed(ActionEvent evt) {
if (ServerPreferenceConfig.getInstance().isUseUniverseDBM()) { if (ServerPreferenceConfig.getInstance().isUseUniverseDBM() && !OperatingSystem.isLinux()) {
UniversalDatabaseOpener.showUniverseDatabaseDialog(); UniversalDatabaseOpener.showUniverseDatabaseDialog();
} else { } else {
openDesignDatabaseManager(); openDesignDatabaseManager();

12
designer-base/src/main/java/com/fr/design/actions/server/PluginManagerAction.java

@ -5,7 +5,10 @@ import com.fr.design.actions.UpdateAction;
import com.fr.design.extra.WebViewDlgHelper; import com.fr.design.extra.WebViewDlgHelper;
import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.MenuKeySet;
import com.fr.design.upm.UpmFinder; import com.fr.design.upm.UpmFinder;
import com.fr.design.utils.DesignUtils;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
import com.fr.stable.os.Arch;
import com.fr.stable.os.OperatingSystem;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@ -16,18 +19,21 @@ import java.awt.event.ActionEvent;
* @since 8.0 * @since 8.0
*/ */
public class PluginManagerAction extends UpdateAction { public class PluginManagerAction extends UpdateAction {
private static String PLUGIN_MANAGER_ROUTE = "#management/plugin";
public PluginManagerAction() { public PluginManagerAction() {
this.setMenuKeySet(PLUGIN_MANAGER); this.setMenuKeySet(PLUGIN_MANAGER);
this.setName(getMenuKeySet().getMenuKeySetName()); this.setName(getMenuKeySet().getMenuKeySetName());
this.setMnemonic(getMenuKeySet().getMnemonic()); this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/server/plugin.png")); this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/server/plugin.png"));
} }
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
// 可以启用新版本的插件商店(使用JxBrowser作为容器) // 可以启用新版本的插件商店(使用JxBrowser作为容器)
if (ServerPreferenceConfig.getInstance().isUseOptimizedUPM()) { if(Arch.getArch() == Arch.ARM){
DesignUtils.visitEnvServerByParameters( PLUGIN_MANAGER_ROUTE,null,null);
return;
}
if (ServerPreferenceConfig.getInstance().isUseOptimizedUPM() && !OperatingSystem.isLinux()) {
UpmFinder.showUPMDialog(); UpmFinder.showUPMDialog();
} else { } else {
WebViewDlgHelper.createPluginDialog(); WebViewDlgHelper.createPluginDialog();

3
designer-base/src/main/java/com/fr/design/gui/iprogressbar/ProgressDialog.java

@ -5,6 +5,7 @@ import com.fr.design.dialog.UIDialog;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.FRFont; import com.fr.general.FRFont;
import com.fr.stable.os.OperatingSystem;
import javax.swing.JDialog; import javax.swing.JDialog;
import javax.swing.JLabel; import javax.swing.JLabel;
@ -28,7 +29,9 @@ public class ProgressDialog extends UIDialog {
setUndecorated(true); setUndecorated(true);
setSize(parent.getSize()); setSize(parent.getSize());
setLocationRelativeTo(null); setLocationRelativeTo(null);
if(!OperatingSystem.isLinux()) {
setOpacity(0.5f); setOpacity(0.5f);
}
initComponent(); initComponent();
} }

8
designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java

@ -58,6 +58,7 @@ import com.fr.stable.OperatingSystem;
import com.fr.stable.ProductConstants; import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.image4j.codec.ico.ICODecoder; import com.fr.stable.image4j.codec.ico.ICODecoder;
import com.fr.stable.os.Arch;
import com.fr.stable.project.ProjectConstants; import com.fr.stable.project.ProjectConstants;
import com.fr.start.OemHandler; import com.fr.start.OemHandler;
import com.fr.workspace.WorkContext; import com.fr.workspace.WorkContext;
@ -456,14 +457,21 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
northEastPane.add(LogMessageBar.getInstance()); northEastPane.add(LogMessageBar.getInstance());
TitlePlaceProcessor processor = ExtraDesignClassManager.getInstance().getSingle(TitlePlaceProcessor.MARK_STRING); TitlePlaceProcessor processor = ExtraDesignClassManager.getInstance().getSingle(TitlePlaceProcessor.MARK_STRING);
if (processor != null) { if (processor != null) {
if(Arch.getArch() != Arch.ARM) {
processor.hold(northEastPane, LogMessageBar.getInstance(), ad.createBBSLoginPane()); processor.hold(northEastPane, LogMessageBar.getInstance(), ad.createBBSLoginPane());
}else{
//暂时不知道具体插件,先传null
processor.hold(northEastPane, LogMessageBar.getInstance(), null);
}
} }
northEastPane.add(ad.createAlphaFinePane()); northEastPane.add(ad.createAlphaFinePane());
if (!DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isEnabled()) { if (!DesignerEnvManager.getEnvManager().getAlphaFineConfigManager().isEnabled()) {
ad.createAlphaFinePane().setVisible(false); ad.createAlphaFinePane().setVisible(false);
} }
if(Arch.getArch() != Arch.ARM) {
northEastPane.add(ad.createBBSLoginPane()); northEastPane.add(ad.createBBSLoginPane());
} }
}
public void initTitleIcon() { public void initTitleIcon() {

3
designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java

@ -70,6 +70,7 @@ import com.fr.plugin.observer.PluginEventListener;
import com.fr.plugin.observer.PluginEventType; import com.fr.plugin.observer.PluginEventType;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.os.OperatingSystem;
import com.fr.start.OemHandler; import com.fr.start.OemHandler;
import com.fr.workspace.WorkContext; import com.fr.workspace.WorkContext;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -540,7 +541,7 @@ public abstract class ToolBarMenuDock {
} }
shortCuts.add(SeparatorDef.DEFAULT); shortCuts.add(SeparatorDef.DEFAULT);
if (DesignerEnvManager.getEnvManager().isOpenDebug()) { if (DesignerEnvManager.getEnvManager().isOpenDebug() && !OperatingSystem.isLinux()) {
shortCuts.add(new FineUIAction()); shortCuts.add(new FineUIAction());
} }
shortCuts.add(new AboutAction()); shortCuts.add(new AboutAction());

9
designer-base/src/main/java/com/fr/design/update/actions/SoftwareUpdateAction.java

@ -4,6 +4,8 @@ import com.fr.base.BaseUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.update.ui.dialog.UpdateMainDialog; import com.fr.design.update.ui.dialog.UpdateMainDialog;
import com.fr.design.utils.DesignUtils;
import com.fr.stable.os.OperatingSystem;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@ -12,7 +14,7 @@ import java.awt.event.ActionEvent;
*/ */
public class SoftwareUpdateAction extends UpdateAction { public class SoftwareUpdateAction extends UpdateAction {
private static String UPDATE_ROUTE = "#management/backup";
public SoftwareUpdateAction() { public SoftwareUpdateAction() {
setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Updater_UpdateAndUpgrade")); setName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Updater_UpdateAndUpgrade"));
setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/update/update_new.png")); setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/update/update_new.png"));
@ -26,8 +28,13 @@ public class SoftwareUpdateAction extends UpdateAction {
*/ */
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
//说之后更新升级要用jxbrowser,Linux下进平台
if(!OperatingSystem.isLinux()) {
UpdateMainDialog dialog = new UpdateMainDialog(DesignerContext.getDesignerFrame()); UpdateMainDialog dialog = new UpdateMainDialog(DesignerContext.getDesignerFrame());
dialog.showDialog(); dialog.showDialog();
}else{
DesignUtils.visitEnvServerByParameters( UPDATE_ROUTE,null,null);
}
} }
} }

11
designer-base/src/main/java/com/fr/design/update/push/DesignerPushUpdateManager.java

@ -12,6 +12,7 @@ import com.fr.general.http.HttpToolbox;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.os.OperatingSystem;
import com.fr.workspace.WorkContext; import com.fr.workspace.WorkContext;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
@ -87,13 +88,13 @@ public class DesignerPushUpdateManager {
public boolean isAutoPushUpdateSupported() { public boolean isAutoPushUpdateSupported() {
boolean isLocalEnv = WorkContext.getCurrent().isLocal(); boolean isLocalEnv = WorkContext.getCurrent().isLocal();
boolean isChineseEnv = GeneralContext.isChineseEnv(); boolean isChineseEnv = GeneralContext.isChineseEnv();
boolean isLinux = OperatingSystem.isLinux();
return isAutoPushUpdateSupported(isLocalEnv, isChineseEnv); return isAutoPushUpdateSupported(isLocalEnv, isChineseEnv,isLinux);
} }
private boolean isAutoPushUpdateSupported(boolean isLocalEnv, boolean isChineseEnv) { private boolean isAutoPushUpdateSupported(boolean isLocalEnv, boolean isChineseEnv,boolean isLinux) {
// 远程设计和非中文环境,都不生效 // 远程设计和非中文环境以及Linux环境,都不生效
return isLocalEnv && isChineseEnv; return isLocalEnv && isChineseEnv && !isLinux;
} }
/** /**

20
designer-base/src/main/java/com/fr/start/Demo.java

@ -2,7 +2,7 @@ package com.fr.start;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.OperatingSystem; import com.fr.stable.os.OperatingSystem;
import com.fr.stable.StableUtils; import com.fr.stable.StableUtils;
import java.io.IOException; import java.io.IOException;
@ -17,13 +17,15 @@ public class Demo {
String executorPath; String executorPath;
if (OperatingSystem.isMacOS()) { if (OperatingSystem.isMacos()) {
executorPath = StableUtils.pathJoin(installHome, "bin", "designer.app"); executorPath = StableUtils.pathJoin(installHome, "bin", "designer.app");
} else { } else if(OperatingSystem.isWindows()){
executorPath = StableUtils.pathJoin(installHome, "bin", "designer.exe demo"); executorPath = StableUtils.pathJoin(installHome, "bin", "designer.exe demo");
}else{
executorPath = StableUtils.pathJoin(installHome, "bin", "designer.sh demo");
} }
if (OperatingSystem.isMacOS()) { if (OperatingSystem.isMacos()) {
ProcessBuilder builder = new ProcessBuilder(); ProcessBuilder builder = new ProcessBuilder();
builder.command("open", "-a", executorPath, "--args", "demo"); builder.command("open", "-a", executorPath, "--args", "demo");
try { try {
@ -31,7 +33,7 @@ public class Demo {
} catch (IOException e) { } catch (IOException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);
} }
} else { } else if(OperatingSystem.isWindows()){
// ProcessBuilder这种方式在window下报错:系统找不到指定文件 // ProcessBuilder这种方式在window下报错:系统找不到指定文件
Runtime rt = Runtime.getRuntime(); Runtime rt = Runtime.getRuntime();
try { try {
@ -39,6 +41,14 @@ public class Demo {
} catch (IOException e) { } catch (IOException e) {
FineLoggerFactory.getLogger().error(e.getMessage(), 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);
}
} }
System.exit(0); System.exit(0);

10
designer-realize/src/main/java/com/fr/design/mainframe/bbs/UserInfoLabel.java

@ -28,7 +28,8 @@ import com.fr.general.DateUtils;
import com.fr.general.http.HttpClient; import com.fr.general.http.HttpClient;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.EncodeConstants; import com.fr.stable.EncodeConstants;
import com.fr.stable.OperatingSystem; import com.fr.stable.os.Arch;
import com.fr.stable.os.OperatingSystem;
import com.fr.stable.StableUtils; import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
@ -142,7 +143,8 @@ public class UserInfoLabel extends UILabel {
@Override @Override
public void run() { public void run() {
// vito:最新mac10.12和javafx弹出框初始化时会有大几率卡死在native方法,这里先屏蔽一下。 // vito:最新mac10.12和javafx弹出框初始化时会有大几率卡死在native方法,这里先屏蔽一下。
if (!FRContext.isChineseEnv() || OperatingSystem.isMacOS()) { //ARM下暂时也不能用javafx
if (!shouldShowBBSDialog()) {
return; return;
} }
String lastBBSNewsTime = DesignerEnvManager.getEnvManager().getLastShowBBSNewsTime(); String lastBBSNewsTime = DesignerEnvManager.getEnvManager().getLastShowBBSNewsTime();
@ -242,6 +244,10 @@ public class UserInfoLabel extends UILabel {
} }
} }
private static boolean shouldShowBBSDialog(){
return FRContext.isChineseEnv() && !OperatingSystem.isMacos() && Arch.getArch() != Arch.ARM;
}
public String getUserName() { public String getUserName() {
return userName; return userName;
} }

3
designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java

@ -91,6 +91,7 @@ import com.fr.report.cell.painter.CellImagePainter;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.ParameterProvider; import com.fr.stable.ParameterProvider;
import com.fr.stable.bridge.StableFactory; import com.fr.stable.bridge.StableFactory;
import com.fr.stable.os.Arch;
import com.fr.stable.plugin.ExtraDesignClassManagerProvider; import com.fr.stable.plugin.ExtraDesignClassManagerProvider;
import com.fr.stable.script.CalculatorProviderContext; import com.fr.stable.script.CalculatorProviderContext;
import com.fr.stable.script.ValueConverter; import com.fr.stable.script.ValueConverter;
@ -125,7 +126,9 @@ public class DesignerActivator extends Activator {
designerModuleStart(); designerModuleStart();
loadLogAppender(); loadLogAppender();
DesignerSocketIO.update(); DesignerSocketIO.update();
if(Arch.getArch() != Arch.ARM) {
UserInfoPane.getInstance().updateBBSUserInfo(); UserInfoPane.getInstance().updateBBSUserInfo();
}
storePassport(); storePassport();
AlphaFineHelper.switchConfig4Locale(); AlphaFineHelper.switchConfig4Locale();
} }

Loading…
Cancel
Save