Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Web and WebWorks Development

Reply
Developer
Posts: 777
Registered: ‎07-21-2012
My Device: 9810
My Carrier: 0

Not able to focus on a row of drop down

Hi

how to focus on row of dropdown  in blackberry 9700.i am sharing my code please suggest.

 

 

 

hi i want to scroll drop down with focus in blackberry 9700..

 

*****************************************************************************

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>First Group</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript" src="script/actb.js"></script>
<script language="javascript" type="text/javascript" src="script/actb2.js"></script>
<script type="text/javascript" src="script/common.js"></script>
<script type="text/javascript" src="script/soapclient.js"></script>
<!--script type="text/javascript" src="script/cordova-2.0.0.js"></script-->
<script type="text/javascript">

//Wait for Cordova to load
document.addEventListener("deviceready", onDeviceReady, false);
//Cordova is loaded and it is now safe to make calls Cordova methods

function onDeviceReady()
{
//checkConnection();
}

function checkConnection()
{
var networkState = navigator.network.connection.type;

var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.NONE] = 'No network connection';
//alert('Connection type: ' + states[networkState]);
if(states[networkState]=="No network connection")
{
alert("No Connection Available ");
navigator.app.exitApp();
}
}
var stationList = new Array;

function GetStationCodes()
{
//document.getElementById('loadingImg').style.visibility = "visible";
var pl = new SOAPClientParameters();
var parameter1 = "";
var parameter2 = "";
pl.add("parameter1", parameter1);
pl.add("parameter2", parameter2);
SOAPClient.invoke(WSDLURL, "stationSearch", pl, true, GetStationCodes_callBack);
}
function GetStationCodes_callBack()
{
//document.getElementById('loadingImg').style.visibility = "hidden";
for (var i = 0; i < 20; i++)
{
if(i<5)
stationList[i] ="avnm";
else{

stationList[i] ="abjk";

}

// stationList[i] = r[i].stationCode + " - " + r[i].stationName;
}
}
function SetAction(flag)
{
if(flag==1)
{
document.frmIndex.action="arrival.html";
}
else
{
document.frmIndex.action="departure.html";
}
}


function buttonHighlight(e) {

e.setAttribute("style", "background-color: red; outline: cyan solid thick;");
}

function buttonUnHighlight(e) {

e.setAttribute("style", "");



}
</script>
</head>
<body onload="GetStationCodes_callBack()">
<div id="wrapper">
<div class="login_cont">
<div class="home_icon"><a href="#"><img src="images/home-icon.png" alt="Home" title="Home" /></a></div>
<h1 class="fr">Station ID</h1>
<div class="cl"></div>
<form name="frmIndex" type=get>
<div class="log_cont">
<input id="getStationDesc" name="getStationDesc" type="text" class="log_txtfield" />
<script>
var obj = actb(document.getElementById('getStationDesc'),stationList);
//setTimeout(function(){obj.actb_keywords = custom2;},10000);
this.actb_timeOut = -1;
// Number of elements autocomplete can show (-1: no limit)
this.actb_lim = 10;
// should the auto complete be limited to the beginning of keyword?
this.actb_firstText = true;
// Enable Mouse Support
this.actb_mouse = true;
// Delimiter for multiple autocomplete.
// Set it to empty array for single autocomplete
this.actb_delimiter = new Array(' ',',');
// Show widget only after this number of characters is typed in.
this.actb_startcheck = 1;

this.actb_bgColor = '#dbe3ec';
this.actb_textColor = '#00256a';
this.actb_hColor = '#dbe3ec';
this.actb_fFamily = 'arial';
this.actb_fSize = '12px';
this.actb_hStyle = 'text-decoration:underline;font-weight="bold"';
function FillValues()
{
document.getElementById('getStationCode').value = document.getElementById('getStationDesc').value.substring(0,3);

}
</script>
<div>

<!--img src="images/ajax-loader.gif" id="loadingImg" visible =true style="margin:auto; position: absolute; left:50%; top:50%;"/-->

</div>

