Hi,
I have a requirement where users should be able to navigate from the first to the last item in a rich:suggestionBox's list by pressing the [Arrow Up] key, and vice versa by pressing the [Arrow Down].
I need to get this working on richfaces 3.3.x
The quest to get this done has led me to the javascript that is behind the rich:suggestionBox (@see http://anonsvn.jboss.org/repos/richfaces/tags/3.3.3.Final/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js). The methods in question are markPrevious() and markNext().
This is how they are defined on the Suggestion.Base.prototype :
{code}markPrevious: function() {
if (this.index > 0) this.index--;
//else this.index = this.entryCount - 1;
},
markNext: function() {
if (this.index < this.entryCount - 1) this.index++;
//else this.index = 0;
},{code}
As you can see, the functionality that I need is there, but for some reason it has been commented out. So I tried to override the methods by placing the following bit of javascript in my template file that is used by all my pages:
{code:xml}<script type="text/javascript">
//<![CDATA[
if(Suggestion) {
function newMarkPrevious() {
if (this.index > 0) this.index--;
else this.index = this.entryCount - 1;
}
function newMarkNext() {
if (this.index < this.entryCount - 1) this.index++;
else this.index = 0;
}
Suggestion.Base.prototype.markPrevious = newMarkPrevious;
Suggestion.Base.prototype.markNext = newMarkNext;
}
//]]>
</script>{code}
Now, if I inspect the Suggestion object with firebug, I can see that the methods indeed get overridden. However, all rich:suggestionBoxes on my pages still use the old implementation. So, I'm thinking that somehow, the objects behind the rich:suggestionBoxes get created before I override the prototype. And this is where I'm stuck. I don't know how I could get my version in there before any of those suggestionBoxes get created.
Has anyone got an idea on how to solve this?
Thanks,
Kim.
P.S. I realise that there is also the option of just adjusting the code directly in the richfaces-ui.jar, but I don't want to have a custom built jar.