Browse Source

Pull request #11253: REPORT-88826 设计器新增不支持的数据库类型未受到限制

Merge in DESIGN/design from ~LEO.QIN/design:feature/x to feature/x

* commit '4e04a847b151804c3fd69f447217f13723d33f55':
  REPORT-88365 决策报表,单元格插入数据列,单元格元素页面有异常 【问题原因】单选时默认将cellDSColumnAdvancedPane的visible设为true,导致显示异常 【改动思路】结合cellDSColumnAdvancedPane的原始visible状态及单元格的单选多选状态再进行设置
  REPORT-88826 设计器新增不支持的数据库类型未受到限制 【问题原因】 【改动思路】新增数据连接时,点击确认后校验是否为受限制的数据库类型
feature/x
Leo.Qin-覃宇攀 1 year ago
parent
commit
30d3f73646
  1. 3
      designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListDialogActionAdapter.java
  2. 26
      designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionManagerPane.java
  3. 5
      designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellDSColumnEditor.java

3
designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListDialogActionAdapter.java

@ -37,6 +37,9 @@ public class ConnectionListDialogActionAdapter extends DialogActionAdapter {
return;
}
try {
// 校验数据库类型
connectionManagerPane.validateDatabaseType(connectionConfig);
connectionManagerPane.update(connectionConfig);
} catch (Exception e) {
connectionListDialog.setDoOKSucceed(false);

26
designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionManagerPane.java

@ -1,9 +1,14 @@
package com.fr.design.data.datapane.connect;
import com.fr.data.impl.Connection;
import com.fr.design.gui.frpane.LoadingBasicPane;
import com.fr.design.gui.ilist.ListModelElement;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.file.ConnectionConfig;
import com.fr.general.NameObject;
import com.fr.license.database.DatabaseTypeValidateUtil;
import com.fr.license.exception.DataBaseNotSupportedException;
import com.fr.stable.Nameable;
import javax.swing.JPanel;
import java.awt.BorderLayout;
@ -61,4 +66,23 @@ public class ConnectionManagerPane extends LoadingBasicPane implements Connectio
return connectionListPane.isNamePermitted();
}
/**
* 校验是否支持当前选中连接的数据库类型
*/
public void validateDatabaseType(ConnectionConfig connectionConfig) {
ListModelElement selectedValue = this.connectionListPane.getSelectedValue();
if (selectedValue != null) {
Nameable wrapper = selectedValue.wrapper;
try {
Connection connection = (Connection) ((NameObject) wrapper).getObject();
DatabaseTypeValidateUtil.validateDatabaseType(connection.getDriver(), connection.feature());
} catch (DataBaseNotSupportedException e) {
// 仅抛出数据库类型不支持异常
throw e;
} catch (Exception e) {
// ignore
}
}
}
}

5
designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellDSColumnEditor.java

@ -162,6 +162,7 @@ public class CellDSColumnEditor extends CellQuickEditor {
// 由于多选的时候修改了 cellDSColumnBasicPane 中组件的visiable属性,切换时需要将其设置为false
cellDSColumnBasicPane.setVisible(false);
cellDSColumnAdvancedPane.setVisible(false);
card.show(cardContainer, paneList.get(index).title4PopupWindow());
paneList.get(index).populate();
@ -1065,6 +1066,10 @@ public class CellDSColumnEditor extends CellQuickEditor {
public void refreshMultipleDetails() {
tabsHeaderIconPane.setVisible(tc.isSelectedOneCell());
// 需要结合AdvancedPane的原始visible状态设置单选多选visible
boolean advancedPaneVisible = cellDSColumnAdvancedPane.isVisible();
cellDSColumnAdvancedPane.setVisible(advancedPaneVisible && tc.isSelectedOneCell());
cellDSColumnBasicPane.setMultipleVisible(tc.isSelectedOneCell());
}

Loading…
Cancel
Save