Ir para o conteúdo

 Voltar a PW3270 Suporte
Tela cheia

Teclado

4 de Novembro de 2009, 10:14 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 859 vezes

Olá,

 Estamos testando o pw3270 a fim de substituir o Extra!.

Acontece que nossos usuários estão acostumados a trabalhar com o layout de teclado do Extra! que associa algumas teclas especiais a teclas normais do teclado, como: "Break=Limpar" e "Page-Up=PA1".

 Existe alguma forma de configurar o teclado no pw3270?

Autor: Daniel Carvalho


1616 comentários

  • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
    4 de Novembro de 2009, 11:02

     

    Você pode associar qualquer tecla que o gtk conheça a uma ação; basta criar no diretório "ui" um arquivo ".act" descrevendo a ação e, depois, conectá-lo a uma tecla através de um arquito .xml.

    No seu caso acredito que o conteúdo dos dois arquivos seria como descrito, porém, não lembro de ter implementado uma ação externa para as "PA"s. Não devo levar mais de 15 minutos para implementar; você está testando em windows ou linux?

    ui/sample.act:

    [PageUP]
    label=PA1
    accelerator=Page_Up
    action=PAKey
    value=1

    [Break]
    label=Clean
    accelerator=Break
    action=Clean

    ui/sample.xml:

    <ui>
    <accelerator action="PageUP" />
    <accelerator action="Break" />
    </ui>
     

    • 6d09c38a87b5af7aa9a9709411f8da2c?only path=false&size=50&d=404Daniel Carvalho(usuário não autenticado)
      4 de Novembro de 2009, 11:08

       

      Estou fazendo os testes nos dois SOs. 

    • 6d09c38a87b5af7aa9a9709411f8da2c?only path=false&size=50&d=404Daniel Carvalho(usuário não autenticado)
      4 de Novembro de 2009, 13:14

       

      no linux, utilizando as configurações sugeridas obtenho as seguintes mensagens:

      Ação "PAKey" inválida ao carregar /usr/local/share/pw3270/ui/default.act

      Ação "Clean" inválida ao carregar /usr/local/share/pw3270/ui/default.act

       ps.: no caso do PageUP substituí a entrada que já havia e no caso do break, testei com "Clean" e "Clear".

      • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
        4 de Novembro de 2009, 15:07

         

        Acabei de comitar uma correção no tratamento do arquivo .act incluindo as ações "PAKey" e "Clear". Gerei novos pacotes de instalação para windows e SuSE (revisão 4.0-2) e subi para a área de arquivos.

    • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
      4 de Novembro de 2009, 15:10

       

      Corrigindo o sample.act...

      [Break]
      label=Clean
      accelerator=Break
      action=Clear

      Notei que, se usar "Break" na tecla ele precisa de "Ctrl" para atua; se usar "Pause" funciona direto; não sei qual a associação correta no seu caso.

      • 6d09c38a87b5af7aa9a9709411f8da2c?only path=false&size=50&d=404Daniel Carvalho(usuário não autenticado)
        4 de Novembro de 2009, 17:27

         

        olá,

        Fiz a atualização e alterações sugeridas e parou de dar erro ao entrar. Os arquivos de configuração ficaram assim:

         ==sample.act==

        [PageUP]
        label=PA1
        accelerator=Page_Up
        action=PAKey
        value=1

        [Pause]
        label=Clean
        accelerator=Pause
        action=Clear

         ==sample.xml==

        <ui>
         <accelerator action="PageUP" />
         <accelerator action="Pause" />
        </ui>

        entretanto quanto ao funcionamento "PageUP" está realizando a função de "PF1" e não "PA1" e "Pause" está realizando a função "Apagar Campos" do Teclado de Funções e não "Limpar" (Clear) do Teclado de Funções.

        Alguma idéia?

         

        • 6d09c38a87b5af7aa9a9709411f8da2c?only path=false&size=50&d=404Daniel Carvalho(usuário não autenticado)
          4 de Novembro de 2009, 17:48

           

          ops... falha minha...

          na verdade PageUP funcionou perfeitamente. é que nos meus teste tinha esquecido de retirar as entradas referentes a esta tecla do arquivo de configuração padrão. :/

          quanto ao "Pause/Break" uma curiosidade... ele funciona como informei no Linux e no Windows não funciona absolutamente (pelo menos não percebemos a execução de nenhum comando)...

           alguma idéia?

          • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
            4 de Novembro de 2009, 23:40

             

            Olá,

            Você testou numa máquina windows "real", numa virtual ou usando VNC? Pergunto porque achei alguns comentários sobre problemas com a tecla pause/break sob máquina virtual.

            • 4f679703f287ebc647b232b82aeea132?only path=false&size=50&d=404Eduardo Bisogno Andrade(usuário não autenticado)
              21 de Dezembro de 2009, 16:38

               

              Olá

               

                Tenho o mesmo problema, estou tentando utilizar a tecla ESC com a função "Clear", sem sucesso até o momento. Alguma sugestão?

               

                   Grato

               

                  

              • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                21 de Dezembro de 2009, 17:47

                 

                Olá,

                Fiz um teste aqui usando a ação "ClearFields" e funcionou.

                No arquivo default.act inclui a entrada abaixo:

                [EscapeClear]
                accelerator=Escape
                action=ClearFields

                No arquivo default.xml modifiquei...

                Onde estava:

                     <accelerator action='Escape' />
                Mudou para:

                <!---    <accelerator action='Escape' /> --->
                    <accelerator action='EscapeClear' />

                 

                Seria isso?

                • 4f679703f287ebc647b232b82aeea132?only path=false&size=50&d=404Eduardo Bisogno Andrade(usuário não autenticado)
                  22 de Dezembro de 2009, 11:00

                   

                  Olá,

                   

                     A tecla Esc foi reconhecida no Windows XP, mas aconteceu o mesmo problema com a ação "clear" que foi referido nos posts anteriores, ou seja, o comando enviado para o host é "limpar campos" e não o "limpar" que aparece no teclado virtual e funciona corretamente. Outra função que não consegui mapear é "BackTab", alguma sugestão?

                   

                   

                       Grato

                  • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                    22 de Dezembro de 2009, 11:18

                     

                    Olá,

                    Se você quer limpar a tela toda e não os campos substitua, no arquivo .act, a ação "ClearFields" por "Erase". Quanto ao backtab você quer mudar a função da tecla "<shift>Tab" para outra ação ou quer associar uma outra tecla à ação "PreviousField" (backtab)?

                    • 4f679703f287ebc647b232b82aeea132?only path=false&size=50&d=404Eduardo Bisogno Andrade(usuário não autenticado)
                      22 de Dezembro de 2009, 11:53

                       

                      Olá novamente,

                       

                       

                         A atribuição da ação "PreviousField"  resolveu o problema. Quanto à ação "clear", verifiquei a documentação do x3270 e lá a tecla enviada está descrita como "*clear", ou seja, uma das teclas "especiais" do antigo tecladão IBM. Eu testei a ação "Erase" e o PW3270 acusou erro ("ação desconhecida") no Windows XP. A tecla "limpar" do teclado virtual realmente funciona, pergunto qual a ação associada a ela.

                       

                          Grato

                      • 4f679703f287ebc647b232b82aeea132?only path=false&size=50&d=404Eduardo Bisogno Andrade(usuário não autenticado)
                        22 de Dezembro de 2009, 12:51

                         

                        Olá,

                         

                             Após alguns testes a ação "ClearFields" funcionou da mesma maneira que a tecla "Limpar" do teclado virtual, mais um problema resolvido. 

                          Pergunto agora se é possível atribuir uma nova ação para a tecla Tab, pois ela não está sendo reconhecida como "accelerator" pelo GTK no Windows XP.

                        Percebi também que o GTK não está usando as definições do locale pt-BR em algumas estações de trabalho, abrirei uma thread específica para esse problema.

                         

                            Grato

                        • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                          22 de Dezembro de 2009, 14:24

                           

                          Olá,

                          As teclas de setas, tab e backtab ainda estão com associação fixa no código já que precisei interceptar direto do teclado para funcionar direito.

                          No caso da backtab um outro usuário reportou que ela estava sem função nenhuma no windows xp por isso acabei tendo que incluí-la na lista de associações fixas. Mais tarde gero outro instalador para windows com esse ajuste.

        • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
          4 de Novembro de 2009, 19:26

           

          Olá,

          Sim, uma idéia: Bug! O mapeamento das ações do teclado de funções e da UI está com inconsistência na ação "Clear"; num ele chama "EraseInput" enquanto no outro ele chama "ClearFields".

Essa comunidade não possui posts nesse blog