From 7f213bf43a75029e21c947e3377d28c330441d70 Mon Sep 17 00:00:00 2001 From: hns Date: Wed, 25 Jun 2003 11:56:11 +0000 Subject: [PATCH] Make res.skinpath work. --- src/helma/scripting/rhino/GlobalObject.java | 12 ++++++++++-- src/helma/scripting/rhino/HopObject.java | 12 ++++++++++-- src/helma/scripting/rhino/JavaObject.java | 12 ++++++++++-- src/helma/scripting/rhino/RhinoCore.java | 13 +++++++++++++ 4 files changed, 43 insertions(+), 6 deletions(-) diff --git a/src/helma/scripting/rhino/GlobalObject.java b/src/helma/scripting/rhino/GlobalObject.java index 61f47164..0b7e7e00 100644 --- a/src/helma/scripting/rhino/GlobalObject.java +++ b/src/helma/scripting/rhino/GlobalObject.java @@ -93,7 +93,11 @@ public class GlobalObject extends ScriptableObject { if (skin instanceof Skin) { s = (Skin) skin; } else { - s = core.app.getSkin(null, skin.toString(), null); + // retrieve res.skinpath, an array of objects that tell us where to look for skins + // (strings for directory names and INodes for internal, db-stored skinsets) + Object[] skinpath = reval.res.getSkinpath(); + RhinoCore.unwrapSkinpath(skinpath); + s = core.app.getSkin(null, skin.toString(), skinpath); } Map p = null; @@ -139,7 +143,11 @@ public class GlobalObject extends ScriptableObject { if (skin instanceof Skin) { s = (Skin) skin; } else { - s = core.app.getSkin(null, skin.toString(), null); + // retrieve res.skinpath, an array of objects that tell us where to look for skins + // (strings for directory names and INodes for internal, db-stored skinsets) + Object[] skinpath = reval.res.getSkinpath(); + RhinoCore.unwrapSkinpath(skinpath); + s = core.app.getSkin(null, skin.toString(), skinpath); } Map p = null; diff --git a/src/helma/scripting/rhino/HopObject.java b/src/helma/scripting/rhino/HopObject.java index bb937770..14561c45 100644 --- a/src/helma/scripting/rhino/HopObject.java +++ b/src/helma/scripting/rhino/HopObject.java @@ -181,7 +181,11 @@ public class HopObject extends ScriptableObject { if (skin instanceof Skin) { s = (Skin) skin; } else { - s = core.app.getSkin(node, skin.toString(), null); + // retrieve res.skinpath, an array of objects that tell us where to look for skins + // (strings for directory names and INodes for internal, db-stored skinsets) + Object[] skinpath = reval.res.getSkinpath(); + RhinoCore.unwrapSkinpath(skinpath); + s = core.app.getSkin(node, skin.toString(), skinpath); } Map p = null; @@ -228,7 +232,11 @@ public class HopObject extends ScriptableObject { if (skin instanceof Skin) { s = (Skin) skin; } else { - s = core.app.getSkin(node, skin.toString(), null); + // retrieve res.skinpath, an array of objects that tell us where to look for skins + // (strings for directory names and INodes for internal, db-stored skinsets) + Object[] skinpath = reval.res.getSkinpath(); + RhinoCore.unwrapSkinpath(skinpath); + s = core.app.getSkin(node, skin.toString(), skinpath); } Map p = null; diff --git a/src/helma/scripting/rhino/JavaObject.java b/src/helma/scripting/rhino/JavaObject.java index 96b05f3f..8abc3a78 100644 --- a/src/helma/scripting/rhino/JavaObject.java +++ b/src/helma/scripting/rhino/JavaObject.java @@ -80,7 +80,11 @@ public class JavaObject extends NativeJavaObject { if (skin instanceof Skin) { s = (Skin) skin; } else { - s = core.app.getSkin(javaObject, skin.toString(), null); + // retrieve res.skinpath, an array of objects that tell us where to look for skins + // (strings for directory names and INodes for internal, db-stored skinsets) + Object[] skinpath = reval.res.getSkinpath(); + RhinoCore.unwrapSkinpath(skinpath); + s = core.app.getSkin(javaObject, skin.toString(), skinpath); } Map p = null; @@ -121,7 +125,11 @@ public class JavaObject extends NativeJavaObject { if (skin instanceof Skin) { s = (Skin) skin; } else { - s = core.app.getSkin(javaObject, skin.toString(), null); + // retrieve res.skinpath, an array of objects that tell us where to look for skins + // (strings for directory names and INodes for internal, db-stored skinsets) + Object[] skinpath = reval.res.getSkinpath(); + RhinoCore.unwrapSkinpath(skinpath); + s = core.app.getSkin(javaObject, skin.toString(), skinpath); } Map p = null; diff --git a/src/helma/scripting/rhino/RhinoCore.java b/src/helma/scripting/rhino/RhinoCore.java index beff25ce..52204f35 100644 --- a/src/helma/scripting/rhino/RhinoCore.java +++ b/src/helma/scripting/rhino/RhinoCore.java @@ -674,6 +674,19 @@ public final class RhinoCore { } } + protected static Object[] unwrapSkinpath(Object[] skinpath) { + if (skinpath != null) { + for (int i=0; i