001: /*
002: * GWT-Ext Widget Library
003: * Copyright(c) 2007-2008, GWT-Ext.
004: * licensing@gwt-ext.com
005: *
006: * http://www.gwt-ext.com/license
007: */
008:
009: package com.gwtext.client.widgets.menu;
010:
011: import com.google.gwt.core.client.JavaScriptObject;
012: import com.gwtext.client.util.JavaScriptObjectHelper;
013:
014: /**
015: * MenuItem class. This is useful for creating sumbmenu by adding a
016: * MenuItem to the main Menu.
017: *
018: * @see Menu#addItem(BaseItem)
019: */
020: public class MenuItem extends BaseItem {
021:
022: private static JavaScriptObject configPrototype;
023: private Menu menu;
024:
025: static {
026: init();
027: }
028:
029: private static native void init()/*-{
030: var c = new $wnd.Ext.menu.Item();
031: @com.gwtext.client.widgets.menu.MenuItem::configPrototype = c.initialConfig;
032: }-*/;
033:
034: protected JavaScriptObject getConfigPrototype() {
035: return configPrototype;
036: }
037:
038: /**
039: * Create a new MenuItem
040: */
041: public MenuItem() {
042: }
043:
044: /**
045: * Create a new MenuItem.
046: *
047: * @param text the menu text
048: * @param submenu the submenu
049: */
050: public MenuItem(String text, Menu submenu) {
051: setText(text);
052: setMenu(submenu);
053: }
054:
055: protected native JavaScriptObject create(JavaScriptObject config)/*-{
056: return new $wnd.Ext.menu.Item(config);
057: }-*/;
058:
059: // --- config options ---
060:
061: /**
062: * Set the icon CSS class.
063: *
064: * @param iconCls the icon class
065: */
066: public void setIconCls(String iconCls) {
067: JavaScriptObjectHelper.setAttribute(config, "iconCls", iconCls);
068: }
069:
070: /**
071: * @return the icon CSS class
072: */
073: public String getIconCls() {
074: return JavaScriptObjectHelper.getAttribute(config, "iconCls");
075: }
076:
077: /**
078: * Set the text of the menu.
079: *
080: * @param text the menu text
081: */
082: public void setText(String text) {
083: JavaScriptObjectHelper.setAttribute(config, "text", text);
084: }
085:
086: /**
087: * Return the menu text.
088: *
089: * @return the menu text
090: */
091: public String getText() {
092: return JavaScriptObjectHelper.getAttribute(config, "text");
093: }
094:
095: /**
096: * Set the sub-menu.
097: *
098: * @param menu the sub menu
099: */
100: public void setMenu(Menu menu) {
101: this .menu = menu;
102: JavaScriptObjectHelper.setAttribute(config, "menu", menu
103: .getOrCreateJsObj());
104: }
105:
106: /**
107: * Return the sub menu.
108: *
109: * @return the sub menu
110: */
111: public Menu getMenu() {
112: return menu;
113: }
114: }
|