package com.example.locator;

import com.example.locator.widgetset.client.mycomp.MyCompClientRpc;
import com.example.locator.widgetset.client.mycomp.MyCompServerRpc;
import com.vaadin.shared.MouseEventDetails;
import com.example.locator.widgetset.client.mycomp.MyCompState;

public class MyComp extends com.vaadin.ui.AbstractComponent {

	private MyCompServerRpc rpc = new MyCompServerRpc() {
		private int clickCount = 0;

		public void clicked(MouseEventDetails mouseDetails) {
			// nag every 5:th click using RPC
			if (++clickCount % 5 == 0) {
				getRpcProxy(MyCompClientRpc.class).alert(
						"Ok, that's enough!");
			}
			
			getRpcProxy(MyCompClientRpc.class).changeColor("#000000");
			// update shared state
			getState().color = "#000000";
		}
		
		public void newModulePosition(String color) {
			getRpcProxy(MyCompClientRpc.class).changeColor(color);
		}
	};  

	public MyComp() {
		registerRpc(rpc);
	}

	@Override
	public MyCompState getState() {
		return (MyCompState) super.getState();
	}
}
