PDA

View Full Version : Grid resizing bug


okachobi
04-06-2009, 05:55 AM
Please, if anyone can help with this issue, I would be very grateful. I've tested this against OL 4.2.0.2 and 4.3.0.

The issue is that when using 2 or more grids with the same dataset inside a container with a fixed or dynamic height, the grid cannot be set to a dynamic/calculated height or the first row on each subsequent grid after the 1st will not draw row 1. Please try the code below to see what I mean. I used tab's in this example, but the same problem exists with any container and grids. By 'dynamic', I mean any height that is calculated. Fixed values seem to work.

Also- why is it that tab's still need user-written onheight/onwidth handlers to support % height/width settings? This seems to have been documented as a problem back in 2004 and still exists today. The grid bug is not related to the tabs- you can use views- so long as the grid height is dynamically calculated.


<canvas title="Router Test" debug="false">

<bluestyle name="bluecolors" canvascolor="null"/>

<dataset name="rtrinfo">
<Routers macAddress="00:00:00:00:00:00">
<Router lastMessage="2009-03-12T00:00:00.000-04:00" type="a"
zbMacAddress="0000:0000:0000:0000">
<Version releaseDate="2009-03-04">1.0</Version>
<ComFailures>
<Fail start="2009-03-12T08:27:22Z" recovery="2009-03-12T08.28:22Z" />
<Fail start="2009-03-12T08:27:22Z" recovery="2009-03-12T08.28:22Z" />
<Fail start="2009-03-12T08:27:22Z" recovery="2009-03-12T08.28:22Z" />
<Fail start="2009-03-12T08:27:22Z" recovery="2009-03-12T08.28:22Z" />
<Fail start="2009-03-12T08:27:22Z" recovery="2009-03-12T08.28:22Z" />
<Fail start="2009-03-12T08:27:22Z" recovery="2009-03-12T08.28:22Z" />
<Fail start="2009-03-12T08:27:22Z" recovery="2009-03-12T08.28:22Z" />
<Fail start="2009-03-12T08:27:22Z" recovery="2009-03-12T08.28:22Z" />
<Fail start="2009-03-12T08:27:22Z" recovery="2009-03-12T08.28:22Z" />
<Fail start="2009-03-12T08:27:22Z" recovery="2009-03-12T08.28:22Z" />
</ComFailures>
<Overrides>
<UserOverride date="2009-03-12T08:21:22Z" scheduled="4" />
<UserOverride date="2009-03-12T08:22:22Z" scheduled="2" />
<UserOverride date="2009-03-12T08:23:22Z" scheduled="1" />
<UserOverride date="2009-03-12T08:24:22Z" scheduled="3" />
<UserOverride date="2009-03-12T08:25:22Z" scheduled="3" />
<UserOverride date="2009-03-12T08:26:22Z" scheduled="4" />
<UserOverride date="2009-03-12T08:27:22Z" scheduled="4" />
<UserOverride date="2009-03-12T08:28:22Z" scheduled="3" />
<UserOverride date="2009-03-12T08:29:22Z" scheduled="4" />
<UserOverride date="2009-03-12T08:30:22Z" scheduled="1" />
<UserOverride date="2009-03-12T08:31:22Z" scheduled="4" />
<UserOverride date="2009-03-12T08:32:22Z" scheduled="3" />
<UserOverride date="2009-03-12T08:33:22Z" scheduled="4" />
<UserOverride date="2009-03-12T08:34:22Z" scheduled="1" />
</Overrides>
<LevelMap>
<Level>
<ULevel>4</ULevel>
<RouterLevel>2</RouterLevel>
<StartTime>T00:00:00Z</StartTime>
<EndTime>T23:59:59Z</EndTime>
<Days>M-F</Days>
</Level>
<Level>
<ULevel>4</ULevel>
<RouterLevel>2</RouterLevel>
<StartTime>T00:00:00Z</StartTime>
<EndTime>T23:59:59Z</EndTime>
<Days>S,Su</Days>
</Level>
</LevelMap>
</Router>
</Routers>
</dataset>

