Revision: 3735
          http://vexi.svn.sourceforge.net/vexi/?rev=3735&view=rev
Author:   mkpg2
Date:     2009-10-30 15:09:53 +0000 (Fri, 30 Oct 2009)

Log Message:
-----------
Feature. Expose sub components to facilitate testing.

Modified Paths:
--------------
    trunk/core/org.vexi.core/src/org/vexi/core/Constants.java
    trunk/core/org.vexi.core/src/org/vexi/core/Template.java
    trunk/core/org.vexi.core/src_junit/test/core/template/TestTemplate.java

Added Paths:
-----------
    trunk/core/org.vexi.core/src_junit/test/core/template/_subComponents.t
    trunk/core/org.vexi.core/src_junit/test/core/template/subComponents.t

Modified: trunk/core/org.vexi.core/src/org/vexi/core/Constants.java
===================================================================
--- trunk/core/org.vexi.core/src/org/vexi/core/Constants.java   2009-10-30 
13:16:49 UTC (rev 3734)
+++ trunk/core/org.vexi.core/src/org/vexi/core/Constants.java   2009-10-30 
15:09:53 UTC (rev 3735)
@@ -48,6 +48,7 @@
        static final JS SC_redirect = JSU.S("redirect",true);
        static final JS SC_shrink = JSU.S("shrink",true);
        static final JS SC_stringify = JSU.S("stringify",true);
+       static final JS SC_subComponents = JSU.S("subComponents",true);
        static final JS SC_surface = JSU.S("surface",true);
        static final JS SC_thisobj = JSU.S("thisobj",true);
     static final JS SC_vertical = JSU.S("vertical",true);

Modified: trunk/core/org.vexi.core/src/org/vexi/core/Template.java
===================================================================
--- trunk/core/org.vexi.core/src/org/vexi/core/Template.java    2009-10-30 
13:16:49 UTC (rev 3734)
+++ trunk/core/org.vexi.core/src/org/vexi/core/Template.java    2009-10-30 
15:09:53 UTC (rev 3735)
@@ -383,6 +383,7 @@
         PerInstantiationScope parentBoxPis;
         final JS box;
         final boolean jsObj;
+        private JS subComponents;
         void putDollar(String key, JS target) throws JSExn {
             if (parentBoxPis!=null) {
                 parentBoxPis.putDollar(key, target);
@@ -394,7 +395,13 @@
         // as no way to do it otherwise in java?)
         Static getStaticPart() { return staticPart; }
         // JS:FIXME: ugly
-        void sput(JS key, JS val) throws JSExn { super.put(key,val); }
+        void sput(JS key, JS val) throws JSExn { 
+               if(subComponents==null){ 
+                       subComponents = new JS.Obj();
+                       box.put(SC_subComponents, subComponents);
+               }
+               subComponents.put(key,val); 
+        }
         public PerInstantiationScope(JS box, PerInstantiationScope 
parentBoxPis, boolean isBox) {
             this.parentBoxPis = parentBoxPis;
             this.box = box;
@@ -405,8 +412,8 @@
             if (JSU.isString(key)) {
                 // FIXME This is a hack
                 //  1.returns $x for named child boxes
-                if (super.get(key)!=null) {
-                    return super.get(key);
+                if (subComponents!=null && subComponents.get(key)!=null) {
+                    return subComponents.get(key);
                 }
                 // FEATURE store null placeholder here if uri prefix doesn't
                 // exist and cache values using super.put to save one hash 
lookup

Modified: 
trunk/core/org.vexi.core/src_junit/test/core/template/TestTemplate.java
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/template/TestTemplate.java     
2009-10-30 13:16:49 UTC (rev 3734)
+++ trunk/core/org.vexi.core/src_junit/test/core/template/TestTemplate.java     
2009-10-30 15:09:53 UTC (rev 3735)
@@ -15,7 +15,7 @@
     public static void main(String[] args) throws Throwable {
 
        CoreTestSuite cts = new CoreTestSuite(TestTemplate.class);
-       TestCase t = cts.createTestCase(cts.getResourceDirs(), "instanceof.t");
+       TestCase t = cts.createTestCase(cts.getResourceDirs(), 
"subComponents.t");
        t.runBare();
        }
 }

Added: trunk/core/org.vexi.core/src_junit/test/core/template/_subComponents.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/template/_subComponents.t      
                        (rev 0)
+++ trunk/core/org.vexi.core/src_junit/test/core/template/_subComponents.t      
2009-10-30 15:09:53 UTC (rev 3735)
@@ -0,0 +1,6 @@
+<vexi xmlns:ui="vexi://ui" xmlns="">
+       
+       <ui:box>
+               <ui:box id="sub1" text="Sub 1"/>
+    </ui:box>
+</vexi>

Added: trunk/core/org.vexi.core/src_junit/test/core/template/subComponents.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/template/subComponents.t       
                        (rev 0)
+++ trunk/core/org.vexi.core/src_junit/test/core/template/subComponents.t       
2009-10-30 15:09:53 UTC (rev 3735)
@@ -0,0 +1,9 @@
+<vexi xmlns:ui="vexi://ui" xmlns="">
+    
+    <ui:box>
+        var main = new ._subComponents();
+        var sub = main.subComponents["$sub1"];
+        .util..assertEquals("Sub 1",sub.text);
+    </ui:box>
+    
+</vexi>


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to