com.googlecode.gwt.test.uibinder.widget.UiMenuBarTagFactory Maven / Gradle / Ivy
package com.googlecode.gwt.test.uibinder.widget;
import com.google.gwt.user.client.ui.MenuBar;
import com.google.gwt.user.client.ui.MenuItem;
import com.google.gwt.user.client.ui.UIObject;
import com.googlecode.gwt.test.uibinder.UiObjectTag;
import com.googlecode.gwt.test.uibinder.UiObjectTagFactory;
import java.util.Map;
/**
* Handles <g:MenuBar> tags.
*
* @author Gael Lazzari
*/
public class UiMenuBarTagFactory implements UiObjectTagFactory {
private static class UiMenuBarTag extends UiObjectTag {
@Override
protected void addUIObject(MenuBar wrapped, UIObject uiObject) {
if (uiObject instanceof MenuItem) {
wrapped.addItem((MenuItem) uiObject);
} else {
super.addUIObject(wrapped, uiObject);
}
}
@Override
protected void finalizeObject(MenuBar widget) {
// nothing to do
}
@Override
protected void initializeObject(MenuBar wrapped, Map attributes, Object owner) {
// nothing to do
}
@Override
protected MenuBar instanciate(Class clazz, Map attributes,
Object owner) {
if (clazz != MenuBar.class) {
// use default instanciation system
return super.instanciate(clazz, attributes, owner);
}
String vertical = (String) attributes.get("vertical");
boolean isVertical = vertical != null ? Boolean.valueOf(vertical) : false;
return new MenuBar(isVertical);
}
}
public UiObjectTag createUiObjectTag(Class clazz, Map attributes) {
if (MenuBar.class.isAssignableFrom(clazz)) {
return new UiMenuBarTag();
}
return null;
}
}