<class name="DataTab" text="$path{'@type'}" text_x="20" extends="tabelement">

<view bgcolor="0xDD9C1E" placement="header" width="10" height="12" x="5" y="5"/>

<view name="bigbluepanel" bgcolor="0x3A75A3" width="100%" height="100%" clip="true">
<simplelayout axis="y"/>
<view>
<simplelayout axis="x"/>
<text>Mac: </text>
<text datapath="@zbMacAddress"/>
</view>
<view>
<simplelayout axis="x"/>
<text>LastMsg: </text>
<text multiline="false" datapath="@lastMessage"/>
</view>
<view>
<simplelayout axis="x"/>
<text>Version: </text>
<text datapath="Version/text()"/>
</view>
<view>
<simplelayout axis="x"/>
<text>ReleaseDate: </text>
<text datapath="Version/@releaseDate"/>
</view>

<tabs x="2" width="${parent.width-12}" height="100%">
<handler name="onwidth">
this.setAttribute("_contentWidth", this.width);
</handler>

<handler name="onheight">
this.setAttribute("_contentHeight", this.height-this.bar.height);
</handler>

<tabpane id="debugid" selected="true">Failures
<grid datapath="ComFailures" contentdatapath="Fail" sizetoheader="false" width="${parent.width-15}" height="${parent.height - this.y - 20}">
<gridtext editable="false" textalign="center" width="50" datapath="position()" resizable="false" sortable="false">No.</gridtext>
<gridtext editable="false" textalign="center" width="${(parent.width-50)/2}" datapath="@start">Began</gridtext>
<gridtext editable="false" textalign="center" width="${(parent.width-50)/2}" datapath="@recovery">Recovered</gridtext>
</grid>
</tabpane>

<tabpane>Overrides
<grid datapath="Overrides/" contentdatapath="UserOverride" sizetoheader="false" width="${parent.width-15}" height="${parent.height - this.y - 20}">
<gridtext editable="false" textalign="center" width="50" datapath="position()" resizable="false" sortable="false">No.</gridtext>
<gridtext editable="false" textalign="center" width="${(parent.width-50)/2}" datapath="@date">Date</gridtext>
<gridtext editable="false" textalign="center" width="${(parent.width-50)/2}" datapath="@scheduled">Scheduled Level</gridtext>
</grid>
</tabpane>

<tabpane>Level Map
<grid datapath="LevelMap/" contentdatapath="Level" sizetoheader="false" width="${parent.width-15}" height="${parent.height - this.y - 20}">
<gridtext editable="false" textalign="center" width="50" datapath="position()" resizable="false" sortable="false">No.</gridtext>
<gridtext editable="false" textalign="center" width="${(parent.width-50)/5}" datapath="ULevel/text()">ULevel</gridtext>
<gridtext editable="false" textalign="center" width="${(parent.width-50)/5}" datapath="ApplianceLevel/text()">Router Level</gridtext>
<gridtext editable="false" textalign="center" width="${(parent.width-50)/5}" datapath="StartTime/text()">Start</gridtext>
<gridtext editable="false" textalign="center" width="${(parent.width-50)/5}" datapath="EndTime/text()">End</gridtext>
<gridtext editable="false" textalign="center" width="${(parent.width-50)/5}" datapath="Days/text()">On these days</gridtext>
</grid>
</tabpane>

</tabs>

</view>

</class>

<simplelayout axis="x"/>

<view name="app_pane" x="2" y="10" width="88%" height="90%" clip="true">

<tabslider datapath="rtrinfo:/Routers" id="ts2" width="100%" height="100%"
style="bluecolors" bordersize="2" spacing="2" bordercolor="0x3A75A3" mintabheight="20">

<DataTab datapath="Router" />

</tabslider>

</view>
</canvas>