Activity tutorial

From OLPC
Revision as of 01:12, 14 February 2009 by Ivanchhh (talk | contribs)
Jump to navigation Jump to search
  english | 日本語 | 한국어 | português | español HowTo [ID# 195519]  +/-  


<< Tutorials

El tutorial explica paso a paso como crear el Paquete de la actividad Hola Mundo.

Se asume que ya ha instalado el entorno de desarrollo Azúcar.

Crear la estructura de directorios del paquete:

mkdir HolaMundo.activity
mkdir HolaMundo.activity/activity

Escribir el archivo activity.info, para describir el paquete en el sub-directorio de la actividad (por ejemplo, HolaMundo.activity/activity/activity.info). Las especificaciones de los Paquetes de Actividad explican en detalle el significado de cada campo.

 File: activity.info
 [Activity]
 name = HolaMundo
 service_name = com.ywwg.HelloWorldActivity
 class = ActividadHolaMundo.ActividadHolaMundo
 icon = actividad-holamundo
 activity_version = 1
 show_launcher = yes

Diseñe un icono para su actividad, de acuerdo con el formato del icono y colóquelo en el sub-directorio "activity". El nombre del archivo debe coincidir con el nombre especificado en el archivo .info (por ejemplo, actividad-holamundo.svg)

 File: actividad-holamundo.svg
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
        <!ENTITY fill_color "#FFFFFF">
        <!ENTITY stroke_color "#FF0000">
]>
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50">
<rect x="1" y="1" width="48" height="48" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:2"/>
</svg>

Escribir el script setup.py en el directorio de nivel superior (por ejemplo, HolaMundo.activity/setup.py), que en la mayoría de los casos se verá asi:

 File: setup.py
 #!/usr/bin/python
 from sugar.activity import bundlebuilder
 bundlebuilder.start()

Codifique su actividad. El nombre que ha especificado en el archivo .info como "class" es el nombre de la clase que ejecuta el código. Para el archivo anterior activity.info, especificamos un modulo de alto nivel ActividadHolaMundo.ActividadHolaMundo (por favor, tenga en cuenta que el uso de mayúsculas en los nombres de módulos en Python es un estilo pobre, siéntase libre de utilizar el nombre de una actividad con mas estilo de nombres estándar).

 File: ActividadHolaMundo.py
from sugar.activity import activity
import logging

import sys, os
import gtk

class ActividadHolaMundo(activity.Activity):
    def hola(self, widget, data=None):
        logging.info('Hola Mundo')

    def __init__(self, handle):
        print "ejecutando actividad init", handle
        activity.Activity.__init__(self, handle)
        print "ejecutando actividad"

        self.set_title('Hola Mundo')

        # Crea la caja de Herramientas.Que contiene la Barra de Herramientas de la 
        # Actividad, que es la barra que aparece en cada ventana del Azucar y contiene
        # funcionalidades esenciales, como los botones 'Compartir con:' y 'Parar'.
        toolbox = activity.ActivityToolbox(self)
        self.set_toolbox(toolbox)
        toolbox.show()

        # Crea un nuevo boton con la etiqueta "Hola Mundo".
        self.button = gtk.Button("Hola Mundo")
    
        # Cuando el boton recibe la seNal de "clicked", llamara a la funcion hola()
        # pasando a "None" como argumento. La funcion hola() es definida en
        # lineas mas arriba.
        self.button.connect("clicked", self.hola, None)
    
        # Ajuste el boton para ser nuestro lienzo. El lienzo es la seccion principal 
        # de toda Ventana Azucar. Se llena toda el area debajo 
        # de la caja de herramientas.
        self.set_canvas(self.button)
    
        # El paso final es mostrar esta nueva creacion de widgets.
        self.button.show()
    
        print "AL FINAL DE LA CLASE"

Crear un MANIFEST (por ejemplo, HolaMundo.activity/MANIFEST), que contiene la lista de los archivos a incluir en el paquete. (Nota: Asegúrese de no dejar líneas en blanco al final del archivo.)

 File:
 ActividadHolaMundo.py

La estructura del directorio ahora debe verse como:

HolaMundo.activity/
HolaMundo.activity/setup.py
HolaMundo.activity/activity
HolaMundo.activity/activity/activity.info
HolaMundo.activity/activity/actividad-holamundo.svg
HolaMundo.activity/ActividadHolaMundo.py
HolaMundo.activity/MANIFEST

Instale su paquete para el desarrollo

./setup.py dev

(Esto crea un enlace simbólico en ~/Activities).

Si ahora ejecuta el Azúcar, el icono de la actividad debe ser visible en el marco. (Hay que reiniciar el Azúcar para ver el cambio. Pulsa Ctrl-Alt-borrar.)