Changeset 504 in josm


Ignore:
Timestamp:
2007-12-31T17:49:15+01:00 (17 years ago)
Author:
gebner
Message:

Don't do hacky string mangling to get a URL from a File.

Location:
trunk/src/org/openstreetmap/josm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/PluginPreference.java

    r474 r504  
    2323import java.util.TreeMap;
    2424import java.util.Map.Entry;
     25import java.net.URL;
    2526
    2627import javax.swing.AbstractAction;
     
    5657                public String name;
    5758                public String description;
    58                 public String resource;
     59                public URL resource;
    5960                public String version;
    60                 public PluginDescription(String name, String description, String resource, String version) {
     61                public PluginDescription(String name, String description, URL resource, String version) {
    6162                        this.name = name;
    6263                        this.description = description;
     
    212213                        pluginPanel.add(pluginCheck);
    213214
    214                         pluginCheck.setToolTipText(plugin.resource != null ? plugin.resource : tr("Plugin bundled with JOSM"));
     215                        pluginCheck.setToolTipText(plugin.resource != null ? ""+plugin.resource : tr("Plugin bundled with JOSM"));
    215216                        JLabel label = new JLabel("<html><i>"+(plugin.description==null?tr("no description available"):plugin.description)+"</i></html>");
    216217                        label.setBorder(BorderFactory.createEmptyBorder(0,20,0,0));
     
    246247                                                        PluginInformation info = new PluginInformation(f);
    247248                                                        if (!availablePlugins.containsKey(info.name))
    248                                                                 availablePlugins.put(info.name, new PluginDescription(info.name, info.description, PluginInformation.getURLString(f.getPath()), info.version));
     249                                                                availablePlugins.put(info.name, new PluginDescription(
     250                                                                        info.name,
     251                                                                        info.description,
     252                                                                        PluginInformation.fileToURL(f),
     253                                                                        info.version));
    249254                                                } catch (PluginException x) {
    250255                                                }
     
    268273                                                proxy.info.name,
    269274                                                proxy.info.description,
    270                                                 proxy.info.file == null ? null : PluginInformation.getURLString(proxy.info.file.getPath()),
    271                                                                 proxy.info.version));
     275                                                proxy.info.file == null ? null : PluginInformation.fileToURL(proxy.info.file),
     276                                                proxy.info.version));
    272277                return availablePlugins.values();
    273278        }
  • trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java

    r298 r504  
    99import java.io.InputStream;
    1010import java.net.URL;
     11import java.net.MalformedURLException;
    1112import java.util.ArrayList;
    1213import java.util.Collection;
     
    8485                                String classPath = attr.getValue(Attributes.Name.CLASS_PATH);
    8586                                if (classPath != null) {
    86                                         String[] cp = classPath.split(" ");
    87                                         StringBuilder entry = new StringBuilder();
    88                                         for (String s : cp) {
    89                                                 entry.append(s);
    90                                                 if (s.endsWith("\\")) {
    91                                                         entry.setLength(entry.length()-1);
    92                                                         entry.append("%20"); // append the split character " " as html-encode
    93                                                         continue;
     87                                        for (String entry : classPath.split(" ")) {
     88                                                File entryFile;
     89                                                if (new File(entry).isAbsolute()) {
     90                                                        entryFile = new File(entry);
     91                                                } else {
     92                                                        entryFile = new File(file.getParent(), entry);
    9493                                                }
    95                                                 s = entry.toString();
    96                                                 entry = new StringBuilder();
    97                                                 if (!s.startsWith("/") && !s.startsWith("\\") && !s.matches("^.\\:") && file != null)
    98                                                         s = file.getParent() + File.separator + s;
    99                                                 libraries.add(new URL(getURLString(s)));
     94
     95                                                libraries.add(fileToURL(entryFile));
    10096                                        }
    10197                                }
     
    112108                        }
    113109                        if (file != null)
    114                                 libraries.add(0, new URL(getURLString(file.getAbsolutePath())));
     110                                libraries.add(0, fileToURL(file));
    115111
    116112                        if (jar != null)
     
    147143        }
    148144
    149         public static String getURLString(String fileName) {
    150                 if (System.getProperty("os.name").startsWith("Windows"))
    151                         return "file:/"+fileName;
    152                 return "file://"+fileName;
     145        public static URL fileToURL(File f) {
     146                try {
     147                        return f.toURI().toURL();
     148                } catch (MalformedURLException ex) {
     149                        return null;
     150                }
    153151        }
    154152
Note: See TracChangeset for help on using the changeset viewer.