You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Zied Hamdi <ja...@gmail.com> on 2007/06/20 16:56:43 UTC

[Tobago] How does tc:gridLayout fix the overall page size?

Hi Tobago Team,

I have a problem with the sizes of my components. I have a first page with
the following layout code:


<f:view>
 <tc:loadBundle basename="into-i" var="i18n" />
 <tc:page label="#{i18n.pageTitle}" id="page">
  <jsp:body>
   <tc:form id="personForm">
    <tc:panel>
     <f:facet name="layout">
      <tc:gridLayout rows="300px;20px;*1**" />
     </f:facet>

     <tc:box label="#{i18n.person_info_fieldset}">
...some comps...

     </tc:box>

     <tc:panel></tc:panel>

     <tc:panel id="clientDetails">
      <f:facet name="layout">
       <tc:gridLayout rows="*1**" />
      </f:facet>

      <f:subview id="details">
       *<jsp:include flush="true" page="personDetailTabs.jsp" />*
      </f:subview>
     </tc:panel>

    </tc:panel>
   </tc:form>
  </jsp:body>
 </tc:page>
</f:view>


in the included file I have a big componenent of 650px (at least):

*personDetailTabs.jsp:*

<tc:tabGroup rendered="#{personCtrl.showDetailView}">

 <tc:tab id="personDetailTab" label="#{i18n.personDetail}">
  <tc:panel id="personDetailPanel">
   <f:facet name="layout">
    <tc:gridLayout columns="2*;3*" rows="*250px;400px"* />
   </f:facet>

   <tc:cell id="personMainPart">
    <tc:panel>
     <f:facet name="layout">
      <tc:gridLayout rows="fixed;fixed;1*" />
     </f:facet>

     <tc:toolBar id="personCommands" orientation="center">
      <tc:toolBarCommand action="#{personCtrl.save}"
       label="#{i18n.save}" transition="true" />
      <tc:toolBarCommand action="#{personCtrl.cancel}"
       label="#{i18n.cancel}" transition="true" />
     </tc:toolBar>

     <f:subview id="personInfoSubview">
      <jsp:include page="personInfo.jsp" flush="false" />
     </f:subview>

     <tc:panel></tc:panel>
    </tc:panel>
   </tc:cell>

   <tc:cell>
    <jsp:include flush="true" page="phoneListBox.jsp" />
   </tc:cell>

   <tc:cell spanX="2">
    <jsp:include flush="true" page="adressListBox.jsp" />
   </tc:cell>

  </tc:panel>
 </tc:tab>



<tc:tab label="#{i18n.contracts}">
...
 </tc:tab>

<tc:tab label="#{i18n.interventions}">
...
 </tc:tab>

</tc:tabGroup>
I was expecting to have the contents of *personDetailTabs.jsp *on 650
pixels, but the whole page is on some 770 pixels (that leaves a small piece
for the desired part and a big blanc under it: see image1.png).

I've tried to avoid putting pixels by doing rows="250px;1*" instead of rows=
"250px;400px", but that leads to have even less desired effects because the
space reserved to the 1* is put under a scroll pane (see image2.png)

In both cases the lower component is the same (even if it was set to
rows="300px;20px;*1**").

It seems the server side computation supposes a certain size for the screen
and doesn't take this property from the browser. If it's the case, what do
you suggest please?

Regards,
Zied

Re: [Tobago] How does tc:gridLayout fix the overall page size?

Posted by Zied Hamdi <ja...@gmail.com>.
Thanks Volker,

Tobago is a really good JSF implementation, layout server side computations
and css skins are just fabulous gains of time.

Regards,
Zied

