diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/LocalConnectionSource.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/LocalConnectionSource.java index cf3066f9eb..4b91320829 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/LocalConnectionSource.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/LocalConnectionSource.java @@ -65,6 +65,12 @@ public class LocalConnectionSource extends BaseConnectionSource { ConnectionProcessorFactory.addConnection(bean); } catch (DriverNotFoundException e) { throw new DriverUnExistException(); + } catch (RuntimeException e) { + if (e.getCause() instanceof DriverNotFoundException) { + throw new DriverUnExistException(); + } else { + throw e; + } } } @@ -82,6 +88,12 @@ public class LocalConnectionSource extends BaseConnectionSource { ConnectionProcessorFactory.updateConnection(bean.getConnectionName(), bean); } catch (DriverNotFoundException e) { throw new DriverUnExistException(); + } catch (RuntimeException e) { + if (e.getCause() instanceof DriverNotFoundException) { + throw new DriverUnExistException(); + } else { + throw e; + } } } diff --git a/designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java b/designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java index ac4298fba8..ebacf24d5d 100644 --- a/designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java +++ b/designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java @@ -56,7 +56,7 @@ public class UIDetailErrorLinkDialog extends UIDialog { private static final String TAG_A_END = ""; private static final double SCALE = 1.2; - private final Dimension dimension = new Dimension(360, 180); + private final Dimension dimension = new Dimension(360, 200); public static Builder newBuilder() { return new Builder(); @@ -99,8 +99,10 @@ public class UIDetailErrorLinkDialog extends UIDialog { contentPane.add(link, BorderLayout.SOUTH); // 确定 + 取消 - JPanel actionPane = new JPanel(new FlowLayout(FlowLayout.RIGHT, GAP_10, GAP_8)); - actionPane.add(createButton(Toolkit.i18nText("Fine-Design_Report_OK"))); + JPanel actionPane = new JPanel(new FlowLayout(FlowLayout.RIGHT, GAP_8, GAP_10)); + UIButton okButton = createButton(Toolkit.i18nText("Fine-Design_Report_OK")); + FineUIStyle.setStyle(okButton, FineUIStyle.STYLE_PRIMARY); + actionPane.add(okButton); actionPane.add(createButton(Toolkit.i18nText("Fine-Design_Basic_Cancel"))); this.getContentPane().add(column(10, diff --git a/designer-base/src/main/java/com/fr/design/gui/itextfield/UITextField.java b/designer-base/src/main/java/com/fr/design/gui/itextfield/UITextField.java index 61f1b6b62c..07dfde3cde 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itextfield/UITextField.java +++ b/designer-base/src/main/java/com/fr/design/gui/itextfield/UITextField.java @@ -154,7 +154,7 @@ public class UITextField extends JTextField implements UIObserver, GlobalNameObs * 设置变化的背景颜色 */ public void setBackgroundUIColor(Color color) { -// ((UITextFieldUI) this.ui).setBackgroundColor4NoGiveNumber(color); + setBackground(color); } /** diff --git a/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java b/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java index 509b103a41..06017ce175 100644 --- a/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java +++ b/designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java @@ -28,8 +28,6 @@ import com.fr.plugin.manage.control.PluginTaskCallback; import com.fr.plugin.manage.control.PluginTaskResult; import com.fr.plugin.manage.control.ProgressCallback; import com.fr.report.ReportHelper; -import com.fr.rpc.ExceptionHandler; -import com.fr.rpc.RPCInvokerExceptionInfo; import com.fr.rpc.Result; import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; @@ -39,7 +37,7 @@ import com.fr.workspace.engine.base.FineObjectPool; import com.fr.workspace.engine.channel.http.FunctionalHttpRequest; import com.fr.workspace.engine.exception.WorkspaceConnectionException; import com.fr.workspace.engine.rpc.WorkspaceProxyPool; -import com.fr.workspace.server.check.VersionInfoOperator; + import java.lang.reflect.Method; import java.text.ParsePosition; import java.text.SimpleDateFormat; @@ -53,7 +51,6 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import javax.swing.SwingWorker; /** * @author pengda @@ -285,16 +282,14 @@ public class VersionCheckUtils { public static JSONArray checkLocalAndRemotePlugin() { JSONArray differentPlugins = new JSONArray(); - JSONArray remotePlugins = FRContext.getCommonOperator().getPluginStatus(); + List remotePlugins = FRContext.getCommonOperator().getPluginStatus(); Map localPluginsMap = new HashMap<>(); List localPlugins = PluginManager.getContexts(); for (PluginContext pluginContext : localPlugins) { localPluginsMap.put(pluginContext.getID(), pluginContext); } - JSONObject remotePlugin; Map pluginsNameMap = ReportHelper.getPluginNameMap(); - for (int i = 0; i < remotePlugins.size(); i++) { - remotePlugin = remotePlugins.getJSONObject(i); + for (JSONObject remotePlugin : remotePlugins) { if (isPluginNeedIgnore(remotePlugin)) { continue; } diff --git a/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java index 5a4168f8c5..01dafb590b 100644 --- a/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java +++ b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java @@ -891,7 +891,7 @@ public class DBManipulationPane extends BasicBeanPane { vPane = new ValueEditorPane(types); this.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 45)); this.add(vPane); - vPane.setPreferredSize(new Dimension(220, 25)); + vPane.setPreferredSize(scale(new Dimension(220, 25))); } @Override diff --git a/designer-base/src/main/java/com/fr/file/FILEChooserPane.java b/designer-base/src/main/java/com/fr/file/FILEChooserPane.java index 8b6d645fb3..8ca9918274 100644 --- a/designer-base/src/main/java/com/fr/file/FILEChooserPane.java +++ b/designer-base/src/main/java/com/fr/file/FILEChooserPane.java @@ -172,6 +172,7 @@ public class FILEChooserPane extends BasicPane { protected boolean showEnv; protected boolean showLoc; protected boolean showWebReport = false; + protected boolean showMkdir = true; private UIDialog dialog; @@ -245,6 +246,7 @@ public class FILEChooserPane extends BasicPane { chooserPane.showEnv = true; chooserPane.showLoc = false; chooserPane.showWebReport = false; + chooserPane.showMkdir = false; // 替换掉 PlaceListModel chooserPane.setFileDataPlaceListModel(FileDataFILE.parseType(filter)); chooserPane.removeAllFilter(); @@ -338,6 +340,7 @@ public class FILEChooserPane extends BasicPane { mkdirButton = initMkdirButton(); locationPane.add(mkdirButton, BorderLayout.EAST); + mkdirButton.setEnabled(showMkdir); JPanel centerLeftPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); // Richie:placesList includes C,D,E,F and DeskTop etc. @@ -1229,7 +1232,7 @@ public class FILEChooserPane extends BasicPane { currentDirectory = dir; this.locationBtnPane.populate(currentDirectory); - this.mkdirButton.setEnabled(currentDirectory != null); + this.mkdirButton.setEnabled(currentDirectory != null && showMkdir); refreshSubFileListModel(); } @@ -1872,7 +1875,6 @@ public class FILEChooserPane extends BasicPane { private UIButton initMkdirButton() { UIButton folderButton = new UIButton(); folderButton.setIcon(new LazyIcon("new_folder")); - folderButton.setUI(new UIButtonUI()); folderButton.setToolTipText(Toolkit.i18nText("Fine-Design_Basic_Utils_New_Folder")); folderButton.addActionListener(new ActionListener() { @Override diff --git a/designer-chart/src/main/java/com/fr/design/chartx/component/correlation/AbstractCorrelationPane.java b/designer-chart/src/main/java/com/fr/design/chartx/component/correlation/AbstractCorrelationPane.java index 2cb52f4542..b29146223b 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/component/correlation/AbstractCorrelationPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/component/correlation/AbstractCorrelationPane.java @@ -81,6 +81,7 @@ public abstract class AbstractCorrelationPane extends BasicBeanPane { @Override public void actionPerformed(ActionEvent e) { tablePane.addLine(createLine()); + tablePane.doParentRepaintEvent(); fireTargetChanged(); } }; diff --git a/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeBeautyPane.java b/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeBeautyPane.java index 7fa6b47e51..347e700747 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeBeautyPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeBeautyPane.java @@ -10,6 +10,7 @@ import com.fr.plugin.chart.type.GradientType; import com.fr.van.chart.designer.component.VanChartBeautyPane; import javax.swing.JPanel; +import javax.swing.SwingUtilities; import java.awt.BorderLayout; import java.awt.Component; import java.awt.event.ActionEvent; @@ -57,7 +58,9 @@ public class VanChartGaugeBeautyPane extends VanChartBeautyPane { } private void checkGradientBarVisible() { - gradientBarPane.setVisible(getGradientTypeBox().getSelectedIndex() == 1); + SwingUtilities.invokeLater(() -> { + gradientBarPane.setVisible(getGradientTypeBox().getSelectedIndex() == 1); + }); } protected String[] getNameArray() { diff --git a/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java index 2b3976647a..79b4d5b9c3 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java @@ -119,17 +119,6 @@ public class VanChartGaugeSeriesPane extends VanChartMultiColorSeriesPane { JPanel stylePane = valueFillStylePane == null ? new JPanel() : valueFillStylePane; colorPickerPane = new ColorPickerPaneWithMaxMin(parentPane, "meterString", valueFillStylePane) { - protected int getBoundX() { - return 0; - } - - protected int getBoundY() { - return 10; - } - - protected int getPreferredMarginY() { - return 10; - } protected double getDescriptionWidth() { double descriptionWidth = super.getDescriptionWidth(); diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/DesignPluginComponent.java b/designer-realize/src/main/java/com/fanruan/boot/env/DesignPluginComponent.java index be92acac20..a36066386a 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/DesignPluginComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/DesignPluginComponent.java @@ -9,9 +9,15 @@ import com.fanruan.carina.annotions.Stop; import com.fanruan.carina.annotions.Supplemental; import com.fanruan.plugin.autonomy.AutonomyClassManagerGroup; import com.fanruan.plugin.autonomy.AutonomyClassManagerProvider; +import com.fr.json.JSONObject; import com.fr.plugin.ExtraClassManager; +import com.fr.plugin.manage.PluginManager; +import com.fr.plugin.manage.PluginSyncModuleType; +import com.fr.workspace.server.repository.plugin.PluginRepository; import javax.servlet.ServletContext; +import java.util.List; +import java.util.function.Supplier; /** * 设计器插件模块,环境切换的中间模块 @@ -38,6 +44,11 @@ public class DesignPluginComponent extends PluginComponent { @Start public void start() { ExtraClassManager.getInstance().registerAutonomyClassManager(Carina.getApplicationContext().group(AutonomyClassManagerGroup.class).getAll().toArray(new AutonomyClassManagerProvider[0])); + + Supplier> supplier = () -> PluginRepository.getInstance().getPluginStatus(); + PluginManager.registerRemotePluginSupplier(supplier); + PluginManager.setSyncModuleType(PluginSyncModuleType.DESIGN); + super.start(); } diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/function/app/PluginRemote.java b/designer-realize/src/main/java/com/fanruan/boot/env/function/app/PluginRemote.java index 9dd44c79e2..380f608659 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/function/app/PluginRemote.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/function/app/PluginRemote.java @@ -1,7 +1,6 @@ package com.fanruan.boot.env.function.app; import com.fr.base.FRContext; -import com.fr.json.JSONArray; import com.fr.json.JSONException; import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; @@ -12,6 +11,7 @@ import com.fr.workspace.WorkContext; import org.jetbrains.annotations.NotNull; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -57,19 +57,17 @@ public class PluginRemote { private Map getRemoteStatus() { - JSONArray statusArray = FRContext.getCommonOperator().getPluginStatus(); - JSONObject status; + List objectList = FRContext.getCommonOperator().getPluginStatus(); String id; String version; boolean running; Map statusMap = new HashMap<>(); - for (int i = 0; i < statusArray.length(); i++) { + for (JSONObject status : objectList) { try { - status = statusArray.getJSONObject(i); id = status.getString("id"); version = status.getString("version"); running = status.getBoolean("running"); - if(StringUtils.isBlank(id)){ + if (StringUtils.isBlank(id)) { continue; } PluginStatus pluginStatus = PluginStatus.create(id, version, running); diff --git a/designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java b/designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java index 3120c9ef53..1756a1952c 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java @@ -63,6 +63,7 @@ import com.fr.workspace.server.repository.compatible.register.CompatibleRegister import com.fanruan.workplace.network.RemoteNetworkRepository; import com.fr.workspace.server.repository.config.ConfigRepository; import com.fr.workspace.server.repository.connection.ConnectionRepository; +import com.fr.workspace.server.repository.plugin.PluginRepository; import com.fr.workspace.server.repository.resource.PublicResourceRepository; import com.fr.workspace.server.repository.resource.WorkResourceRepository; import com.fr.workspace.server.repository.system.SystemInfoRepository; @@ -112,6 +113,7 @@ public class DesignWorkContextComponent { RepositoryManager.getInstance().pureRegisterRepo4Start(WorkResourceRepository.getInstance()); RepositoryManager.getInstance().pureRegisterRepo4Start(PublicResourceRepository.getInstance()); RepositoryManager.getInstance().pureRegisterRepo4Start(ConfigRepository.getInstance()); + RepositoryManager.getInstance().pureRegisterRepo4Start(PluginRepository.getInstance()); RepositoryManager.getInstance().initLocalRepository(); CompatibleRegister.registerCompatibleEnv(); for (WorkRPCRegister workRPCRegister : ServiceContext.group(WorkspaceKey.class).getAll()) {