From 81f02dc0850172621f102761d26b30374f5c7e53 Mon Sep 17 00:00:00 2001 From: "Richard.Fang" Date: Mon, 23 Dec 2024 17:20:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-144901=20fix:=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=A1=AB=E6=8A=A5=E5=B1=9E=E6=80=A7=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E9=BC=A0=E6=A0=87=E6=82=AC=E6=B5=AE=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../theme/light/ui/FineTableHeaderUI.java | 14 ++++++++++-- .../write/submit/DBManipulationPane.java | 22 ++++++++++++++----- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java b/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java index da6a4c9c5e..a4ce5f20ea 100644 --- a/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java +++ b/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java @@ -124,14 +124,24 @@ public class FineTableHeaderUI extends FlatTableHeaderUI { * @param column */ private void setToolTipText(JTable table, Object value, int column) { - String tipText = value == null ? StringUtils.BLANK : String.valueOf(value); + String tipText = value == null ? StringUtils.BLANK : getTooltipValue(value); FontMetrics fm = this.getFontMetrics(this.getFont()); - int textWidth = fm.stringWidth(String.valueOf(value)); + int textWidth = fm.stringWidth(tipText); if (textWidth > table.getColumnModel().getColumn(column).getWidth()) { setToolTipText(tipText); } else { setToolTipText(null); } } + + /** + * 提取实际显示值 + * + * @param value 值 + * @return 转换后的显示值 + */ + public String getTooltipValue(Object value) { + return String.valueOf(value); + } } } 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 17849321fd..7e60697511 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 @@ -2,11 +2,9 @@ package com.fr.design.write.submit; import com.fine.swing.ui.layout.Layouts; import com.fine.theme.icon.LazyIcon; -import com.fine.swing.ui.layout.Spacer; import com.fine.theme.light.ui.FineRoundBorder; import com.fine.theme.light.ui.FineTableHeaderUI; import com.fine.theme.utils.FineClientProperties; -import com.fine.theme.utils.FineUIScale; import com.fine.theme.utils.FineUIUtils; import com.fr.base.BaseFormula; import com.fr.base.Parameter; @@ -21,7 +19,6 @@ import com.fr.design.constants.UIConstants; import com.fr.design.data.datapane.ChoosePaneSupportFormula; import com.fr.design.data.datapane.DataBaseItems; import com.fr.design.data.tabledata.tabledatapane.FormatExplanationPane; -import com.fr.design.dialog.AttrScrollPane; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; @@ -33,7 +30,6 @@ import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.icombobox.UIComboBoxRenderer; -import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.icontainer.UIVerticalScrollPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilist.CheckBoxList; @@ -50,6 +46,7 @@ import com.fr.general.data.Condition; import com.fr.log.FineLoggerFactory; import com.fr.stable.ColumnRow; import com.fr.stable.ColumnRowGroup; +import com.fr.stable.StringUtils; import com.fr.write.DBManipulation; import com.fr.write.NameSubmitJob; import com.fr.write.config.ColumnConfig; @@ -103,7 +100,6 @@ import java.util.stream.Collectors; import static com.fine.swing.ui.layout.Layouts.row; import static com.fine.swing.ui.layout.Layouts.cell; import static com.fine.swing.ui.layout.Layouts.column; -import static com.fine.swing.ui.layout.Layouts.row; import static com.fine.theme.utils.FineUIScale.scale; //august:这个东西应该分成两类,一类是有单元格的情况,一类是没有单元格的情况 @@ -1225,6 +1221,14 @@ public class DBManipulationPane extends BasicBeanPane { public boolean checkSelected(boolean isSelected, Class columnClass) { return isSelected; } + + @Override + public String getTooltipValue(Object value) { + if (value instanceof ColumnName) { + return ((ColumnName) value).name; + } + return StringUtils.BLANK; + } } /* @@ -1255,6 +1259,14 @@ public class DBManipulationPane extends BasicBeanPane { public boolean checkSelected(boolean isSelected, Class columnClass) { return isSelected; } + + @Override + public String getTooltipValue(Object value) { + if (value instanceof ColumnValue) { + return ((ColumnValue) value).obj.toString(); + } + return StringUtils.BLANK; + } } /** From c9a6e0bbf76b8ed9a3ae15ce828bf175ff596e54 Mon Sep 17 00:00:00 2001 From: "Richard.Fang" Date: Tue, 24 Dec 2024 14:10:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-144846=20fix:comboBox=E5=8F=AF?= =?UTF-8?q?=E8=A7=81=E6=97=B6refresh=E6=93=8D=E4=BD=9C=E6=94=BE=E5=88=B0ED?= =?UTF-8?q?T=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/data/datapane/TableDataComboBox.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataComboBox.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataComboBox.java index ec2a6690e1..136181bcd8 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataComboBox.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataComboBox.java @@ -1,6 +1,7 @@ package com.fr.design.data.datapane; import com.fr.design.constants.UIConstants; +import com.fr.design.ui.util.UIUtil; import java.awt.Component; import java.awt.Dimension; import java.awt.event.ItemEvent; @@ -73,7 +74,7 @@ public class TableDataComboBox extends UIComboBox implements Prepare4DataSourceC public TableDataComboBox() { super(); setListCellRenderer(); - addListener(); + addComboBoxListener(); } /** @@ -109,14 +110,14 @@ public class TableDataComboBox extends UIComboBox implements Prepare4DataSourceC } /** - * 在comboBox可见时添加下拉事件与数据集响应事件 + * 在comboBox可见时添加数据集响应事件与refresh操作 */ - private void addListener() { + private void addComboBoxListener() { this.addAncestorListener(new AncestorListener() { @Override public void ancestorAdded(AncestorEvent event) { registerDSChangeListener(); - refresh(DesignTableDataManager.getEditingTableDataSource()); + UIUtil.invokeLaterIfNeeded(() -> refresh(DesignTableDataManager.getEditingTableDataSource())); } @Override