anchor.diff:    MenuFun  _handleMenuItemClickFun(Function f,Column column,MenuItem item) => (MouseEvent e) => f(column,item,e);
       _menuItemClick(Column column,MenuItem item,MouseEvent e) {
         _log.finest('click:${column.name} ${item.command}');
  +      core.EventData ed=new core.EventData.fromDom(e);
   
         if (item.disabled) {
           return;
  
positive.code:      // var menu = $menuButton.data("menu");
       // var columnDef = $menuButton.data("column");
        if(column.header.length==0) return;
        // Let the user modify the menu or cancel altogether,
        // or provide alternative menu implementation.
        List<MenuItem> menuList = column.header['menu']['items'].map((_) => new MenuItem(_)).toList() as List<MenuItem>;
        if (onBeforeMenuShow.notify({
            "grid": _grid,
            "column": column,
            "menu": menuList
          }, e) == false) {
          return;
        }
  
  
negative.code:       _hideMenu();
  
        if (item.command != null && item.command != '') {
          onCommand.notify(<String,dynamic>{
              "grid": _grid,
              "column": column,
              "command": item.command,
              "item": item
            }, ed);
        }
  
        // Stop propagation so that it doesn't register as a header click event.
  