Boa tarde
Galera, preciso saber se tenho como criar um RadioButton dinamicamente hoje crio os meus componentes assim:
FacesContext fctx = FacesContext.getCurrentInstance();
Application app = fctx.getApplication();
RadioButton avaliacao = (RadioButton) app.createComponent(RadioButton.COMPONENT_TYPE);
Mas o que nao sei é qual componente uso para fazer o ITEM do radio, tentei SELECTITEM mas nao deu certo pede um UIComponent que o selectItem nao é.
Alguem sabe como consigo fazer criar esses itens do radio? tendo um valor e uma descrição.
Obrigado
Eu fiz isso em outra situação mas tem como fazer
<f:repeat var="hor" value="#{rotaController.rota.domingo.listaHorarios}" >
<div class="control-group">
<h:outputLabel styleClass="control-label" value="#{hor.label}" />
<div class="controls">
<p:calendar timeOnly="true" pattern="HH:mm" value="#{hor.horario}" required="true" requiredMessage="Campo #{hor.label} deve ser preenchido." />
</div>
</div>
</f:repeat>
eu usei essa solução teste ai para ver se fecha para voce tambem
Infelizmente nao é assim nao que eu preciso.
Eu faço tudo no meu MB e nao na minha view, ou seja, eu preciso criar tudo isso diretamente na minha classe
Alguem tem algum exemplo que eu possa criar esse ITEM?
Obrigado!
Descobri como faço o item, usando: UISelectItem
Estou tentando usar o RadioButton do Primefaces e nao o HTMLSelectOneRadio.
Meu codigo no Bean está assim:
public UIComponent CriaOneRadio(String nome, Integer avaliado, Boolean readOnly) {
FacesContext fctx = FacesContext.getCurrentInstance();
Application app = fctx.getApplication();
RadioButton avaliacao = (RadioButton) app.createComponent(RadioButton.COMPONENT_TYPE);
UISelectItem itens = (UISelectItem) app.createComponent(UISelectItem.COMPONENT_TYPE);
itens.setItemLabel("ÓTIMO - O Atendimento superou minhas expectativas");
itens.setItemValue(10);
avaliacao.getChildren().add(itens);
itens = new UISelectItem();
itens.setItemLabel("BOM - O problema foi resolvido e minhas expectativas foram atendidas");
itens.setItemValue(8);
avaliacao.getChildren().add(itens);
itens = new UISelectItem();
itens.setItemLabel("REGULAR - O problema foi resolvido, mas minhas expectativas não foram atendidas");
itens.setItemValue(6);
avaliacao.getChildren().add(itens);
itens = new UISelectItem();
itens.setItemLabel("RUIM - Meu problema não foi completamente resolvido. Minhas expectativas não foram atendidas em algumas ocasiões");
itens.setItemValue(4);
avaliacao.getChildren().add(itens);
itens = new UISelectItem();
itens.setItemLabel("PÉSSIMO - Meu problema não foi resolvido e as interações foram caracterizadas por uma sucessão de erros");
itens.setItemValue(2);
avaliacao.getChildren().add(itens);
avaliacao.setId(nome);
//avaliacao.setItemIndex(avaliado);
avaliacao.setDisabled(true);
return avaliacao;
}
porém gera esse erro:
[#|2012-07-27T10:42:27.196-0300|WARNING|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=108;_ThreadName=Thread-2;|StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
at javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:561)
at org.primefaces.component.radiobutton.RadioButtonRenderer.findSelectOneRadio(RadioButtonRenderer.java:123)
at org.primefaces.component.radiobutton.RadioButtonRenderer.encodeEnd(RadioButtonRenderer.java:35)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:55)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
at org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:51)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
|#]