4 Replies Latest reply on Aug 17, 2012 12:30 PM by Diego Almeida

    Problems with richfaces:hotkey

    Diego Almeida Newbie



      I have problems using the hotkey component as shown in the showcase page. I'm trying to detect when the user hit the enter key and perform a specific action on a input textbox. The code I used as an example is:


      <h:inputText id="txtCodigo" value="#{anularFacilidadControlador.codObligacion}"                                                            
                       <rich:hotKey selector="#txtCodigo" key="return">
                                <rich:componentControl event="blur" target="popup" operation="show" />


      The code is trying to open a rich:popupPanel when the user press return, but nothing happens. In fact the behaviour related with rich:componentControl is disabled.


      I noticed that in the richfaces showcase, the hotkey component generates a script with new RichFaces.ui.HotKey, but in my page, nothing happens. Only two js scripts are imported: hotkey.js and jquery.hotkeys.js


      Thank you in advance for your help.

        • 1. Re: Problems with richfaces:hotkey
          Lukáš Fryč Master

          Hey Diego,


          have you tried to place rich:hotKey outside of h:inputText.


          I have doubts that new RichFaces.ui.HotKey contructor is called before txtCodigo input text element.



          Also, can you see any feedback on developer console?

          • 2. Re: Problems with richfaces:hotkey
            Diego Almeida Newbie

            Hi Lukáš,


            I've tried to use the hotkey component like the following snippet:



                    <h:form id="aForm">
                        Hello from Facelets
                        <rich:hotKey selector="#aForm" key="backspace" preventDefault="true" enabledInInput="false"/>


            And the constructor generates, but I think it's incomplete. This is the generated code for the constructor:



            new RichFaces.ui.HotKey("aForm:j_idt8",  {"key":"backspace","selector":"#aForm"} );


            But in the showcase, the generated code, includes something like this:



            new RichFaces.ui.HotKey("j_idt239:j_idt243",  {"key":"right","selector":"#j_idt239\\:pickList","onkeydown":function(event){RichFaces.ui.ComponentControl.execute(event,{"selector":null,"target":["j_idt239:pickList"] ,"callback":function(event,component){component['add'].apply(component,[] );}} ); return false;}} );


            Am I missing something?


            Btw, I am ussing RF 4.2.2.Final with Jboss 6 EAP.

            • 3. Re: Problems with richfaces:hotkey
              Pavol Pitonak Master

              Hi Diego,


              I managed to open a popup panel when user presses the enter key. The following code worked for me:


              <h:form id="form">
                  <h:inputText id="txtCodigo" value="first input"/>
                  <rich:hotKey id="richHotKey" enabledInInput="true" key="return" onkeyup="#{rich:component('popupPanel')}.show()" preventDefault="true" selector="#txtCodigo" />
                  <rich:popupPanel id="popupPanel" header="my popup panel">content of popup panel</rich:popupPanel>


              Using component control is too complicated when you can open a popup panel using its public API.




              • 4. Re: Problems with richfaces:hotkey
                Diego Almeida Newbie

                Thanks Pavol!


                It was neccesary to add the attribute onkeyup in order to complete the contructor that generates Richfaces on javascript.