Changeset 5353 in josm


Ignore:
Timestamp:
Jul 19, 2012 11:04:38 PM (10 months ago)
Author:
Don-vip
Message:

fix #7229 - Render all names (up to 80 chars) in validator tree, instead of just the first one followed by "..."

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/validation/util/MultipleNameVisitor.java

    r3671 r5353  
    22package org.openstreetmap.josm.data.validation.util; 
    33 
    4 import static org.openstreetmap.josm.tools.I18n.tr; 
    54import static org.openstreetmap.josm.tools.I18n.trn; 
    65 
     
    2019public class MultipleNameVisitor extends NameVisitor 
    2120{ 
     21    public static final int MULTIPLE_NAME_MAX_LENGTH = 80; 
     22     
    2223    /** The class name of the combined primitives */ 
    23     String multipleClassname; 
     24    private String multipleClassname; 
    2425    /* name to be displayed */ 
    25     String displayName; 
     26    private String displayName; 
    2627    /** Size of the collection */ 
    27     int size; 
     28    private int size; 
    2829 
    2930    /** 
     
    3233     */ 
    3334    public void visit(Collection<? extends OsmPrimitive> data) { 
    34         String multipleName = null; 
     35        String multipleName = ""; 
    3536        String multiplePluralClassname = null; 
    36         String firstName = null; 
    37         boolean initializedname = false; 
    3837        size = data.size(); 
    3938 
     
    4443                name = osm.get("ref"); 
    4544            } 
    46             if (!initializedname) { 
    47                 multipleName = name; initializedname = true; 
    48             } else if (multipleName != null && (name == null  || !name.equals(multipleName))) { 
    49                 multipleName = null; 
     45            if (name != null && !name.isEmpty() && multipleName.length() <= MULTIPLE_NAME_MAX_LENGTH) { 
     46                if (!multipleName.isEmpty()) { 
     47                    multipleName += ", "; 
     48                } 
     49                multipleName += name; 
    5050            } 
    5151 
    52             if (firstName == null && name != null) { 
    53                 firstName = name; 
    54             } 
    5552            osm.visit(this); 
    5653            if (multipleClassname == null) { 
     
    6562        if (size == 1) { 
    6663            displayName = name; 
    67         } else if (multipleName != null) { 
    68             displayName = size + " " + trn(multipleClassname, multiplePluralClassname, size) + ": " + multipleName; 
    69         } else if (firstName != null) { 
    70             displayName = size + " " + trn(multipleClassname, multiplePluralClassname, size) + ": " + tr("{0}, ...", firstName); 
    7164        } else { 
    7265            displayName = size + " " + trn(multipleClassname, multiplePluralClassname, size); 
     66            if (!multipleName.isEmpty()) { 
     67                if (multipleName.length() <= MULTIPLE_NAME_MAX_LENGTH) { 
     68                    displayName += ": " + multipleName; 
     69                } else { 
     70                    displayName += ": " + multipleName.substring(0, MULTIPLE_NAME_MAX_LENGTH) + "..."; 
     71                } 
     72            } 
    7373        } 
    7474    } 
     
    9797            return ImageProvider.get("data", multipleClassname); 
    9898    } 
     99 
     100    @Override 
     101    public String toString() { 
     102        return getText(); 
     103    } 
    99104} 
Note: See TracChangeset for help on using the changeset viewer.