ICEfaces
  1. ICEfaces
  2. ICE-2231

Allow <ice:menuItems> tag inside <ice:menuItem>

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.6.1
    • Fix Version/s: 1.7DR#3, 1.7
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      Windows XP SP2,
      Weblogic 9.2

      Description

      Now <ice:menuItems> have to be only inside <ice:menuBar>.
      But <ice:menuItem> can contain other <ice:menuItem>.
      So analogically <ice:menuItems> should be allowed to be inside <ice:menuItem>.

        Activity

        Hide
        Mark Collette added a comment -

        I made it allow ice:menuItems inside of ice:menuItem, and I also fixed some duplicate recursion on decode, which made several ActionEvents get broadcast if you had an actionListener.

        Subversion 15225
        icefaces\component\src\com\icesoft\faces\component\menubar\MenuBar.java
        icefaces\component\src\com\icesoft\faces\component\menubar\MenuItem.java
        icefaces\component\src\com\icesoft\faces\component\menubar\MenuItemBase.java
        icefaces\component\src\com\icesoft\faces\component\menubar\MenuItemRenderer.java
        icefaces\component\src\com\icesoft\faces\component\menubar\MenuItems.java
        icefaces\component\src\com\icesoft\faces\component\menubar\MenuItemsRenderer.java

        Show
        Mark Collette added a comment - I made it allow ice:menuItems inside of ice:menuItem, and I also fixed some duplicate recursion on decode, which made several ActionEvents get broadcast if you had an actionListener. Subversion 15225 icefaces\component\src\com\icesoft\faces\component\menubar\MenuBar.java icefaces\component\src\com\icesoft\faces\component\menubar\MenuItem.java icefaces\component\src\com\icesoft\faces\component\menubar\MenuItemBase.java icefaces\component\src\com\icesoft\faces\component\menubar\MenuItemRenderer.java icefaces\component\src\com\icesoft\faces\component\menubar\MenuItems.java icefaces\component\src\com\icesoft\faces\component\menubar\MenuItemsRenderer.java
        Hide
        Mark Collette added a comment -

        To test this feature, add the following snippets into the component-showcase:

        icefaces\samples\component-showcase\src\com\icesoft\icefaces\samples\showcase\components\menuBar\MenuBarBean.java

        private List menuModel;

        public MenuBarBean()

        { menuModel = buildMenuModel(); }

        private List buildMenuModel() {
        List list = new ArrayList();
        for(int i = 0; i < 3; i++) {
        MenuItem mi = new MenuItem();
        mi.setIcon("xmlhttp/css/xp/css-images/tree_folder_close.gif");
        mi.setValue("Dynamic " + i);
        list.add( mi );
        for(int j = 0; j < 3; j++)

        { MenuItem sub = new MenuItem(); sub.setIcon("xmlhttp/css/xp/css-images/tree_document.gif"); sub.setValue("sub_"+i+"_"+j); mi.getChildren().add( sub ); }

        }
        return list;
        }

        public List getMenuModel()

        { return menuModel; }

        icefaces\samples\component-showcase\web\inc\components\menuBar.jspx
        [Anywhere inside an ice:menuItem tag. Plus, it should also work right inside the ice:menuBar or ice:menuPopup tags]

        <ice:menuItems value="#

        {menuBar.menuModel}

        " actionListener="#

        {menuBar.primaryListener}

        "/>

        Show
        Mark Collette added a comment - To test this feature, add the following snippets into the component-showcase: icefaces\samples\component-showcase\src\com\icesoft\icefaces\samples\showcase\components\menuBar\MenuBarBean.java private List menuModel; public MenuBarBean() { menuModel = buildMenuModel(); } private List buildMenuModel() { List list = new ArrayList(); for(int i = 0; i < 3; i++) { MenuItem mi = new MenuItem(); mi.setIcon("xmlhttp/css/xp/css-images/tree_folder_close.gif"); mi.setValue("Dynamic " + i); list.add( mi ); for(int j = 0; j < 3; j++) { MenuItem sub = new MenuItem(); sub.setIcon("xmlhttp/css/xp/css-images/tree_document.gif"); sub.setValue("sub_"+i+"_"+j); mi.getChildren().add( sub ); } } return list; } public List getMenuModel() { return menuModel; } icefaces\samples\component-showcase\web\inc\components\menuBar.jspx [Anywhere inside an ice:menuItem tag. Plus, it should also work right inside the ice:menuBar or ice:menuPopup tags] <ice:menuItems value="# {menuBar.menuModel} " actionListener="# {menuBar.primaryListener} "/>

          People

          • Assignee:
            Unassigned
            Reporter:
            Marcin Dabrowski
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: