AssetTypes are loaded from ClassCache object now

This commit is contained in:
7u83 2018-12-01 11:48:54 +01:00
parent cb555e6ec8
commit 1a7012ef66

View File

@ -116,7 +116,8 @@ public class Globals {
} }
public static final class MAX{ public static final class MAX {
public static final int SYMLEN = 6; public static final int SYMLEN = 6;
public static final int NAMELEN = 64; public static final int NAMELEN = 64;
} }
@ -153,8 +154,8 @@ public class Globals {
String lafClassName = lafInfo1.getClassName(); String lafClassName = lafInfo1.getClassName();
try { try {
Logger.getLogger(Globals.class.getName()).log(Level.SEVERE, "Setting LAF:" + lafClassName); Logger.getLogger(Globals.class.getName()).log(Level.SEVERE, "Setting LAF:" + lafClassName);
JFrame.setDefaultLookAndFeelDecorated(true); JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true);
UIManager.setLookAndFeel(lafClassName); UIManager.setLookAndFeel(lafClassName);
break; break;
@ -195,8 +196,9 @@ public class Globals {
static ClassLoader setXClassLoader() { static ClassLoader setXClassLoader() {
ClassLoader old_classloader = Thread.currentThread().getContextClassLoader(); ClassLoader old_classloader = Thread.currentThread().getContextClassLoader();
if (urllist ==null) if (urllist == null) {
return old_classloader; return old_classloader;
}
URL[] urls = urllist.toArray(new URL[urllist.size()]); URL[] urls = urllist.toArray(new URL[urllist.size()]);
URLClassLoader cl; URLClassLoader cl;
cl = new URLClassLoader(urls, old_classloader); cl = new URLClassLoader(urls, old_classloader);
@ -209,20 +211,19 @@ public class Globals {
} }
static public ArrayList<Class<AbstractAsset>> getAvailableAssetsTypes() {
// ArrayList<Class> asset_types_raw;
// ClassLoader old = setXClassLoader();
// asset_types_raw = opensesim.util.XClassLoader.getClassesList(urllist, AbstractAsset.class);
// unsetXClassLoader(old);
Collection<Class> asset_types_raw;
asset_types_raw = class_cache.getClassCollection(AbstractAsset.class);
ArrayList<Class<AbstractAsset>> asset_types = new ArrayList<>();
for (Class a : asset_types_raw) {
static public ArrayList<Class<AbstractAsset>> getAvailableAssetsTypes(){ Class<AbstractAsset> aa = a;
ArrayList<Class> asset_types_raw;
ClassLoader old = setXClassLoader();
asset_types_raw = opensesim.util.XClassLoader.getClassesList(urllist, AbstractAsset.class);
unsetXClassLoader(old);
ArrayList<Class<AbstractAsset>> asset_types=new ArrayList<>();
for (Class a: asset_types_raw ){
Class <AbstractAsset> aa = a;
asset_types.add(aa); asset_types.add(aa);
// asset_types.put(a.cast(AbstractAsset.class)); // asset_types.put(a.cast(AbstractAsset.class));
} }
return asset_types; return asset_types;
@ -230,8 +231,8 @@ public class Globals {
static public void installLookAndFeels() { static public void installLookAndFeels() {
Collection<Class> lafs; Collection<Class> lafs;
// lafs = opensesim.util.XClassLoader.getClassesList(urllist, LookAndFeel.class); // lafs = opensesim.util.XClassLoader.getClassesList(urllist, LookAndFeel.class);
lafs = class_cache.getClassCollection(LookAndFeel.class); lafs = class_cache.getClassCollection(LookAndFeel.class);
ClassLoader currentThreadClassLoader ClassLoader currentThreadClassLoader
= Thread.currentThread().getContextClassLoader(); = Thread.currentThread().getContextClassLoader();
@ -241,7 +242,7 @@ public class Globals {
Thread.currentThread().setContextClassLoader(cl); Thread.currentThread().setContextClassLoader(cl);
for (Class<?> cls : lafs) { for (Class<?> cls : lafs) {
/* System.out.println("Class:"); /* System.out.println("Class:");
System.out.println(cls.getName());*/ System.out.println(cls.getName());*/
Class<LookAndFeel> lafc; Class<LookAndFeel> lafc;
@ -254,11 +255,9 @@ public class Globals {
continue; continue;
} }
/* System.out.println("LAF:");
/* System.out.println("LAF:");
System.out.println(laf.getName());*/ System.out.println(laf.getName());*/
UIManager.installLookAndFeel(laf.getName()+" - "+laf.getDescription(), lafc.getName()); UIManager.installLookAndFeel(laf.getName() + " - " + laf.getDescription(), lafc.getName());
} }
@ -278,17 +277,13 @@ public class Globals {
// initialize urllist used by class loader // initialize urllist used by class loader
updateUrlList(); updateUrlList();
class_cache = new ClassCache(urllist, new Class[]{
class_cache = new ClassCache(urllist,new Class[]{
LookAndFeel.class, LookAndFeel.class,
AbstractAsset.class AbstractAsset.class
}); });
installLookAndFeels(); installLookAndFeels();
/* /*
ArrayList<Class<LookAndFeelInfo>> res; ArrayList<Class<LookAndFeelInfo>> res;