| .. | .. | 
|---|
| 49 | 49 |               | 
|---|
| 50 | 50 |          } | 
|---|
| 51 | 51 |      } | 
|---|
 | 52 | +  | 
|---|
 | 53 | +    public static String RemovePrefix(String s, String prefix)  | 
|---|
 | 54 | +    {  | 
|---|
 | 55 | +        if (s != null && prefix != null && s.startsWith(prefix))  | 
|---|
 | 56 | +        {  | 
|---|
 | 57 | +            return s.substring(prefix.length());  | 
|---|
 | 58 | +        }  | 
|---|
 | 59 | +  | 
|---|
 | 60 | +        return s;  | 
|---|
 | 61 | +    }  | 
|---|
 | 62 | +      | 
|---|
 | 63 | +    static void ParseFileSystem(java.io.File dir, iResourceCallBack callback, String prefix)  | 
|---|
 | 64 | +    {  | 
|---|
 | 65 | +        callback.CallBack(RemovePrefix(dir.toString(),prefix).split("/"));  | 
|---|
 | 66 | +        File[] listFiles = dir.listFiles();  | 
|---|
 | 67 | +        if (listFiles != null)  | 
|---|
 | 68 | +        {  | 
|---|
 | 69 | +            for (java.io.File file : listFiles)  | 
|---|
 | 70 | +            {  | 
|---|
 | 71 | +                ParseFileSystem(file, callback, prefix);  | 
|---|
 | 72 | +            }  | 
|---|
 | 73 | +        }  | 
|---|
 | 74 | +    }  | 
|---|
 | 75 | +          | 
|---|
 | 76 | +    static interface iResourceCallBack  | 
|---|
 | 77 | +    {  | 
|---|
 | 78 | +        void CallBack(String[] path);  | 
|---|
 | 79 | +    }  | 
|---|
 | 80 | +      | 
|---|
 | 81 | +    static void ParseResources(String path, iResourceCallBack callback)  | 
|---|
 | 82 | +    {  | 
|---|
 | 83 | +        java.io.File jarFile = new java.io.File(Grafreed.class.getProtectionDomain().getCodeSource().getLocation().getPath());  | 
|---|
 | 84 | +  | 
|---|
 | 85 | +        if (jarFile.isFile())  | 
|---|
 | 86 | +        {  | 
|---|
 | 87 | +            // Run with JAR file  | 
|---|
 | 88 | +            try  | 
|---|
 | 89 | +            {  | 
|---|
 | 90 | +                java.util.jar.JarFile jar = new java.util.jar.JarFile(jarFile);  | 
|---|
 | 91 | +                java.util.Enumeration<java.util.jar.JarEntry> entries = jar.entries(); //gives ALL entries in jar  | 
|---|
 | 92 | +                while (entries.hasMoreElements())  | 
|---|
 | 93 | +                {  | 
|---|
 | 94 | +                    String name = entries.nextElement().getName();  | 
|---|
 | 95 | +                      | 
|---|
 | 96 | +                    if (name.startsWith(path + "/"))  | 
|---|
 | 97 | +                        callback.CallBack(RemovePrefix(name, path).split("/"));  | 
|---|
 | 98 | +                }  | 
|---|
 | 99 | +                jar.close();  | 
|---|
 | 100 | +            } catch (Exception ex)  | 
|---|
 | 101 | +            {  | 
|---|
 | 102 | +                ex.printStackTrace();  | 
|---|
 | 103 | +            }  | 
|---|
 | 104 | +        } else  | 
|---|
 | 105 | +        {  | 
|---|
 | 106 | +            // Run with IDE  | 
|---|
 | 107 | +            final java.net.URL url = Object3D.class.getResource("/" + path);  | 
|---|
 | 108 | +            if (url != null)  | 
|---|
 | 109 | +            {  | 
|---|
 | 110 | +                try  | 
|---|
 | 111 | +                {  | 
|---|
 | 112 | +                    java.io.File apps = new java.io.File(url.toURI());  | 
|---|
 | 113 | +                    ParseFileSystem(apps, callback, RemovePrefix(url.toString(), "file:"));  | 
|---|
 | 114 | +//                    for (java.io.File app : apps.listFiles())  | 
|---|
 | 115 | +//                    {  | 
|---|
 | 116 | +//                        //System.out.println(RemovePrefix(app.toString(), RemovePrefix(url.toString(), "file:") + "/"));  | 
|---|
 | 117 | +//                    }  | 
|---|
 | 118 | +                } catch (Exception ex)  | 
|---|
 | 119 | +                {  | 
|---|
 | 120 | +                    ex.printStackTrace();  | 
|---|
 | 121 | +                }  | 
|---|
 | 122 | +            }  | 
|---|
 | 123 | +        }  | 
|---|
 | 124 | +    }  | 
|---|
| 52 | 125 |       | 
|---|
| 53 | 126 |      public void init() | 
|---|
| 54 | 127 |      { | 
|---|