+1
Object within an object
Object within an object. Not supposed to work, but I am using it in an app I am building for a local high school. Question is should I be using it, why does it work and is it at risk for not working later?
Wire:
Wire:
Customer support service by UserEcho
<class name="bpanelweb">
<panel name="[param:panelname" alias="[param:panelalias]" width="33.33%" height="15%" align="[param:align]" xpos="[param:xpos]" ypos="[param:ypos]" background="#2f3a8e" borderwidth="2" bordercolor="#000000" onclickup="[param:onclickup]">
<text name="[param:textname]" alias="{param:txtalias]" width="100%" height="100%" font="helvetica" size="20" color="#BFC8C3" text="[param:text]" alignment="center" align="center" valign="center"/>
<panel name="[param:webname]" alias="[param:webalias]" height="100%" width="100%" ypos="0" alpha="0">
<web name="web-panel" alias="[param:webpanelalias]" width="100%" height="100%" valign="top" url="about:blank"></web>
</panel>
</panel>
</class>
<class name="pager">
<panel name="[param:rowname]" width="100%" height="20%" background="#2f3a8e" borderwidth="1" bordercolor="#000000">
<image name="[param:imgname]" source="[param:source]" align="left" valign="center"></image>
<text name="[param:pagertxt]" width="100%" height="20%" color="#bfc8c3" size="12" valign="center" xpos="3%" text="[param:pagertxt]"></text>
</panel>
</class>
</classes>
<main>
<panel name="main" alias="MAIN" style="100">
<panel name="logo" alias="LOGO" width="100%" height="68.5%" valign="top" background="#000000">
<panel name="twitter" alias="TWITTER" height="6.5%" width="8%" align="right" valign="top" background="#000000" onclickup="twitter">
<image name="twitterlogo" alias="TWITTERLOGO" source="twitterlogo.png" align="center" valign="center" contain="yes"></image>
</panel>
<image name="logo" alias="LOGOIMG" source="bvnlogo.png" width="55%" height="90%" contain="yes" align="center" ypos="16%" cornerradius="10"/>
<text name="bvn" alias="BVN" width="100%" height="fit" font="helvetica" size="34" color="#BFC8C3" alignment="center" text="Blue Valley North" align="center" ypos="10%"/>
</panel>
<panel name="divbar" alias="DIVBAR" width="100%" height="1.5%" bottomof="logo" background="#c2cdbc" borderwidth="2" bordercolor="#000000">
</panel>
<object class="bpanelweb" panelname="website" panelalias="WEBSITE" txtalias="WEBTXT" align="left" ypos="70%" textname="webtxt" text="BVN Website" webname="bvnweb" webalias="BVNWEBPANEL" webpanelalias="BVNWEB" onclickup="bvnweb"></object>
<object class="bpanelweb" panelname="cal" panelalias="CAL" txtalias="CALTXT" xpos="33.33%" ypos="70%" textname="caltxt" text="Calendar" webname="webcal" webalias="WEBCAL" webpanelalias="CALWEB" onclickup="webcal"></object>
<object class="bpanelweb" panelname="news" panelalias="NEWS" txtalias="NEWSTXT" xpos="66.67%" ypos="70%" textname="newstxt" text="News and Events" onclickup="events">
<panel name="events" alias="EVENTS" width="100%" height="8%" xpos="0" ypos="0" background="#BFC8C3" borderwidth="1" bordercolor="#000000" alpha="0" onclickup="home">
<image name="home" source="closeicon.png" xpos="4" valign="center" contain="yes" onclickup="home"></image>
<text name="newstxt" alias="NEWSTXT" width="100%" height="100%" font="helvetica" size="28" color="#2f3a8e" alignment="center" text="News and Events " align="center" valign="center"/>
</panel>
<pager name="contents" alias="EVENTSPAGER" width="100%" height="92%" orientation="vertical" align="center" ypos="8%" paginate="no" alpha="0">
<object class="pager" rowname="row1" imgname="thumb1" source="" pagertxt="1"/>
<object class="pager" rowname="row2" imgname="thumb2" source="" pagertxt="2"/>
<object class="pager" rowname="row3" imgname="thumb3" source="" pagertxt="3"/>
<object class="pager" rowname="row4" imgname="thumb4" source="" pagertxt="4"/>
<object class="pager" rowname="row5" imgname="thumb5" source="" pagertxt="5"/>
<object class="pager" rowname="row6" imgname="thumb6" source="" pagertxt="6"/>
<object class="pager" rowname="row7" imgname="thumb7" source="" pagertxt="7"/>
<object class="pager" rowname="row8" imgname="thumb8" source="" pagertxt="8"/>
<object class="pager" rowname="row9" imgname="thumb9" source="" pagertxt="9"/>
<object class="pager" rowname="row10" imgname="thumb10" source="" pagertxt="10"/>
<object class="pager" rowname="row11" imgname="thumb11" source="" pagertxt="11"/>
<object class="pager" rowname="row12" imgname="thumb12" source="" pagertxt="12"/>
<object class="pager" rowname="row13" imgname="thumb13" source="" pagertxt="13"/>
<object class="pager" rowname="row14" imgname="thumb14" source="" pagertxt="14"/>
<object class="pager" rowname="row15" imgname="thumb15" source="" pagertxt="15"/>
<object class="pager" rowname="row16" imgname="thumb16" source="" pagertxt="16"/>
<object class="pager" rowname="row17" imgname="thumb17" source="" pagertxt="18"/>
<object class="pager" rowname="row19" imgname="thumb19" source="" pagertxt="19"/>
<object class="pager" rowname="row20" imgname="thumb20" source="" pagertxt="20"/>
</pager>
</object>
on the next line.<object class="bpanelweb" panelname="news" panelalias="NEWS" txtalias="NEWSTXT" xpos="66.67%" ypos="70%" textname="newstxt" text="News and Events" onclickup="events">
<panel name="events" alias="EVENTS" width="100%" height="8%" xpos="0" ypos="0" background="#BFC8C3" borderwidth="1" bordercolor="#000000" alpha="0" onclickup="home">
<image name="home" source="closeicon.png" xpos="4" valign="center" contain="yes" onclickup="home"></image>
<text name="newstxt" alias="NEWSTXT" width="100%" height="100%" font="helvetica" size="28" color="#2f3a8e" alignment="center" text="News and Events " align="center" valign="center"/>
</panel>
<pager name="contents" alias="EVENTSPAGER" width="100%" height="92%" orientation="vertical" align="center" ypos="8%" paginate="no" alpha="0">
<object class="pager" rowname="row1" imgname="thumb1" source="" pagertxt="1"/>
<object class="pager" rowname="row2" imgname="thumb2" source="" pagertxt="2"/>
<object class="pager" rowname="row3" imgname="thumb3" source="" pagertxt="3"/>
<object class="pager" rowname="row4" imgname="thumb4" source="" pagertxt="4"/>
<object class="pager" rowname="row5" imgname="thumb5" source="" pagertxt="5"/>
<object class="pager" rowname="row6" imgname="thumb6" source="" pagertxt="6"/>
<object class="pager" rowname="row7" imgname="thumb7" source="" pagertxt="7"/>
<object class="pager" rowname="row8" imgname="thumb8" source="" pagertxt="8"/>
<object class="pager" rowname="row9" imgname="thumb9" source="" pagertxt="9"/>
<object class="pager" rowname="row10" imgname="thumb10" source="" pagertxt="10"/>
<object class="pager" rowname="row11" imgname="thumb11" source="" pagertxt="11"/>
<object class="pager" rowname="row12" imgname="thumb12" source="" pagertxt="12"/>
<object class="pager" rowname="row13" imgname="thumb13" source="" pagertxt="13"/>
<object class="pager" rowname="row14" imgname="thumb14" source="" pagertxt="14"/>
<object class="pager" rowname="row15" imgname="thumb15" source="" pagertxt="15"/>
<object class="pager" rowname="row16" imgname="thumb16" source="" pagertxt="16"/>
<object class="pager" rowname="row17" imgname="thumb17" source="" pagertxt="18"/>
<object class="pager" rowname="row19" imgname="thumb19" source="" pagertxt="19"/>
<object class="pager" rowname="row20" imgname="thumb20" source="" pagertxt="20"/>
</pager>
</object>
Because classes are driving your object tags, it is certainly possible to explode code into an object within another object, however it will always create the object at the bottom of the z-order of the parent. So as a best practice this isn't something that we do. As classes get complex, it is hard to predict where the second object will live.
In this case you might be okay to leave it as is, but in other scenarios you probably could crash the app if the object builds a class that doesn't fit just right.
I would recommend that you take the pager and put in it your bpanelweb class and then call your pager class there so you only have one object tag in your main block. It is much more predictable.