package com.gwt.ui.client.button; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.FlowPanel; import com.gwt.ui.client.ULPanel; /** * @author ibouakl */ public class MenuButton extends FlowPanel { private ULPanel listItem; private Anchor fosuedAnchor; public MenuButton() { super(); this.addStyleName("menuButton"); listItem = new ULPanel(); this.add(listItem); listItem.addStyleName("group"); } public Anchor addAnchor(String text, String href, ClickHandler handler) { final Anchor anchor = new Anchor(text, href); anchor.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { setFocus(anchor); } }); if (handler != null) { anchor.addClickHandler(handler); } listItem.addItem(anchor, "menuButtonItem"); return anchor; } public void setVisible(int anchorIndex,boolean isVisible){ listItem.getWidget(anchorIndex).setVisible(isVisible); } public void setFocus(Anchor anchor){ if (fosuedAnchor != null) fosuedAnchor.removeStyleName("focus"); fosuedAnchor = anchor; anchor.addStyleName("focus"); } }