From 2eaf3b057cdd81e7844fb4f565f19998538ffeeb Mon Sep 17 00:00:00 2001 From: lucian Date: Mon, 20 Dec 2021 15:54:07 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-62876=20=E8=A1=A8=E5=90=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=97=B6=E4=B8=8D=E7=94=A8toString=EF=BC=8C=E4=BC=9A?= =?UTF-8?q?=E4=B8=8E=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4=EF=BC=8C=E7=BB=9F=E4=B8=80=E4=B8=BAname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/data/datapane/ChoosePane.java | 6 +-- ...oBox.java => TableSearchTreeComboBox.java} | 39 ++++++++++--------- 2 files changed, 24 insertions(+), 21 deletions(-) rename designer-base/src/main/java/com/fr/design/gui/icombobox/{SearchFRTreeComboBox.java => TableSearchTreeComboBox.java} (87%) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java index 38d287a20..55ff90abb 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java @@ -19,7 +19,7 @@ import com.fr.design.data.datapane.preview.PreviewTablePane; import com.fr.design.data.tabledata.Prepare4DataSourceChange; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.gui.icombobox.FilterableComboBoxModel; -import com.fr.design.gui.icombobox.SearchFRTreeComboBox; +import com.fr.design.gui.icombobox.TableSearchTreeComboBox; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.icombobox.UIComboBoxEditor; import com.fr.design.gui.icombobox.UIComboBoxRenderer; @@ -91,7 +91,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha /** * 表名 */ - protected SearchFRTreeComboBox tableNameComboBox; + protected TableSearchTreeComboBox tableNameComboBox; private SwingWorker populateWorker; @@ -146,7 +146,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha schemaBox = new StringUIComboBox(); schemaBox.setEditor(new ComboBoxEditor()); - tableNameComboBox = new SearchFRTreeComboBox(this, new JTree(new DefaultMutableTreeNode()), tableNameTreeRenderer); + tableNameComboBox = new TableSearchTreeComboBox(this, new JTree(new DefaultMutableTreeNode()), tableNameTreeRenderer); tableNameComboBox.setEditable(true); tableNameComboBox.setRenderer(listCellRenderer); registerDSChangeListener(); diff --git a/designer-base/src/main/java/com/fr/design/gui/icombobox/SearchFRTreeComboBox.java b/designer-base/src/main/java/com/fr/design/gui/icombobox/TableSearchTreeComboBox.java similarity index 87% rename from designer-base/src/main/java/com/fr/design/gui/icombobox/SearchFRTreeComboBox.java rename to designer-base/src/main/java/com/fr/design/gui/icombobox/TableSearchTreeComboBox.java index ff6ebba02..dc64ab3c0 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icombobox/SearchFRTreeComboBox.java +++ b/designer-base/src/main/java/com/fr/design/gui/icombobox/TableSearchTreeComboBox.java @@ -25,7 +25,7 @@ import java.awt.event.MouseEvent; import java.util.Enumeration; /** - * 实现模糊搜索的FRTreeComboBox + * 实现模糊搜索表名的FRTreeComboBox * FRTreeComboBox:搜索后滚动到首个匹配节点 * SearchFRTreeComboBox:显示所有匹配的节点 * @@ -33,20 +33,27 @@ import java.util.Enumeration; * @version 10.0 * Created by Lucian.Chen on 2021/4/14 */ -public class SearchFRTreeComboBox extends FRTreeComboBox { - - private static final String DOT = "."; +public class TableSearchTreeComboBox extends FRTreeComboBox { // 持有父容器,需要实时获取其他组件值 private final ChoosePane parent; - public SearchFRTreeComboBox(ChoosePane parent, JTree tree, TreeCellRenderer renderer) { + public TableSearchTreeComboBox(ChoosePane parent, JTree tree, TreeCellRenderer renderer) { super(tree, renderer); this.parent = parent; - setUI(new SearchFRTreeComboBoxUI()); + setUI(new TableSearchTreeComboBoxUI()); } protected UIComboBoxEditor createEditor() { - return new SearchFRComboBoxEditor(this); + return new TableSearchComboBoxEditor(this); + } + + @Override + protected String pathToString(TreePath path) { + Object obj = ((DefaultMutableTreeNode) path.getLastPathComponent()).getUserObject(); + if (obj instanceof TableProcedure) { + return ((TableProcedure) obj).getName(); + } + return super.pathToString(path); } /** @@ -61,7 +68,7 @@ public class SearchFRTreeComboBox extends FRTreeComboBox { parent.getDSName(), parent.getConnection(), parent.getSchema(), - createFilter((String) searchEditor.getItem(), parent.getSchema())); + createFilter((String) searchEditor.getItem())); return null; } @@ -74,8 +81,8 @@ public class SearchFRTreeComboBox extends FRTreeComboBox { }.execute(); } - private TableNameFilter createFilter(String text, String schema) { - return StringUtils.isEmpty(text) ? EMPTY_FILTER : new TableNameFilter(text, schema); + private TableNameFilter createFilter(String text) { + return StringUtils.isEmpty(text) ? EMPTY_FILTER : new TableNameFilter(text); } /** @@ -159,11 +166,7 @@ public class SearchFRTreeComboBox extends FRTreeComboBox { public TableNameFilter() { } - public TableNameFilter(String searchFilter, String schema) { - // 有模式的截掉,不参与模糊搜索 - if (StringUtils.isNotEmpty(schema) && searchFilter.startsWith(schema + DOT)) { - searchFilter = searchFilter.substring(schema.length() + 1); - } + public TableNameFilter(String searchFilter) { this.searchFilter = searchFilter.toLowerCase().trim(); } @@ -177,7 +180,7 @@ public class SearchFRTreeComboBox extends FRTreeComboBox { /** * 重写FRTreeComboBoxUI,实现点击下拉时触发模糊搜索 */ - private class SearchFRTreeComboBoxUI extends FRTreeComboBoxUI { + private class TableSearchTreeComboBoxUI extends FRTreeComboBoxUI { @Override public void mouseClicked(MouseEvent e) { @@ -188,9 +191,9 @@ public class SearchFRTreeComboBox extends FRTreeComboBox { /** * 重写输入框编辑器,实现输入框模糊搜索逻辑 */ - private class SearchFRComboBoxEditor extends FrTreeSearchComboBoxEditor { + private class TableSearchComboBoxEditor extends FrTreeSearchComboBoxEditor { - public SearchFRComboBoxEditor(FRTreeComboBox comboBox) { + public TableSearchComboBoxEditor(FRTreeComboBox comboBox) { super(comboBox); } From 3bab59843af0182ffbfbc7fd2b7970f8d48ff43e Mon Sep 17 00:00:00 2001 From: lucian Date: Mon, 20 Dec 2021 15:57:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-64412=20=E8=8E=B7=E5=8F=96=E8=A1=A8?= =?UTF-8?q?=E5=90=8D=E4=BD=BF=E7=94=A8=E6=96=87=E6=9C=AC=E6=A1=86=E5=86=85?= =?UTF-8?q?=E5=AE=B9=EF=BC=8C=E8=80=8C=E9=9D=9E=E9=80=89=E6=8B=A9=E7=9A=84?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/data/datapane/ChoosePane.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java index 55ff90abb..99a294fdd 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java @@ -486,12 +486,9 @@ public class ChoosePane extends BasicBeanPane implements Refresha protected String getTableName() { String tableName = ""; - Object obj = this.tableNameComboBox.getSelectedItemObject(); + Object obj = this.tableNameComboBox.getSelectedItem(); if (obj == null) { - obj = this.tableNameComboBox.getSelectedItem(); - if (obj == null) { - obj = this.tableNameComboBox.getEditor().getItem(); - } + obj = this.tableNameComboBox.getEditor().getItem(); } if (obj instanceof TreePath) { Object tp = ((ExpandMutableTreeNode) ((TreePath) obj).getLastPathComponent()).getUserObject();