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/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 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; + } } /**