Package org.sgx.yuigwt.yuitest1.gallery.test

Source Code of org.sgx.yuigwt.yuitest1.gallery.test.MenuNavTest1

package org.sgx.yuigwt.yuitest1.gallery.test;

import static org.sgx.yuigwt.yuitest1.gallery.GalleryConstants.*;

import org.sgx.yuigwt.yui.YUI;
import org.sgx.yuigwt.yui.YUICallback;
import org.sgx.yuigwt.yui.YuiContext;
import org.sgx.yuigwt.yui.event.YuiEvent;
import org.sgx.yuigwt.yui.node.Node;
import org.sgx.yuigwt.yui.node.NodeBase;
import org.sgx.yuigwt.yui.node.NodeEventDelegateCallback;
import org.sgx.yuigwt.yui.util.YUIUtil;

import com.google.gwt.user.client.Window;


public class MenuNavTest1 extends AbstractTest {

public MenuNavTest1() {
  super("MenuNavTest1", "MenuNavTest1", new String[]{TAG_MENUNAV, TAG_WIDGET, TAG_NODE},
      TestResources.instance.EventDelegateTest1());
}

@Override
public void test(final Node parent) {
  YUI.YUI().use(new String[]{"node-menunav"}, new YUICallback() {
 
    @Override
    public void ready(YuiContext Y) {
     
      parent.append("<p>these are two menus, the markup created using YUIUtil.makeMenu* and using YUI NodeMenuNav plugin for the menues. The first is a horizontal menu and the last is a vertical menu</p>");
      //generate a simple horizontal menu bar and use event delegation for getting who menuitem was clicked
      Node menu1 = YUIUtil.makeMenu(Y, true, new Node[]{
        YUIUtil.makeMenuItem(Y, "File", new Node[]{
          YUIUtil.makeMenuItem(Y, "Open..."),
          YUIUtil.makeMenuItem(Y, "Save..."),         
          YUIUtil.makeMenuItem(Y, "Export", new Node[]{
            YUIUtil.makeMenuItem(Y, "to PNG", null),
            YUIUtil.makeMenuItem(Y, "to PDF", null)
          }),
          YUIUtil.makeMenuItem(Y, "Exit"),
        }),
       
        YUIUtil.makeMenuItem(Y, "Help", new Node[]{
          YUIUtil.makeMenuItem(Y, "About", null),
          YUIUtil.makeMenuItem(Y, "Use manual")
        })         
      });
      parent.append(menu1);
     
      menu1.plug(Y.Plugin().NodeMenuNav());
     
      parent.append("<p>and now the vertical menu...</p>");
     
      //now create another menu but vertical
     
      NodeBase vMenuParent = parent.appendChild(YUIUtil.NODE(Y, "tag: 'div'", "width: '80px'"));
      parent.append(vMenuParent);
      Node menu2 = YUIUtil.makeMenu(Y, false, new Node[]{
        YUIUtil.makeMenuItem(Y, "YAHOO", new Node[]{
          YUIUtil.makeMenuItem(Y, "Search..."),
          YUIUtil.makeMenuItem(Y, "Mail..."),         
          YUIUtil.makeMenuItem(Y, "News", new Node[]{
            YUIUtil.makeMenuItem(Y, "London 2012", null),
            YUIUtil.makeMenuItem(Y, "Uruguay football champion", null)
          }),
          YUIUtil.makeMenuItem(Y, "Other"),
        }),
       
        YUIUtil.makeMenuItem(Y, "Google", new Node[]{
          YUIUtil.makeMenuItem(Y, "News", null),
          YUIUtil.makeMenuItem(Y, "Docs")
        })         
      });
      vMenuParent.append(menu2);
      menu2.plug(Y.Plugin().NodeMenuNav());
     
      for(Node n : new Node[]{menu1, menu2}) {
        n. delegate("click", new NodeEventDelegateCallback() {         
          @Override
          public void call(Node n, YuiEvent evt, Object arg) {
            Window.alert("clicked node: "+n);
            evt.preventDefault();
          }
        }, ".yui3-menuitem-content", null);
      }
//      Y.newNodeList(new Node[]{menu1, menu2}).
      //use event delegate for listening to clicks only in menu leafs (filter by .yui3-menuitem-content)
     
    }
  });
}

}
TOP

Related Classes of org.sgx.yuigwt.yuitest1.gallery.test.MenuNavTest1

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.