2007/6/20, Volker Weber <v....@inexso.de>:
>
> Hi Zied,
>
> you need at least specify the width and height in the page tag.
>
> You can additionally add a implementation of PageState as state.
> With this tobago can calculate the correct browser size.
>
> see the addressbook example:
>
> http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/addressbook/src/main/webapp/WEB-INF/tags/layout/basic.tag?view=markup
>
> http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/addressbook/src/main/java/org/apache/myfaces/tobago/example/addressbook/web/Layout.java?view=markup
>
>
> Regards,
>    Volker
>
> 2007/6/20, Zied Hamdi <ja...@gmail.com>:
> > Hi Tobago Team,
> >
> > I have a problem with the sizes of my components. I have a first page
> with
> > the following layout code:
> >
> >
> > <f:view>
> >  <tc:loadBundle basename="into-i" var="i18n" />
> >  <tc:page label="#{i18n.pageTitle}" id="page">
> >   <jsp:body>
> >    <tc:form id="personForm">
> >     <tc:panel>
> >      <f:facet name="layout">
> >       <tc:gridLayout rows="300px;20px;1*" />
> >      </f:facet>
> >
> >      <tc:box label="#{i18n.person_info_fieldset}">
> > ...some comps...
> >
> >      </tc:box>
> >
> >      <tc:panel></tc:panel>
> >
> >      <tc:panel id="clientDetails">
> >       <f:facet name="layout">
> >        <tc:gridLayout rows="1*" />
> >       </f:facet>
> >
> >       <f:subview id="details">
> >        <jsp:include flush="true" page="personDetailTabs.jsp" />
> >       </f:subview>
> >       </tc:panel>
> >
> >     </tc:panel>
> >    </tc:form>
> >   </jsp:body>
> >  </tc:page>
> > </f:view>
> >
> >
> >
> > in the included file I have a big componenent of 650px (at least):
> >
> > personDetailTabs.jsp:
> >
> >
> > <tc:tabGroup rendered="#{personCtrl.showDetailView}">
> >
> >  <tc:tab id="personDetailTab" label="#{i18n.personDetail}">
> >   <tc:panel id="personDetailPanel">
> >    <f:facet name="layout">
> >     <tc:gridLayout columns="2*;3*" rows=" 250px;400px" />
> >    </f:facet>
> >
> >    <tc:cell id="personMainPart">
> >     <tc:panel>
> >      <f:facet name="layout">
> >       <tc:gridLayout rows="fixed;fixed;1*" />
> >      </f:facet>
> >
> >      <tc:toolBar id="personCommands" orientation="center">
> >       <tc:toolBarCommand action="#{personCtrl.save}"
> >        label="#{i18n.save}" transition="true" />
> >       <tc:toolBarCommand action="#{personCtrl.cancel}"
> >        label="#{i18n.cancel}" transition="true" />
> >      </tc:toolBar>
> >
> >      <f:subview id="personInfoSubview">
> >       <jsp:include page="personInfo.jsp" flush="false" />
> >      </f:subview>
> >
> >      <tc:panel></tc:panel>
> >     </tc:panel>
> >    </tc:cell>
> >
> >    <tc:cell>
> >     <jsp:include flush="true" page="phoneListBox.jsp" />
> >    </tc:cell>
> >
> >    <tc:cell spanX="2">
> >     <jsp:include flush="true" page="adressListBox.jsp" />
> >    </tc:cell>
> >
> >   </tc:panel>
> >  </tc:tab>
> >
> >
> >
> > <tc:tab label="#{i18n.contracts}">
> > ...
> >  </tc:tab>
> >
> > <tc:tab label="#{i18n.interventions}">
> > ...
> >  </tc:tab>
> >
> > </tc:tabGroup>
> > I was expecting to have the contents of personDetailTabs.jsp on 650
> pixels,
> > but the whole page is on some 770 pixels (that leaves a small piece for
> the
> > desired part and a big blanc under it: see image1.png).
> >
> > I've tried to avoid putting pixels by doing rows="250px;1*" instead of
> rows
> > ="250px;400px", but that leads to have even less desired effects because
> the
> > space reserved to the 1* is put under a scroll pane (see image2.png )
> >
> > In both cases the lower component is the same (even if it was set to
> > rows="300px;20px;1*").
> >
> > It seems the server side computation supposes a certain size for the
> screen
> > and doesn't take this property from the browser. If it's the case, what
> do
> > you suggest please?
> >
> > Regards,
> > Zied
> >
>



-- 
Zied Hamdi
zatreex.sourceforge.net

Re: [Tobago] How does tc:gridLayout fix the overall page size?

