Changeset 2779 in josm for trunk/src/org/openstreetmap/josm


Ignore:
Timestamp:
2010-01-08T22:15:11+01:00 (14 years ago)
Author:
mjulius
Message:

fixes #4253 - Combine way conflict dialog - check box for "Show tags with multiple values only"

Location:
trunk/src/org/openstreetmap/josm/gui/conflict/tags
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java

    r2712 r2779  
    365365        public void actionPerformed(ActionEvent arg0) {
    366366            setVisible(false);
     367            pnlTagConflictResolver.rememberPreferences();
    367368        }
    368369
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolver.java

    r2512 r2779  
    3030    /** selects wheter only tags with conflicts are displayed */
    3131    private JCheckBox cbShowTagsWithConflictsOnly;
     32    private JCheckBox cbShowTagsWithMultiValuesOnly;
    3233
    3334    protected JPanel buildInfoPanel() {
     
    5051                    public void stateChanged(ChangeEvent e) {
    5152                        model.setShowTagsWithConflictsOnly(cbShowTagsWithConflictsOnly.isSelected());
     53                        cbShowTagsWithMultiValuesOnly.setEnabled(cbShowTagsWithConflictsOnly.isSelected());
    5254                    }
    5355                }
     
    5658                Main.pref.getBoolean(getClass().getName() + ".showTagsWithConflictsOnly", false)
    5759        );
     60        pnl.add(cbShowTagsWithMultiValuesOnly = new JCheckBox(tr("Show tags with multiple values only")), gc);
     61        cbShowTagsWithMultiValuesOnly.addChangeListener(
     62                new ChangeListener() {
     63                    public void stateChanged(ChangeEvent e) {
     64                        model.setShowTagsWithMultiValuesOnly(cbShowTagsWithMultiValuesOnly.isSelected());
     65                    }
     66                }
     67        );
     68        cbShowTagsWithMultiValuesOnly.setSelected(
     69                Main.pref.getBoolean(getClass().getName() + ".showTagsWithMultiValuesOnly", false)
     70        );
     71        cbShowTagsWithMultiValuesOnly.setEnabled(cbShowTagsWithConflictsOnly.isSelected());
    5872        return pnl;
    5973    }
     
    6579    public void rememberPreferences() {
    6680        Main.pref.put(getClass().getName() + ".showTagsWithConflictsOnly", cbShowTagsWithConflictsOnly.isSelected());
     81        Main.pref.put(getClass().getName() + ".showTagsWithMultiValuesOnly", cbShowTagsWithMultiValuesOnly.isSelected());
    6782    }
    6883
  • trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java

    r2512 r2779  
    2828    private PropertyChangeSupport support;
    2929    private boolean showTagsWithConflictsOnly = false;
     30    private boolean showTagsWithMultiValuesOnly = false;
    3031
    3132    public TagConflictResolverModel() {
     
    9192        if (showTagsWithConflictsOnly) {
    9293            keys.retainAll(keysWithConflicts);
     94            if (showTagsWithMultiValuesOnly) {
     95                Set<String> keysWithMultiValues = new HashSet<String>();
     96                for (String key: keys) {
     97                    if (decisions.get(key).canKeepAll()) {
     98                        keysWithMultiValues.add(key);
     99                    }
     100                }
     101                keys.retainAll(keysWithMultiValues);
     102            }
    93103            for (String key: tags.getKeys()) {
    94104                if (!decisions.get(key).isDecided() && !keys.contains(key)) {
     
    144154            MultiValueDecisionType type = (MultiValueDecisionType)value;
    145155            switch(type) {
    146                 case KEEP_NONE:
    147                     decision.keepNone();
    148                     break;
    149                 case KEEP_ALL:
    150                     decision.keepAll();
    151                     break;
     156            case KEEP_NONE:
     157                decision.keepNone();
     158                break;
     159            case KEEP_ALL:
     160                decision.keepAll();
     161                break;
    152162            }
    153163        }
     
    193203    public void setShowTagsWithConflictsOnly(boolean showTagsWithConflictsOnly) {
    194204        this.showTagsWithConflictsOnly = showTagsWithConflictsOnly;
     205        rebuild();
     206    }
     207
     208    /**
     209     * Sets whether all conflicts or only conflicts with multiple values are displayed
     210     *
     211     * @param showTagsWithMultiValuesOnly if true, only tags with multiple values are displayed
     212     */
     213    public void setShowTagsWithMultiValuesOnly(boolean showTagsWithMultiValuesOnly) {
     214        this.showTagsWithMultiValuesOnly = showTagsWithMultiValuesOnly;
    195215        rebuild();
    196216    }
Note: See TracChangeset for help on using the changeset viewer.