com.vaadin.client.ui.menubar.MenuItem Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vaadin-client Show documentation
Show all versions of vaadin-client Show documentation
Vaadin is a web application framework for Rich Internet Applications (RIA).
Vaadin enables easy development and maintenance of fast and
secure rich web
applications with a stunning look and feel and a wide browser support.
It features a server-side architecture with the majority of the logic
running
on the server. Ajax technology is used at the browser-side to ensure a
rich
and interactive user experience.
/*
* Copyright 2000-2016 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.vaadin.client.ui.menubar;
/*
* Copyright 2007 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
// COPIED HERE DUE package privates in GWT
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.HasHTML;
import com.google.gwt.user.client.ui.UIObject;
/**
* A widget that can be placed in a
* {@link com.google.gwt.user.client.ui.MenuBar}. Menu items can either fire a
* {@link com.google.gwt.user.client.Command} when they are clicked, or open a
* cascading sub-menu.
*
* @deprecated
*/
@Deprecated
public class MenuItem extends UIObject implements HasHTML {
private static final String DEPENDENT_STYLENAME_SELECTED_ITEM = "selected";
private Command command;
private MenuBar parentMenu, subMenu;
/**
* Constructs a new menu item that fires a command when it is selected.
*
* @param text
* the item's text
* @param cmd
* the command to be fired when it is selected
*/
public MenuItem(String text, Command cmd) {
this(text, false);
setCommand(cmd);
}
/**
* Constructs a new menu item that fires a command when it is selected.
*
* @param text
* the item's text
* @param asHTML
* true
to treat the specified text as html
* @param cmd
* the command to be fired when it is selected
*/
public MenuItem(String text, boolean asHTML, Command cmd) {
this(text, asHTML);
setCommand(cmd);
}
/**
* Constructs a new menu item that cascades to a sub-menu when it is
* selected.
*
* @param text
* the item's text
* @param subMenu
* the sub-menu to be displayed when it is selected
*/
public MenuItem(String text, MenuBar subMenu) {
this(text, false);
setSubMenu(subMenu);
}
/**
* Constructs a new menu item that cascades to a sub-menu when it is
* selected.
*
* @param text
* the item's text
* @param asHTML
* true
to treat the specified text as html
* @param subMenu
* the sub-menu to be displayed when it is selected
*/
public MenuItem(String text, boolean asHTML, MenuBar subMenu) {
this(text, asHTML);
setSubMenu(subMenu);
}
MenuItem(String text, boolean asHTML) {
setElement(DOM.createTD());
setSelectionStyle(false);
if (asHTML) {
setHTML(text);
} else {
setText(text);
}
setStyleName("gwt-MenuItem");
}
/**
* Gets the command associated with this item.
*
* @return this item's command, or null
if none exists
*/
public Command getCommand() {
return command;
}
@Override
public String getHTML() {
return DOM.getInnerHTML(getElement());
}
/**
* Gets the menu that contains this item.
*
* @return the parent menu, or null
if none exists.
*/
public MenuBar getParentMenu() {
return parentMenu;
}
/**
* Gets the sub-menu associated with this item.
*
* @return this item's sub-menu, or null
if none exists
*/
public MenuBar getSubMenu() {
return subMenu;
}
@Override
public String getText() {
return DOM.getInnerText(getElement());
}
/**
* Sets the command associated with this item.
*
* @param cmd
* the command to be associated with this item
*/
public void setCommand(Command cmd) {
command = cmd;
}
@Override
public void setHTML(String html) {
DOM.setInnerHTML(getElement(), html);
}
/**
* Sets the sub-menu associated with this item.
*
* @param subMenu
* this item's new sub-menu
*/
public void setSubMenu(MenuBar subMenu) {
this.subMenu = subMenu;
}
@Override
public void setText(String text) {
DOM.setInnerText(getElement(), text);
}
void setParentMenu(MenuBar parentMenu) {
this.parentMenu = parentMenu;
}
void setSelectionStyle(boolean selected) {
if (selected) {
addStyleDependentName(DEPENDENT_STYLENAME_SELECTED_ITEM);
} else {
removeStyleDependentName(DEPENDENT_STYLENAME_SELECTED_ITEM);
}
}
}