ICEfaces
  1. ICEfaces
  2. ICE-10178

ace:submenu - Add an action/actionListener or ajax event

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.3.0.GA_P02, 4.0
    • Fix Version/s: EE-4.0.0.GA, EE-3.3.0.GA_P03, 4.1
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      All

      Description

      Feature Request: Add an action/actionListener or an ajax event that can be called when a submenu parent menu item is clicked/selected. Currently the ace:menuItem can call an action/actionListener but this can't be used as a parent menu.

        Activity

        Hide
        Arturo Zambrano added a comment - - edited

        Do we want this to fire as well when the submenu is opened by simply hovering over it?

        Do we want to add a custom onClick attribute as well (just like ace:menuItem)?

        Show
        Arturo Zambrano added a comment - - edited Do we want this to fire as well when the submenu is opened by simply hovering over it? Do we want to add a custom onClick attribute as well (just like ace:menuItem)?
        Hide
        Arturo Zambrano added a comment -

        Committed improvement to 3.3 EE maintenance branch at revision 43597 and to 4.0 trunk at revision 43598. Added actionListener, ajax event, and onclick attribute to ace:submenu.

        Testing Notes: These features are meant to be activated only when clicking on the submenu labels (i.e. not when hovering). Note that the ajax event name is 'activate' in 3.3 and 'action' in 4.0.

        Show
        Arturo Zambrano added a comment - Committed improvement to 3.3 EE maintenance branch at revision 43597 and to 4.0 trunk at revision 43598. Added actionListener, ajax event, and onclick attribute to ace:submenu. Testing Notes: These features are meant to be activated only when clicking on the submenu labels (i.e. not when hovering). Note that the ajax event name is 'activate' in 3.3 and 'action' in 4.0.
        Hide
        Carmen Cristurean added a comment -

        New ace:submenu ajax tests have been added to ace:menu QA test application, test page: /menuAjax.jsf.

        Menu QA Test app for IF4 trunk:
        http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Nightly/menu
        Menu QA test app for EE-3.3-maintenance:
        http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces2/Sparkle/Nightly/menu

        Show
        Carmen Cristurean added a comment - New ace:submenu ajax tests have been added to ace:menu QA test application, test page: /menuAjax.jsf. Menu QA Test app for IF4 trunk: http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Nightly/menu Menu QA test app for EE-3.3-maintenance: http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces2/Sparkle/Nightly/menu
        Hide
        Carmen Cristurean added a comment -

        Re-opening because of these failures:

        1) These Ajax tests fail on both IF4 trunk & EE-3.3-maintenance:
        Submenu ActionListener attribute only
        Submenu Action attribute only

        2) The following submenu ajax tests cause server errors (NullPointerException) on IF4 trunk (not an issue on EE-3.3-mainetnance where they pass):
        Submenu "action" Event Test (Default render/execute)
        Submenu "action" Event Test (execute=@all render=@all)
        Submenu Default Event Test (execute=@all render=@all)
        Submenu "action" Event Test w/ ActionListener attribute (Default execute/render)
        Submenu "action" Event Test w/ Action attribute (Default execute/render)
        Submenu "action" Event Test w/ Ajax Disabled (execute=@all render=@all)

        java.lang.NullPointerException
        org.icefaces.ace.component.submenu.Submenu.getScript(Submenu.java:90)
        org.icefaces.ace.component.menu.MenuRenderer.encodePlainSubmenu(MenuRenderer.java:296)
        org.icefaces.ace.component.menu.MenuRenderer.encodePlainMenuContent(MenuRenderer.java:257)
        org.icefaces.ace.component.menu.MenuRenderer.encodeMarkup(MenuRenderer.java:154)
        org.icefaces.ace.component.menu.MenuRenderer.encodeEnd(MenuRenderer.java:57)
        javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
        javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
        org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:49)
        javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
        com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304)
        com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:114)
        javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
        com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456)
        com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
        javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
        com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
        com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)

        Show
        Carmen Cristurean added a comment - Re-opening because of these failures: 1) These Ajax tests fail on both IF4 trunk & EE-3.3-maintenance: Submenu ActionListener attribute only Submenu Action attribute only 2) The following submenu ajax tests cause server errors (NullPointerException) on IF4 trunk (not an issue on EE-3.3-mainetnance where they pass): Submenu "action" Event Test (Default render/execute) Submenu "action" Event Test (execute=@all render=@all) Submenu Default Event Test (execute=@all render=@all) Submenu "action" Event Test w/ ActionListener attribute (Default execute/render) Submenu "action" Event Test w/ Action attribute (Default execute/render) Submenu "action" Event Test w/ Ajax Disabled (execute=@all render=@all) java.lang.NullPointerException org.icefaces.ace.component.submenu.Submenu.getScript(Submenu.java:90) org.icefaces.ace.component.menu.MenuRenderer.encodePlainSubmenu(MenuRenderer.java:296) org.icefaces.ace.component.menu.MenuRenderer.encodePlainMenuContent(MenuRenderer.java:257) org.icefaces.ace.component.menu.MenuRenderer.encodeMarkup(MenuRenderer.java:154) org.icefaces.ace.component.menu.MenuRenderer.encodeEnd(MenuRenderer.java:57) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863) javax.faces.render.Renderer.encodeChildren(Renderer.java:176) org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:49) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304) com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:114) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456) com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133) javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
        Hide
        Carmen Cristurean added a comment - - edited

        New ajax submenu tests have been added to ace:menuBar and ace:contextMenu QA test apps.
        Testing results:
        EE-3.3.0-maintenance branch r43606: all tests pass.
        IF4 trunk r 43616: ajax tests fail because of the same NullPointerException.

        Show
        Carmen Cristurean added a comment - - edited New ajax submenu tests have been added to ace:menuBar and ace:contextMenu QA test apps. Testing results: EE-3.3.0-maintenance branch r43606: all tests pass. IF4 trunk r 43616: ajax tests fail because of the same NullPointerException.
        Hide
        Arturo Zambrano added a comment -

        Committed fixes for exceptions and for action/actionListener at revisions 43634 and 43535.

        Show
        Arturo Zambrano added a comment - Committed fixes for exceptions and for action/actionListener at revisions 43634 and 43535.
        Hide
        Carmen Cristurean added a comment -

        Verified with IF4 trunk / EE-3.3 r43636 in IE10, CHrome39, FF34: all ajax submenu tests for ace:menu/menuBar/contextMenu pass.

        Show
        Carmen Cristurean added a comment - Verified with IF4 trunk / EE-3.3 r43636 in IE10, CHrome39, FF34: all ajax submenu tests for ace:menu/menuBar/contextMenu pass.

          People

          • Assignee:
            Arturo Zambrano
            Reporter:
            Arran Mccullough
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: