OSDN Git Service

bug fixed: classpath written in stigmata.xml cannot be appeared in GUI interface.
authortama3 <tama3@acee48c3-7b26-0410-bdac-b3d0e5314bbc>
Wed, 12 Sep 2007 01:48:17 +0000 (01:48 +0000)
committertama3 <tama3@acee48c3-7b26-0410-bdac-b3d0e5314bbc>
Wed, 12 Sep 2007 01:48:17 +0000 (01:48 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/stigmata/trunk@195 acee48c3-7b26-0410-bdac-b3d0e5314bbc

src/main/java/jp/naist/se/stigmata/reader/ClasspathContext.java
src/main/java/jp/naist/se/stigmata/ui/swing/ClasspathSettingsPane.java

index fed684b..c5e9818 100644 (file)
@@ -29,15 +29,36 @@ public class ClasspathContext implements Iterable<URL>{
         this.parent = parent;\r
     }\r
 \r
+    public ClasspathContext getParent(){\r
+        return parent;\r
+    }\r
+\r
     public static final ClasspathContext getDefaultContext(){\r
         return DEFAULT_CONTEXT;\r
     }\r
 \r
     public synchronized void addClasspath(URL url){\r
+        System.out.printf("add %s to %s%n", url, this);\r
         classpath.add(url);\r
         loader = null;\r
     }\r
 \r
+    public int getClasspathSize(){\r
+        int count = classpath.size();\r
+        if(parent != null){\r
+            count += parent.getClasspathSize();\r
+        }\r
+        return count;\r
+    }\r
+\r
+    public synchronized URL[] getClasspathList(){\r
+        List<URL> list = new ArrayList<URL>();\r
+        for(Iterator<URL> i = classpath(); i.hasNext(); ){\r
+            list.add(i.next());\r
+        }\r
+        return list.toArray(new URL[list.size()]);\r
+    }\r
+\r
     public void clear(){\r
         classpath.clear();\r
     }\r
index 42896df..aa238e1 100644 (file)
@@ -11,6 +11,8 @@ import java.awt.event.ActionListener;
 import java.io.File;\r
 import java.io.IOException;\r
 import java.net.MalformedURLException;\r
+import java.net.URL;\r
+import java.util.Iterator;\r
 \r
 import javax.swing.Box;\r
 import javax.swing.JButton;\r
@@ -50,7 +52,13 @@ public class ClasspathSettingsPane extends JPanel{
         if(cplist != null && cplist.length >= 0){\r
             for(int i = 0; i < cplist.length; i++){\r
                 try{\r
-                    context.addClasspath(new File(cplist[i]).toURI().toURL());\r
+                    URL url = null;\r
+                    try{\r
+                        url = new URL(cplist[i]);\r
+                    } catch(MalformedURLException e){\r
+                        url = new File(cplist[i]).toURI().toURL();\r
+                    }\r
+                    context.addClasspath(url);\r
                 }catch(IOException ee){\r
                 }\r
             }\r
@@ -58,7 +66,14 @@ public class ClasspathSettingsPane extends JPanel{
     }\r
 \r
     public void reset(){\r
+        classpath.removeAllElements();\r
+        bootClasspath.removeAllElements();\r
         try{\r
+            ClasspathContext context = stigmata.getEnvironment().getClasspathContext();\r
+            for(Iterator<URL> i = context.classpath(); i.hasNext(); ){\r
+                classpath.addValue(i.next().toString());\r
+            }\r
+\r
             addClasspath(bootClasspath, System.getProperty("java.class.path"));\r
             addClasspath(bootClasspath, System.getProperty("sun.boot.class.path"));\r
         } catch(SecurityException e){\r