From 03f3c716755be677e640e369b7191461a990cf8a Mon Sep 17 00:00:00 2001 From: zack Date: Thu, 18 Jun 2020 11:22:01 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-33616=20=E5=A1=AB=E6=8A=A5=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E8=AE=BE=E7=BD=AE-=E6=99=BA=E8=83=BD=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=8D=95=E5=85=83=E6=A0=BC=EF=BC=8C=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E5=92=8C=E5=8F=96=E6=B6=88=E6=95=88=E6=9E=9C=E4=B8=80=E6=A0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../write/submit/DBManipulationPane.java | 72 +++++++++++++++++-- .../submit/SmartInsertDBManipulationPane.java | 2 +- 2 files changed, 66 insertions(+), 8 deletions(-) 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 9df5d7916..590f9d112 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 @@ -36,6 +36,7 @@ import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.ComparatorUtils; import com.fr.general.DateUtils; import com.fr.general.data.Condition; +import com.fr.log.FineLoggerFactory; import com.fr.stable.ColumnRow; import com.fr.stable.ColumnRowGroup; import com.fr.write.DBManipulation; @@ -47,14 +48,31 @@ import com.fr.write.config.InsertConfig; import com.fr.write.config.IntelliDMLConfig; import com.fr.write.config.UpdateConfig; -import javax.swing.*; +import javax.swing.AbstractCellEditor; +import javax.swing.BorderFactory; +import javax.swing.DefaultCellEditor; +import javax.swing.DefaultComboBoxModel; +import javax.swing.Icon; +import javax.swing.JList; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTree; +import javax.swing.ListSelectionModel; +import javax.swing.SwingUtilities; import javax.swing.table.AbstractTableModel; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellEditor; import javax.swing.table.TableColumn; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.GridLayout; +import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusAdapter; @@ -911,6 +929,11 @@ public class DBManipulationPane extends BasicBeanPane { return ComparatorUtils.equals(this.name, ((ColumnName)obj).name); } + + @Override + protected ColumnName clone() throws CloneNotSupportedException { + return new ColumnName(name); + } } public static class ColumnValue { @@ -931,6 +954,11 @@ public class DBManipulationPane extends BasicBeanPane { return ComparatorUtils.equals(this.obj, ((ColumnValue)obj).obj); } + + @Override + protected ColumnValue clone() throws CloneNotSupportedException { + return new ColumnValue(obj); + } } protected static class KeyColumnNameValueTable extends JTable { @@ -941,7 +969,14 @@ public class DBManipulationPane extends BasicBeanPane { public KeyColumnTableModel getTableModel4SmartAddCell() { - return new KeyColumnValueTableModel((KeyColumnTableModel)this.getModel()); + KeyColumnTableModel clonedTableModel = null; + try { + //智能添加的时候修改clone的配置,不修改原配置,点击确认后覆盖原配置 + clonedTableModel = ((KeyColumnValueTableModel) this.getModel()).clone(); + } catch (CloneNotSupportedException e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return new KeyColumnValueTableModel(clonedTableModel); } } @@ -949,11 +984,11 @@ public class DBManipulationPane extends BasicBeanPane { protected abstract static class KeyColumnTableModel extends AbstractTableModel { public static final String RAW_KEY = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_RWA_Key"); public static final String COLUMN = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_Column"); - public static final String VALUE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_Value"); + public static final String VALUE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Base_Value"); - public static final String[] COLUMN_NAMES = new String[]{RAW_KEY, COLUMN, VALUE}; + public static final String[] COLUMN_NAMES = new String[]{RAW_KEY, COLUMN, VALUE}; - protected java.util.List keyColumnNameValueList = new ArrayList(); + protected List keyColumnNameValueList = new ArrayList<>(); public KeyColumnTableModel(KeyColumnTableModel model) { if (model != null) { @@ -988,9 +1023,16 @@ public class DBManipulationPane extends BasicBeanPane { public void removeAllKeyColumnNameValue() { this.keyColumnNameValueList.clear(); } + + public void refreshNameValueList(KeyColumnTableModel model) { + if (model != null) { + this.keyColumnNameValueList.clear(); + this.keyColumnNameValueList.addAll(model.keyColumnNameValueList); + } + } } - protected static class KeyColumnValueTableModel extends KeyColumnTableModel { + protected static class KeyColumnValueTableModel extends KeyColumnTableModel implements Cloneable{ public KeyColumnValueTableModel(KeyColumnTableModel model) { super(model); @@ -1037,6 +1079,16 @@ public class DBManipulationPane extends BasicBeanPane { public boolean isCellEditable(int row, int col) { return true; } + + @Override + protected KeyColumnValueTableModel clone() throws CloneNotSupportedException { + KeyColumnValueTableModel cloned = (KeyColumnValueTableModel) super.clone(); + cloned.keyColumnNameValueList = new ArrayList<>(); + for (KeyColumnNameValue keyColumnNameValue : keyColumnNameValueList) { + cloned.keyColumnNameValueList.add(keyColumnNameValue.clone()); + } + return cloned; + } } @@ -1054,11 +1106,17 @@ public class DBManipulationPane extends BasicBeanPane { /** * 字符串 + * * @return 字符串z */ public String toString() { return (isKey ? "* " : "") + cn + ":" + cv; } + + @Override + protected KeyColumnNameValue clone() throws CloneNotSupportedException { + return new KeyColumnNameValue(isKey, cn.clone(), cv.clone(), false); + } } /* diff --git a/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java b/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java index dd675ffe3..37d6a639f 100644 --- a/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java +++ b/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java @@ -511,7 +511,7 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane { private SmartJTablePaneAction a = new AbstractSmartJTablePaneAction(this, SmartInsertDBManipulationPane.this) { @Override public void doOk() { - // 遗留代码 + ((KeyColumnTableModel)keyColumnValuesTable.getModel()).refreshNameValueList((KeyColumnTableModel)model); } @Override