From 5593766bc188345ec83a399400b4e0452c06246e Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Wed, 11 Sep 2024 19:04:52 +0800 Subject: [PATCH 1/4] =?UTF-8?q?REPORT-134321=20=E3=80=90fr-fbp=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E3=80=91=E8=AE=BE=E8=AE=A1=E5=99=A8=E5=92=8C=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E7=BD=91=E7=BB=9C=E4=B8=8D=E9=80=9A=EF=BC=8C?= =?UTF-8?q?=E8=BF=9C=E7=A8=8B=E6=8A=A5=E9=94=99=E6=9C=AA=E7=9F=A5=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/EnvChangeEntrance.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java index 4761002648..e2a08bbbc3 100644 --- a/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java +++ b/designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java @@ -180,8 +180,9 @@ public class EnvChangeEntrance { private boolean doSwitch2Env(final String envName, PopTipStrategy strategy) { DesignerWorkspaceInfo selectedEnv = getSelectedEnv(envName); - EnvBackupHelper.getInstance().backup(); + try { + EnvBackupHelper.getInstance().backup(); Workspace workspace = DesignerWorkspaceGenerator.generate(selectedEnv); if (notValid(workspace, selectedEnv)) { return false; From 7ed3a16969e9f5d92f48c369e36bf3fad795657e Mon Sep 17 00:00:00 2001 From: vito Date: Wed, 11 Sep 2024 20:40:41 +0800 Subject: [PATCH 2/4] =?UTF-8?q?REPORT-134248=20=E5=90=AF=E5=8A=A8=E9=A1=B5?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../startup/ui/StartupPageWorkspacePanel.java | 31 ++++++------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java index 2767f8945b..741e7dc5b5 100644 --- a/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java +++ b/designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java @@ -7,7 +7,6 @@ import com.fine.theme.utils.FineUIStyle; import com.fine.theme.utils.FineUIUtils; import com.formdev.flatlaf.ui.FlatUIUtils; import com.formdev.flatlaf.util.ScaledEmptyBorder; -import com.fr.design.components.tooltip.ModernToolTip; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.FRGraphics2D; @@ -22,7 +21,6 @@ import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JScrollBar; -import javax.swing.JToolTip; import javax.swing.JViewport; import javax.swing.ScrollPaneConstants; import java.awt.BasicStroke; @@ -57,9 +55,9 @@ public class StartupPageWorkspacePanel extends JPanel { private static final Color PATH_COLOR = new Color(51, 51, 52, (int) Math.round(255 * 0.5)); /* 长度 */ - + private static final int SCROLL_BAR_WIDTH = 20; - + private static final int CONTENT_WIDTH = scale(StartupPageConstants.CONTENT_WIDTH + SCROLL_BAR_WIDTH); private static final int BORDER_THIN = 2; @@ -140,6 +138,7 @@ public class StartupPageWorkspacePanel extends JPanel { this.contentPanel.setOpaque(false); this.add(contentPanel, BorderLayout.NORTH); } + private JComponent generateUnLimitContentPanel(List> partitions) { JComponent panel = generateUnLimitContentPanel0(partitions); @@ -228,7 +227,7 @@ public class StartupPageWorkspacePanel extends JPanel { g.fillRoundRect(0, 0, preferredSize.width, preferredSize.height, 5, 5); } } - }; + }; showAllPanel.setLayout(new BorderLayout()); UILabel fontLabel = new UILabel(Toolkit.i18nText("Fine-Design_Startup_Page_Expand_All")); @@ -287,10 +286,6 @@ public class StartupPageWorkspacePanel extends JPanel { AtomicReference borderColorRef = new AtomicReference<>(null); JPanel selectWorkspacePanel = new JPanel() { - @Override - public JToolTip createToolTip() { - return new ModernToolTip(); - } @Override protected void paintComponent(Graphics g) { @@ -325,7 +320,7 @@ public class StartupPageWorkspacePanel extends JPanel { } }; selectWorkspacePanel.setLayout(new BorderLayout()); - selectWorkspacePanel.setToolTipText(Toolkit.i18nText("Fine-Design_Startup_Page_Double_Click_Enter_Workspace")); + selectWorkspacePanel.setToolTipText(workspaceInfo.getPath()); selectWorkspacePanel.setBorder(new ScaledEmptyBorder(10, 10, 10, 10)); { @@ -348,7 +343,7 @@ public class StartupPageWorkspacePanel extends JPanel { FineUIUtils.setFontSize(nameLabel, NAME_LABEL_SIZE); nameLabel.setPreferredSize(PATH_DIMENSION); Color nameForeground = nameLabel.getForeground(); - simpleDescPanel.add(nameLabel,BorderLayout.NORTH); + simpleDescPanel.add(nameLabel, BorderLayout.NORTH); UILabel pathLabel = new UILabel(workspaceInfo.getPath()); pathLabel.setPreferredSize(PATH_DIMENSION); @@ -369,7 +364,7 @@ public class StartupPageWorkspacePanel extends JPanel { Color hoverColor = FlatUIUtils.getUIColor("brand.normal", HOVER_COLOR); borderColorRef.set(hoverColor); nameLabel.setForeground(hoverColor); - pathLabel.setForeground(hoverColor ); + pathLabel.setForeground(hoverColor); repaintAll(); } @@ -394,12 +389,7 @@ public class StartupPageWorkspacePanel extends JPanel { }; - UILabel arrowLabel = new UILabel(new LazyIcon("more_arrow", 20)) { - @Override - public JToolTip createToolTip() { - return new ModernToolTip(); - } - }; + UILabel arrowLabel = new UILabel(new LazyIcon("more_arrow", 20)); arrowLabel.setToolTipText(Toolkit.i18nText("Fine-Design_Startup_Page_Enter_Workspace")); arrowLabel.addMouseListener(new MouseAdapter() { @Override @@ -433,10 +423,6 @@ public class StartupPageWorkspacePanel extends JPanel { // 选择并新建 AtomicReference borderColorRef = new AtomicReference<>(null); JPanel selectAndCreatePanel = new JPanel() { - @Override - public JToolTip createToolTip() { - return new ModernToolTip(); - } @Override protected void paintComponent(Graphics g) { @@ -481,6 +467,7 @@ public class StartupPageWorkspacePanel extends JPanel { label.setIcon(new LazyIcon("add", 20)); repaintAll(); } + @Override public void mousePressed(MouseEvent e) { pageModel.setSelectWorkspaceInfo(workspaceInfo); From cb4eefd1beb62e711e953c9a11dc244de363778c Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Thu, 12 Sep 2024 11:23:11 +0800 Subject: [PATCH 3/4] =?UTF-8?q?REPORT-134411=20DataOperatorProvider?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=80=82=E9=85=8DConnection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/server/GlobalTableDataAction.java | 10 +++++----- .../datapane/connect/ConnectionListPane.java | 19 ------------------- .../preview/ConnectionInfoBeanHelper.java | 9 ++++++--- .../fr/design/gui/ilist/TableViewList.java | 6 +++--- 4 files changed, 14 insertions(+), 30 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java b/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java index 34daece1dd..138ab32295 100644 --- a/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/server/GlobalTableDataAction.java @@ -25,6 +25,7 @@ import com.fr.esd.event.DSMapping; import com.fr.esd.event.DsNameTarget; import com.fr.esd.event.StrategyEventsNotifier; +import com.fr.log.FineLoggerFactory; import com.fr.report.LockItem; import com.fr.security.encryption.transmission.TransmissionEncryptionManager; import com.fr.workspace.server.repository.connection.ConnectionRepository; @@ -86,14 +87,13 @@ public class GlobalTableDataAction extends UpdateAction implements ResponseDataS final List beans = TableDataRepository.getInstance().getAllTableData(); final Map connectionMap = ConnectionInfoBeanHelper.createConnectionMap(ConnectionRepository.getInstance().getAll()); final Map tableDataMap = new HashMap<>(); - try { - for (ServerDataSetBean bean : beans) { + for (ServerDataSetBean bean : beans) { + try { tableDataMap.put(bean.getDatasetName() , TableDataBeanHelper.getTableDataSet(connectionMap, bean.getDatasetType(), bean.getDatasetData())); + } catch (Exception e) { + FineLoggerFactory.getLogger().error("[TableData] getTableData :{} failed!", bean.getDatasetName(), e); } - } catch (Exception e) { - throw new RuntimeException(e); } - final TableDataManagerPane globalTableDataPane = new TableDataManagerPane() { public void complete() { populate(tableDataMap); diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java index a7f606a141..fed8b1269e 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -349,25 +349,6 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh } } - private boolean saveByOldWay(List removedConnNames, List addedOrUpdatedConnections) { - final int remaining = ConnectionConfigProviderFactory.getConfigProvider().getRemainingCon(removedConnNames.size(), addedOrUpdatedConnections.size()); - try { - removedConnNames.forEach(n -> ConnectionConfigWriterFactory.getConfigWriter().removeConnection(n)); - int innerRemaining = remaining; - for (ConnectionBean cb : addedOrUpdatedConnections) { - if (innerRemaining > 0) { - ConnectionConfigWriterFactory.getConfigWriter().addConnectionWithoutCheck(cb.getName(), cb.getConnection()); - innerRemaining--; - } else { - break; - } - } - return true; - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } - return false; - } public static void showDialog(Window parent) { final Map connectionMap = ConnectionInfoBeanHelper.createConnectionMap(ConnectionRepository.getInstance().getAll()); diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/ConnectionInfoBeanHelper.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/ConnectionInfoBeanHelper.java index 33e085beb3..2fb5832c57 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/ConnectionInfoBeanHelper.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/ConnectionInfoBeanHelper.java @@ -82,16 +82,19 @@ public class ConnectionInfoBeanHelper { * 根据bean创建连接 */ public static Connection createConnection(ConnectionInfoBean infoBean) { + Connection connection = null; try { if (JDBCConnectionProcessor.KEY.acceptConnectionTypes().contains(infoBean.getConnectionType())) { - return createJDBCConnection(infoBean); + connection = createJDBCConnection(infoBean); } else { - return ConnectionProcessorFactory.createConnection(infoBean, true); + connection = ConnectionProcessorFactory.createConnection(infoBean, true); } + connection.setConnectionName(infoBean.getConnectionName()); } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); - return null; + return connection; } + return connection; } /** diff --git a/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java b/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java index 682e68be7d..652fa23a4f 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java +++ b/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java @@ -144,7 +144,7 @@ public class TableViewList extends UIList { } private void clearCache(Connection datasource) { - String[] schemas = DataCoreUtils.getDatabaseSchema(datasource); + String[] schemas = DataCoreUtils.getDatabaseSchemaByName(datasource); schemas = (schemas == null || schemas.length == 0) ? new String[]{null} : schemas; for (String schema : schemas) { doClearCache(datasource, schema); @@ -172,12 +172,12 @@ public class TableViewList extends UIList { if (datasource == null) { return defaultListModel; } - String[] schemas = DataCoreUtils.getDatabaseSchema(datasource); + String[] schemas = DataCoreUtils.getDatabaseSchemaByName(datasource); searchFilter = searchFilter.toLowerCase(); boolean isOracleSystemSpace = DesignerEnvManager.getEnvManager().isOracleSystemSpace(); // oracle不勾选显示所有表,则只显示用户下的(包括存储过程和table表) - DataBaseDetail detail = DataOperator.getInstance().getDataBaseDetail(datasource, isOracleSystemSpace); + DataBaseDetail detail = DataOperator.getInstance().getDataBaseDetail(databaseName, isOracleSystemSpace); if (ArrayUtils.isNotEmpty(detail.getSchemas())) { schemas = detail.getSchemas(); } From 37b6ed578759078614e1494d826e74f83d4eea56 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Thu, 12 Sep 2024 13:09:24 +0800 Subject: [PATCH 4/4] =?UTF-8?q?REPORT-134411=20DataOperatorProvider?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=80=82=E9=85=8DConnection=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=83=A8=E5=88=86=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/data/datapane/TableDataTreePane.java | 2 +- .../data/tabledata/tabledatapane/ProcedureDataPane.java | 4 ++++ .../main/java/com/fr/design/gui/ilist/TableViewList.java | 7 +++---- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java index 96b9cd2cb0..5efb20ff34 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java @@ -1022,7 +1022,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { @Override public void actionPerformed(ActionEvent e) { - dgEdit(getTableDataInstance().creatTableDataPane(), createDsName(getNamePrefix()), false); + DesignCacheManager.processByCacheTableData(() -> dgEdit(getTableDataInstance().creatTableDataPane(), createDsName(getNamePrefix()), false)); } } diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java index e1d9263c90..650291ba36 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java @@ -188,6 +188,10 @@ public class ProcedureDataPane extends AbstractTableDataPane imp } private boolean isAutoParameterDatabase() { + String name = connectionTableProcedurePane.getSelectedDatabaseConnnectonName(); + if (StringUtils.isEmpty(name)) { + return false; + } Connection connection = ConnectionInfoBeanHelper.createConnection(ConnectionRepository.getInstance().getByName(connectionTableProcedurePane.getSelectedDatabaseConnnectonName())); return connection != null && ArrayUtils.contains(DRIVERS, connection.getDriver()); } diff --git a/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java b/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java index 652fa23a4f..50c050b013 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java +++ b/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java @@ -123,7 +123,7 @@ public class TableViewList extends UIList { if (refresh) { clearCache(datasource); } - return processDataInAnotherThread(databaseName, searchFilter, typesFilter); + return processDataInAnotherThread(datasource, searchFilter, typesFilter); } @Override @@ -166,9 +166,8 @@ public class TableViewList extends UIList { * @param searchFilter * @param typesFilter */ - private DefaultListModel processDataInAnotherThread(String databaseName, String searchFilter, String... typesFilter) throws Exception { + private DefaultListModel processDataInAnotherThread(Connection datasource, String searchFilter, String... typesFilter) throws Exception { DefaultListModel defaultListModel = new DefaultListModel(); - Connection datasource = ConnectionInfoBeanHelper.createConnection(ConnectionRepository.getInstance().getByName(databaseName)); if (datasource == null) { return defaultListModel; } @@ -177,7 +176,7 @@ public class TableViewList extends UIList { searchFilter = searchFilter.toLowerCase(); boolean isOracleSystemSpace = DesignerEnvManager.getEnvManager().isOracleSystemSpace(); // oracle不勾选显示所有表,则只显示用户下的(包括存储过程和table表) - DataBaseDetail detail = DataOperator.getInstance().getDataBaseDetail(databaseName, isOracleSystemSpace); + DataBaseDetail detail = DataOperator.getInstance().getDataBaseDetail(datasource.getConnectionName(), isOracleSystemSpace); if (ArrayUtils.isNotEmpty(detail.getSchemas())) { schemas = detail.getSchemas(); }