2010-08-21 3 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); 
} 

веселит, Балаш

Смежные вопросы