1. #1
    Sencha User
    Join Date
    Mar 2010
    Posts
    62
    Vote Rating
    0
    maqjav is on a distinguished road

      0  

    Default ContentPanel with variable height depending on it's content

    ContentPanel with variable height depending on it's content


    Hello.

    I have a Viewport extending a CenterLayout so it shows all the content centered.
    Inside of my viewport I have a ContentPanel.

    I have to set a height to the ContentPanel in order to show all it's childs but I don't know what height it's going to have.
    If I just set (let's say 1000px), the viewport activates the vertical Scroll, but it only moves till 1000px down.

    I guess (correct me if I am wrong) that I need to calculate the height of every child of my ContentPanel and then set it to the parent.


    Is there any way to get an scroll in my Viewport that moves along all my website without care about the height of my ContentPanel?, or better said, how can I calculate the ContentPanel height dynamically?

    Thanks.

  2. #2
    Sencha - GXT Dev Team darrellmeyer's Avatar
    Join Date
    May 2007
    Location
    Washington, DC
    Posts
    2,242
    Vote Rating
    2
    darrellmeyer is on a distinguished road

      0  

    Default


    The Viewport is a LayoutContainer that resizes to match the browser dimensions. Because of this you will never have scrolling of the BODY element. If you want to use a Viewport with scrolling you could enable scrolling on the viewport itself. Then, if the viewports content's height is greater than the available height, scroll bars would show. See the methods on ScrollContainer.

    It is a very unusual case where you need to manually calculate the height of the children of the container. Usually the height of the children is dictated by the parent container's layout, or the container has auto height set to true so that it's height is determined by the actual height of the children. See BoxComponent.setAutoHeight(true).

    If you still have questions about this, post a complete sample code that we can run.

  3. #3
    Sencha User
    Join Date
    Mar 2010
    Posts
    62
    Vote Rating
    0
    maqjav is on a distinguished road

      0  

    Default


    Hello darrellmeyer.

    Thanks for your answer.

    Here is an example of the code I am trying.
    It extends from CenterLayout to center the content of my website.

    Code:
    package com.client;
    
    import com.extjs.gxt.ui.client.Style.Orientation;
    import com.extjs.gxt.ui.client.Style.Scroll;
    import com.extjs.gxt.ui.client.event.BaseEvent;
    import com.extjs.gxt.ui.client.event.Events;
    import com.extjs.gxt.ui.client.event.Listener;
    import com.extjs.gxt.ui.client.widget.Component;
    import com.extjs.gxt.ui.client.widget.ContentPanel;
    import com.extjs.gxt.ui.client.widget.LayoutContainer;
    import com.extjs.gxt.ui.client.widget.Viewport;
    import com.extjs.gxt.ui.client.widget.layout.AbsoluteData;
    import com.extjs.gxt.ui.client.widget.layout.AbsoluteLayout;
    import com.extjs.gxt.ui.client.widget.layout.CenterLayout;
    import com.extjs.gxt.ui.client.widget.layout.RowLayout;
    import com.extjs.gxt.ui.client.widget.toolbar.LabelToolItem;
    import com.google.gwt.core.client.EntryPoint;
    import com.google.gwt.user.client.Window;
    import com.google.gwt.user.client.ui.RootPanel;
    
    /**
     * Entry point classes define <code>onModuleLoad()</code>.
     */
    public class Pruebas extends CenterLayout implements EntryPoint {
    
    	/**
    	 * This is the entry point method.
    	 */
    	public void onModuleLoad() {
    
    		final ContentPanel panel = new ContentPanel(new AbsoluteLayout());
    		
    		// Viewport
    		Viewport webPanel = new Viewport();
    		webPanel.setLayout(new CenterLayout());
    		webPanel.setScrollMode(Scroll.AUTO);
    		webPanel.addListener(Events.Resize, new Listener<BaseEvent>() {
    
    			@Override
    			public void handleEvent(BaseEvent be) {
    				if (Window.getClientWidth() <= 955)
    					panel.setPosition(0, 0);
    				else
    					panel.setPosition(Window.getClientWidth() / 2 - (955/2) - 8, 0);
    				panel.layout();
    			}
    		});
    
    		// Main panel
    		panel.setHeaderVisible(false);
    		panel.setWidth(955);
    		panel.setStyleAttribute("backgroundColor", "#000000");
    
    		
    		// Header
    		LayoutContainer logotipoPanel = new LayoutContainer(new RowLayout(Orientation.HORIZONTAL));
    		logotipoPanel.setSize(955, 114);
    		logotipoPanel.setStyleAttribute("backgroundColor", "#FFFF00");
    		
    		LabelToolItem logo = new LabelToolItem("LOGO");
    		logotipoPanel.add(logo);
    		
    		panel.add(logotipoPanel, new AbsoluteData(0,0));
    		
    		// Body
    		ContentPanel content = new ContentPanel(new AbsoluteLayout());
    		content.setHeaderVisible(false);
    		content.setWidth(955);
    		content.setStyleAttribute("backgroundColor", "#190707");
    		
    		LayoutContainer bodyContent = new LayoutContainer(new RowLayout(Orientation.HORIZONTAL));
    		bodyContent.setSize(955, 200);
    		bodyContent.setStyleAttribute("backgroundColor", "#FA5858");
    		
    		LabelToolItem banner = new LabelToolItem("BANNER");
    		bodyContent.add(banner);
    		
    		content.add(bodyContent, new AbsoluteData(0,0));
    		
    		ContentPanel bodyContent2 = new ContentPanel(new RowLayout(Orientation.HORIZONTAL));
    		bodyContent2.setSize(955, 2000);
    		bodyContent2.setStyleAttribute("backgroundColor", "#FE9A2E");
    		
    		LabelToolItem article = new LabelToolItem("TEXT");
    		bodyContent2.add(article);
    		
    		content.add(bodyContent2, new AbsoluteData(0,0));
    		
    		panel.add(content, new AbsoluteData(15,400));
    		webPanel.add(panel);
    
    		RootPanel.get("body").add(webPanel);
    	}
    	
    	@Override
        protected int adjustHeightAnchor(int height, Component comp) {
    		return super.adjustHeightAnchor(height, comp);
    	}
    	
    	@Override
    	protected int adjustWidthAnchor(int width, Component comp) {
    		return super.adjustWidthAnchor(955, comp);
    	}
    }
    Here is the index.html too, just in case you need it.
    Code:
    <!doctype html>
    <!-- The DOCTYPE declaration above will set the    -->
    <!-- browser's rendering engine into               -->
    <!-- "Standards Mode". Replacing this declaration  -->
    <!-- with a "Quirks Mode" doctype may lead to some -->
    <!-- differences in layout.                        -->
    
    <html>
      <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
        <!--                                                               -->
        <!-- Consider inlining CSS to reduce the number of requested files -->
        <!--                                                               -->
        <link href="./resources/css/gxt-all.css" rel="stylesheet" type="text/css" />
        <link href="./resources/css/gxt-gray.css" rel="stylesheet" type="text/css" />
    
        <!--                                           -->
        <!-- Any title is fine                         -->
        <!--                                           -->
        <title>Web Application Starter Project</title>
        
        <!--                                           -->
        <!-- This script loads your compiled module.   -->
        <!-- If you add any GWT meta tags, they must   -->
        <!-- be added before this line.                -->
        <!--                                           -->
        <script type="text/javascript" language="javascript" src="pruebas/pruebas.nocache.js"></script>
      </head>
    
      <!--                                           -->
      <!-- The body can have arbitrary html, or      -->
      <!-- you can leave the body empty if you want  -->
      <!-- to create a completely dynamic UI.        -->
      <!--                                           -->
      <body>
    
        <!-- OPTIONAL: include this if you want history support -->
        <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
        
        <!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
        <noscript>
          <div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
            Your web browser must have JavaScript enabled
            in order for this application to display correctly.
          </div>
        </noscript>
    
        <div id="body"></div>
      </body>
    </html>
    I tried in Chrome and Internet Explorer 8, and in both of them it doesn't give a height to the ContentPanel, so it will open a white site.

    I think there's a problem with the styles because if you don't link "gxt-all.css and gxt-gray.css" then it shows everything.

    Thank you.

  4. #4
    Software Architect
    Join Date
    Sep 2007
    Posts
    13,971
    Vote Rating
    132
    sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light

      0  

    Default


    If you use a ContentPanel and you want to set a style on the body, than you cannot use setStyleAttribute, but you have to use setBodyStyle.

    Your example extends CenterLayout, this is not needed. Your class can simpel read:
    Code:
    public class Pruebas implements EntryPoint {
    As already told you in another thread.

    A CenterLayout positions the children absolutly, it will never give you a scrollbar. Also when position something absoluty, you always have to size it, as the parent will collapse to a height of 0 otherwise. In your case you probably dont even have to use Absolutlayout. Can you draw a picture of how the layout should look like?

  5. #5
    Sencha User
    Join Date
    Mar 2010
    Posts
    62
    Vote Rating
    0
    maqjav is on a distinguished road

      0  

    Default


    Hello sven.

    Here is a picture showing what I want to do
    As you say, if I set a height to all my panels the website is shown perfectly, just in the center of the explorer and with the vertical scroll bar, but I can't set the height because the contentPanels have dynamic information.
    If you know how can I do this composition without AbsoluteLayout it will be welcome

    The code I attached before is just an example, I can't show the real because is too big but the composition of layouts it's the same.

    Waiting for your answer.

    And as always, thank you very much, it's great that you guys help us so much.
    Attached Images

  6. #6
    Software Architect
    Join Date
    Sep 2007
    Posts
    13,971
    Vote Rating
    132
    sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light

      0  

    Default


    I put something together:
    Code:
    class Pruebas implements EntryPoint {
    
      private final int leftColumnWidth = 500;
      private LayoutContainer page;
      private final int pageWidth = 955;
    
      /**
       * This is the entry point method.
       */
      public void onModuleLoad() {
    
        ContentPanel rightDynamic = new ContentPanel();
        rightDynamic.setHeading("right dynamic");
        rightDynamic.addText("longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext ");
    
        ContentPanel leftDynamic = new ContentPanel();
        leftDynamic.setHeading("left dynamic");
        leftDynamic.addText("longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext longtext ");
        ContentPanel leftStatic = new ContentPanel();
        leftStatic.setHeading("left static");
    
        page = new LayoutContainer(new RowLayout());
        page.setStyleAttribute("backgroundColor", "yellow");
        page.setStyleAttribute("position", "relative");
        page.setWidth(pageWidth);
    
        LayoutContainer top = new LayoutContainer(new HBoxLayout());
        top.add(new Html("LOGO"));
    
        HBoxLayoutData spacerData = new HBoxLayoutData();
        spacerData.setFlex(1);
        top.add(new Text(), spacerData);
        top.add(new Html("IMAGE"));
    
        page.add(top, new RowData(1, -1));
    
        LayoutContainer banner = new LayoutContainer();
        banner.setStyleAttribute("backgroundColor", "black");
        banner.setStyleAttribute("color", "white");
        banner.addText("banner");
    
        page.add(banner, new RowData(1, 95, new Margins(5, 0, 15, 0)));
    
        LayoutContainer content = new LayoutContainer(new HBoxLayout());
    
        LayoutContainer contentLeft = new LayoutContainer(new RowLayout());
        contentLeft.setWidth(leftColumnWidth);
        contentLeft.add(leftStatic, new RowData(1, 100, new Margins(0, 0, 5, 0)));
    
        contentLeft.add(leftDynamic, new RowData(1, -1));
    
        HBoxLayoutData contentLeftData = new HBoxLayoutData(new Margins(0, 5, 0, 0));
        content.add(contentLeft, contentLeftData);
    
        HBoxLayoutData contentRightData = new HBoxLayoutData(new Margins(0, 0, 0, 5));
        contentRightData.setFlex(1d);
        content.add(rightDynamic, contentRightData);
    
        page.add(content, new RowData(1, -1));
    
        com.google.gwt.user.client.Window.enableScrolling(true);
        com.google.gwt.user.client.Window.addResizeHandler(new ResizeHandler() {
          public void onResize(ResizeEvent event) {
            positionPage();
          }
        });
    
        RootPanel.get().add(page);
        positionPage();
      }
    
      private void positionPage() {
        page.setPagePosition(Math.max(0, com.google.gwt.user.client.Window.getClientWidth() / 2 - (pageWidth / 2) - 8), 0);
      }
    }
    I dont know if that is exactly what you are looking for, but it works as i understood it.

  7. #7
    Software Architect
    Join Date
    Sep 2007
    Posts
    13,971
    Vote Rating
    132
    sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light

      0  

    Default


    The result looks like this

    There is a browser scrollbar on the right:


    If i shirnk the window further, i also get a horizontal scrollbar (scrolled to the middle now):

  8. #8
    Sencha User
    Join Date
    Mar 2010
    Posts
    62
    Vote Rating
    0
    maqjav is on a distinguished road

      0  

    Default


    Sven do you have planes today?, I think I owe you at least a couple of beers.

    This code works perfectly, just like I was trying to explain with my high school english level.

    It centers the content and now the height of my dynamic panels depends on it's children height.

    I never used the HBoxLayout, I think I'm going to start using it more.


    Again, thank you very much.

  9. #9
    Software Architect
    Join Date
    Sep 2007
    Posts
    13,971
    Vote Rating
    132
    sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light sven is a glorious beacon of light

      0  

    Default


    As tip: you should never try to use AbsoluteLayout for any complex stuff like this. Also when using AbsoluteLayout, you always need to size the container that holds the AbsoluteLayout

Similar Threads

  1. variable height grid rows
    By ojosilva in forum Ext 2.x: Help & Discussion
    Replies: 2
    Last Post: 19 Sep 2010, 2:03 AM
  2. Replies: 0
    Last Post: 16 Dec 2009, 6:39 AM
  3. border layout panel height depending on content
    By teddyjas in forum Ext 2.x: Help & Discussion
    Replies: 1
    Last Post: 5 Feb 2009, 1:39 AM
  4. Window height double the height of content
    By angelko in forum Ext 2.x: Help & Discussion
    Replies: 0
    Last Post: 3 Oct 2008, 6:40 PM

Thread Participants: 2