From 807f381feda5d4a77dc7757e4b1b08098623ca41 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 7 Jan 2019 19:43:19 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-14057=2010.0=E6=97=A5=E6=96=87=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E9=97=AE=E9=A2=98=E5=A4=84=E7=90=86=3D>?= =?UTF-8?q?=E9=97=AE=E9=A2=987=20=E6=8E=A7=E4=BB=B6=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/webattr/ToolBarDragPane.java | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/webattr/ToolBarDragPane.java b/designer-realize/src/main/java/com/fr/design/webattr/ToolBarDragPane.java index d339f201a..c420c04b4 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/ToolBarDragPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/ToolBarDragPane.java @@ -10,16 +10,26 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerContext; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.form.ui.Widget; - import com.fr.report.web.Location; import com.fr.report.web.ToolBarManager; import com.fr.stable.ArrayUtils; +import com.fr.stable.GraphDrawHelper; import com.fr.stable.StringUtils; -import javax.swing.*; +import javax.swing.Icon; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.ListSelectionModel; +import javax.swing.SwingUtilities; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; -import java.awt.*; +import javax.swing.table.TableColumnModel; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; @@ -34,6 +44,7 @@ import java.awt.image.ImageObserver; public class ToolBarDragPane extends WidgetToolBarPane { private static final int COLUMN = 4; + private static final int MIN_COLUMN_WIDTH = 15; private int row = 7; private DefaultTableModel toolbarButtonTableModel; private JTable layoutTable; @@ -169,10 +180,6 @@ public class ToolBarDragPane extends WidgetToolBarPane { layoutTable.setColumnSelectionAllowed(false); layoutTable.setRowSelectionAllowed(false); layoutTable.setBackground(Color.WHITE); - int columnWidth = Integer.parseInt(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Layout_Table_Column_Width")); - for (int i = 0; i < layoutTable.getColumnModel().getColumnCount(); i++) { - layoutTable.getColumnModel().getColumn(i).setPreferredWidth(columnWidth); - } layoutTable.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() > 1 && !(SwingUtilities.isRightMouseButton(e)) && isEnabled) { @@ -188,6 +195,23 @@ public class ToolBarDragPane extends WidgetToolBarPane { }); } + // 根据控件名称长度,设置合适的列宽 + private static void resizeColumnWidth(JTable table) { + final TableColumnModel columnModel = table.getColumnModel(); + for (int column = 0; column < table.getColumnCount(); column++) { + int width = MIN_COLUMN_WIDTH; // Min width + for (int row = 0; row < table.getRowCount(); row++) { + WidgetOption widgetOption = (WidgetOption) table.getValueAt(row, column); + if (widgetOption == null) { + continue; + } + String optionName = widgetOption.optionName(); + width = Math.max(GraphDrawHelper.getWidth(optionName), width); + } + columnModel.getColumn(column).setPreferredWidth(width); + } + } + private boolean isSelectedtable() { for (int i = 0; i < layoutTable.getColumnCount(); i++) { @@ -229,6 +253,7 @@ public class ToolBarDragPane extends WidgetToolBarPane { toolbarButtonTableModel.setValueAt(buttonArray[i], i % row, i / row); } } + resizeColumnWidth(layoutTable); }