package com.googlecode.gwt.test.uibinder.widget; import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.MenuBar; import com.google.gwt.user.client.ui.MenuItem; import com.googlecode.gwt.test.uibinder.UiObjectTag; import com.googlecode.gwt.test.uibinder.UiObjectTagFactory; import java.util.Map; /** * Handles <g:MenuItem> tags. * * @author Gael Lazzari */ public class UiMenuItemTagFactory implements UiObjectTagFactory<MenuItem> { private static class UiMenuItemTag extends UiObjectTag<MenuItem> { @Override protected void addWidget(MenuItem wrapped, IsWidget isWidget) { if (isWidget instanceof MenuBar) { wrapped.setSubMenu((MenuBar) isWidget); } else { super.addWidget(wrapped, isWidget); } } @Override protected void finalizeObject(MenuItem uiObject) { // nothing to do } @Override protected void initializeObject(MenuItem wrapped, Map<String, Object> attributes, Object owner) { // nothing to do } @Override protected MenuItem instanciate(Class<? extends MenuItem> clazz, Map<String, Object> attributes, Object owner) { if (clazz == MenuItem.class) { return new MenuItem(SafeHtmlUtils.fromSafeConstant("")); } return super.instanciate(clazz, attributes, owner); } } /* * (non-Javadoc) * * @see com.googlecode.gwt.test.uibinder.UiObjectTagFactory#createUiObjectTag( java.lang .Class, * java.util.Map) */ public UiObjectTag<MenuItem> createUiObjectTag(Class<?> clazz, Map<String, Object> attributes) { if (MenuItem.class.isAssignableFrom(clazz)) { return new UiMenuItemTag(); } return null; } }