<!--input id="getStationCode" name="getStationCode" type="hidden" /--></div>
<input type=submit class="heading_btn" style="margin-top:10px" value="Get Arrival Schedule" onclick="FillValues();SetAction(1)">
<!--input type=submit class="heading_btn" style="margin-top:10px" value="Get Departure Schedule" onclick="FillValues();SetAction(2)"-->

</div>
</form>
</div>
</div>
</body>
</html>


actually you can run this code .data is come with auto-suggested, but focus is not come on row of drop down . i am using <rim:navigation mode="focus" /> this mode in 9700 with trackpad.please try to modified this code.


thanks

BlackBerry Development Advisor
Posts: 149
Registered: ‎10-11-2011
My Device: BlackBerry 9810
My Carrier: Rogers

Re: Not able to focus on a row of drop down

Hi There,

 

I am not sure If I understand your question.  Do you have bunch of drop down lists?   Dop you want to be able to select all of them at once?  Is that what you are asking?

 

Thanks

 

Naveen M

Developer
Posts: 777
Registered: ‎07-21-2012
My Device: 9810
My Carrier: 0

Re: Not able to focus on a row of drop down

no...hey i am working on navigation focus mode.

i want to show station list .list will displayed only when i write only on the text field.list is also auto suggested. thing are fine when i used cursor mode but focus mode i am not able to do that.



.




these are the three file in using..index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>First Group</title>
<link href="style/style.css" rel="stylesheet" type="text/css" />
&lt;script language="javascript" type="text/javascript" src="script/actb.js">&lt;/script&gt;
&lt;script language="javascript" type="text/javascript" src="script/actb2.js">&lt;/script&gt;
&lt;script type="text/javascript" src="script/common.js">&lt;/script&gt;
&lt;script type="text/javascript" src="script/soapclient.js">&lt;/script&gt;
<!--script type="text/javascript" src="script/cordova-2.0.0.js">&lt;/script-->
&lt;script type="text/javascript">

//Wait for Cordova to load
document.addEventListener("deviceready", onDeviceReady, false);
//Cordova is loaded and it is now safe to make calls Cordova methods

function onDeviceReady()
{
//checkConnection();
}

function checkConnection()
{
var networkState = navigator.network.connection.type;

var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.NONE] = 'No network connection';
//alert('Connection type: ' + states[networkState]);
if(states[networkState]=="No network connection")
{
alert("No Connection Available ");
navigator.app.exitApp();
}
}
var stationList = new Array;

function GetStationCodes()
{
//document.getElementById('loadingImg').style.visibility = "visible";
var pl = new SOAPClientParameters();
var parameter1 = "";
var parameter2 = "";
pl.add("parameter1", parameter1);
pl.add("parameter2", parameter2);
SOAPClient.invoke(WSDLURL, "stationSearch", pl, true, GetStationCodes_callBack);
}
function GetStationCodes_callBack()
{
//document.getElementById('loadingImg').style.visibility = "hidden";
for (var i = 0; i < 20; i++)
{
**********************station list*************************
if(i<5)
stationList[i] ="avnm";
else{

stationList[i] ="abjk";

}

// stationList[i] = r[i].stationCode + " - " + r[i].stationName;
}
}
function SetAction(flag)
{
if(flag==1)
{
document.frmIndex.action="arrival.html";
}
else
{
document.frmIndex.action="departure.html";
}
}


function buttonHighlight(e) {

e.setAttribute("style", "background-color: red; outline: cyan solid thick;");
}

function buttonUnHighlight(e) {

e.setAttribute("style", "");



}
&lt;/script&gt;
</head>
<body onload="GetStationCodes_callBack()">
<div id="wrapper">
<div class="login_cont">
<div class="home_icon"><a href="#"><img src="images/home-icon.png" alt="Home" title="Home" /></a></div>
<h1 class="fr">Station ID</h1>
<div class="cl"></div>
<form name="frmIndex" type=get>
<div class="log_cont">
<input id="getStationDesc" name="getStationDesc" type="text" class="log_txtfield" />
&lt;script&gt;
*******************************here is auto suggested script****************
var obj = actb(document.getElementById('getStationDesc'),stationList);
//setTimeout(function(){obj.actb_keywords = custom2;},10000);
this.actb_timeOut = -1;
// Number of elements autocomplete can show (-1: no limit)
this.actb_lim = 10;
// should the auto complete be limited to the beginning of keyword?
this.actb_firstText = true;
// Enable Mouse Support
this.actb_mouse = true;
// Delimiter for multiple autocomplete.
// Set it to empty array for single autocomplete
this.actb_delimiter = new Array(' ',',');
// Show widget only after this number of characters is typed in.
this.actb_startcheck = 1;

