richfaces 数据驱动menu(判断菜单切换间隔)

<rich:tabPanel switchType="client" id="w55">
    <c:set var="menus" value="#{MenuBean.menus}" />
    <c:forEach var="menu" items="#{MenuBean.menuHeader}"
     varStatus="status">
     <script>
      addHeadMenuUrl('#{menu.action_value}');
    </script>
     <rich:tab label="#{menu.label_name}" name="#{menu.label_name}" rendered="#{menu.visible_ind}"
      id="rrr_#{status.index}">
      <h:panelGrid columns="${fn:length(menu.items)}">
       <c:forEach var="menuitem" items="#{menu.items}"
        varStatus="status1">
        <c:choose>
         <c:when test="${fn:length(menuitem.items) >=1}">
          <rich:dropDownMenu>
           <f:facet name="label">
            <h:panelGroup>
             <h:graphicImage value="#{menuitem.icon_name}" rendered="#{menuitem.visible_ind}"
              styleClass="pic" />
             <h:outputText value="#{menuitem.label_name}" />
            </h:panelGroup>
           </f:facet>
           <c:forEach var="menuitem1" items="#{menuitem.items}">
            <rich:menuItem value="#{menuitem1.label_name}" rendered="#{menuitem1.visible_ind}"
             icon="#{menuitem1.icon_name}" submitMode="ajax"
             title="#{menuitem1.action_value}">
             <a4j:support event="onselect" reRender="targetFrame"
              bind="#{MenuBean.menuUrl}">
              <a4j:actionparam name="w"
               value="'#{menuitem1.action_value}'"
               assignTo="#{MenuBean.menuUrl}" noEscape="true" />
              <a4j:actionparam name="w1" value="'#{menu.action_value}'"
               assignTo="#{MenuBean.headerMenuUrl}" noEscape="true" />
             </a4j:support>
            </rich:menuItem>
           </c:forEach>
          </rich:dropDownMenu>
         </c:when>
         <c:otherwise>
          <h:panelGroup>
           <h:graphicImage value="#{menuitem.icon_name}" rendered="#{menuitem.visible_ind}"
            styleClass="pic" />
           <a4j:commandLink value="#{menuitem.label_name}" rendered="#{menuitem.visible_ind}"
            οnclick="var ret=frmwork_checkmenuclick(); if(ret==false) return false;"
            title="#{menuitem.action_value}" reRender="targetFrame">
            <a4j:actionparam name="w" value="'#{menuitem.action_value}'"
             assignTo="#{MenuBean.menuUrl}" noEscape="true" />
            <a4j:actionparam name="w1" value="'#{menu.action_value}'"
             assignTo="#{MenuBean.headerMenuUrl}" noEscape="true" />

           </a4j:commandLink>
          </h:panelGroup>

         </c:otherwise>
        </c:choose>

       </c:forEach>
      </h:panelGrid>
      <a4j:support event="ontabenter" reRender="targetFrame"
          οnsubmit="var ret=frmwork_checkmenuclick(); if(ret==false) return false;"
       bind="#{MenuBean.menuUrl}">
       <a4j:actionparam name="w" value="'#{menu.action_value}'"
        assignTo="#{MenuBean.menuUrl}" noEscape="true" />
       <a4j:actionparam name="w1" value="'#{menu.action_value}'"
        assignTo="#{MenuBean.headerMenuUrl}" noEscape="true" />

      </a4j:support>
     </rich:tab>
    </c:forEach>
   </rich:tabPanel>

 

 

 

 

<script>
  var menuInfo=[];
 
  function addHeadMenuUrl(url){
    menuInfo.push(url);
  }
  
   function frmwork_selectFirstMenu(){ 
          var mu="#{MenuBean.menuUrl}";
          if(mu==""){
     var tabPanelId='frmwork_menu_form111:w55';
     var tabId='frmwork_menu_form111:rrr_1'; 
     var tabs=RichFaces.panelTabs[tabPanelId];
     if(tabs==null) {
       //alert("no menu data");
       return;
     }
     var f=document.getElementById(tabs[0].id+"_shifted");
     if(f){
       f.onclick();
     }
    }
  }
 
  APPLICATION_PREVENSION_ESCAPE=true;
 
  function frmwork_checkmenuclick(){
 
     try{
     //debugger;      
       var ret=checkApplicationClickInterval(1000);
       if(ret==false) return false;
     }catch(e){
      
     }  
  }
 
  function frmwork_showMenu(url,header){
      if(header &amp;&amp; header!="" &amp;&amp; header!="1" ){     
     
   var index=-1;
   var len=menuInfo.length;
   for(var i=0;i&lt;len;i++){
     if(menuInfo[i]==header){
          index=i;
      }
   };
   if(index!=-1){
      //alert(index);
   }else{
     index=0;
   }
  
     
          //alert(url+"  --- "+header+" -- "+index+" -- "+menuInfo.join(","));
    var tabPanelId='frmwork_menu_form111:w55';
    var tabId='frmwork_menu_form111:rrr_'+index; 
    var tabs=RichFaces.panelTabs[tabPanelId];
    RichFaces.switchTab(tabPanelId,tabId);
   }

  }
 
</script>

 

 

 

 

 

 

 

js:

 

APPLICATION_PREVENSION_CLICK=new Date();
APPLICATION_PREVENSION_ESCAPE=true;

 

function checkApplicationClickInterval(interval){
  if(APPLICATION_PREVENSION_ESCAPE) {
     APPLICATION_PREVENSION_ESCAPE=false;
     return true;
  }
  APPLICATION_PREVENSION_ESCAPE=false;
 
  var timeInterval=interval?interval:3000;
  var d=new Date();
  var interval=d-APPLICATION_PREVENSION_CLICK;
  if(interval<timeInterval){
    alert("You click too fast,please wait server response!"); 
    return false;
  }else{
      APPLICATION_PREVENSION_CLICK=new Date();
    return true;
  }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值