un claro ejemplo de cómo usar Google UI Builder y el script de aplicaciones

He buscado en todas partes y no puedo encontrar un ejemplo claro de cómo usar el generador de UI de Googles y el script de aplicaciones. No tengo ni idea de lo que me estoy perdiendo. Creo que esto debería ser simple: v / SÍ, he leído todos los documentos de Google, he visto videos, etc., varias veces, no hay una combinación de GUIB(Constructor de UI de Google) y una función de controlador de devolución de llamada, que puedo encontrar.
EDITAR: hay ejemplos para SpreadSheets - no GSites

Lo que necesito hacer:
Me gustaría insertar un cuadro de texto y un botón para recopilar una frase de búsqueda de un usuario, en una página del sitio de Google. He construido una IU muy simple con un único panel de flujo, cuadro de texto y botón, pero solo puedo obtener "Undefined" devuelto desde Logger.log () sin importar lo que haga(ver código abajo).

Un poco de una perorata:
He tenido mucho cuidado de nombrar y llamar por los nombres correctos. He intentado usar un panel de formulario PERO en GUIB, ¡¿solo puedes poner UN widget en él ?! ... Y un botón de envío solo entrará en un panel de formulario. ¿Eh, no puedo poner mi cuadro de texto también?(Entonces, ¿por qué molestarse con el formpanel? ¡No lo entiendo! ... sí, sé que se llama automáticamente a doPost () al enviar). Quiero que los widgets permanezcan activos y no desaparezcan después de un uso, así que tal vez el botón formpanel / submit no funcione de todos modos, ¿o no es la forma correcta de hacerlo?

Hasta los asuntos:
En cualquier caso, lo que he intentado es colocar el botón normal y el cuadro de texto en un panel de flujo con el siguiente código ...
EDITAR: He eliminado mi contenido original aquí y he vuelto a publicar esta sección ...

// Google Sites and UIBuilder (GUIB) - kgingeri (Karl)
// - this script is embedded in a GSite page via: Insert -> Apps Script Gadget.
//
// Withing GUIB I have defined:
// - a FlowPanel named 'pnlMain'
// - inside that a textBox named 'tbxQuery' and a button called 'btnSearch'
// - for btnSearch, I have defined (in the Events subsection) a callback function
//   btnSearchHandler (see it below doGet() here.  I expanded the [+] beside that
//   and entered 'tbxQuery'    
//
// the GUIB compnent tree looks like this...
//
//  [-] testGui
//    [-] pnlMain
//          btnSearch
//          tbxQuery
//
// btnSearch Event section looks something like this...
//
// Events
//  On Mouse Clicks
//  [X][btnSearchHandler][-]
//  [tbxQuery         ]<--'
//  [Add Server]
//  ...
//
// So... 
// 1) when the page is opened, the doGet() function is called, showing the defined UI 
// 2) when text is entered into the textBox and the button is clicked
// 3) the data from tbxQuery is **SUPPOSED TO BE** returned as e.parameter.tbxQuery
//    in the function 'btnSearchHandler(e)' **BUT IS NOT**  :v(
//
// (this functionality appears to work in a spreadsheet?! - weird?!)

//
//    [ predefined function --- Google calls on page open ]
//
// ...this works 'as advertised' ;v)
//
function doGet(e) {
  var app = UiApp.createApplication();
  app.add(app.loadComponent("testGui"));  // ...the title that shows in G/UIBuilder
  return app;
}

//
//    [ callBack for when a button is clicked ]
//
// ...I always get 'Resp: [Undefined]' returned in the View -> Logs menu?!
// ...I also tried to put 'pnlMain' in the Event [+] param, no go :v(
//
function btnSearchHandler(e) {
  var resp = e.parameter.tbxQuery  // ...the data I want in the textBox widget
  Logger.log('Resp: [' + e.parameter.tbxQuery + ']');
  // ...more code to come, once this works!
}

También he intentado agregar código para configurar manualmente los manejadores, etc. en doGet (), y no usar la configuración del Evento GUIB, pero tampoco fue en vano.

¿Conclusión?
¿Lo que da? ¿Tengo que codificar a mano las GUI y no usar GUIB? Sé que es simple esta vez, pero si puedo hacerlo funcionar, ¡puedo ver que es mucho más agradable para construir otras aplicaciones con GUIB! ¿Alguien puede darme o señalarme un ejemplo claro?

¡Gracias por leer!

Respuestas a la pregunta(2)

Su respuesta a la pregunta