2010-08-21 25 views
0

我那么努力,但我只是无法插在我的网页简单RichFaces的AjaxStatusTag。我从Java代码生成组件,而不是xhtml。这是我做的:JSF AjaxStatusTag如何添加程序

AjaxStatusTag deleteStatus = new AjaxStatusTag(); 
    FacetTag start = new FacetTag(); 
    start.setName("start"); 
    HtmlGraphicImage pic = new HtmlGraphicImage(); 
    pic.setUrl("/resources/images/ajaxLoaderLong.gif"); 
    pic.setAlt("ajaxLoaderLong.gif"); 
    start.setValue("start", pic); //how to add pic to FacetTag? 
    start.setParent(deleteStatus); 

我甚至不能确定有关FacetTag要么...其他情况下,例如有一个简单的DIV的链接很容易得到div的孩子,然后添加链接到集合,但AjaxStatusTag和FacetTag是不同的,我没有任何想法如何解决这个问题。

任何帮助表示赞赏!

欢呼声, 鲍拉

回答

0

好了,我解决了这个问题。下面是我所做的:

private static void renderAjaxStatus(UIComponent holderRegion, HtmlAjaxCommandLink ajaxLink, String statusID) { 

     UIComponent status = FacesContext.getCurrentInstance().getApplication().createComponent(HtmlAjaxStatus.COMPONENT_TYPE); 
     status.setId(STATUS_ID + statusID); 
     HtmlPanelGroup panelGroup = (HtmlPanelGroup) FacesContext.getCurrentInstance().getApplication().createComponent(HtmlPanelGroup.COMPONENT_TYPE); 

     Div div = new Div(); 
     div.setStyleClass(STATUS_COVER); 

     HtmlGraphicImage pic = new HtmlGraphicImage(); 
     pic.setUrl(RESOURCES_IMAGES_AJAX_LOADER_GIF); 
     pic.setAlt(STATUS_ID); 
     pic.setStyleClass(STATUS_PIC_STYLECLASS); 

     panelGroup.setStyleClass(STATUS_PANEL_STYLECLASS); 
     panelGroup.getChildren().add(div); 
     panelGroup.getChildren().add(pic); 

     deleteStatus.getFacets().put("start", panelGroup); 
     holderRegion.getChildren().add(status); 

     ajaxLink.setStatus(STATUS_ID + statusID); 
} 

欢呼声, 鲍拉