package com.vaadin.tests.tickets; import com.vaadin.Application; import com.vaadin.data.Property; import com.vaadin.data.Property.ValueChangeEvent; import com.vaadin.server.UserError; import com.vaadin.ui.Button; import com.vaadin.ui.Label; import com.vaadin.ui.UI.LegacyWindow; import com.vaadin.ui.TextField; public class Ticket2090 extends Application { Label label = new Label(); Button target = new Button(); LegacyWindow w = new LegacyWindow("#2090"); @Override public void init() { setMainWindow(w); final TextField width = new TextField("Width"); width.setImmediate(true); final TextField height = new TextField("Height"); height.setImmediate(true); w.addComponent(width); w.addComponent(height); w.addComponent(label); w.addComponent(target); height.addListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { try { target.setHeight(height.getValue()); height.setComponentError(null); updateLabel(); } catch (Exception e) { height.setComponentError(new UserError(e.getMessage())); } } }); width.addListener(new Property.ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { try { target.setWidth(width.getValue()); width.setComponentError(null); updateLabel(); } catch (Exception e) { width.setComponentError(new UserError(e.getMessage())); } } }); } private void updateLabel() { label.setValue("width: " + target.getWidth() + target.getWidthUnits().getSymbol() + ", height: " + target.getHeight() + target.getHeightUnits().getSymbol()); } }