package com.eas.menu;
import com.eas.core.Utils;
import com.eas.ui.UiReader;
import com.eas.ui.UiWidgetReader;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.xml.client.Element;
public class MenuFactory implements UiWidgetReader{
public UIObject readWidget(Element anElement, final UiReader aFactory) throws Exception {
String type = anElement.getTagName();
switch (type) {
case "m":
case "Menu":
PlatypusMenu menu = new PlatypusMenu();
MenuPublisher.publish(menu);
aFactory.readGeneralProps(anElement, menu);
if (Utils.hasAttribute(anElement, "tx", "text")) {
menu.setText(Utils.getAttribute(anElement, "tx", "text", null));
}
return menu;
case "mi":
case "MenuItem":
PlatypusMenuItemImageText menuitem = new PlatypusMenuItemImageText();
MenuPublisher.publish(menuitem);
aFactory.readGeneralProps(anElement, menuitem);
aFactory.readImageParagraph(anElement, menuitem);
if (Utils.hasAttribute(anElement, "tx", "text")) {
menuitem.setText(Utils.getAttribute(anElement, "tx", "text", null));
}
return menuitem;
case "cmi":
case "CheckMenuItem":
PlatypusMenuItemCheckBox checkMenuItem = new PlatypusMenuItemCheckBox();
MenuPublisher.publish(checkMenuItem);
aFactory.readGeneralProps(anElement, checkMenuItem);
aFactory.readImageParagraph(anElement, checkMenuItem);
if (Utils.hasAttribute(anElement, "st", "selected")) {
boolean selected = Utils.getBooleanAttribute(anElement, "st", "selected", Boolean.FALSE);
checkMenuItem.setValue(selected);
}
if (Utils.hasAttribute(anElement, "tx", "text")) {
checkMenuItem.setText(Utils.getAttribute(anElement, "tx", "text", null));
}
return checkMenuItem;
case "rmi":
case "RadioMenuItem":
PlatypusMenuItemRadioButton radioMenuItem = new PlatypusMenuItemRadioButton();
MenuPublisher.publish(radioMenuItem);
aFactory.readGeneralProps(anElement, radioMenuItem);
aFactory.readImageParagraph(anElement, radioMenuItem);
if (Utils.hasAttribute(anElement, "st", "selected")) {
boolean selected = Utils.getBooleanAttribute(anElement, "st", "selected", Boolean.FALSE);
radioMenuItem.setValue(selected);
}
if (Utils.hasAttribute(anElement, "tx", "text")) {
radioMenuItem.setText(Utils.getAttribute(anElement, "tx", "text", null));
}
return radioMenuItem;
case "ms":
case "MenuSeparator":
PlatypusMenuItemSeparator menuSeparator = new PlatypusMenuItemSeparator();
MenuPublisher.publish(menuSeparator);
aFactory.readGeneralProps(anElement, menuSeparator);
return menuSeparator;
case "mb":
case "MenuBar":
PlatypusMenuBar menuBar = new PlatypusMenuBar();
MenuPublisher.publish(menuBar);
aFactory.readGeneralProps(anElement, menuBar);
return menuBar;
case "pm":
case "PopupMenu":
PlatypusPopupMenu popupMenu = new PlatypusPopupMenu();
MenuPublisher.publish(popupMenu);
aFactory.readGeneralProps(anElement, popupMenu);
return popupMenu;
default:
return null;
}
}
}