um exemplo claro de como usar o script do Google UI Builder e do Google Apps

Eu pesquisei em todos os lugares e não consigo encontrar um exemplo claro de como usar o script do Googles UI Builder e dos aplicativos. Eu não tenho ideia do que estou perdendo. Eu acho que isso deve ser simples: v / SIM, eu li todos os documentos do Google, assisti vids etc - várias vezes - não há nenhuma combinação de GUIB(Construtor de UI do Google) e uma função de manipulador de retorno de chamada, que eu posso encontrar.
EDIT: há exemplos para SpreadSheets - não GSites

O que eu preciso fazer:
Gostaria de incorporar uma caixa de texto e um botão para coletar uma frase de pesquisa de um usuário em uma página do site do Google. Eu construí a interface do usuário muito simples com um único flowpanel, caixa de texto e botão, mas só pode obter "indefinido" retornado de Logger.log () não importa o que eu faço(veja o código abaixo).

Um pouco de desabafo:
Tenho sido muito cuidadoso em nomear e chamar pelos nomes certos. Eu tentei usar um formpanel MAS no GUIB, você só pode colocar um widget nele ?! ... E um botão de envio só vai entrar em um formpanel - huh - eu não posso colocar minha caixa de texto também !?(Por que se preocupar com o formpanel então - eu não entendo isso! ... sim eu sei sobre o doPost () automaticamente sendo chamado para enviar). Eu quero que os widgets permaneçam ativos e não desapareçam após um uso, então talvez o formpanel / submitbutton não funcione de qualquer maneira - ou não é o jeito certo de fazer isso?

Down to business:
De qualquer forma, o que eu tentei é colocar o botão regular e caixa de texto em um flowpanel com o seguinte código ...
EDIT: eu excluí o meu conteúdo original aqui e repostado esta seção ...

// 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!
}

Eu também tentei adicionar código para definir manualmente manipuladores etc em doGet () e não usar configurações de evento GUIB, mas sem sucesso também.

Conclusão?
O que da? Eu tenho que codificar manualmente as GUIs e não usar o GUIB? Eu sei que é simples desta vez, mas se eu conseguir fazer isso funcionar, eu posso ver com certeza ser muito melhor construir outros aplicativos com o GUIB! Alguém pode me dar ou me indicar um exemplo claro ?!

Obrigado pela leitura!

questionAnswers(2)

yourAnswerToTheQuestion