this.actb_bgColor = '#dbe3ec';
this.actb_textColor = '#00256a';
this.actb_hColor = '#dbe3ec';
this.actb_fFamily = 'arial';
this.actb_fSize = '12px';
this.actb_hStyle = 'text-decoration:underline;font-weight="bold"';
function FillValues()
{
document.getElementById('getStationCode').value = document.getElementById('getStationDesc').value.substring(0,3);

}
&lt;/script&gt;
<div>

<!--img src="images/ajax-loader.gif" id="loadingImg" visible =true style="margin:auto; position: absolute; left:50%; top:50%;"/-->

</div>

<!--input id="getStationCode" name="getStationCode" type="hidden" /--></div>
<input type=submit x-blackberry-focusable="true" onmouseover="buttonHighlight(this);" onmouseout="buttonUnHighlight(this);" class="heading_btn" style="margin-top:10px" value="Get Arrival Schedule" onclick="FillValues();SetAction(1)">
<!--input type=submit class="heading_btn" style="margin-top:10px" value="Get Departure Schedule" onclick="FillValues();SetAction(2)"-->

</div>
</form>
</div>
</div>
</body>
</html>



*****************************************use auto suggested script*******************************

function actb(obj,ca){
/* ---- Public Variables ---- */
this.actb_timeOut = -1; // Autocomplete Timeout in ms (-1: autocomplete never time out)
this.actb_lim = 4; // Number of elements autocomplete can show (-1: no limit)
this.actb_firstText = false; // should the auto complete be limited to the beginning of keyword?
this.actb_mouse = true; // Enable Mouse Support
this.actb_delimiter = new Array(';',','); // Delimiter for multiple autocomplete. Set it to empty array for single autocomplete
this.actb_startcheck = 1; // Show widget only after this number of characters is typed in.
/* ---- Public Variables ---- */

/* --- Styles --- */
this.actb_bgColor = '#888888';
this.actb_textColor = '#FFFFFF';
this.actb_hColor = '#000000';
this.actb_fFamily = 'Verdana';
this.actb_fSize = '11px';
this.actb_hStyle = 'text-decoration:underline;font-weight="bold"';
/* --- Styles --- */

/* ---- Private Variables ---- */
var actb_delimwords = new Array();
var actb_cdelimword = 0;
var actb_delimchar = new Array();
var actb_display = false;
var actb_pos = 0;
var actb_total = 0;
var actb_curr = null;
var actb_rangeu = 0;
var actb_ranged = 0;
var actb_bool = new Array();
var actb_pre = 0;
var actb_toid;
var actb_tomake = false;
var actb_getpre = "";
var actb_mouse_on_list = 1;
var actb_kwcount = 0;
var actb_caretmove = false;
this.actb_keywords = new Array();
/* ---- Private Variables---- */

this.actb_keywords = ca;
var actb_self = this;

actb_curr = obj;

addEvent(actb_curr,"focus",actb_setup);
function actb_setup(){
addEvent(document,"keydown",actb_checkkey);
addEvent(actb_curr,"blur",actb_clear);
addEvent(document,"keypress",actb_keypress);
}

function actb_clear(evt){
if (!evt) evt = event;
removeEvent(document,"keydown",actb_checkkey);
removeEvent(actb_curr,"blur",actb_clear);
removeEvent(document,"keypress",actb_keypress);
actb_removedisp();
}
function actb_parse(n){
if (actb_self.actb_delimiter.length > 0){
var t = actb_delimwords[actb_cdelimword].trim().addslashes();
var plen = actb_delimwords[actb_cdelimword].trim().length;
}else{
var t = actb_curr.value.addslashes();
var plen = actb_curr.value.length;
}
var tobuild = '';
var i;

if (actb_self.actb_firstText){
var re = new RegExp("^" + t, "i");
}else{
var re = new RegExp(t, "i");
}
var p = n.search(re);

for (i=0;i<p;i++){
tobuild += n.substr(i,1);
}
tobuild += "<font style='"+(actb_self.actb_hStyle)+"'>"
for (i=p;i<plen+p;i++){
tobuild += n.substr(i,1);
}
tobuild += "</font>";
for (i=plen+p;i<n.length;i++){
tobuild += n.substr(i,1);
}
return tobuild;
}
function actb_generate(){
if (document.getElementById('tat_table')){ actb_display = false;document.body.removeChild(document.getElementById('tat_table')); }
if (actb_kwcount == 0){
actb_display = false;
return;
}
a = document.createElement('table');
// a.setAttribute("x-blackberry-focusable", "true");
a.cellSpacing='1px';
a.cellPadding='2px';
a.style.position='absolute';
a.style.top = eval(curTop(actb_curr) + actb_curr.offsetHeight) + "px";
a.style.left = curLeft(actb_curr) + "px";
a.style.backgroundColor=actb_self.actb_bgColor;
a.id = 'tat_table';
document.body.appendChild(a);
var i;
var first = true;
var j = 1;
if (actb_self.actb_mouse){
a.onmouseout = actb_table_unfocus;
a.onmouseover = actb_table_focus;
}
var counter = 0;
for (i=0;i<actb_self.actb_keywords.length;i++){
if (actb_bool[i]){
counter++;
r = a.insertRow(-1);
r.setAttribute("x-blackberry-focusable", "true");
r.setAttribute("x-blackberry-onDown","scrol(50)");
r.setAttribute("x-blackberry-onUp","scrol(50)");

if (first && !actb_tomake){
r.style.backgroundColor = actb_self.actb_hColor;
first = false;
actb_pos = counter;
}else if(actb_pre == i){
r.style.backgroundColor = actb_self.actb_hColor;
first = false;
actb_pos = counter;
}else{
r.style.backgroundColor = actb_self.actb_bgColor;
}
// r.id = 'tat_tr'+(j);
r.id = j;
r.setAttribute("onclick","getalert()");
//r.setAttribute("x-blackberry-focusable", "true");
// r.setAttribute("x-blackberry-onDown","scrol(50)");
c = r.insertCell(-1);

c.style.color = actb_self.actb_textColor;
c.style.fontFamily = actb_self.actb_fFamily;
c.style.fontSize = actb_self.actb_fSize;
c.innerHTML = actb_parse(actb_self.actb_keywords[i]);

c.id = 'tat_td'+(j);
c.setAttribute('pos',j);
if (actb_self.actb_mouse){
c.style.cursor = 'pointer';
c.onclick=actb_mouseclick;
c.onmouseover = actb_table_highlight;
}
j++;
}
if (j - 1 == actb_self.actb_lim && j < actb_total){
r = a.insertRow(-1);
r.style.backgroundColor = actb_self.actb_bgColor;
c = r.insertCell(-1);
c.style.color = actb_self.actb_textColor;
c.style.fontFamily = 'arial narrow';
c.style.fontSize = actb_self.actb_fSize;
c.align='center';
c.setAttribute("x-blackberry-focusable", "true");
replaceHTML(c,'\\/');

if (actb_self.actb_mouse){
c.style.cursor = 'pointer';
c.onclick = actb_mouse_down;
}
break;
}
}
actb_rangeu = 1;
actb_ranged = j-1;
actb_display = true;
if (actb_pos <= 0) actb_pos = 1;
}
function actb_remake(){
document.body.removeChild(document.getElementById('tat_table'));
a = document.createElement('table');
a.cellSpacing='1px';
a.cellPadding='2px';
a.style.position='relative';
a.style.overflow='auto';
a.style.top = eval(curTop(actb_curr) + actb_curr.offsetHeight) + "px";
a.style.left = curLeft(actb_curr) + "px";
a.style.backgroundColor=actb_self.actb_bgColor;
a.id = 'tat_table';
a.setAttribute("class", "scroll-pane");
if (actb_self.actb_mouse){
a.onmouseout= actb_table_unfocus;
a.onmouseover=actb_table_focus;
}
document.body.appendChild(a);
var i;
var first = true;
var j = 1;
if (actb_rangeu > 1){
r = a.insertRow(-1);
r.setAttribute("x-blackberry-focusable", "true");
r.style.backgroundColor = actb_self.actb_bgColor;
c = r.insertCell(-1);
c.style.color = actb_self.actb_textColor;
c.style.fontFamily = 'arial narrow';
c.style.fontSize = actb_self.actb_fSize;
c.align='center';

replaceHTML(c,'/\\');
c.setAttribute("x-blackberry-focusable", "true");

if (actb_self.actb_mouse){
c.style.cursor = 'pointer';
c.onclick = actb_mouse_up;
}
}
for (i=0;i<actb_self.actb_keywords.length;i++){
if (actb_bool[i]){
if (j >= actb_rangeu && j <= actb_ranged){
r = a.insertRow(-1);
r.style.backgroundColor = actb_self.actb_bgColor;
// r.id = 'tat_tr'+(j);
r.id =j;
c = r.insertCell(-1);
c.style.color = actb_self.actb_textColor;
c.style.fontFamily = actb_self.actb_fFamily;
c.style.fontSize = actb_self.actb_fSize;
c.innerHTML = actb_parse(actb_self.actb_keywords[i]);
c.setAttribute("x-blackberry-focusable", "true");
//c.id = 'tat_td'+(j);
c.id=100;
c.setAttribute('pos',j);
if (actb_self.actb_mouse){
c.style.cursor = 'pointer';
c.onclick=actb_mouseclick;

c.onmouseover = actb_table_highlight;
}
j++;
}else{
j++;
}
}
if (j > actb_ranged) break;
}
if (j-1 < actb_total){
r = a.insertRow(-1);
r.style.backgroundColor = actb_self.actb_bgColor;
c = r.insertCell(-1);
c.style.color = actb_self.actb_textColor;
c.style.fontFamily = 'arial narrow';
c.style.fontSize = actb_self.actb_fSize;
c.align='center';

c.setAttribute("x-blackberry-focusable", "true");
replaceHTML(c,'\\/');

//replaceHTML.id=100;
if (actb_self.actb_mouse){
c.style.cursor = 'pointer';
c.onclick = actb_mouse_down;
}
}
}
function actb_goup(){
if (!actb_display) return;
if (actb_pos == 1) return;
//document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;
document.getElementById(actb_pos).style.backgroundColor = actb_self.actb_bgColor;
actb_pos--;
if (actb_pos < actb_rangeu) actb_moveup();
//document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;
document.getElementById(actb_pos).style.backgroundColor = actb_self.actb_hColor;
if (actb_toid) clearTimeout(actb_toid);
if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);
}
function actb_godown(){
if (!actb_display) return;
if (actb_pos == actb_total) return;
//document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;
document.getElementById(actb_pos).style.backgroundColor = actb_self.actb_bgColor;
actb_pos++;
if (actb_pos > actb_ranged) actb_movedown();
document.getElementById(actb_pos).style.backgroundColor = actb_self.actb_hColor;
// document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;
if (actb_toid) clearTimeout(actb_toid);
if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);
}
function actb_movedown(){
actb_rangeu++;
actb_ranged++;
actb_remake();
}
function actb_moveup(){
actb_rangeu--;
actb_ranged--;
actb_remake();
}

