dynamic components in javabean

UI Components for JSF
Post Reply
alecindro
Posts: 4
Joined: 17 Sep 2009, 14:17

17 Sep 2009, 15:15

I need create dynamic components in javabean, but it dont rendering in web page.
My code:

MyPage:

Code: Select all


<h:panelGroup  id="cont" binding="#{desktop.dynamicGroup}"></h:panelGroup>
My bean:

Code: Select all

PieChart pieChart = new PieChart();
pieChart.setValueExpression("value", createValueExpression("#{desktop.rowList}", List.class));
pieChart.setVar("item");
pieChart.setValueExpression("categoryField",createValueExpression("#{item.field}", String.class));
pieChart.setValueExpression("dataField", createValueExpression("#{item.data}", String.class));
pieChart.setId("pie");
dynamicGroup.getChildren().add(pieChart);

the code of page after load:

Code: Select all


<span id="cont"><script type="text/javascript">
YAHOO.widget.Chart.SWFURL = "/ekpHtml/primefaces_resources/0.9.2/yui/charts/assets/charts.swf"

</script><script type="text/javascript">
YAHOO.util.Event.onContentReady("table_0", function() {
var table_0_widget_data = [{_data[0]:'Animal',_data[1]:1398889.0},
{_data[0]:'Arvore',_data[1]:673269.0},
{_data[0]:'Barranco',_data[1]:872687.0},
{_data[0]:'Capotamento',_data[1]:1020923.0},
{_data[0]:'Casa',_data[1]:35851.0},
{_data[0]:'Colisao Frontal',_data[1]:2718484.0},
{_data[0]:'Colisao Traseira',_data[1]:1.1880488E7},
{_data[0]:'Defensa',_data[1]:882341.0},
{_data[0]:'Engavetamento',_data[1]:1101288.0},
{_data[0]:'Longitudinal Mesmo Sentido',_data[1]:6374583.0},
{_data[0]:'Longitudinal Sentido Oposto',_data[1]:3997327.0},
{_data[0]:'Muro',_data[1]:194092.0},
{_data[0]:'Outra',_data[1]:599780.0},
{_data[0]:'Outro',_data[1]:1.6748892E7},
{_data[0]:'Pedestre',_data[1]:2176375.0},
{_data[0]:'Ponte',_data[1]:164830.0},
{_data[0]:'Poste',_data[1]:685155.0},
{_data[0]:'Seguida de Capotamento',_data[1]:3333125.0},
{_data[0]:'Seguida de Choque',_data[1]:4207912.0},
{_data[0]:'Seguida de Tombamento',_data[1]:1690256.0},
{_data[0]:'Simples',_data[1]:2624983.0},
{_data[0]:'Tombamento',_data[1]:2226781.0},
{_data[0]:'Transversal',_data[1]:920.0},
{_data[0]:'Veiculo Parado',_data[1]:968943.0}];
var table_0_widget_dataSource = new YAHOO.util.DataSource(table_0_widget_data);
table_0_widget_dataSource.responseType=YAHOO.util.DataSource.TYPE_JSARRAY;
table_0_widget_dataSource.responseSchema = {fields:["_data[0]","_data[1]"]};
table_0_widget = new YAHOO.widget.PieChart("table_0", table_0_widget_dataSource,{categoryField:"_data[0]",dataField:"_data[1]",expressInstall:"/ekpHtml/primefaces_resources/0.9.2/yui/assets/expressinstall.swf"});
});

</script>
</span>
This is happenning with all tested primefaces components.

I´m using facelets;

Where is the mistake?

Thanks,

Alecindro

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

18 Sep 2009, 12:31

Hi Alecindro, can you figure out what component is "table_0" in your page?

alecindro
Posts: 4
Joined: 17 Sep 2009, 14:17

18 Sep 2009, 14:59

I´m sorry. table_0 is id for pieChart

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

18 Sep 2009, 19:39

I meant can you see an html element(probably div) with client id "table_0".

alecindro
Posts: 4
Joined: 17 Sep 2009, 14:17

22 Sep 2009, 02:43

hi cagatay.civici

I recover the tests.

this is my model bean

Code: Select all

public class Usuario {
	private String nome;
	private BigDecimal value;
//get e setters
}
my repository:

Code: Select all

ArrayList<Usuario> usuarios = new ArrayList<Usuario>();
usuarios.add(new Usuario("Rafael Ponte", new BigDecimal(100.00)));
usuarios.add("Handerson Frota", new BigDecimal(120.00)));
usuarios.add("Christiano Milfont", new BigDecimal(90.00)));
usuarios.add(new Usuario("Tarso Bessa", new BigDecimal(110.00)));
usuarios.add(new Usuario("Rafael Carneiro", new BigDecimal(105.00)));
usuarios.add(new Usuario("Paulo Jr", new BigDecimal(50.00)));
my bean modal.java

Code: Select all

private HtmlPanelGroup panelGroup;
private List<Usuario> usuarioList;
//getters e setters

public String init() {		
		usuarioList = UsuarioRepositorio.getListUsuario();		
		PieChart pieChart = new PieChart();
		pieChart.setId("pieId");
		pieChart.setVar("item");
		pieChart.setValueExpression("value", createValueExpression("#{modal.usuarioList}", List.class));
		pieChart.setValueExpression("dataField", createValueExpression("#{item.value}", BigDecimal.class));
		pieChart.setValueExpression("categoryField", createValueExpression("#{item.nome}", String.class));
		panelGroup.getChildren().add(pieChart);
return null;
my modal.xhtml

Code: Select all

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:p="http://primefaces.prime.com.tr/ui">
<head>
<p:resources />
</head>
<body>
<h:form>
	<a4j:commandButton action="#{modal.init}" value="Iniciar"
		reRender="panelgroup" />
</h:form>

<h:panelGroup binding="#{modal.panelGroup}" id="panelgroup"></h:panelGroup>
</body>
</html>
result

Code: Select all

<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title></title><link class="component" href="/templateJSF/a4j/s/3_3_0.GAorg/richfaces/renderkit/html/css/basic_both.xcss/DATB/eAF7sqpgb-jyGdIAFrMEaw__.jsf" rel="stylesheet" type="text/css" /><link class="component" href="/templateJSF/a4j/s/3_3_0.GAorg/richfaces/renderkit/html/css/extended_both.xcss/DATB/eAF7sqpgb-jyGdIAFrMEaw__.jsf" media="rich-extended-skinning" rel="stylesheet" type="text/css" /></head><body><span id="panelgroup"><script type="text/javascript">//<![CDATA[
YAHOO.widget.Chart.SWFURL = "/templateJSF/primefaces_resources/0.9.2/yui/charts/assets/charts.swf"
//]]>
</script><script type="text/javascript">//<![CDATA[
YAHOO.util.Event.onContentReady("pieId", function() {
var pieId_widget_data = [{nome:'Rafael Ponte',value:100},
{nome:'Handerson Frota',value:120},
{nome:'Christiano Milfont',value:90},
{nome:'Tarso Bessa',value:110},
{nome:'Rafael Carneiro',value:105},
{nome:'Paulo Jr',value:50}];
var pieId_widget_dataSource = new YAHOO.util.DataSource(pieId_widget_data);
pieId_widget_dataSource.responseType=YAHOO.util.DataSource.TYPE_JSARRAY;
pieId_widget_dataSource.responseSchema = {fields:["nome","value"]};
pieId_widget = new YAHOO.widget.PieChart("pieId", pieId_widget_dataSource,{categoryField:"nome",dataField:"value",expressInstall:"/templateJSF/primefaces_resources/0.9.2/yui/assets/expressinstall.swf"});
});
//]]>
</script><div id="pieId"></div></span><meta name="Ajax-Update-Ids" content="panelgroup" /><span id="ajax-view-state"><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id1" /></span><meta id="Ajax-Response" name="Ajax-Response" content="true" /></body></html>
and error javascript generated

Code: Select all

YAHOO.util.DataSource is not a constructor
anonymous()10 (linha 9)
anonymous(div#pieId, Object id=pieId checkReady=true)utilities.js (linha 14)
anonymous()utilities.js (linha 14)
anonymous()utilities.js (linha 13)
[Break on this error] window.setTimeout(function(){for(var E=0;\n

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

22 Sep 2009, 17:42

Maybe a4j button is causing the problem? Can you try with p:commandButton?

alecindro
Posts: 4
Joined: 17 Sep 2009, 14:17

23 Sep 2009, 02:45

Hi. The solution:

in page.xhtml
<head>
<p:resources exclude="/jquery/jquery.js"/>
</head>

in web.xml configure richfaces

<context-param>
<param-name>org.richfaces.LoadScriptStrategy</param-name>
<param-value>DEFAULT</param-value>
</context-param>

thanks

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 16 guests