Capítulo 13. Conociendo Revolution

El objetivo de este apartado es ver cómo son de similares la herramienta Revolution respecto a MetaCard. Desarrollamos aquí un ejemplo paralelo a lo hecho con MetaCard, así introducimos los elementos propios de Revolution y vemos que podemos aprovechar lo aprendido con aquella. El planteamiento que nos ocupa es obtener una versión en fichero del contenidos de los tutoriales de Revolution, así los podrá consultar tranquilamente tomando café o cómo desee.

Manos a la obra: desde el Help del menú de la barra de herramientas tiene acceso a Tutorials y desde esta pila puede abir el Getting Started y el Independent Study. Con el "Application Overview" (si no está visible, muéstrelo usando View|Application Overview) y asegúrese que la opción View|Revolution UI Stacks In Lists. Localize las entradas correspondientes a revtutorialsstart.rev y a revtutorialindep.rev

Figura 13-1. Los dos tutoriales a la vista desde el "Application Overview" de Revolution.

Si examina el contenido de una tarjeta observará que existe un grupo "main", que contiene dos campos de texto: "main" y "name". Estos son. respectivamente, la explicación de un paso y el título del mismo. Después existe una barra de separación entre ellos, pero que no nos aporta información y la barra de la parte inferior de la tarjeta, que tampoco aporta mucho más para nuestros propósitos. Esto se hace en dos pasos, así que vamos allá sin mirar atras:

Figura 13-2. Aspecto de la pila para volcar a fichero los tutoriales de Revolution.

  1. Vamos a aprovechar para adelantar algo nuevo: esta vez dejaremos que el usuario trabaje poco escribiendo el nombre de la pila. Para que lo pueda escoger a golpe de ratón o de teclado (si habilitamos la propiedad Can Receive Keyboard Focus se puede llegar a él con el tabulador y desplegarlo con las teclas del cursor. Cuando se decida por una pila, pulse la barra espaciadora y listo. El código hace uso de la función openStacks para actualizar los contenidos del botón, justo en el momento en que se pulsa.

    #
    #
    #
    on mouseDown
      put the openStacks into me
    end mouseDown
                            
  2. Si ya tenemos una pila escogida podemos empezar. Es necesario ver cómo acceder al contenido del botón anterior. Las pruebas cortas, como siempre, desde la "Message Box" pruebe a ejecutar:

      put the number of cards of stack (the label of btn "pila a volcar")
                            

    ¿A que le gusta? Pues nada, recorreremos la pila, acumulando lo contenido en los campos indicados de cada tarjeta y, al final, le preguntaremos al usuario dónde lo quiere. Allí lo dejaremos y terminamos:

    
#
    # Botón Avant (en TXT)
    #
    local contingutTutorial
    
      on mouseUp
        set cursor to busy
     
       put empty into contingutTutorial
      
      repeat with i = 1 to the number of cards of stack (the label of btn "pila a volcar")
        put i & ".-" &&\
              the fld "name" of group "main" of card i of\
                    stack (the label of btn "pila a volcar") & return &\
              the fld "main" of group "main" of card i of\
                    stack (the label of btn "pila a volcar") & return &\
              return & return  after contingutTutorial
      end repeat
    
      ask file "Tria un fitxer per guardar el tutorial"
      if it is not empty then put contingutTutorial into URL("file:" & it)
    end mouseUp
                            

Pero si nos ponemos, nos ponemos: vamos a retocar la salida para que tenga formato HTML. Bueno, la verdad es que no es muy conforme con las normas de accesibildad, pero eso exige más código y no es el momento. Aprovechamos para poner nuestro nombre (los créditos), la fecha y un poco de maquillaje. Los cambios son mínimos: un poco de htmlText por aquí, alguna etiqueta más de HTML y ya está. Mi propuesta es esta:

Figura 13-3. Aspecto final de la pila para volcar a fichero los tutoriales de Revolution.


#
# Botón Avant (en HTML)
#
local contingutTutorial

  on mouseUp
    set cursor to busy
#  put "put the number of cards of stack" && (the label of btn "pila a volcar")
#  put the number of cards of stack (the label of btn "pila a volcar")
  
  put "<!DOCTYPE HTML PUBLIC " & quote & "-//IETF//DTD HTML//EN" & quote &\
         ">" & return &\
        "<html>" & return &\
        "  <head>" & return &\
        "    <title>" & the label of stack (the label of btn "pila a volcar") & "</title>" & return &\
        "  </head>" & return &\
        "  <body>" & return &\
        "    <h1>" & the label of stack (the label of btn "pila a volcar") & "</h1>" & return \
         into contingutTutorial
  
  repeat with i = 1 to the number of cards of stack (the label of btn "pila a volcar")
    put "<div>" &return &\
          "<h2>" & i & ".-" &&\
          the fld "name" of group "main" of card i of \
          stack (the label of btn "pila a volcar") & "</h2> " &\
          return &\
          the htmlText of fld "main" of group "main" of\
          card i of stack (the label of btn "pila a volcar") &\
          return & "</div>" &\
          return & return  after contingutTutorial
  end repeat

 put "<hr>"  & return & "<p>" &  the long date & "; " & the long time & "</p>" &\
        return &\
      "<address><a href=" & quote & "mailto:magusti@disca.upv.es" & quote &\
      ">M. Agustí</a></address>" &\
       return &\
        "  </body>" & return &\
        "</html>" & return  after contingutTutorial
          
  ask file "Tria un fitxer per guardar el tutorial"
  if it is not empty then put contingutTutorial into URL("file:" & it)
end mouseUp
                         

Conclusiones

Revolution es similar a MetaCard: lo aprendido para el segundo, siempre ese de aplicación para el primero.