Ticket #21462: 21462.patch

File 21462.patch, 3.3 KB (added by marcello@…, 4 years ago)

patch

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

     
    111111import org.openstreetmap.josm.gui.widgets.JosmTextField;
    112112import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
    113113import org.openstreetmap.josm.spi.preferences.Config;
    114 import org.openstreetmap.josm.spi.preferences.PreferenceChangedListener;
    115114import org.openstreetmap.josm.spi.preferences.PreferenceChangeEvent;
    116115import org.openstreetmap.josm.tools.AlphanumComparator;
    117116import org.openstreetmap.josm.tools.GBC;
     
    141140 * @author imi
    142141 */
    143142public class PropertiesDialog extends ToggleDialog
    144 implements DataSelectionListener, ActiveLayerChangeListener, DataSetListenerAdapter.Listener, PreferenceChangedListener, TaggingPresetListener {
     143implements DataSelectionListener, ActiveLayerChangeListener, DataSetListenerAdapter.Listener, TaggingPresetListener {
     144    private final BooleanProperty PROP_DISPLAY_DISCARDABLE_KEYS = new BooleanProperty("display.discardable-keys", false);
    145145
    146146    /**
    147147     * hook for roadsigns plugin to display a small button in the upper right corner of this dialog
     
    303303
    304304        editHelper.loadTagsIfNeeded();
    305305
    306         Config.getPref().addKeyPreferenceChangeListener("display.discardable-keys", this);
    307306        TaggingPresets.addListener(this);
    308307    }
    309308
     
    617616        destroyTaginfoNationalActions();
    618617        membershipTable.removeMouseListener(popupMenuLauncher);
    619618        super.destroy();
    620         Config.getPref().removeKeyPreferenceChangeListener("display.discardable-keys", this);
    621619        TaggingPresets.removeListener(this);
    622620        Container parent = pluginHook.getParent();
    623621        if (parent != null) {
     
    650648        // re-load tag data
    651649        tagData.setRowCount(0);
    652650
    653         final boolean displayDiscardableKeys = Config.getPref().getBoolean("display.discardable-keys", false);
     651        final boolean displayDiscardableKeys = PROP_DISPLAY_DISCARDABLE_KEYS.get();
    654652        final Map<String, Integer> keyCount = new HashMap<>();
    655653        final Map<String, String> tags = new HashMap<>();
    656654        valueCount.clear();
     
    768766    /* ---------------------------------------------------------------------------------- */
    769767
    770768    /**
    771      * Re-load data when display preference change
     769     * Reloads data when the {@code display.discardable-keys} preference changes
    772770     */
    773771    @Override
    774772    public void preferenceChanged(PreferenceChangeEvent e) {
    775         if (MainApplication.getLayerManager().getActiveData() != null) {
    776             updateSelection();
     773        super.preferenceChanged(e);
     774        if (PROP_DISPLAY_DISCARDABLE_KEYS.getKey().equals(e.getKey())) {
     775            if (MainApplication.getLayerManager().getActiveData() != null) {
     776                updateSelection();
     777            }
    777778        }
    778779    }
    779780
    780 
    781781    /* ---------------------------------------------------------------------------------- */
    782782    /* TaggingPresetListener                                                              */
    783783    /* ---------------------------------------------------------------------------------- */