六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 26|回复: 0

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

[复制链接]

升级  26.33%

83

主题

83

主题

83

主题

举人

Rank: 3Rank: 3

积分
279
 楼主| 发表于 2013-1-23 02:49:40 | 显示全部楼层 |阅读模式
<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}"
            
            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"
         
       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 && header!="" && header!="1" ){     
     
   var index=-1;
   var len=menuInfo.length;
   for(var i=0;i<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;
  }
};
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表