JSF - Componente HtmlSelectManyCheck do Tomahawk

Bom dia Pessoal,

Estou tentando utilizar o componente HtmlSelectManyCheck do Tomahawk, pois ele possuí uma propriedade que não há no componente da especificação, a propriedade LayoutWidth.
Essa propriedade pode ser utilizada para gerar as checkbox em colunas, porem não estou conseguindo fazer isso programaticamente.

Quando eu seto no JSP essa propriedade, funciona corretamente, mas se eu seto ela em um backingbean parece que a propriedade é ignorada.

Alguem pode me ajudar?!

Segue em anexo no meu código.

JSP

[code]
<%@ taglib uri=“http://myfaces.apache.org/tomahawk” prefix=“t”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>

[/code] Backingbean [code] public class Bb { private HtmlPanelGrid gridao;
public HtmlPanelGrid getGridao() {
	FacesContext faces = FacesContext.getCurrentInstance();
	Application app = faces.getApplication();

	gridao = (HtmlPanelGrid)app.createComponent(HtmlPanelGrid.COMPONENT_TYPE);

	HtmlSelectManyCheckbox check = (HtmlSelectManyCheckbox)app.createComponent(HtmlSelectManyCheckbox.COMPONENT_TYPE);
	UISelectItem a = (UISelectItem) app.createComponent(UISelectItem.COMPONENT_TYPE);
	a.setId("a");
	a.setItemValue("a");
	a.setItemLabel("aaaa");
	UISelectItem b = (UISelectItem) app.createComponent(UISelectItem.COMPONENT_TYPE);
	b.setId("b");
	b.setItemValue("b");
	b.setItemLabel("bbbb");
	UISelectItem c = (UISelectItem) app.createComponent(UISelectItem.COMPONENT_TYPE);
	c.setId("c");
	c.setItemValue("c");
	c.setItemLabel("cccc");
	UISelectItem d = (UISelectItem) app.createComponent(UISelectItem.COMPONENT_TYPE);
	d.setId("d");
	d.setItemValue("d");
	d.setItemLabel("ddddd");

	check.setLayoutWidth("2");
	check.setLayout("pageDirection");


	check.getRendererType();

	check.getChildren().add(a);
	check.getChildren().add(b);
	check.getChildren().add(c);
	check.getChildren().add(d);

	gridao.getChildren().add(check);

	faces.renderResponse();

	return gridao;
}

public void setGridao(HtmlPanelGrid grid) {
	this.gridao = grid;
}

}
[/code]

Valeu pessoal,
Ferry

Me diga uma coisa, pelo Backing Bean você não está criando um HtmlSelectManyCheck da especificação JSF tradicional e não a do TOMAHAWK?

[]'s

Não, é o do tomahawk mesmo pois eu só dei import nele e tambem se fosse o da especificação ele não aceitaria o comando
check.setLayoutWidth(“2”);

falou

Ninguem aqui já utilizou essa propriedade do HtmlSelctMany do Tomahawk?

Já, mas não deu problema

Estou com o seguinte problema, preciso inserir programaticamente uma lista de checks sendo estes HtmlSelectManyCheckbox ou HtmlSelectOneRadio dependendo do parametro que receber, preciso popular tais componentes com itens ou checks ou radios… :roll:

Se alguem puder me ajudar pf poste…

uso a Mojarra (iplementacao da SUN pra JSF 1.2) e o RichFaces

OBS: no meu caso não posso vincular tal lista de opções a um BackBean, entao preciso gerar e interpretar os valores dinamicamente.

estou tentando deste forma:

ArrayList listaOpcoes = (ArrayList)parametros.getParametro(1);

	HtmlSelectManyCheckbox ckOpcoes = (HtmlSelectManyCheckbox)apl.
		createComponent(HtmlSelectManyCheckbox.COMPONENT_TYPE);
	
	String strOpcao = null;
	int tamLista = listaOpcoes.size();
	
	for(int i = 0; i < tamLista; i++){
		
		strOpcao = listaOpcoes.get(i);
		
		UISelectItem item = (UISelectItem) apl.createComponent(
			UISelectItem.COMPONENT_TYPE);
		
		item.setValue(String.valueOf(i));
		item.setItemLabel(strOpcao);
		
		ckOpcoes.getChildren().add(item);
	}
	
	painel.getChildren().add(ckOpcoes);

estou recebendo a seguinte exceção:

javax.servlet.ServletException: Argument Error: An option for component ’ was not an instance of javax.faces.model.SelectItem. Type found: java.lang.String.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)

root cause

java.lang.IllegalArgumentException: Argument Error: An option for component ’ was not an instance of javax.faces.model.SelectItem. Type found: java.lang.String.
com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:289)
com.sun.faces.renderkit.html_basic.SelectManyCheckboxListRenderer.encodeEnd(SelectManyCheckboxListRenderer.java:114)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:242)
com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:234)
com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:271)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:202)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)

Estou com o mesmo problema…