:: Forum >> Version 2 >>

DHTML menus

Are there any plans to implement DHTML menus in AW in future release?. It would be very nice to have a toolbar on top of the grid that serves as a container for different methods in the grid. For example, a file menu, edit menu, etc. (like in excel).
Isaac (BMS)
Wednesday, February 13, 2008
Yes, I agree - the menu/toolbars would be a good addition, probably as a separate script to keep the grid code size as small as possible.
Alex (ActiveWidgets)
Thursday, February 14, 2008
I included the Dynach menus (http://www.dynarch.com/products/dhtml-menu/) on top of an extended grid and they look nice. However, I found two issues that perhaps are related to the refresh function of the grid.

1. When I mouse over the menu, the header disappears
2. When I sort the table the style for the menu is lost and therefore the functionality is gone.

Any suggestions?

I am including the code but you need to register and download the Dynarch DHTML menus in order to see the problem.

<html>

  <
head>
    <
title>ActiveWidgets</title>
    <
script src="ActiveWidgets/runtime/lib/aw.js"></script>
    <
script src="DynarchMenu/hmenu-2.9/src/hmenu.js"></script>
    <
link href="ActiveWidgets/runtime/styles/xp/aw.css" rel="stylesheet"></link>
    <
link href="DynarchMenu/hmenu-2.9/src/skin-xp-extended.css" rel="stylesheet"></link>
  </
head>

  <
body onload="DynarchMenu.setup('menu', { electric: 1000, timeout: 0 });">

    <
script>

      var 
obj = new AW.Grid.Extended;
      
obj.setCellText(function(ij){return "." i});
      
obj.setHeaderText("header");
      
obj.setColumnCount(10);
      
obj.setRowCount(100);
      
obj.setCellEditable(true);

      var 
toolbar = new AW.HTML.DIV;
      
toolbar.setId("toolbar");
      
toolbar.setContent("mytoolbar""<ul id='menu'><li>_File<ul><li>_Open</li><li>_Save</li></ul></li><ul>");

      
obj.defineTemplate("toolBar"toolbar);

      var 
panel = new AW.Panels.Horizontal;
      
panel.changePanelHeight(25"top");
      
      
obj.setLayoutTemplate(panel);
      
      
obj.setPanelTemplate(function(i){
          switch(
i){
              case 
"top"   : return this.getToolBarTemplate();
              case 
"center": return this.getScrollTemplate();
              case 
"bottom": return '';
          }
      });

      
document.write(obj);

    </
script>


  </
body>

</
html>
 
Isaac (BMS)
Thursday, February 14, 2008
Ok . It is fixed. I just needed to overwrite the refresh function.

// save the original method
 
obj.refresh1 obj.refresh
 
obj.refresh = function(){
   
obj.refresh1();
   
// Initialize the menus
  
DynarchMenu.setup('menu', { electric1000timeout});
}
 
So also I don't need the onload event in the body either.
Isaac (BMS)
Thursday, February 14, 2008

Post a reply:

Text:
Name:

Back to support forum

Forum search