Posted by Volker Weber <v....@inexso.de>.
Hi Zied,

you need at least specify the width and height in the page tag.

You can additionally add a implementation of PageState as state.
With this tobago can calculate the correct browser size.

see the addressbook example:
http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/addressbook/src/main/webapp/WEB-INF/tags/layout/basic.tag?view=markup
http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/addressbook/src/main/java/org/apache/myfaces/tobago/example/addressbook/web/Layout.java?view=markup


Regards,
    Volker

2007/6/20, Zied Hamdi <ja...@gmail.com>:
> Hi Tobago Team,
>
> I have a problem with the sizes of my components. I have a first page with
> the following layout code:
>
>
> <f:view>
>  <tc:loadBundle basename="into-i" var="i18n" />
>  <tc:page label="#{i18n.pageTitle}" id="page">
>   <jsp:body>
>    <tc:form id="personForm">
>     <tc:panel>
>      <f:facet name="layout">
>       <tc:gridLayout rows="300px;20px;1*" />
>      </f:facet>
>
>      <tc:box label="#{i18n.person_info_fieldset}">
> ...some comps...
>
>      </tc:box>
>
>      <tc:panel></tc:panel>
>
>      <tc:panel id="clientDetails">
>       <f:facet name="layout">
>        <tc:gridLayout rows="1*" />
>       </f:facet>
>
>       <f:subview id="details">
>        <jsp:include flush="true" page="personDetailTabs.jsp" />
>       </f:subview>
>       </tc:panel>
>
>     </tc:panel>
>    </tc:form>
>   </jsp:body>
>  </tc:page>
> </f:view>
>
>
>
> in the included file I have a big componenent of 650px (at least):
>
> personDetailTabs.jsp:
>
>
> <tc:tabGroup rendered="#{personCtrl.showDetailView}">
>
>  <tc:tab id="personDetailTab" label="#{i18n.personDetail}">
>   <tc:panel id="personDetailPanel">
>    <f:facet name="layout">
>     <tc:gridLayout columns="2*;3*" rows=" 250px;400px" />
>    </f:facet>
>
>    <tc:cell id="personMainPart">
>     <tc:panel>
>      <f:facet name="layout">
>       <tc:gridLayout rows="fixed;fixed;1*" />
>      </f:facet>
>
>      <tc:toolBar id="personCommands" orientation="center">
>       <tc:toolBarCommand action="#{personCtrl.save}"
>        label="#{i18n.save}" transition="true" />
>       <tc:toolBarCommand action="#{personCtrl.cancel}"
>        label="#{i18n.cancel}" transition="true" />
>      </tc:toolBar>
>
>      <f:subview id="personInfoSubview">
>       <jsp:include page="personInfo.jsp" flush="false" />
>      </f:subview>
>
>      <tc:panel></tc:panel>
>     </tc:panel>
>    </tc:cell>
>
>    <tc:cell>
>     <jsp:include flush="true" page="phoneListBox.jsp" />
>    </tc:cell>
>
>    <tc:cell spanX="2">
>     <jsp:include flush="true" page="adressListBox.jsp" />
>    </tc:cell>
>
>   </tc:panel>
>  </tc:tab>
>
>
>
> <tc:tab label="#{i18n.contracts}">
> ...
>  </tc:tab>
>
> <tc:tab label="#{i18n.interventions}">
> ...
>  </tc:tab>
>
> </tc:tabGroup>
> I was expecting to have the contents of personDetailTabs.jsp on 650 pixels,
> but the whole page is on some 770 pixels (that leaves a small piece for the
> desired part and a big blanc under it: see image1.png).
>
> I've tried to avoid putting pixels by doing rows="250px;1*" instead of rows
> ="250px;400px", but that leads to have even less desired effects because the
> space reserved to the 1* is put under a scroll pane (see image2.png )
>
> In both cases the lower component is the same (even if it was set to
> rows="300px;20px;1*").
>
> It seems the server side computation supposes a certain size for the screen
> and doesn't take this property from the browser. If it's the case, what do
> you suggest please?
>
> Regards,
> Zied
>