Thanks for checking further. I hope it’s something the Vaadin team can take a look at. I know that I’m not really modifying the Drawer contents other than switching between read-only and edit mode in my Form.
It is interesting because I start in Edit mode with the Drawer closed. And it opens/closes fine. But once the Form goes read-only, if the Drawer remain open, all’s good when I switch back and forth between read-only and edit modes. But if the Drawer is closed when I make the read-only/edit mode switch, it comes up blank whenever it’s opened. Then if it’s in the empty open mode, changing read-only/edit makes it appear again as expected in the right mode.
So, when I first edit a bean in my table view so that it’s selected in the form view, I put the form into edit mode and the drawer is closed.
Here’s what it shows for that drawer div to my first TwinColSelect div
<div class="v-drawer-content" style="height: 0px; width: 872px; display: none;">
<div style="overflow: hidden; width: 872px; height: 503px;" class="v-verticallayout">
<div style="margin: 0px; overflow: hidden; width: 872px; height: 503px;">
<div style="overflow: hidden; height: 95px; width: 872px; padding-left: 0px; padding-top: 0px;">
<div class="v-caption" style="width: 872px; margin-left: 0px;">
<div class="v-captiontext">LIST PERMISSION</div>
<div style="overflow: hidden; clear: both; width: 0pt; height: 0pt;"></div></div>
<div style="float: left; margin-left: 0px;">
<div class="v-select-twincol" style="width: 60em; position: relative;">
Then I open the drawer, and I’ve noted the first time I open it, I usually get a flash like the whole page is repainted, but when I close/open the drawer after that, it no longer flashes until I select a new bean from the table. At any rate, when it’s open, here’s what firebug shows:
<div class="v-drawer-content" style="height: 503px; width: 855px;">
<div style="overflow: hidden; width: 855px; height: 503px;" class="v-verticallayout">
<div style="margin: 0px; overflow: hidden; width: 855px; height: 503px;">
<div style="overflow: hidden; height: 95px; width: 855px; padding-left: 0px; padding-top: 0px;">
<div class="v-caption" style="width: 855px; margin-left: 0px;">
<div class="v-captiontext">LIST PERMISSION</div>
<div style="overflow: hidden; clear: both; width: 0pt; height: 0pt;"></div></div>
<div style="float: left; margin-left: 0px;">
<div class="v-select-twincol" style="width: 60em; position: relative;">
I have a new height/width and the display:none is gone. And it looks good.
Then I close it again, and display:none is back and the height goes back to zero, which I presume is fine:
<div class="v-drawer-content" style="height: 0px; width: 855px; display: none;">
<div style="overflow: hidden; width: 855px; height: 503px;" class="v-verticallayout">
<div style="margin: 0px; overflow: hidden; width: 855px; height: 503px;">
<div style="overflow: hidden; height: 95px; width: 855px; padding-left: 0px; padding-top: 0px;">
<div class="v-caption" style="width: 855px; margin-left: 0px;">
<div class="v-captiontext">LIST PERMISSION</div>
<div style="overflow: hidden; clear: both; width: 0pt; height: 0pt;"></div></div>
<div style="float: left; margin-left: 0px;">
<div class="v-select-twincol" style="width: 60em; position: relative;">
Now, while closed, I change the edit mode to read-only mode (note that the direction of the mode switch makes no difference), and it look this still, which seems reasonable since it’s still closed, but note that the second div for the verticallayout now has dropped the height from 503px to just 28px:
<div class="v-drawer-content" style="height: 0px; width: 855px; display: none;">
<div style="overflow: hidden; width: 855px; height: 28px;" class="v-verticallayout">
<div style="margin: 0px; overflow: hidden; width: 855px; height: 28px;">
<div style="overflow: hidden; height: 0px; width: 855px; padding-left: 0px; padding-top: 0px;">
<div class="v-caption" style="width: 855px; margin-left: 0px;">
<div class="v-captiontext">LIST PERMISSION</div>
<div style="overflow: hidden; clear: both; width: 0pt; height: 0pt;"></div></div>
<div style="float: left; margin-left: 0px;">
<div class="v-select-twincol" style="width: 60em; position: relative;">
So now when I re-open the drawer, the contents are not really shown (but you can tell it’s opened some) and it shows that oddly small height of only 28 with ‘display:none’ removed:
<div class="v-drawer-content" style="height: 28px; width: 855px;">
<div style="overflow: hidden; width: 855px; height: 28px;" class="v-verticallayout">
<div style="margin: 0px; overflow: hidden; width: 855px; height: 28px;">
<div style="overflow: hidden; height: 0px; width: 855px; padding-left: 0px; padding-top: 0px;">
<div class="v-caption" style="width: 855px; margin-left: 0px;">
<div class="v-captiontext">LIST PERMISSION</div>
<div style="overflow: hidden; clear: both; width: 0pt; height: 0pt;"></div></div>
<div style="float: left; margin-left: 0px;">
<div class="v-select-twincol" style="width: 60em; position: relative;">
So perhaps this is a bug in the vertical layout somehow? I am running 6.3 nightly and I just updated to 20100223 version and of course it still happens.