From 2c15882d0dca7f712adec4dc9c118d0dd88fa4e8 Mon Sep 17 00:00:00 2001
From: Gautier Pelloux-Prayer <gautier+git@damsy.net>
Date: Mon, 12 Nov 2018 21:29:01 +0100
Subject: [PATCH] Automatically recompute tags and membership tables' columns
width to fit content
---
.../dialogs/properties/PropertiesDialog.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
index 1b1d9c4ab..23b7e8056 100644
|
a
|
b
|
implements DataSelectionListener, ActiveLayerChangeListener, DataSetListenerAdap
|
| 303 | 303 | return HelpUtil.ht("/Dialog/TagsMembership"); |
| 304 | 304 | } |
| 305 | 305 | |
| | 306 | private void computeColumnsWidth(JTable table) { |
| | 307 | final TableColumnModel columnModel = table.getColumnModel(); |
| | 308 | for (int column = 0; column < table.getColumnCount(); column++) { |
| | 309 | int width = 15; // Min width |
| | 310 | for (int row = 0; row < table.getRowCount(); row++) { |
| | 311 | TableCellRenderer renderer = table.getCellRenderer(row, column); |
| | 312 | Component comp = table.prepareRenderer(renderer, row, column); |
| | 313 | width = Math.max(comp.getPreferredSize().width +1 , width); |
| | 314 | } |
| | 315 | columnModel.getColumn(column).setPreferredWidth(width); |
| | 316 | } |
| | 317 | } |
| | 318 | |
| 306 | 319 | private void buildTagsTable() { |
| 307 | 320 | // setting up the tags table |
| 308 | 321 | tagData.setColumnIdentifiers(new String[]{tr("Key"), tr("Value")}); |
| … |
… |
implements DataSelectionListener, ActiveLayerChangeListener, DataSetListenerAdap
|
| 667 | 680 | selectSth.setVisible(!hasSelection); |
| 668 | 681 | pluginHook.setVisible(hasSelection); |
| 669 | 682 | |
| | 683 | // resize tables to fit content |
| | 684 | computeColumnsWidth(tagTable); |
| | 685 | computeColumnsWidth(membershipTable); |
| | 686 | |
| 670 | 687 | int selectedIndex; |
| 671 | 688 | if (selectedTag != null && (selectedIndex = findViewRow(tagTable, tagData, selectedTag)) != -1) { |
| 672 | 689 | tagTable.changeSelection(selectedIndex, 0, false, false); |