/* Mouse */
function actb_mouse_down(){

//document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;
document.getElementById(actb_pos).style.backgroundColor = actb_self.actb_bgColor;
actb_pos++;
actb_movedown();
//document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;
document.getElementById(actb_pos).style.backgroundColor = actb_self.actb_hColor;
actb_curr.focus();
actb_mouse_on_list = 0;
if (actb_toid) clearTimeout(actb_toid);
if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);
}
function actb_mouse_up(evt){

if (!evt) evt = event;
if (evt.stopPropagation){
evt.stopPropagation();
}else{
evt.cancelBubble = true;
}
document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;
actb_pos--;
actb_moveup();
document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;
actb_curr.focus();
actb_mouse_on_list = 0;
if (actb_toid) clearTimeout(actb_toid);
if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);
}
function actb_mouseclick(evt){
if (!evt) evt = event;
if (!actb_display) return;
actb_mouse_on_list = 0;
actb_pos = this.getAttribute('pos');
actb_penter();
}
function actb_table_focus(){

actb_mouse_on_list = 1;
}
function actb_table_unfocus(){
actb_mouse_on_list = 0;
if (actb_toid) clearTimeout(actb_toid);
if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list = 0;actb_removedisp();},actb_self.actb_timeOut);
}
function actb_table_highlight(){
actb_mouse_on_list = 1;
document.getElementById(actb_pos).style.backgroundColor = actb_self.actb_bgColor;
//document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;
actb_pos = this.getAttribute('pos');
while (actb_pos < actb_rangeu) actb_moveup();
while (actb_pos > actb_ranged) actb_movedown();
// document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;
document.getElementById(actb_pos).style.backgroundColor = actb_self.actb_hColor;
if (actb_toid) clearTimeout(actb_toid);
if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list = 0;actb_removedisp();},actb_self.actb_timeOut);
}
/* ---- */

