package org.semanticsoft.vaadinaddons.boundsinfo; import org.semanticsoft.vaadinaddons.boundsinfo.client.mycomponent.MyComponentClientRpc; import org.semanticsoft.vaadinaddons.boundsinfo.client.mycomponent.MyComponentServerRpc; import com.vaadin.shared.MouseEventDetails; import org.semanticsoft.vaadinaddons.boundsinfo.client.mycomponent.MyComponentState; public class MyComponent extends com.vaadin.ui.AbstractComponent { private MyComponentServerRpc rpc = new MyComponentServerRpc() { private int clickCount = 0; public void clicked(MouseEventDetails mouseDetails) { // nag every 5:th click using RPC if (++clickCount % 5 == 0) { getRpcProxy(MyComponentClientRpc.class).alert( "Ok, that's enough!"); } // update shared state getState().text = "You have clicked " + clickCount + " times"; } }; public MyComponent() { registerRpc(rpc); } @Override public MyComponentState getState() { return (MyComponentState) super.getState(); } }