tomahawk JSF组件扩展组件(二)

九.使用DataModel作为table的列或数据。
 
List headerList  =   new  ArrayList();
        headerList.add(
new  ColumnHeader( " Index " , " 100 " , false ));
        headerList.add(
new  ColumnHeader( " Type " , " 200 " , true ));
        headerList.add(
new  ColumnHeader( " Model " , " 300 " , true ));
        columnHeaders 
=   new  ListDataModel(headerList);

List rowList 
=   new  ArrayList();
        
for  ( int  i  =   100 ; i  <=   999 ; i ++ )
        
{
            List colList 
= new ArrayList();
            colList.add(
new Integer(i));
            colList.add(
"Car Type " + i);
            colList.add((i
%2==0? "blue" : "green");
            rowList.add(colList);
        }

        data 
=   new  ListDataModel(rowList);

public   void  setColumnValue(Object value)
    
{
      
if (data.isRowAvailable() && columnHeaders.isRowAvailable())
      
{
          ((List)data.getRowData()).set(columnHeaders.getRowIndex(), value);
      }

    }


    
public  String getColumnWidth()
    
{
        String columnWidth 
= null;
        
if (data.isRowAvailable() && columnHeaders.isRowAvailable())
        
{
            columnWidth 
= ((ColumnHeader)columnHeaders.getRowData()).getWidth();
        }

        
return columnWidth;
    }
 再动态地在<t:datatable>中生成列与行数据:
< t:columns id = " columns "  value = " #{openDataList.columnHeaders} "  
                  var
= " columnHeader "  style = " width:#{openDataList.columnWidth}px " >
    
< f:facet name = " header " >
        
< t:commandSortHeader columnName = " #{columnHeader.label} "  arrow = " false "  immediate = " false " >
            
< f:facet name = " ascending " >
                
< t:graphicImage value = " images/ascending-arrow.gif "  rendered = " true "  border = " 0 " />
            
</ f:facet >
            
< f:facet name = " descending " >
                
< t:graphicImage value = " images/descending-arrow.gif "  rendered = " true "  border = " 0 " />
            
</ f:facet >
            
< h:outputText value = " #{columnHeader.label} "   />
        
</ t:commandSortHeader >
    
</ f:facet >
    
<!--  row is also available  -->
    
< h:inputText rendered = " #{openDataList.valueModifiable} "  value = " #{openDataList.columnValue} "   />
    
< h:outputText rendered = " #{!openDataList.valueModifiable} "  value = " #{openDataList.columnValue} "   />
</ t:columns >
 十.<t:panelTabbedPane>的使用
< t:panelTabbedPane bgcolor = " #FFFFCC "   >
    
<!--  所有tab都有组件写在panelTab组件的前面 -->
    
< f:verbatim >< p ></ f:verbatim >
    
< h:outputText value = " #{example_messages['tabbed_common']} " />
    
< f:verbatim ></ p ></ f:verbatim >
    
< t:panelTab id = " tab1 "  label = " #{example_messages['tabbed_tab1']} "  
                    rendered
= " #{tabbedPaneBean.tab1Visible} " >
        
< h:selectBooleanCheckbox id = " testCheckBox "  value = " #{testCheckBox.checked} " />
        
< h:outputLabel  for = " testCheckBox "  value = " A checkbox " />
        
< f:verbatim >< br />< br /></ f:verbatim >
        
< h:inputText id = " inp1 " />< f:verbatim >< br ></ f:verbatim >
        
< h:inputText id = " inp2 "  required = " true "   />
        
< h:message  for = " inp2 "  showSummary = " false "  showDetail = " true "   />
    
</ t:panelTab >
    
< f:subview id = " tab2 "   >
        
< jsp:include page = " tab2.jsp " />
    
</ f:subview >
</ t:panelTabbedPane >
十一.js日期弹出式组件<t:inputCalendar>
< t:inputCalendar monthYearRowClass = " yearMonthHeader "  weekRowClass = " weekHeader "
                currentDayCellClass
= " currentDayCell "  value = " #{calendarBean.secondDate} "  
                renderAsPopup
= " true "  popupTodayString = " #{example_messages['popup_today_string']} "  
                popupWeekString
= " #{example_messages['popup_week_string']} "
                renderPopupButtonAsImage
= " true "   />
 十二.jscookmenu的使用。
< t:jscookMenu layout = " hbr "  theme = " ThemeOffice " >
    
<% /* Availaible jscookMenu themes: ThemeIE, ThemeMiniBlack, ThemeOffice, ThemePanel
             Availaible jscookMenu layout: hbr, hbl, hur, hul, vbr, vbl, vur, vul
             respect to Heng Yuan 
http://www.cs.ucla.edu/~heng/JSCookMenu
    
*/
%>
    
< t:navigationMenuItem id = " nav_1 "
            itemLabel
= " #{example_messages['nav_Home']} "  action = " go_home "   />
    
< t:navigationMenuItem id = " nav_2 "
            itemLabel
= " #{example_messages['nav_Examples']} " >
            
< t:navigationMenuItem id = " nav_2_1 "
                   itemLabel
= " #{example_messages['nav_Sample_1']} "  action = " go_sample1 "   />
    
</ t:navigationMenuItem >
 
</ t:jscookMenu >
十三.<t:panelNavigation2>组件:
< t:panelNavigation2 id = " nav1 "  layout = " list "  itemClass = " mypage "  
                                 activeItemClass
= " selected "  openItemClass = " selected "   >
  
< t:commandNavigation2 value = " #{example_messages['panelnav_products']} "  action = ""   >
            
< t:commandNavigation2 action = " go_panelnavigation_1 "   >
                
< f:verbatim > ›  </ f:verbatim >
                
< t:outputText value = " #{example_messages['panelnav_serach1']} "   />
            
</ t:commandNavigation2 >
            
< t:commandNavigation2 action = " go_panelnavigation_1 "   >
                
< f:verbatim > ›  </ f:verbatim >
                
< t:outputText value = " #{example_messages['panelnav_serach_acc1']} "   />
            
</ t:commandNavigation2 >
            
< t:commandNavigation2 action = " go_panelnavigation_1 "   >
                
< f:verbatim > ›  </ f:verbatim >
                
< t:outputText value = " #{example_messages['panelnav_search_adv1']} "   />
            
</ t:commandNavigation2 >
        
</ t:commandNavigation2 >
        
< t:commandNavigation2 value = " #{example_messages['panelnav_shop']} "  action = ""   />

</ t:panelNavigation2 >
也可以动态地生成navigationMenuItem:
< t:panelNavigation2 id = " nav1 "  layout = " list "  itemClass = " mypage "  activeItemClass = " selected "  openItemClass = " selected "   >
        
< t:navigationMenuItems value = " #{navigationMenu.panelNavigationItems} "   />
    
</ t:panelNavigation2 >

panelNavigationItems方法:

public  List getPanelNavigationItems()  {
        List menu 
= new ArrayList();
        
// Products
        NavigationMenuItem products = getMenuNaviagtionItem("#{example_messages['panelnav_products']}"null);
        menu.add(products);
        products.add(getMenuNaviagtionItem(
"#{example_messages['panelnav_serach']}""#{navigationMenu.getAction2}"));
        products.add(getMenuNaviagtionItem(
"#{example_messages['panelnav_serach_acc']}""#{navigationMenu.getAction2}"));
        NavigationMenuItem item 
= getMenuNaviagtionItem("#{example_messages['panelnav_search_adv']}""#{navigationMenu.getAction2}");
        item.setActive(
true);
        item.setOpen(
true);
        item.setTarget(
"_blank");
        products.add(item);
        
// Shop
        menu.add(getMenuNaviagtionItem("#{example_messages['panelnav_shop']}""#{navigationMenu.getAction2}"));
        
// Corporate Info
        NavigationMenuItem corporateInfo = getMenuNaviagtionItem("#{example_messages['panelnav_corporate']}"null);
        menu.add(corporateInfo);
        corporateInfo.add(getMenuNaviagtionItem(
"#{example_messages['panelnav_news']}""#{navigationMenu.getAction2}"));
        item 
= getMenuNaviagtionItem("#{example_messages['panelnav_investor']}""#{navigationMenu.getAction3}");
        
//item.setIcon("images/arrow-first.gif");
        item.setDisabled(true);
        corporateInfo.add(item);
        
// Contact
        menu.add(getMenuNaviagtionItem("#{example_messages['panelnav_contact']}""#{navigationMenu.getAction2}"));
        
// External Link
        item = getMenuNaviagtionItem("#{example_messages['panelnav_contact']}"null);
        item.setExternalLink(
"#{example_messages['external_link']}");
        item.setTarget(
"_blank");
        menu.add(item);
        
return menu;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值