Ticket #21965: josm_different_v2.patch

File josm_different_v2.patch, 11.7 KB (added by gaben, 2 years ago)

v2 reupload

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

    Subject: [PATCH] Different translation
    ---
    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;
     
    108109import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetListener;
    109110import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType;
    110111import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
     112import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
    111113import org.openstreetmap.josm.gui.util.AbstractTag2LinkPopupListener;
    112114import org.openstreetmap.josm.gui.util.HighlightHelper;
    113115import org.openstreetmap.josm.gui.util.TableHelper;
     
    351353        tagRowSorter.setComparator(0, AlphanumComparator.getInstance());
    352354        tagRowSorter.setComparator(1, (o1, o2) -> {
    353355            if (o1 instanceof Map && o2 instanceof Map) {
    354                 final String v1 = ((Map) o1).size() == 1 ? (String) ((Map) o1).keySet().iterator().next() : tr("<different>");
    355                 final String v2 = ((Map) o2).size() == 1 ? (String) ((Map) o2).keySet().iterator().next() : tr("<different>");
     356                final String v1 = ((Map) o1).size() == 1 ? (String) ((Map) o1).keySet().iterator().next() : KeyedItem.DIFFERENT_I18N;
     357                final String v2 = ((Map) o2).size() == 1 ? (String) ((Map) o2).keySet().iterator().next() : KeyedItem.DIFFERENT_I18N;
    356358                return AlphanumComparator.getInstance().compare(v1, v2);
    357359            } else {
    358360                return AlphanumComparator.getInstance().compare(String.valueOf(o1), String.valueOf(o2));
     
    768770            }
    769771            tagData.addRow(new Object[]{e.getKey(), e.getValue()});
    770772            tags.put(e.getKey(), e.getValue().size() == 1
    771                     ? e.getValue().keySet().iterator().next() : tr("<different>"));
     773                    ? e.getValue().keySet().iterator().next() : KeyedItem.DIFFERENT_I18N);
    772774        }
    773775
    774776        presets.updatePresets(types, tags, presetHandler);
     
    11951197                    if (roleString == null) {
    11961198                        roleString = r.getRole();
    11971199                    } else if (!roleString.equals(r.getRole())) {
    1198                         roleString = tr("<different>");
     1200                        roleString = KeyedItem.DIFFERENT_I18N;
    11991201                        break;
    12001202                    }
    12011203                }
     
    12051207
    12061208        @Override
    12071209        public String toString() {
    1208             return "MemberInfo{" +
    1209                     "roles='" + roleString + '\'' +
    1210                     ", positions='" + positionString + '\'' +
    1211                     '}';
     1210            return String.format("MemberInfo{roles='%s', positions='%s'}", roleString, positionString);
    12121211        }
    12131212    }
    12141213
     
    14611460            if (sel.isEmpty())
    14621461                return;
    14631462            final SearchSetting ss = createSearchSetting(key, sel, sameType);
    1464             org.openstreetmap.josm.actions.search.SearchAction.searchStateless(ss);
     1463            searchStateless(ss);
    14651464        }
    14661465    }
    14671466
     
    14841483            } else if (p instanceof Relation) {
    14851484                t = "type:relation ";
    14861485            }
    1487             String token = new StringBuilder(t).append(val).toString();
     1486            String token = t + val;
    14881487            if (consideredTokens.add(token)) {
    14891488                s.append(sep).append('(').append(t).append(SearchCompiler.buildSearchStringForTag(key, val)).append(')');
    14901489                sep = " OR ";
     
    15051504        void removeHiddenSelection() {
    15061505            try {
    15071506                tagRowSorter.convertRowIndexToModel(tagTable.getSelectedRow());
    1508             } catch (IndexOutOfBoundsException ignore) {
    1509                 Logging.trace(ignore);
     1507            } catch (IndexOutOfBoundsException e) {
     1508                Logging.trace(e);
    15101509                Logging.trace("Clearing tagTable selection");
    15111510                tagTable.clearSelection();
    15121511            }
  • 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))
  • 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/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);