Changeset 14331 in josm for trunk/src/com/kitfox


Ignore:
Timestamp:
2018-10-14T17:02:51+02:00 (18 months ago)
Author:
Don-vip
Message:

see #14319, see #16838 - fix regressions introduced in svgSalamander 1.1.2

see https://github.com/blackears/svgSalamander/issues/29

Location:
trunk/src/com/kitfox/svg
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/com/kitfox/svg/Tspan.java

    r14328 r14331  
    234234        }
    235235
     236        if (font == null)
     237        {
     238            font = FontSystem.createFont("Serif", fontStyle, fontWeight, fontStyle);
     239        }
     240
    236241        AffineTransform xform = new AffineTransform();
    237242
  • trunk/src/com/kitfox/svg/util/FontSystem.java

    r14328 r14331  
    4848import java.util.HashMap;
    4949import java.util.HashSet;
     50import java.util.Locale;
    5051
    5152/**
     
    5859    FontMetrics fm;
    5960
    60     HashMap<String, Glyph> glyphCache = new HashMap<String, Glyph>();
     61    HashMap<String, Glyph> glyphCache = new HashMap<>();
    6162   
    62     static HashSet<String> sysFontNames = new HashSet<String>();
     63    static HashSet<String> sysFontNames = new HashSet<>();
    6364
    6465    public static boolean checkIfSystemFontExists(String fontName)
     
    6667        if (sysFontNames.isEmpty())
    6768        {
    68             for (String name: GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames())
     69            for (String name: GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(Locale.ENGLISH))
    6970            {
    7071                sysFontNames.add(name);
     
    8081        for (String fontName: families)
    8182        {
    82             if (checkIfSystemFontExists(fontName))
     83            String javaFontName = mapJavaFontName(fontName);
     84            if (checkIfSystemFontExists(javaFontName))
    8385            {
    84                 return new FontSystem(fontName, fontStyle, fontWeight, fontSize);
     86                return new FontSystem(javaFontName, fontStyle, fontWeight, fontSize);
    8587            }
    8688        }
    8789
    8890        return null;
     91    }
     92
     93    private static String mapJavaFontName(String fontName) {
     94        if ("serif".equals(fontName)) {
     95            return java.awt.Font.SERIF;
     96        } else if ("sans-serif".equals(fontName)) {
     97            return java.awt.Font.SANS_SERIF;
     98        } else if ("monospace".equals(fontName)) {
     99            return java.awt.Font.MONOSPACED;
     100        } else {
     101            return fontName;
     102        }
    89103    }
    90104
  • trunk/src/com/kitfox/svg/xml/XMLParseUtil.java

    r11525 r14331  
    5656    static final Matcher fpMatch = Pattern.compile("([-+]?((\\d*\\.\\d+)|(\\d+))([eE][+-]?\\d+)?)(\\%|in|cm|mm|pt|pc|px|em|ex)?").matcher("");
    5757    static final Matcher intMatch = Pattern.compile("[-+]?\\d+").matcher("");
     58    static final Matcher quoteMatch = Pattern.compile("^'|'$").matcher("");
    5859
    5960    /** Creates a new instance of XMLParseUtil */
     
    320321
    321322            String key = styles[i].substring(0, colon).trim();
    322             String value = styles[i].substring(colon + 1).trim();
     323            String value = quoteMatch.reset(styles[i].substring(colon + 1).trim()).replaceAll("");
    323324
    324325            map.put(key, new StyleAttribute(key, value));
Note: See TracChangeset for help on using the changeset viewer.