Ignore:
Timestamp:
2017-06-11T22:26:15+02:00 (7 years ago)
Author:
Don-vip
Message:

see #14929 - Automatic filters on numeric tag values (level, layer, maxspeed, voltage)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/display/DrawingPreference.java

    r11090 r12400  
    1515import org.openstreetmap.josm.Main;
    1616import org.openstreetmap.josm.actions.ExpertToggleAction;
     17import org.openstreetmap.josm.gui.autofilter.AutoFilterManager;
     18import org.openstreetmap.josm.gui.autofilter.AutoFilterRule;
    1719import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
    1820import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
     
    2123import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
    2224import org.openstreetmap.josm.gui.util.GuiHelper;
     25import org.openstreetmap.josm.gui.widgets.JosmComboBox;
    2326import org.openstreetmap.josm.tools.GBC;
    2427
     
    4851    private final JCheckBox inactive = new JCheckBox(tr("Draw inactive layers in other color"));
    4952    private final JCheckBox discardableKeys = new JCheckBox(tr("Display discardable keys"));
     53    private final JCheckBox autoFilters = new JCheckBox(tr("Use auto filters"));
     54    private final JLabel lblRule = new JLabel(tr("Rule"));
     55    private final JosmComboBox<AutoFilterRule> autoFilterRules = new JosmComboBox<>(
     56            AutoFilterManager.getInstance().getAutoFilterRules().toArray(new AutoFilterRule[] {}));
    5057
    5158    // Options that affect performance
     
    131138        discardableKeys.setSelected(Main.pref.getBoolean("display.discardable-keys", false));
    132139
     140        // auto filters
     141        autoFilters.setToolTipText(tr("Display buttons to automatically filter numeric values of a predefined tag"));
     142        autoFilters.setSelected(AutoFilterManager.PROP_AUTO_FILTER_ENABLED.get());
     143        autoFilters.addActionListener(e -> {
     144            lblRule.setEnabled(autoFilters.isSelected());
     145            autoFilterRules.setEnabled(autoFilters.isSelected());
     146        });
     147        autoFilterRules.setToolTipText("Rule defining which tag will provide automatic filters, below a certain zoom level");
     148        autoFilterRules.setSelectedItem(AutoFilterManager.getInstance().getAutoFilterRule(AutoFilterManager.PROP_AUTO_FILTER_RULE.get()));
     149
    133150        JLabel performanceLabel = new JLabel(tr("Options that affect drawing performance"));
    134151
     
    157174        panel.add(inactive, GBC.eop().insets(20, 0, 0, 0));
    158175        panel.add(discardableKeys, GBC.eop().insets(20, 0, 0, 0));
     176        panel.add(autoFilters, GBC.eop().insets(20, 0, 0, 0));
     177        panel.add(lblRule, GBC.std().insets(40, 0, 0, 0));
     178        panel.add(autoFilterRules, GBC.eop().fill(GBC.HORIZONTAL).insets(5, 0, 0, 0));
    159179
    160180        ExpertToggleAction.addVisibilitySwitcher(performanceLabel);
     
    188208        Main.pref.put("draw.helper-line", drawHelperLine.isSelected());
    189209        Main.pref.put("display.discardable-keys", discardableKeys.isSelected());
     210        AutoFilterManager.PROP_AUTO_FILTER_ENABLED.put(autoFilters.isSelected());
     211        AutoFilterManager.PROP_AUTO_FILTER_RULE.put(((AutoFilterRule) autoFilterRules.getSelectedItem()).getKey());
    190212        int vn = Main.pref.getInteger("mappaint.node.virtual-size", 8);
    191213        if (virtualNodes.isSelected()) {
Note: See TracChangeset for help on using the changeset viewer.