Ticket #21965: josm_different.patch

File josm_different.patch, 10.8 KB (added by gaben, 3 years ago)
  • src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
    diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/KeyedItem.java
    a b  
    2929    /** The constant value {@code "<different>"}. */
    3030    protected static final String DIFFERENT = "<different>";
    3131    /** Translation of {@code "<different>"}. */
    32     protected static final String DIFFERENT_I18N = tr(DIFFERENT);
     32    public static final String DIFFERENT_I18N = tr(DIFFERENT);
    3333
    3434    /** True if the default value should also be set on primitives that already have tags.  */
    3535    protected static final BooleanProperty PROP_FILL_DEFAULT = new BooleanProperty("taggingpreset.fill-default-for-tagged-primitives", false);
  • src/org/openstreetmap/josm/gui/tagging/ac/MaxLengthDocumentFilter.java

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
    diff --git a/src/org/openstreetmap/josm/gui/tagging/ac/MaxLengthDocumentFilter.java b/src/org/openstreetmap/josm/gui/tagging/ac/MaxLengthDocumentFilter.java
    a b  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.tagging.ac;
    33
    4 import static org.openstreetmap.josm.tools.I18n.tr;
    5 
    64import javax.swing.text.AttributeSet;
    75import javax.swing.text.BadLocationException;
    86import javax.swing.text.DocumentFilter;
    97import javax.swing.text.StyleConstants;
    108
     9import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
     10
    1111/**
    1212 * A {@link DocumentFilter} to limit the text length in the editor.
    1313 * @since 18221
     
    1515public class MaxLengthDocumentFilter extends DocumentFilter {
    1616    /** the document will not accept text longer than this. -1 to disable */
    1717    private int maxLength = -1;
    18     private static final String DIFFERENT = tr("<different>");
    1918
    2019    /**
    2120     * Sets the maximum text length.
    2221     *
    23      * @param length the maximum no. of charactes allowed in this document. -1 to disable
     22     * @param length the maximum no. of characters allowed in this document. -1 to disable
    2423     */
    2524    public void setMaxLength(int length) {
    2625        maxLength = length;
     
    4443
    4544    private boolean mustInsertOrReplace(FilterBypass fb, int length, String string, AttributeSet attr) {
    4645        int newLen = fb.getDocument().getLength() - length + ((string == null) ? 0 : string.length());
    47         return (maxLength == -1 || newLen <= maxLength || DIFFERENT.equals(string) ||
     46        return (maxLength == -1 || newLen <= maxLength || KeyedItem.DIFFERENT_I18N.equals(string) ||
    4847                // allow longer text while composing characters or it will be hard to compose
    4948                // the last characters before the limit
    5049                ((attr != null) && attr.isDefined(StyleConstants.ComposedTextAttribute)));
  • src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
    diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
    a b  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.dialogs.properties;
    33
     4import static org.openstreetmap.josm.actions.search.SearchAction.searchStateless;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    56
    67import java.awt.Component;
     
    102103import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetListener;
    103104import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType;
    104105import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
     106import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
    105107import org.openstreetmap.josm.gui.util.AbstractTag2LinkPopupListener;
    106108import org.openstreetmap.josm.gui.util.HighlightHelper;
    107109import org.openstreetmap.josm.gui.util.TableHelper;
     
    328330        tagRowSorter.setComparator(0, AlphanumComparator.getInstance());
    329331        tagRowSorter.setComparator(1, (o1, o2) -> {
    330332            if (o1 instanceof Map && o2 instanceof Map) {
    331                 final String v1 = ((Map) o1).size() == 1 ? (String) ((Map) o1).keySet().iterator().next() : tr("<different>");
    332                 final String v2 = ((Map) o2).size() == 1 ? (String) ((Map) o2).keySet().iterator().next() : tr("<different>");
     333                final String v1 = ((Map) o1).size() == 1 ? (String) ((Map) o1).keySet().iterator().next() : KeyedItem.DIFFERENT_I18N;
     334                final String v2 = ((Map) o2).size() == 1 ? (String) ((Map) o2).keySet().iterator().next() : KeyedItem.DIFFERENT_I18N;
    333335                return AlphanumComparator.getInstance().compare(v1, v2);
    334336            } else {
    335337                return AlphanumComparator.getInstance().compare(String.valueOf(o1), String.valueOf(o2));
     
    676678            }
    677679            tagData.addRow(new Object[]{e.getKey(), e.getValue()});
    678680            tags.put(e.getKey(), e.getValue().size() == 1
    679                     ? e.getValue().keySet().iterator().next() : tr("<different>"));
     681                    ? e.getValue().keySet().iterator().next() : KeyedItem.DIFFERENT_I18N);
    680682        }
    681683
    682684        membershipData.setRowCount(0);
     
    10841086                    if (roleString == null) {
    10851087                        roleString = r.getRole();
    10861088                    } else if (!roleString.equals(r.getRole())) {
    1087                         roleString = tr("<different>");
     1089                        roleString = KeyedItem.DIFFERENT_I18N;
    10881090                        break;
    10891091                    }
    10901092                }
     
    13431345            if (sel.isEmpty())
    13441346                return;
    13451347            final SearchSetting ss = createSearchSetting(key, sel, sameType);
    1346             org.openstreetmap.josm.actions.search.SearchAction.searchStateless(ss);
     1348            searchStateless(ss);
    13471349        }
    13481350    }
    13491351
     
    13661368            } else if (p instanceof Relation) {
    13671369                t = "type:relation ";
    13681370            }
    1369             String token = new StringBuilder(t).append(val).toString();
     1371            String token = t + val;
    13701372            if (consideredTokens.add(token)) {
    13711373                s.append(sep).append('(').append(t).append(SearchCompiler.buildSearchStringForTag(key, val)).append(')');
    13721374                sep = " OR ";
  • src/org/openstreetmap/josm/gui/dialogs/properties/RelationRoleEditor.java

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
    diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/RelationRoleEditor.java b/src/org/openstreetmap/josm/gui/dialogs/properties/RelationRoleEditor.java
    a b  
    1414import org.openstreetmap.josm.data.osm.Relation;
    1515import org.openstreetmap.josm.data.osm.RelationMember;
    1616import org.openstreetmap.josm.gui.MainApplication;
     17import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
    1718import org.openstreetmap.josm.tools.Utils;
    1819
    1920/**
     
    4142                formatter.formatAsHtmlUnorderedList(Utils.transform(members, RelationMember::getMember), 5),
    4243                formatter.formatAsHtmlUnorderedList(relation)),
    4344                oldRole);
    44         if (newRole == null || oldRole.equals(newRole) || tr("<different>").equals(newRole)) {
     45        if (newRole == null || oldRole.equals(newRole) || KeyedItem.DIFFERENT_I18N.equals(newRole)) {
    4546            return;
    4647        }
    4748        final List<RelationMember> newMembers = relation.getMembers();
  • src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
    diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java b/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
    a b  
    8888import org.openstreetmap.josm.gui.tagging.ac.AutoCompEvent;
    8989import org.openstreetmap.josm.gui.tagging.ac.AutoCompListener;
    9090import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
     91import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
    9192import org.openstreetmap.josm.gui.util.GuiHelper;
    9293import org.openstreetmap.josm.gui.util.WindowGeometry;
    9394import org.openstreetmap.josm.gui.widgets.JosmListCellRenderer;
     
    537538
    538539            List<AutoCompletionItem> valueList = autocomplete.getTagValues(getAutocompletionKeys(key), usedValuesAwareComparator);
    539540
    540             final String selection = m.size() != 1 ? tr("<different>") : m.entrySet().iterator().next().getKey();
     541            final String selection = m.size() != 1 ? KeyedItem.DIFFERENT_I18N : m.entrySet().iterator().next().getKey();
    541542
    542543            values = new AutoCompComboBox<>();
    543544            values.getModel().setComparator(Comparator.naturalOrder());
     
    585586                newkey = key;
    586587                value = null; // delete the key instead
    587588            }
    588             if (key.equals(newkey) && tr("<different>").equals(value))
     589            if (key.equals(newkey) && KeyedItem.DIFFERENT_I18N.equals(value))
    589590                return;
    590591            if (key.equals(newkey) || value == null) {
    591592                UndoRedoHandler.getInstance().add(new ChangePropertyCommand(sel, newkey, value));
     
    605606                }
    606607                Collection<Command> commands = new ArrayList<>();
    607608                commands.add(new ChangePropertyCommand(sel, key, null));
    608                 if (value.equals(tr("<different>"))) {
     609                if (value.equals(KeyedItem.DIFFERENT_I18N)) {
    609610                    String newKey = newkey;
    610611                    sel.stream()
    611612                            .filter(osm -> osm.hasKey(key))