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.