package org.inbio.m3s.gwt.client.widgets.verticalmenu;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.MouseListener;
import com.google.gwt.user.client.ui.SourcesClickEvents;
import com.google.gwt.user.client.ui.Widget;
/*
* The menu item widget, its suponse to be inserted in a VerticalMenuBar.
* In the css must be
*/
public class MenuItem extends Composite implements MouseListener,
ClickListener, SourcesClickEvents {
private Label item;
private ClickListener clickListener;
// global variable used to maintain the appearance of the widget
private String previousStyle;
// Creates the MenuItem...
public MenuItem(String text) {
item = new Label(text);
item.addMouseListener(this);
item.addClickListener(this);
item.setStyleName("VerticalMenuItem-nav");
initWidget(item);
}
/**set's the active menu item style (from the css)
* @deprecated
* */
public void setActiveItem() {
item.setStyleName("VerticalMenuItem-navActive");
}
/**set's the NON Active menu item style (from the css)
* @deprecated
* */
public void setNonActiveItem() {
item.setStyleName("VerticalMenuItem-nav");
}
// actions:
public void onClick(Widget sender) {
clickListener.onClick(this);
}
public void onMouseDown(Widget sender, int x, int y) {
;
}
public void onMouseEnter(Widget sender) {
setPreviousStyle(sender.getStyleName());
sender.setStyleName("VerticalMenuItem-navMouseOver");
}
public void onMouseLeave(Widget sender) {
sender.setStyleName(getPreviousStyle());
}
public void onMouseMove(Widget sender, int x, int y) {
;
}
public void onMouseUp(Widget sender, int x, int y) {
;
}
public void addClickListener(ClickListener listener) {
clickListener = listener;
}
public void removeClickListener(ClickListener listener) {
clickListener = null;
}
private void setPreviousStyle(String previousStyle) {
this.previousStyle = previousStyle;
}
private String getPreviousStyle() {
return previousStyle;
}
}