From: tama3 Date: Wed, 12 Sep 2007 01:48:17 +0000 (+0000) Subject: bug fixed: classpath written in stigmata.xml cannot be appeared in GUI interface. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ebe55ba8317c4062f11e7b2fcef02a4df58525ef;p=stigmata%2Fstigmata-core.git bug fixed: classpath written in stigmata.xml cannot be appeared in GUI interface. git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/stigmata/trunk@195 acee48c3-7b26-0410-bdac-b3d0e5314bbc --- diff --git a/src/main/java/jp/naist/se/stigmata/reader/ClasspathContext.java b/src/main/java/jp/naist/se/stigmata/reader/ClasspathContext.java index fed684b..c5e9818 100644 --- a/src/main/java/jp/naist/se/stigmata/reader/ClasspathContext.java +++ b/src/main/java/jp/naist/se/stigmata/reader/ClasspathContext.java @@ -29,15 +29,36 @@ public class ClasspathContext implements Iterable{ this.parent = parent; } + public ClasspathContext getParent(){ + return parent; + } + public static final ClasspathContext getDefaultContext(){ return DEFAULT_CONTEXT; } public synchronized void addClasspath(URL url){ + System.out.printf("add %s to %s%n", url, this); classpath.add(url); loader = null; } + public int getClasspathSize(){ + int count = classpath.size(); + if(parent != null){ + count += parent.getClasspathSize(); + } + return count; + } + + public synchronized URL[] getClasspathList(){ + List list = new ArrayList(); + for(Iterator i = classpath(); i.hasNext(); ){ + list.add(i.next()); + } + return list.toArray(new URL[list.size()]); + } + public void clear(){ classpath.clear(); } diff --git a/src/main/java/jp/naist/se/stigmata/ui/swing/ClasspathSettingsPane.java b/src/main/java/jp/naist/se/stigmata/ui/swing/ClasspathSettingsPane.java index 42896df..aa238e1 100644 --- a/src/main/java/jp/naist/se/stigmata/ui/swing/ClasspathSettingsPane.java +++ b/src/main/java/jp/naist/se/stigmata/ui/swing/ClasspathSettingsPane.java @@ -11,6 +11,8 @@ import java.awt.event.ActionListener; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URL; +import java.util.Iterator; import javax.swing.Box; import javax.swing.JButton; @@ -50,7 +52,13 @@ public class ClasspathSettingsPane extends JPanel{ if(cplist != null && cplist.length >= 0){ for(int i = 0; i < cplist.length; i++){ try{ - context.addClasspath(new File(cplist[i]).toURI().toURL()); + URL url = null; + try{ + url = new URL(cplist[i]); + } catch(MalformedURLException e){ + url = new File(cplist[i]).toURI().toURL(); + } + context.addClasspath(url); }catch(IOException ee){ } } @@ -58,7 +66,14 @@ public class ClasspathSettingsPane extends JPanel{ } public void reset(){ + classpath.removeAllElements(); + bootClasspath.removeAllElements(); try{ + ClasspathContext context = stigmata.getEnvironment().getClasspathContext(); + for(Iterator i = context.classpath(); i.hasNext(); ){ + classpath.addValue(i.next().toString()); + } + addClasspath(bootClasspath, System.getProperty("java.class.path")); addClasspath(bootClasspath, System.getProperty("sun.boot.class.path")); } catch(SecurityException e){