Beta 8 replaceComponent error?

Hi,

This example shows a problem in replaceComponent in beta 8 release.

import com.vaadin.event.FieldEvents;
import com.vaadin.event.ItemClickEvent;
import com.vaadin.server.ThemeResource;
import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.AbsoluteLayout;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Component;
import com.vaadin.ui.Embedded;
import com.vaadin.ui.GridLayout;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.PasswordField;
import com.vaadin.ui.Table;
import com.vaadin.ui.TextField;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Window;
import com.vaadin.ui.themes.Reindeer;

/*

  • Main.java
  • Created on 21 de Junho de 2011, 10:47
    */

public class Main extends UI {
private Component stateGrid;
private Component stateDados;

@Override
protected void init(VaadinRequest request) {
    
    stateGrid = buildStateGrid();
    stateDados = buildStateDados();
    
    addComponent(stateGrid);
}


private Component buildStateGrid() {
    VerticalLayout container = new VerticalLayout();

    container.setImmediate(true);
    container.setSizeFull();
    container.setSpacing(true);
    container.setMargin(false);

    // build a toolBar
    HorizontalLayout toolBar = new HorizontalLayout();
    toolBar.setImmediate(true);
    toolBar.setHeight("40");
    toolBar.setSpacing(true);
    toolBar.setMargin(false);

    Button btn1 = new Button("Goto stateDados");
    btn1.setImmediate(true);
    btn1.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
            replaceComponent(stateGrid, stateDados);
        }
    });
    toolBar.addComponent(btn1);

    Button btn2 = new Button("Button two");
    btn2.setImmediate(true);
    btn2.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
        }
    });
    toolBar.addComponent(btn2);


    // build a table
    Table table = new Table();

    table.setSelectable(true);
    table.setImmediate(true);
    table.setWidth("100%");
    table.setHeight("330px");
    table.setMultiSelect(false);

    // columns
    table.addContainerProperty("ID", Integer.class, null);
    table.addContainerProperty("Name", String.class, null);

    table.setColumnHeaders(new String[]{"ID", "Name",});
    table.setVisibleColumns(new Object[]{"ID", "Name",});

    table.setColumnWidth("ID", 70);

    table.addItemClickListener(new ItemClickEvent.ItemClickListener() {
        private static final long serialVersionUID = 2068314108919135281L;

        public void itemClick(ItemClickEvent event) {
        }
    });
    
    container.addComponent(toolBar);
    container.addComponent(table);
    
    return container;
}


private Component buildStateDados() {
    VerticalLayout container = new VerticalLayout();

    container.setImmediate(true);
    container.setSizeFull();
    container.setSpacing(true);
    container.setMargin(false);

    // build a toolBar
    HorizontalLayout toolBar = new HorizontalLayout();
    toolBar.setImmediate(true);
    toolBar.setHeight("40");
    toolBar.setSpacing(true);
    toolBar.setMargin(false);

    Button btn1 = new Button("Return to stateGrid");
    btn1.setImmediate(true);
    btn1.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {

            // THIS COMMAND GENERATES A UNCAUGHT CLIENT SIDE EXCEPTION
            replaceComponent(stateDados, stateGrid);


        }
    });
    toolBar.addComponent(btn1);

    Button btn2 = new Button("Button two - state dados");
    btn2.setImmediate(true);
    btn2.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
        }
    });
    toolBar.addComponent(btn2);


    // build a absoluteLayout
    AbsoluteLayout absoluteLayout = new AbsoluteLayout();
    absoluteLayout.setWidth("100%");
    absoluteLayout.setHeight("400px");

    // ID
    TextField editID = new TextField("ID:");
    editID.setWidth("76px");
    editID.setEnabled(false);
    absoluteLayout.addComponent(editID, "left:2px;top:20px;");

    // name
    TextField editName = new TextField("Name:");
    editName.setWidth("380px");
    absoluteLayout.addComponent(editName, "left:86px;top:20px;");
    editName.focus();

    
    container.addComponent(toolBar);
    container.addComponent(absoluteLayout);
    
    return container;
}

}

this is a problem in my code or release?

Thanks.
12626.jpg

The ClassCastException comes from a bug in the framework, namely
#10155
. It is currently being worked on and should be resolved in time for beta9.

thanks.