function actb_insertword(a){
if (actb_self.actb_delimiter.length > 0){
str = '';
l=0;
for (i=0;i<actb_delimwords.length;i++){
if (actb_cdelimword == i){
prespace = postspace = '';
gotbreak = false;
for (j=0;j<actb_delimwords[i].length;++j){
if (actb_delimwords[i].charAt(j) != ' '){
gotbreak = true;
break;
}
prespace += ' ';
}
for (j=actb_delimwords[i].length-1;j>=0;--j){
if (actb_delimwords[i].charAt(j) != ' ') break;
postspace += ' ';
}
str += prespace;
str += a;
l = str.length;
if (gotbreak) str += postspace;
}else{
str += actb_delimwords[i];
}
if (i != actb_delimwords.length - 1){
str += actb_delimchar[i];
}
}
actb_curr.value = str;
setCaret(actb_curr,l);
}else{
actb_curr.value = a;
}
actb_mouse_on_list = 0;
actb_removedisp();
}
function actb_penter(){
if (!actb_display) return;
actb_display = false;
var word = '';
var c = 0;
for (var i=0;i<=actb_self.actb_keywords.length;i++){
if (actb_bool[i]) c++;
if (c == actb_pos){
word = actb_self.actb_keywords[i];
break;
}
}
actb_insertword(word);
l = getCaretStart(actb_curr);
}
function actb_removedisp(){
if (actb_mouse_on_list==0){
actb_display = 0;
if (document.getElementById('tat_table')){ document.body.removeChild(document.getElementById('tat_table')); }
if (actb_toid) clearTimeout(actb_toid);
}
}
function actb_keypress(e){
if (actb_caretmove) stopEvent(e);
return !actb_caretmove;
}
function actb_checkkey(evt){
if (!evt) evt = event;
a = evt.keyCode;
caret_pos_start = getCaretStart(actb_curr);
actb_caretmove = 0;
switch (a){
case 38:
actb_goup();
actb_caretmove = 1;
return false;
break;
case 40:
actb_godown();
actb_caretmove = 1;
return false;
break;
case 13: case 9:
if (actb_display){
actb_caretmove = 1;
actb_penter();
return false;
}else{
return true;
}
break;
default:
setTimeout(function(){actb_tocomplete(a)},50);
break;
}
}

