Вы можете создать простой виджет карты для тегов <map>
, <area>
.
public class ImageMap extends Widget implements HasMouseDownHandlers {
private MapElement mapElement;
public ImageMap() {
mapElement = Document.get().createMapElement();
setElement(mapElement);
}
public String getImgName() {
return mapElement.getName();
}
public void setImgName(String imgName) {
mapElement.setName(imgName);
}
public void addMapArea(AreaElement area) {
mapElement.appendChild(area);
}
public HandlerRegistration addMouseDownHandler(MouseDownHandler handler) {
return addDomHandler(handler, MouseDownEvent.getType());
}
}
Код создания:
AreaElement area = Document.get().createAreaElement();
area.setShape("rect");
area.setCoords("389,250,491,502");
area.setHref("#main");
imageMap = new ImageMap();
imageMap.setImg("frontPage");
imageMap.addMapArea(area);
imageMap.addMouseDownHandler(this);
или можете использовать изображение SVG с Raphaeljs для более сложных эффектов (см. Raphaelgwt ). Это лучше, чем решение области карты.