I have checked in some Menu code checks and Javadoc to help users with
this issue in the future.

regards Malcolm Edgar

On Wed, Jul 8, 2009 at 3:54 PM, dian<[email protected]> wrote:
>
> ok, it work
>
> thx malcolm
>
>
>
> Malcolm Edgar-2 wrote:
>>
>> Hi Dian,
>>
>> You will need set an access controller on the menu item:
>>
>> AccessController accessController = new RoleAccessController();
>>
>> ..
>> Menu menu = new Menu();
>> menu.setAccessController(accessController);
>>
>> regards Malcolm Edgar
>>
>> On Wed, Jul 8, 2009 at 11:50 AM, dian<[email protected]> wrote:
>>>
>>> when I use click-2.1.0-RC1-incubating.jar &
>>> click-extras-2.1.0-RC1-incubating.jar, I have problem with my menu. Menu
>>> was
>>> created by code. this is my code:
>>>
>>> =========================================================
>>>
>>>        public void onInit()
>>>        {
>>>                mnSrv = (MenuDao) context.getBean("menuDao");
>>>
>>>                makeMenu(mn, 0);
>>>        }
>>>
>>>        private void makeMenu(Menu parent, Integer parentId)
>>>        {
>>>                List<com.dian.entity.Menu> mnList =
>>> mnSrv.getListByParentId(parentId);
>>>                Menu menu;
>>>
>>>                for(com.dian.entity.Menu men : mnList)
>>>                {
>>>                        menu = new Menu();
>>>                        menu.setLabel(men.getLabel());
>>>                        menu.setTitle(men.getLabel());
>>>                        menu.setPath(men.getPath());
>>>                        List data = new Vector();
>>>
>>>                        data.add(men.getRoles());
>>>
>>>                        menu.setRoles(data);
>>>
>>>                        parent.getChildren().add(menu);
>>>
>>>                        //msg += "<br> " + men.getLabel();
>>>
>>>                        makeMenu(menu, men.getMenuId());
>>>                }
>>>        }
>>>
>>>
>>> =========================================================
>>>
>>> if I using click-2.0.1-incubating.jar it can work normally, but when I
>>> use
>>> click v.2.1.0 RC 1 found error like this:
>>>
>>>
>>>
>>> ***********************************************************************
>>>
>>> Class   java.lang.NullPointerException
>>> Message null
>>>
>>> 594: * This method internally uses the <tt>HttpServletRequest</tt>
>>> function
>>> <tt>isUserInRole(rolename)</tt>,
>>> 595: * where the rolenames are derived from the {...@link #getRoles()}
>>> property.
>>> 596: *
>>> 597: * @return true if the user is in one of the menu roles, or false
>>> otherwise
>>> 598: */
>>> 599: public boolean isUserInRoles() {
>>> 600: HttpServletRequest request = getContext().getRequest();
>>> 601:
>>> 602: for (int i = 0, size = getRoles().size(); i < size; i++) {
>>> 603: String rolename = (String) getRoles().get(i);
>>> 604: if (getAccessController().hasAccess(request, rolename)) {
>>> 605: return true;
>>> 606: }
>>> 607: }
>>> 608:
>>> 609: return false;
>>> 610: }
>>> 611:
>>> 612: /**
>>> 613: * Return true if any child menus have the user in one of their menu
>>> roles.
>>> 614: * Otherwise the method will return false.
>>>
>>> java.lang.NullPointerException
>>>        at
>>> org.apache.click.extras.control.Menu.isUserInRoles(Menu.java:604)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>        at java.lang.reflect.Method.invoke(Unknown Source)
>>>        at
>>> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
>>>        at
>>> org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
>>>        at
>>> org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
>>>        at
>>> org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
>>>        at
>>> org.apache.velocity.runtime.parser.node.ASTReference.evaluate(ASTReference.java:460)
>>>        at
>>> org.apache.velocity.runtime.parser.node.ASTOrNode.evaluate(ASTOrNode.java:98)
>>>        at
>>> org.apache.velocity.runtime.parser.node.ASTExpression.evaluate(ASTExpression.java:62)
>>>        at
>>> org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:85)
>>>        at
>>> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
>>>        at
>>> org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:366)
>>>        at
>>> org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
>>>        at
>>> org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
>>>        at
>>> org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:212)
>>>        at
>>> org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:247)
>>>        at
>>> org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
>>>        at
>>> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
>>>        at org.apache.velocity.Template.merge(Template.java:328)
>>>        at org.apache.velocity.Template.merge(Template.java:235)
>>>        at
>>> org.apache.click.service.VelocityTemplateService.renderTemplate(VelocityTemplateService.java:317)
>>>        at
>>> org.apache.click.ClickServlet.renderTemplate(ClickServlet.java:785)
>>>        at
>>> org.apache.click.ClickServlet.performRender(ClickServlet.java:744)
>>>        at
>>> org.apache.click.ClickServlet.processPage(ClickServlet.java:517)
>>>        at
>>> org.apache.click.ClickServlet.handleRequest(ClickServlet.java:338)
>>>        at org.apache.click.ClickServlet.doGet(ClickServlet.java:257)
>>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>        at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>        at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
>>>        at
>>> org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
>>>        at
>>> org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
>>>        at
>>> org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:67)
>>>        at
>>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
>>>        at
>>> org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
>>>        at
>>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
>>>        at
>>> org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
>>>        at
>>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
>>>        at
>>> org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
>>>        at
>>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
>>>        at
>>> org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
>>>        at
>>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
>>>        at
>>> org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)
>>>        at
>>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
>>>        at
>>> org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)
>>>        at
>>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
>>>        at
>>> org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
>>>        at
>>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
>>>        at
>>> org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
>>>        at
>>> org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
>>>        at
>>> org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
>>>        at
>>> org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
>>>        at
>>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
>>>        at
>>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
>>>        at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>        at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>        at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>        at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>        at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>>        at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>        at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>        at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>>>        at
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
>>>        at
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>>>        at
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
>>>        at java.lang.Thread.run(Unknown Source)
>>>
>>> ***************************************************************************************
>>>
>>> what is the problem in my code ?
>>>
>>>
>>>
>>>
>>> sabob wrote:
>>>>
>>>> dian wrote:
>>>>> thx for your reply, I was try code in clickclick project. FlexiMenu can
>>>>> create menu base programatically, but I have problem when I use
>>>>> HORIZONTAL
>>>>> oriented.
>>>>>
>>>>> this is display my menu with HORIZONTAL oriented :
>>>>>
>>>>> http://www.geocities.com/abionale/images/menu_layout.JPG
>>>>>
>>>>> it should be display horizontal,
>>>>
>>>>
>>>> The menus look a little cramped :)
>>>>
>>>> For some reason the horizontal-menu.css specified a width of 500px. If
>>>> you
>>>> remove that rule or specify a bigger value, the menus will expand.
>>>>
>>>> I've also updated the stylesheet and removed the width rule.
>>>>
>>>> Thanks
>>>>
>>>> bob
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://n2.nabble.com/Sub-menu-tp3207667p3223002.html
>>> Sent from the click-user mailing list archive at Nabble.com.
>>>
>>
>>
>
> --
> View this message in context: 
> http://n2.nabble.com/Sub-menu-tp3207667p3223897.html
> Sent from the click-user mailing list archive at Nabble.com.
>

Reply via email to