diff --git a/designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java b/designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java index ff62c6fb8..600f9721e 100644 --- a/designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java @@ -42,11 +42,15 @@ public class TableDataSourceAction extends TemplateComponentAction[] targets() { - return new Class[]{TableDataConfig.class, ProcedureConfig.class}; - } - }); + tableDataConfig.renameTableData(oldName, newName); } }; final BasicDialog globalTableDataDialog = globalTableDataPane.showLargeWindow(designerFrame, null); diff --git a/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java b/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java index 45b3ac6a2..e8bc8e39a 100644 --- a/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java +++ b/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java @@ -137,6 +137,8 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp nPanel.setShowText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Stored_Procedure_Name_Tips")); dg.setButtonEnabled(false); } + } else if (!BasicTableDataUtils.checkName(tempName)) { + dg.setButtonEnabled(false); } else { nPanel.setShowText(StringUtils.BLANK); dg.setButtonEnabled(true); diff --git a/designer-base/src/main/java/com/fr/design/data/BasicTableDataUtils.java b/designer-base/src/main/java/com/fr/design/data/BasicTableDataUtils.java new file mode 100644 index 000000000..27724450b --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/data/BasicTableDataUtils.java @@ -0,0 +1,36 @@ +package com.fr.design.data; + +import com.fr.design.dialog.FineJOptionPane; +import com.fr.design.i18n.Toolkit; +import com.fr.stable.StringUtils; + +/** + * @author hades + * @version 10.0 + * Created by hades on 2020/4/27 + */ +public abstract class BasicTableDataUtils { + + private static final int LEN = 2; + + + public static boolean checkName(String name) { + if (isInValidName(name)) { + FineJOptionPane.showMessageDialog(null, + Toolkit.i18nText("Fine-Design_Basic_DataSet_Rename_Warning", name), + Toolkit.i18nText("Fine-Design_Basic_Alert"), + FineJOptionPane.WARNING_MESSAGE); + return false; + } + return true; + } + + public static boolean isInValidName(String name) { + String[] values = name.split("\\."); + if (values.length == LEN) { + return (StringUtils.isNotEmpty(values[0]) && StringUtils.isNotEmpty(values[1])) + || (StringUtils.isEmpty(values[0]) && StringUtils.isNotEmpty(values[1])); + } + return false; + } +} diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/ReportTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/ReportTableDataPane.java index b480e168c..79c160489 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/ReportTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/ReportTableDataPane.java @@ -59,4 +59,8 @@ public class ReportTableDataPane extends LoadingBasicPane { public Map getDsNameChangedMap() { return tdPane.getDsNameChangedMap(); } + + public boolean isNamePermitted() { + return tdPane.isNamePermitted(); + } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java index 35f6077b8..1dd1f00aa 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataPaneListPane.java @@ -4,6 +4,7 @@ import com.fr.base.TableData; import com.fr.data.TableDataSource; import com.fr.data.api.StoreProcedureAssist; import com.fr.data.impl.storeproc.StoreProcedure; +import com.fr.design.data.BasicTableDataUtils; import com.fr.design.data.DesignTableDataManager; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.gui.controlpane.JListControlPane; @@ -48,6 +49,14 @@ public class TableDataPaneListPane extends JListControlPane implements TableData allListNames[nameableList.getSelectedIndex()] = StringUtils.EMPTY; String tempName = getEditingName(); Object editingType = getEditingType(); + + if (!BasicTableDataUtils.checkName(tempName)) { + isNamePermitted = false; + nameableList.stopEditing(); + setIllegalIndex(editingIndex); + return; + } + if (StringUtils.isEmpty(tempName)) { isNamePermitted = false; nameableList.stopEditing(); diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataDefinedPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataDefinedPane.java index 6a3b707ab..ba5d42bd8 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataDefinedPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataDefinedPane.java @@ -25,7 +25,7 @@ import java.util.Date; public class EmbeddedTableDataDefinedPane extends BasicPane{ - + private static final int MIN_CELL_WIDTH = 30; private EmbeddedTableData tableData; private JTable dataJTable; private UIButton add; @@ -64,7 +64,7 @@ public class EmbeddedTableDataDefinedPane extends BasicPane{ // 行号显示 TableColumn tableColumn = dataJTable.getColumnModel().getColumn(0); tableColumn.setCellRenderer(new CellRenderer()); - tableColumn.setMaxWidth(dataJTable.getColumnCount()); + tableColumn.setMaxWidth(Math.max(dataJTable.getColumnCount(), MIN_CELL_WIDTH)); // 控制按钮 add = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Add")); diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java index afefe7264..8b47b222d 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java @@ -34,6 +34,7 @@ import java.util.Date; public class EmbeddedTableDataPane extends AbstractTableDataPane { + private static final int MIN_CELL_WIDTH = 30; private JTable dataJTable ; private JScrollPane scrollPane; private UILabel coordinatelabel; @@ -220,7 +221,7 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane