[Ginga-argentina] Consulta NLC/LUA/HTML (Interactuando con Web Service)

Nicolas Ignacio Roldan niko_cbes at hotmail.com
Thu Apr 26 23:28:04 CEST 2012


Buenas a todos!
( esta frio no? )

Bueno, es esta oportunidad he comenzado a probar como funciona HTML con Ginga
Mi objetivo es lograr interectuar a traves de Ginga con un web service.

La aplicacion funcionaria asi:
Por medio de los botones '1'/'2'/'3' del control remoto votaria algunas de las 3 opciones y reflejaria la cantidad de votos de cada opcion a traves de una pagina html.
Si presiono alguna de las 3 opciones (1 ò 2 ò 3), paso ese voto por medio del 'event.post'  al NCL ( esto hace que se incremente en 1 el valor que esta en una tabla del webService). 

Algo asi:

if     evt.key == '1' then            
     event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar/?opcion=A'})
     event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar/?opcion=A'})
elseif     evt.key == '2' then
     event.post('out',{class = "ncl", type = "attribution", name = 
'srcNuevo', action='start', 
value='http://X.X.X.X/Ginga/Votar/?opcion=B'})

     event.post('out',{class = "ncl", type = "attribution", 
name = 'srcNuevo', action='stop', 
value='http://X.X.X.X/Ginga/Votar/?opcion=B'})
elseif     evt.key == '2' then
     event.post('out',{class = "ncl", type = "attribution", name = 
'srcNuevo', action='start', 
value='http://X.X.X.X/Ginga/Votar/?opcion=C'})

     event.post('out',{class = "ncl", type = "attribution", 
name = 'srcNuevo', action='stop', 
value='http://X.X.X.X/Ginga/Votar/?opcion=C'})
end

Hasta ahi funciona perfecto.Si presiono solo una vez cada opcion se incrementa en 1 el voto del html. Mi problema esta en que si quiero volver a votar la misma opcion ya no me lo toma. 

Lo que hice.
Despues de votar una opcion; volvia a llamar al "event.post" pasandole por parametros la direccion original del webService para que actualizara los valores obtenidos y poder seguir votando... pero tampoco funciono.... ó lo mas probable es que no lo sepa hacer.
Hacia:
event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar'})
event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar'})



Este es el codigo:

-------------------------------------------main.ncl--------------------------------------------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>
<ncl id="main" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">

    <head>
        <regionBase>
             <region id="rgWebService" width="100%" height="30%" top="0%"  zIndex="1"/>
             <region id="rgLua" width="0%" height="0%"  zIndex="1" />
             <region id="idBotonVote" width="20%" height="20%" bottom="10%" left="10%" zIndex="1"/>            
        </regionBase>
        
        <descriptorBase>
            <descriptor id="descWebService" region="rgWebService" />
            <descriptor id="descLua" region="rgLua" focusIndex="appFocusLua"/>
            <descriptor id="descBotonVote" region="idBotonVote"/>
        </descriptorBase>

        <connectorBase>
            <importBase documentURI="metodos.ncl" alias="metodo"/>
        </connectorBase>  
    </head>


    <body>                
     
         <port id="pVote" component="imgBotonVote"/>


        <media id="mediaWebService"  type="text/html" src="http://X.X.X.X/Ginga/Votar"  descriptor="descWebService">
            <property name="src"/>    
        </media>

        <media id="mediaLua" src="luaHtml.lua"  descriptor="descLua" >
            <property name="bounds"/>
            <property name="srcNuevo"/>
        </media>
        
        <media id="imgBotonVote" src="Imagen/Botones/voto.png" descriptor="descBotonVote"/>
      
        <media id="focoLua" type="application/x-ginga-settings">
            <property name="service.currentKeyMaster" value="appFocusLua"/>
        </media>
        
        

        <link xconnector="metodo#onBeginEndMenu">
            <bind role="onSelection" component="imgBotonVote">
                <bindParam name="oSetTecla" value="ENTER"/>
            </bind>
            <bind role="abort" component="imgBotonVote"/>
            
            <bind role="set" component="mediaLua" interface="bounds">
                <bindParam name="oValor" value="0%,30%,100%,50%"/>
            </bind>
            <bind role="start" component="mediaLua"/>
            <bind role="start" component="focoLua" />
                
            <bind role="start" component="mediaWebService"/>    
        </link>
      
             
        <link xconnector="metodo#onEndAttributionSet">
            <bind component="mediaLua" interface="srcNuevo" role="onEndAttribution"/>
            <bind component="mediaLua" interface="srcNuevo" role="getValue"/>
                <linkParam name="valor" value="$getValue"/>
            <bind role="set" component="mediaWebService" interface="src"/>
        </link>
            
           
    </body>
</ncl>
-------------------------------------------------------------------------------------------------------------------------------------


--------------------- metodos.ncl------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Generated by NCL Eclipse -->
<ncl id="metodos" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
    <head>
        <connectorBase>

                <causalConnector id="onBeginEndMenu">
                    <connectorParam name="oSetTecla"/>
                    <connectorParam name="oValor"/>
                    <simpleCondition role="onSelection" key="$oSetTecla"/>
                    <compoundAction operator="seq">
                        <simpleAction role="start" qualifier="seq"  max="unbounded"/>
                        <simpleAction role="abort" qualifier="seq"  max="unbounded"/>
                        <simpleAction role="set" qualifier="seq" max="unbounded" value="$oValor"/>
                    </compoundAction>
                </causalConnector>

                
           <causalConnector id="onEndAttributionSet">
                <connectorParam name="valor" />
                <simpleCondition role="onEndAttribution"/>
                <simpleAction role="set" value="$valor" />
            </causalConnector>
            
          
        </connectorBase>

    </head>

    <body>

    </body>
</ncl>

--------------------------------------------------------------------------------------------------------------------------------------




---------------------------------luaHtml.lua-----------------------------------------------------------------------------------------


function manejadorEventos(evt)    
        
            
    if evt.class=='key' and evt.type=='press' then 
 
        
      if     evt.key == '1' then
             
           event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar/?opcion=A'})
           event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar/?opcion=A'})
                       
      elseif     evt.key == '2' then    
                
            event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar/?opcion=B'})
            event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar/?opcion=B'})

      elseif    evt.key == '3' then
               
         event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar/?opcion=C'})
         event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar/?opcion=C'})       
       end    
       refrescarHTML()
 end  
        
end



function refrescarHTML()
    
    event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='start', value='http://X.X.X.X/Ginga/Votar'})
    event.post('out',{class = "ncl", type = "attribution", name = 'srcNuevo', action='stop', value='http://X.X.X.X/Ginga/Votar'})
    
end


event.register(manejadorEventos)

--------------------------------------------------------------------------------------------------------------------------------------





Esa era una opcion que intente y no paso nada. 


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
La otra opcion  que intente es por medio de NCL, modificando   <causalConnector id="onEndAttributionSet"> ( en el archivo  metodos.ncl) y agregandole un   <simpleAction role="start" />, para llamar de nuevo al "mediaWebService"cuando invoco al <link xconnector="metodo#onEndAttributionSet">( en el archivo main.ncl)... pero exploto con esa opcion... me salia algo como :
" Memory leak by 136 bytes

List of blocks: 0x93d01e0:25 @ cookies.c:179, 0x93d01a8:13 @ cookies.c:129, 0x93cec88:2 @ http.c:79, 0x93d0170:13 @ cookies.c:96, 0x93bb6d8:25 @ cookies.c:95, 0x93d0138:18 @ cookies.c:94, 0x93d00e8:40 @ cookies.c:91

Forcing core dump

"

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////




Bueno, nose que hacer ya. 
Si a alguien le funciono o intento algo parecido, me daria una gran mano
Saludos a todos!
nico

 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.ourproject.org/pipermail/ginga-argentina/attachments/20120426/d4d79873/attachment-0001.htm 


More information about the Ginga-argentina mailing list