function actb_tocomplete(kc){
if (kc == 38 || kc == 40 || kc == 13) return;
var i;
if (actb_display){
var word = 0;
var c = 0;
for (var i=0;i<=actb_self.actb_keywords.length;i++){
if (actb_bool[i]) c++;
if (c == actb_pos){
word = i;
break;
}
}
actb_pre = word;
}else{ actb_pre = -1};

if (actb_curr.value == ''){
actb_mouse_on_list = 0;
actb_removedisp();
return;
}
if (actb_self.actb_delimiter.length > 0){
caret_pos_start = getCaretStart(actb_curr);
caret_pos_end = getCaretEnd(actb_curr);

delim_split = '';
for (i=0;i<actb_self.actb_delimiter.length;i++){
delim_split += actb_self.actb_delimiter[i];
}
delim_split = delim_split.addslashes();
delim_split_rx = new RegExp("(["+delim_split+"])");
c = 0;
actb_delimwords = new Array();
actb_delimwords[0] = '';
for (i=0,j=actb_curr.value.length;i<actb_curr.value.length;i++,j--){
if (actb_curr.value.substr(i,j).search(delim_split_rx) == 0){
ma = actb_curr.value.substr(i,j).match(delim_split_rx);
actb_delimchar[c] = ma[1];
c++;
actb_delimwords[c] = '';
}else{
actb_delimwords[c] += actb_curr.value.charAt(i);
}
}

var l = 0;
actb_cdelimword = -1;
for (i=0;i<actb_delimwords.length;i++){
if (caret_pos_end >= l && caret_pos_end <= l + actb_delimwords[i].length){
actb_cdelimword = i;
}
l+=actb_delimwords[i].length + 1;
}
var ot = actb_delimwords[actb_cdelimword].trim();
var t = actb_delimwords[actb_cdelimword].addslashes().trim();
}else{
var ot = actb_curr.value;
var t = actb_curr.value.addslashes();
}
if (ot.length == 0){
actb_mouse_on_list = 0;
actb_removedisp();
}
if (ot.length < actb_self.actb_startcheck) return this;
if (actb_self.actb_firstText){
var re = new RegExp("^" + t, "i");
}else{
var re = new RegExp(t, "i");
}

actb_total = 0;
actb_tomake = false;
actb_kwcount = 0;
for (i=0;i<actb_self.actb_keywords.length;i++){
actb_bool[i] = false;
if (re.test(actb_self.actb_keywords[i])){
actb_total++;
actb_bool[i] = true;
actb_kwcount++;
if (actb_pre == i) actb_tomake = true;
}
}

if (actb_toid) clearTimeout(actb_toid);
if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list = 0;actb_removedisp();},actb_self.actb_timeOut);
actb_generate();
}
return this;
}

