/* * Copyright 2011 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.vaadin.terminal.gwt.client.ui; import java.util.HashMap; import java.util.Map; import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.user.client.Element; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.MouseEventDetails; import com.vaadin.terminal.gwt.client.Paintable; public abstract class LayoutClickEventHandler extends ClickEventHandler { public LayoutClickEventHandler(Paintable paintable, String clickEventIdentifier) { super(paintable, clickEventIdentifier); } protected abstract Paintable getChildComponent(Element element); @Override protected void fireClick(NativeEvent event) { ApplicationConnection client = getApplicationConnection(); String pid = getApplicationConnection().getPid(paintable); MouseEventDetails mouseDetails = new MouseEventDetails(event, getRelativeToElement()); Paintable childComponent = getChildComponent((Element) event .getEventTarget().cast()); Map parameters = new HashMap(); parameters.put("mouseDetails", mouseDetails.serialize()); parameters.put("component", childComponent); client.updateVariable(pid, clickEventIdentifier, parameters, true); } }