Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Window resizing - strange behavior

    Code:
    private boolean k = true;
    private VLayout layout = null;
    
    public void onModuleLoad() {
    	layout = new VLayout();
    	layout.setWidth100();
    	layout.setHeight100();
            layout.setAnimateMembers(true);
    		
    	Window win = new Window();
    	win.setAutoSize(true);
    	win.setWidth("50%");
    	win.setHeight(1);
    		
    	final Label label = new Label("AAA");
    	label.setBackgroundColor("red");
    	label.setShowEdges(true);
    	label.setWidth(50);
    	label.setHeight(80);
    		
    	win.addItem(label);
    	layout.addMember(win);
    		
    	IButton button = new IButton("Size");
    	button.addClickHandler(new ClickHandler() 
    	{
    		@Override
    		public void onClick(ClickEvent event) 
    		{
    			f(k)
    			{
    				Canvas[] cnvases = layout.getMembers();
    				for(Canvas canvas : cnvases)
    				{
    					try
    					{
    						Window box = (Window)canvas;
    						Label label2 = (Label)box.getItems()[0];
    						label2.setHeight(50);
    					}
    					catch(ClassCastException e)
    					{
    					}
    				}
    				k = false;
    			}
    			else
    			{
    				Canvas[] cnvases = layout.getMembers();
    				for(Canvas canvas : cnvases)
    				{
    					try
    					{
    						Window box = (Window)canvas;
    						Label label2 = (Label)box.getItems()[0];
    						label2.setHeight(80);
    					}
    					catch(ClassCastException e)
    					{}
    				}
    				k = true;
    			}
    		}
    	});
    		
    	IButton button2 = new IButton("Add");
    	button2.addClickHandler(new ClickHandler() 
    	{
    		@Override
    		public void onClick(ClickEvent event) 
    		{
    			Window win2 = new Window();
    			win2.setAutoSize(true);
    			win2.setWidth("50%");
    			win2.setHeight(1);
    				
    			final Label label = new Label("AAA");
    			label.setBackgroundColor("red");
    			label.setShowEdges(true);
    			label.setWidth(50);
    			label.setHeight(80);
    			
    			win2.addItem(label);
    			layout.addMember(win2);
    		}
    	});
    		
    	layout.addMember(button);
    	layout.addMember(button2);
    	layout.draw();
    }
    Hi,

    I've noticed strange behavior of the window object which is recreated by the code above. "Size" button changes the height of the label inside layout and in turn, it causes a change of window's height. If the window is added to layout during the initialization, it is ok. However, if I add new window using "Add" button and then use "Size", only the height of label is changed. Window's height remains the same. It turned out that the problem disappears if I remove layout.setAnimateMembers(true); Is it possible to fix this issue?

    SmartGwt v.2.4
    Last edited by piotr286; 24 Jan 2011, 18:27.
Working...
X