function scrol(ln)
{
//alert("i");
var elm = document.getElementById("tat_table");

// alert(elm);
var lastFocusId = parseInt(blackberry.focus.getFocus());



switch(blackberry.focus.getDirection()){
case 2 : // up
if(lastFocusId > 1 ){ //lastFocusId less than first element and greater than last element
blackberry.focus.setFocus((lastFocusId-1)+"");

highlight(lastFocusId-1);
unhighlight(lastFocusId);
}else{
unhighlight(lastFocusId);
blackberry.focus.setFocus(100);

}

elm.scrollTop -= 15; //height of single <li> element
break;
case 3 : // down
if(lastFocusId >= 0&&lastFocusId <10){
blackberry.focus.setFocus((lastFocusId+1)+"");

highlight(lastFocusId+1);
unhighlight(lastFocusId);
}else{
alert(lastFocusId);

blackberry.focus.setFocus(11);
}


elm.scrollTop += 15;
break;
}

}

function highlight(e) {

document.getElementById(e).style.backgroundColor = "#440503";

}

function unhighlight(e) {

document.getElementById(e).style.backgroundColor = "#FFFFFF";

}

function getalert(){
var lastFocusId = parseInt(blackberry.focus.getFocus());
alert(lastFocusId);

// document.getElementById(e)
}

*****************************************************3 .js *******************
/* Event Functions */

// Add an event to the obj given
// event_name refers to the event trigger, without the "on", like click or mouseover
// func_name refers to the function callback when event is triggered
function addEvent(obj,event_name,func_name){
if (obj.attachEvent){
obj.attachEvent("on"+event_name, func_name);
}else if(obj.addEventListener){
obj.addEventListener(event_name,func_name,true);
}else{
obj["on"+event_name] = func_name;
}
}

// Removes an event from the object
function removeEvent(obj,event_name,func_name){
if (obj.detachEvent){
obj.detachEvent("on"+event_name,func_name);
}else if(obj.removeEventListener){
obj.removeEventListener(event_name,func_name,true);
}else{
obj["on"+event_name] = null;
}
}

