Ticket #14666: Add_TableHelper_computeColumnsWidth_helper_and_use_it_for_tags_and_membership_tables.patch

File Add_TableHelper_computeColumnsWidth_helper_and_use_it_for_tags_and_membership_tables.patch, 3.1 KB (added by bagage, 5 years ago)

patch version 3

  • src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    9595import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetHandler;
    9696import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType;
    9797import org.openstreetmap.josm.gui.util.HighlightHelper;
     98import org.openstreetmap.josm.gui.util.TableHelper;
    9899import org.openstreetmap.josm.gui.widgets.CompileSearchTextDecorator;
    99100import org.openstreetmap.josm.gui.widgets.DisableShortcutsOnFocusGainedTextField;
    100101import org.openstreetmap.josm.gui.widgets.JosmTextField;
     
    308309        // setting up the tags table
    309310        tagData.setColumnIdentifiers(new String[]{tr("Key"), tr("Value")});
    310311        tagTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
     312        tagTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    311313        tagTable.getTableHeader().setReorderingAllowed(false);
    312314
    313315        tagTable.getColumnModel().getColumn(0).setCellRenderer(cellRenderer);
     
    332334    private void buildMembershipTable() {
    333335        membershipData.setColumnIdentifiers(new String[]{tr("Member Of"), tr("Role"), tr("Position")});
    334336        membershipTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
     337        membershipTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    335338
    336339        TableColumnModel mod = membershipTable.getColumnModel();
    337340        membershipTable.getTableHeader().setReorderingAllowed(false);
     
    669672        selectSth.setVisible(!hasSelection);
    670673        pluginHook.setVisible(hasSelection);
    671674
     675        // resize tables to fit content
     676        TableHelper.computeColumnsWidth(tagTable);
     677        TableHelper.computeColumnsWidth(membershipTable);
     678
    672679        int selectedIndex;
    673680        if (selectedTag != null && (selectedIndex = findViewRow(tagTable, tagData, selectedTag)) != -1) {
    674681            tagTable.changeSelection(selectedIndex, 0, false, false);
  • src/org/openstreetmap/josm/gui/util/TableHelper.java

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    3333        }
    3434        tbl.getColumnModel().getColumn(col).setPreferredWidth(Math.min(maxwidth+10, maxColumnWidth));
    3535    }
     36
     37    /**
     38     * adjust the table's columns to fit their content best
     39     * requires JTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
     40     * @param tbl table
     41     */
     42    public static void computeColumnsWidth(JTable tbl) {
     43        for (int column = 0; column < tbl.getColumnCount(); column++) {
     44            adjustColumnWidth(tbl, column, Integer.MAX_VALUE);
     45        }
     46    }
    3647}