Search

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Search as PDF for free.

More details

  • Words: 471
  • Pages: 5
private class searchbykeys{ arraylist<string> searchlist; string searchcolumn,searchkey=""; jtable tabletobesearched; long keypresstime; boolean canbesearched; treemap<string, integer> searchmap = new treemap<string, integer>(); sortedmap<string, integer> resultmap,tempmap; iterator<string> keysettoselect; int rowindextoselect; boolean canresetiterator = true; private searchbykeys(jtable tab ) { tabletobesearched = tab; tabletobesearched.addkeylistener(new keyadapter(){ public void keypressed(keyevent e){ try { char ch = e.getkeychar(); if(character.isuppercase(ch)) ch = character.tolowercase(ch); character.isspacechar(ch)){

if( character.isletterordigit(ch) || long systime = system.currenttimemillis(); if(systime - keypresstime > 400 ){ searchkey = ""+ch; searchkey = searchkey.trim();//remove starting

space if(resultmap!=null && resultmap.size() > 0 ){ if(searchkey.length() != 0 ){ string firstkey = resultmap.firstkey(); if(firstkey.charat(0)!= ch){ resultmap = searchmap.submap(searchkey,((char)(searchkey.charat(0)+1))+""); keysettoselect = resultmap.keyset().iterator(); system.out.println("########## rebuilding result map for "+ch+" #########"); } } } else if(searchkey.length()!=0){ resultmap = searchmap.submap(searchkey,((char)(searchkey.charat(0)+1))+""); keysettoselect = resultmap.keyset().iterator(); } keypresstime = systime; } else{

}

searchkey = searchkey + ch ; keypresstime = systime;

canbesearched = true; }

else canbesearched = false; } catch (runtimeexception e1) { } system.out.println("constructed search key is: "+

searchkey);

} public void keyreleased(keyevent e) { try {

if (searchlist != null && canbesearched) { string k = resultmap.firstkey(); if (searchkey.trim().length() == 1 && (k.charat(0) == searchkey.charat(0))) { if (keysettoselect.hasnext()) { string key = keysettoselect.next(); rowindextoselect = resultmap.get(key); system.out.println("inside 1st condn for single key : key being searched by iterator :" + key + " . row index: " + rowindextoselect); } else { system.out.println("inside the else part of single key operation"); keysettoselect = resultmap.keyset().iterator(); if (keysettoselect.hasnext()) { string key = keysettoselect.next(); rowindextoselect = resultmap.get(key); system.out.println("inside else for single key : key being searched by iterator :" + key + " . row index: " + rowindextoselect); } }

canresetiterator = false; tabletobesearched.changeselection(rowindextoselect, 0, false, false); canresetiterator = true; } else if (searchkey.trim().length() > 1)

{// if // condition // for // starting // space

// resultmap = // searchmap.submap(searchkey,((char)(searchkey.charat(0)+1))+""); tempmap = resultmap.submap(searchkey,((char) (searchkey.charat(0) + 1)) + ""); if (tempmap != null && tempmap.size() > 0) { string firstkey =

tempmap.firstkey();

if (searchkey.trim().length() <= firstkey.length()) { if

(firstkey.substring(0,searchkey.trim().length())

.

equalsignorecase(searchkey.trim())) { rowindextoselect = tempmap .get(firstkey); tabletobesearched.changeselection( rowindextoselect, 0, false, false); }

}

} }

}

} } catch (exception e1) { // todo auto-generated catch block // e1.printstacktrace(); }

}); tabletobesearched.getselectionmodel().addlistselectionlistener( new listselectionlistener(){ public void valuechanged(listselectionevent e) { // listener*****");

if(canresetiterator && resultmap!=null){ system.out.println("****inside list selection int row = tabletobesearched.getselectedrow(); if(row != -1){ int i; keysettoselect = resultmap.keyset().iterator(); for (i=0; i <= row ; i++){ if(keysettoselect.hasnext()) keysettoselect.next(); } system.out.println("value changed listener: "+i); } }

} } ); } void constructsearchmap(arraylist<string> list){ if(tabletobesearched!=null && list!=null/* && searchcolumn!=null*/ ){ // searchlist = tabletobesearched.getmodel(). resultmap=null; searchlist = list; rowindextoselect = 0; for(int i=0; i < list.size();i++ ) searchmap.put(((string)list.get(i)).trim().tolowercase(),i);

} //

system.out.println("constructed map is: "+searchmap); } public string getsearchcolumn() { return searchcolumn; } public void setsearchcolumn(string searchcolumn) { this.searchcolumn = searchcolumn; } public jtable gettabletobesearched() { return tabletobesearched; } public void settabletobesearched(jtable tabletobesearched) {

this.tabletobesearched = tabletobesearched; }

} // ends here

Related Documents

Search Search
October 2019 35
Search Search
October 2019 41
Search
October 2019 81
Search
June 2020 15
Search
October 2019 40
Search
November 2019 19