// Stop an event from bubbling up the event DOM
function stopEvent(evt){
evt || window.event;
if (evt.stopPropagation){
evt.stopPropagation();
evt.preventDefault();
}else if(typeof evt.cancelBubble != "undefined"){
evt.cancelBubble = true;
evt.returnValue = false;
}
return false;
}

// Get the obj that starts the event
function getElement(evt){
if (window.event){
return window.event.srcElement;
}else{
return evt.currentTarget;
}
}
// Get the obj that triggers off the event
function getTargetElement(evt){
if (window.event){
return window.event.srcElement;
}else{
return evt.target;
}
}
// For IE only, stops the obj from being selected
function stopSelect(obj){
if (typeof obj.onselectstart != 'undefined'){
addEvent(obj,"selectstart",function(){ return false;});
}
}

/* Caret Functions */

// Get the end position of the caret in the object. Note that the obj needs to be in focus first
function getCaretEnd(obj){
if(typeof obj.selectionEnd != "undefined"){
return obj.selectionEnd;
}else if(document.selection&&document.selection.createRange){
var M=document.selection.createRange();
try{
var Lp = M.duplicate();
Lp.moveToElementText(obj);
}catch(e){
var Lp=obj.createTextRange();
}
Lp.setEndPoint("EndToEnd",M);
var rb=Lp.text.length;
if(rb>obj.value.length){
return -1;
}
return rb;
}
}
// Get the start position of the caret in the object
function getCaretStart(obj){
if(typeof obj.selectionStart != "undefined"){
return obj.selectionStart;
}else if(document.selection&&document.selection.createRange){
var M=document.selection.createRange();
try{
var Lp = M.duplicate();
Lp.moveToElementText(obj);
}catch(e){
var Lp=obj.createTextRange();
}
Lp.setEndPoint("EndToStart",M);
var rb=Lp.text.length;
if(rb>obj.value.length){
return -1;
}
return rb;
}
}
// sets the caret position to l in the object
function setCaret(obj,l){
obj.focus();
if (obj.setSelectionRange){
obj.setSelectionRange(l,l);
}else if(obj.createTextRange){
m = obj.createTextRange();
m.moveStart('character',l);
m.collapse();
m.select();
}
}
// sets the caret selection from s to e in the object
function setSelection(obj,s,e){
obj.focus();
if (obj.setSelectionRange){
obj.setSelectionRange(s,e);
}else if(obj.createTextRange){
m = obj.createTextRange();
m.moveStart('character',s);
m.moveEnd('character',e);
m.select();
}
}

/* Escape function */
String.prototype.addslashes = function(){
return this.replace(/(["\\\.\|\[\]\^\*\+\?\$\(\)])/g, '\\$1');
}
String.prototype.trim = function () {
return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
};
/* --- Escape --- */

/* Offset position from top of the screen */
function curTop(obj){
toreturn = 0;
while(obj){
toreturn += obj.offsetTop;
obj = obj.offsetParent;
}
return toreturn;
}
function curLeft(obj){
toreturn = 0;
while(obj){
toreturn += obj.offsetLeft;
obj = obj.offsetParent;
}
return toreturn;
}
/* ------ End of Offset function ------- */

/* Types Function */

// is a given input a number?
function isNumber(a) {
return typeof a == 'number' && isFinite(a);
}

/* Object Functions */

function replaceHTML(obj,text){

while(el = obj.childNodes[0]){
//obj.removeChild(el);
};
obj.appendChild(document.createTextNode(text));
}
Retired
Posts: 1,382
Registered: ‎07-02-2009
My Device: BlackBerry Bold 9900
My Carrier: Bell

Re: Not able to focus on a row of drop down

Please consider posting a shorter snippet of code that can reproduce the exact behavior you are reporting.  Having long examples makes it more time consuming  to troubleshoot wherein the problem lies.

 

It sounds like you want some dynamic content to appear when you have applied focus to a text field - is that correct?  Are you referring to a popup DIV, or a new DIV added to the page?

Follow me on Twitter: @n_adam_stanley
-------------------------------------------------------------------------------------------------------------------------
Your app doesn't work? Use BlackBerry remote web inspector to find out why.