]> git.donarmstrong.com Git - roundcube.git/blobdiff - program/js/list.js
Imported Upstream version 0.3.1
[roundcube.git] / program / js / list.js
index e58616e0b366d42878680fa30af72487d5eb669b..8bd9aac88e876d45195aa989262a5073a70f42c5 100644 (file)
@@ -24,7 +24,6 @@ this.drag_mouse_start=null;
 this.dblclick_time=600;
 this.row_init=function(){
 };
-this.events={click:[],dblclick:[],select:[],keypress:[],dragstart:[],dragmove:[],dragend:[]};
 if(p&&typeof (p)=="object"){
 for(var n in p){
 this[n]=p[n];
@@ -47,12 +46,12 @@ this.rowcount++;
 }
 this.frame=this.list.parentNode;
 if(this.keyboard){
-rcube_event.add_listener({element:document,event:"keyup",object:this,method:"key_press"});
+rcube_event.add_listener({element:document,event:bw.opera?"keypress":"keydown",object:this,method:"key_press"});
 rcube_event.add_listener({element:document,event:"keydown",object:this,method:"key_down"});
 }
 }
 },init_row:function(_6){
-if(_6&&String(_6.id).match(/rcmrow([a-z0-9\-_=]+)/i)){
+if(_6&&String(_6.id).match(/rcmrow([a-z0-9\-_=\+\/]+)/i)){
 var p=this;
 var _8=RegExp.$1;
 _6.uid=_8;
@@ -71,7 +70,7 @@ return false;
 this.row_init(this.rows[_8]);
 }
 },clear:function(_b){
-var _c=document.createElement("TBODY");
+var _c=document.createElement("tbody");
 this.list.insertBefore(_c,this.list.tBodies[0]);
 this.list.removeChild(this.list.tBodies[1]);
 this.rows=new Array();
@@ -89,7 +88,11 @@ this.select_next();
 this.rows[_d]=null;
 this.rowcount--;
 },insert_row:function(_f,_10){
+if(this.background){
+var _11=this.background;
+}else{
 var _11=this.list.tBodies[0];
+}
 if(_10&&_11.rows.length){
 _11.insertBefore(_f,_11.firstChild);
 }else{
@@ -102,8 +105,7 @@ this.focused=true;
 for(var n=0;n<this.selection.length;n++){
 id=this.selection[n];
 if(this.rows[id]&&this.rows[id].obj){
-this.set_classname(this.rows[id].obj,"selected",true);
-this.set_classname(this.rows[id].obj,"unfocused",false);
+$(this.rows[id].obj).addClass("selected").removeClass("unfocused");
 }
 }
 if(e||(e=window.event)){
@@ -115,85 +117,86 @@ this.focused=false;
 for(var n=0;n<this.selection.length;n++){
 id=this.selection[n];
 if(this.rows[id]&&this.rows[id].obj){
-this.set_classname(this.rows[id].obj,"selected",false);
-this.set_classname(this.rows[id].obj,"unfocused",true);
+$(this.rows[id].obj).removeClass("selected").addClass("unfocused");
 }
 }
 },drag_row:function(e,id){
 var _18=rcube_event.get_target(e);
-if(this.dont_select||(_18&&(_18.tagName=="INPUT"||_18.tagName=="IMG"))){
-return false;
+var _19=_18.tagName.toLowerCase();
+if(this.dont_select||(_18&&(_19=="input"||_19=="img"))){
+return true;
 }
 if(rcube_event.get_button(e)==2){
 return true;
 }
 this.in_selection_before=this.in_selection(id)?id:false;
 if(!this.in_selection_before){
-var _19=rcube_event.get_modifier(e);
-this.select_row(id,_19,false);
+var _1a=rcube_event.get_modifier(e);
+this.select_row(id,_1a,false);
 }
 if(this.draggable&&this.selection.length){
 this.drag_start=true;
 this.drag_mouse_start=rcube_event.get_mouse_pos(e);
 rcube_event.add_listener({element:document,event:"mousemove",object:this,method:"drag_mouse_move"});
 rcube_event.add_listener({element:document,event:"mouseup",object:this,method:"drag_mouse_up"});
-var _1a=document.getElementsByTagName("IFRAME");
+var _1b=document.getElementsByTagName("iframe");
 this.iframe_events=Object();
-for(var n in _1a){
-var _1c=null;
-if(_1a[n].contentDocument){
-_1c=_1a[n].contentDocument;
+for(var n in _1b){
+var _1d=null;
+if(_1b[n].contentDocument){
+_1d=_1b[n].contentDocument;
 }else{
-if(_1a[n].contentWindow){
-_1c=_1a[n].contentWindow.document;
+if(_1b[n].contentWindow){
+_1d=_1b[n].contentWindow.document;
 }else{
-if(_1a[n].document){
-_1c=_1a[n].document;
+if(_1b[n].document){
+_1d=_1b[n].document;
 }
 }
 }
-if(_1c){
-var _1d=this;
-var pos=rcube_get_object_pos(document.getElementById(_1a[n].id));
+if(_1d){
+var _1e=this;
+var pos=$("#"+_1b[n].id).offset();
 this.iframe_events[n]=function(e){
 e._offset=pos;
-return _1d.drag_mouse_move(e);
+return _1e.drag_mouse_move(e);
 };
-if(_1c.addEventListener){
-_1c.addEventListener("mousemove",this.iframe_events[n],false);
+if(_1d.addEventListener){
+_1d.addEventListener("mousemove",this.iframe_events[n],false);
 }else{
-if(_1a[n].attachEvent){
-_1c.attachEvent("onmousemove",this.iframe_events[n]);
+if(_1b[n].attachEvent){
+_1d.attachEvent("onmousemove",this.iframe_events[n]);
 }else{
-_1c["onmousemove"]=this.iframe_events[n];
+_1d["onmousemove"]=this.iframe_events[n];
 }
 }
-rcube_event.add_listener({element:_1c,event:"mouseup",object:this,method:"drag_mouse_up"});
+rcube_event.add_listener({element:_1d,event:"mouseup",object:this,method:"drag_mouse_up"});
 }
 }
 }
 return false;
 },click_row:function(e,id){
 var now=new Date().getTime();
-var _23=rcube_event.get_modifier(e);
-var _24=rcube_event.get_target(e);
-if((_24&&(_24.tagName=="INPUT"||_24.tagName=="IMG"))){
-return false;
+var _24=rcube_event.get_modifier(e);
+var _25=rcube_event.get_target(e);
+var _26=_25.tagName.toLowerCase();
+if((_25&&(_26=="input"||_26=="img"))){
+return true;
 }
 if(this.dont_select){
 this.dont_select=false;
 return false;
 }
-var _25=now-this.rows[id].clicked<this.dblclick_time;
-if(!this.drag_active&&this.in_selection_before==id&&!_25){
-this.select_row(id,_23,false);
+var _27=now-this.rows[id].clicked<this.dblclick_time;
+if(!this.drag_active&&this.in_selection_before==id&&!_27){
+this.select_row(id,_24,false);
 }
 this.drag_start=false;
 this.in_selection_before=false;
-if(this.rows&&_25&&this.in_selection(id)){
-this.trigger_event("dblclick");
+if(this.rows&&_27&&this.in_selection(id)){
+this.triggerEvent("dblclick");
 }else{
-this.trigger_event("click");
+this.triggerEvent("click");
 }
 if(!this.drag_active){
 rcube_event.cancel(e);
@@ -204,51 +207,61 @@ return false;
 if(!this.rows){
 return false;
 }
-var _26=this.rows[this.last_selected];
-var _27=_26?_26.obj.nextSibling:null;
-while(_27&&(_27.nodeType!=1||_27.style.display=="none")){
-_27=_27.nextSibling;
+var _28=this.rows[this.last_selected];
+var _29=_28?_28.obj.nextSibling:null;
+while(_29&&(_29.nodeType!=1||_29.style.display=="none")){
+_29=_29.nextSibling;
 }
-return _27;
+return _29;
 },get_prev_row:function(){
 if(!this.rows){
 return false;
 }
-var _28=this.rows[this.last_selected];
-var _29=_28?_28.obj.previousSibling:null;
-while(_29&&(_29.nodeType!=1||_29.style.display=="none")){
-_29=_29.previousSibling;
+var _2a=this.rows[this.last_selected];
+var _2b=_2a?_2a.obj.previousSibling:null;
+while(_2b&&(_2b.nodeType!=1||_2b.style.display=="none")){
+_2b=_2b.previousSibling;
 }
-return _29;
+return _2b;
+},get_first_row:function(){
+if(this.rowcount){
+var _2c=this.list.tBodies[0].rows;
+for(var i=0;i<_2c.length-1;i++){
+if(_2c[i].id&&String(_2c[i].id).match(/rcmrow([a-z0-9\-_=\+\/]+)/i)&&this.rows[RegExp.$1]!=null){
+return RegExp.$1;
+}
+}
+}
+return null;
 },get_last_row:function(){
 if(this.rowcount){
-var _2a=this.list.tBodies[0].rows;
-for(var i=_2a.length-1;i>=0;i--){
-if(_2a[i].id&&String(_2a[i].id).match(/rcmrow([a-z0-9\-_=]+)/i)&&this.rows[RegExp.$1]!=null){
+var _2e=this.list.tBodies[0].rows;
+for(var i=_2e.length-1;i>=0;i--){
+if(_2e[i].id&&String(_2e[i].id).match(/rcmrow([a-z0-9\-_=\+\/]+)/i)&&this.rows[RegExp.$1]!=null){
 return RegExp.$1;
 }
 }
 }
 return null;
-},select_row:function(id,_2d,_2e){
-var _2f=this.selection.join(",");
+},select_row:function(id,_31,_32){
+var _33=this.selection.join(",");
 if(!this.multiselect){
-_2d=0;
+_31=0;
 }
 if(!this.shift_start){
 this.shift_start=id;
 }
-if(!_2d){
+if(!_31){
 this.shift_start=id;
 this.highlight_row(id,false);
 this.multi_selecting=false;
 }else{
-switch(_2d){
+switch(_31){
 case SHIFT_KEY:
 this.shift_select(id,false);
 break;
 case CONTROL_KEY:
-if(!_2e){
+if(!_32){
 this.highlight_row(id,true);
 }
 break;
@@ -261,17 +274,17 @@ break;
 }
 this.multi_selecting=true;
 }
-if(this.selection.join(",")!=_2f){
-this.trigger_event("select");
+if(this.selection.join(",")!=_33){
+this.triggerEvent("select");
 }
 if(this.last_selected!=0&&this.rows[this.last_selected]){
-this.set_classname(this.rows[this.last_selected].obj,"focused",false);
+$(this.rows[this.last_selected].obj).removeClass("focused");
 }
 if(this.toggleselect&&this.last_selected==id){
 this.clear_selection();
 id=null;
 }else{
-this.set_classname(this.rows[id].obj,"focused",true);
+$(this.rows[id].obj).addClass("focused");
 }
 if(!this.selection.length){
 this.shift_start=null;
@@ -281,27 +294,32 @@ this.last_selected=id;
 this.select_row(id,false);
 this.scrollto(id);
 },select_next:function(){
-var _31=this.get_next_row();
-var _32=this.get_prev_row();
-var _33=(_31)?_31:_32;
-if(_33){
-this.select_row(_33.uid,false,false);
-}
-},shift_select:function(id,_35){
+var _35=this.get_next_row();
+var _36=this.get_prev_row();
+var _37=(_35)?_35:_36;
+if(_37){
+this.select_row(_37.uid,false,false);
+}
+},select_first:function(){
+var _38=this.get_first_row();
+if(_38){
+this.select_row(_38,false,false);
+}
+},shift_select:function(id,_3a){
 if(!this.rows[this.shift_start]||!this.selection.length){
 this.shift_start=id;
 }
-var _36=this.rows[this.shift_start].obj.rowIndex;
-var _37=this.rows[id].obj.rowIndex;
-var i=((_36<_37)?_36:_37);
-var j=((_36>_37)?_36:_37);
+var _3b=this.rows[this.shift_start].obj.rowIndex;
+var _3c=this.rows[id].obj.rowIndex;
+var i=((_3b<_3c)?_3b:_3c);
+var j=((_3b>_3c)?_3b:_3c);
 for(var n in this.rows){
 if((this.rows[n].obj.rowIndex>=i)&&(this.rows[n].obj.rowIndex<=j)){
 if(!this.in_selection(n)){
 this.highlight_row(n,true);
 }
 }else{
-if(this.in_selection(n)&&!_35){
+if(this.in_selection(n)&&!_3a){
 this.highlight_row(n,true);
 }
 }
@@ -313,25 +331,42 @@ return true;
 }
 }
 return false;
-},select_all:function(_3d){
+},select_all:function(_42){
 if(!this.rows||!this.rows.length){
 return false;
 }
-var _3e=this.selection.join(",");
-this.clear_selection();
+var _43=this.selection.join(",");
+this.selection=new Array();
 for(var n in this.rows){
-if(!_3d||this.rows[n][_3d]==true){
+if(!_42||(this.rows[n]&&this.rows[n][_42]==true)){
 this.last_selected=n;
 this.highlight_row(n,true);
+}else{
+if(this.rows[n]){
+$(this.rows[n].obj).removeClass("selected").removeClass("unfocused");
+}
 }
 }
-if(this.selection.join(",")!=_3e){
-this.trigger_event("select");
+if(this.selection.join(",")!=_43){
+this.triggerEvent("select");
+}
+this.focus();
+return true;
+},invert_selection:function(){
+if(!this.rows||!this.rows.length){
+return false;
+}
+var _45=this.selection.join(",");
+for(var n in this.rows){
+this.highlight_row(n,true);
+}
+if(this.selection.join(",")!=_45){
+this.triggerEvent("select");
 }
 this.focus();
 return true;
 },clear_selection:function(id){
-var _41=this.selection.length;
+var _48=this.selection.length;
 if(id){
 for(var n=0;n<this.selection.length;n++){
 if(this.selection[n]==id){
@@ -342,14 +377,13 @@ break;
 }else{
 for(var n=0;n<this.selection.length;n++){
 if(this.rows[this.selection[n]]){
-this.set_classname(this.rows[this.selection[n]].obj,"selected",false);
-this.set_classname(this.rows[this.selection[n]].obj,"unfocused",false);
+$(this.rows[this.selection[n]].obj).removeClass("selected").removeClass("unfocused");
 }
 }
 this.selection=new Array();
 }
-if(_41&&!this.selection.length){
-this.trigger_event("select");
+if(_48&&!this.selection.length){
+this.triggerEvent("select");
 }
 },get_selection:function(){
 return this.selection;
@@ -359,25 +393,24 @@ return this.selection[0];
 }else{
 return null;
 }
-},highlight_row:function(id,_44){
-if(this.rows[id]&&!_44){
+},highlight_row:function(id,_4b){
+if(this.rows[id]&&!_4b){
 if(this.selection.length>1||!this.in_selection(id)){
 this.clear_selection();
 this.selection[0]=id;
-this.set_classname(this.rows[id].obj,"selected",true);
+$(this.rows[id].obj).addClass("selected");
 }
 }else{
 if(this.rows[id]){
 if(!this.in_selection(id)){
 this.selection[this.selection.length]=id;
-this.set_classname(this.rows[id].obj,"selected",true);
+$(this.rows[id].obj).addClass("selected");
 }else{
 var p=find_in_array(id,this.selection);
-var _46=this.selection.slice(0,p);
-var _47=this.selection.slice(p+1,this.selection.length);
-this.selection=_46.concat(_47);
-this.set_classname(this.rows[id].obj,"selected",false);
-this.set_classname(this.rows[id].obj,"unfocused",false);
+var _4d=this.selection.slice(0,p);
+var _4e=this.selection.slice(p+1,this.selection.length);
+this.selection=_4d.concat(_4e);
+$(this.rows[id].obj).removeClass("selected").removeClass("unfocused");
 }
 }
 }
@@ -385,19 +418,19 @@ this.set_classname(this.rows[id].obj,"unfocused",false);
 if(this.focused!=true){
 return true;
 }
-var _49=rcube_event.get_keycode(e);
-var _4a=rcube_event.get_modifier(e);
-switch(_49){
+var _50=rcube_event.get_keycode(e);
+var _51=rcube_event.get_modifier(e);
+switch(_50){
 case 40:
 case 38:
 case 63233:
 case 63232:
 rcube_event.cancel(e);
-return this.use_arrow_key(_49,_4a);
+return this.use_arrow_key(_50,_51);
 default:
 this.shiftkey=e.shiftKey;
-this.key_pressed=_49;
-this.trigger_event("keypress");
+this.key_pressed=_50;
+this.triggerEvent("keypress");
 if(this.key_pressed==this.BACKSPACE_KEY){
 return rcube_event.cancel(e);
 }
@@ -405,6 +438,10 @@ return rcube_event.cancel(e);
 return true;
 },key_down:function(e){
 switch(rcube_event.get_keycode(e)){
+case 27:
+if(this.drag_active){
+return this.drag_mouse_up(e);
+}
 case 40:
 case 38:
 case 63233:
@@ -415,29 +452,29 @@ return rcube_event.cancel(e);
 default:
 }
 return true;
-},use_arrow_key:function(_4c,_4d){
-var _4e;
-if(_4c==40||_4c==63233){
-_4e=this.get_next_row();
+},use_arrow_key:function(_53,_54){
+var _55;
+if(_53==40||_53==63233){
+_55=this.get_next_row();
 }else{
-if(_4c==38||_4c==63232){
-_4e=this.get_prev_row();
+if(_53==38||_53==63232){
+_55=this.get_prev_row();
 }
 }
-if(_4e){
-this.select_row(_4e.uid,_4d,true);
-this.scrollto(_4e.uid);
+if(_55){
+this.select_row(_55.uid,_54,true);
+this.scrollto(_55.uid);
 }
 return false;
 },scrollto:function(id){
 var row=this.rows[id].obj;
 if(row&&this.frame){
-var _51=Number(row.offsetTop);
-if(_51<Number(this.frame.scrollTop)){
-this.frame.scrollTop=_51;
+var _58=Number(row.offsetTop);
+if(_58<Number(this.frame.scrollTop)){
+this.frame.scrollTop=_58;
 }else{
-if(_51+Number(row.offsetHeight)>Number(this.frame.scrollTop)+Number(this.frame.offsetHeight)){
-this.frame.scrollTop=(_51+Number(row.offsetHeight))-Number(this.frame.offsetHeight);
+if(_58+Number(row.offsetHeight)>Number(this.frame.scrollTop)+Number(this.frame.offsetHeight)){
+this.frame.scrollTop=(_58+Number(row.offsetHeight))-Number(this.frame.offsetHeight);
 }
 }
 }
@@ -448,23 +485,31 @@ if(!this.drag_mouse_start||(Math.abs(m.x-this.drag_mouse_start.x)<3&&Math.abs(m.
 return false;
 }
 if(!this.draglayer){
-this.draglayer=new rcube_layer("rcmdraglayer",{x:0,y:0,vis:0,zindex:2000});
+this.draglayer=$("<div>").attr("id","rcmdraglayer").css({position:"absolute",display:"none","z-index":2000}).appendTo(document.body);
 }
-var _54="";
-var c,i,_57,_58,obj;
+var _5b="";
+var c,i,_5e,_5f,obj;
 for(var n=0;n<this.selection.length;n++){
 if(n>12){
-_54+="...";
+_5b+="...";
 break;
 }
 if(this.rows[this.selection[n]].obj){
 obj=this.rows[this.selection[n]].obj;
-_58="";
+_5f="";
 for(c=0,i=0;i<obj.childNodes.length;i++){
 if(obj.childNodes[i].nodeName=="TD"){
-if(((_57=obj.childNodes[i].firstChild)&&(_57.nodeType==3||_57.nodeName=="A"))&&(this.subject_col<0||(this.subject_col>=0&&this.subject_col==c))){
-_58=_57.nodeType==3?_57.data:_57.innerHTML;
-_54+=(_58.length>50?_58.substring(0,50)+"...":_58)+"<br />";
+if(((_5e=obj.childNodes[i].firstChild)&&(_5e.nodeType==3||_5e.nodeName=="A"))&&(this.subject_col<0||(this.subject_col>=0&&this.subject_col==c))){
+if(n==0){
+if(_5e.nodeType==3){
+this.drag_start_pos=$(obj.childNodes[i]).offset();
+}else{
+this.drag_start_pos=$(_5e).offset();
+}
+}
+_5f=_5e.nodeType==3?_5e.data:_5e.innerHTML;
+_5f=_5f.replace(/^\s+/i,"");
+_5b+=(_5f.length>50?_5f.substring(0,50)+"...":_5f)+"<br />";
 break;
 }
 c++;
@@ -472,86 +517,72 @@ c++;
 }
 }
 }
-this.draglayer.write(_54);
-this.draglayer.show(1);
+this.draglayer.html(_5b);
+this.draglayer.show();
 this.drag_active=true;
-this.trigger_event("dragstart");
+this.triggerEvent("dragstart");
 }
 if(this.drag_active&&this.draglayer){
 var pos=rcube_event.get_mouse_pos(e);
-this.draglayer.move(pos.x+20,pos.y-5);
-this.trigger_event("dragmove",e);
+this.draglayer.css({left:(pos.x+20)+"px",top:(pos.y-5+(bw.ie?document.documentElement.scrollTop:0))+"px"});
+this.triggerEvent("dragmove",e?e:window.event);
 }
 this.drag_start=false;
 return false;
 },drag_mouse_up:function(e){
 document.onmousemove=null;
-if(this.draglayer&&this.draglayer.visible){
-this.draglayer.show(0);
+if(this.draglayer&&this.draglayer.is(":visible")){
+if(this.drag_start_pos){
+this.draglayer.animate(this.drag_start_pos,300,"swing").hide(20);
+}else{
+this.draglayer.hide();
+}
 }
 this.drag_active=false;
-this.trigger_event("dragend");
+this.triggerEvent("dragend");
 rcube_event.remove_listener({element:document,event:"mousemove",object:this,method:"drag_mouse_move"});
 rcube_event.remove_listener({element:document,event:"mouseup",object:this,method:"drag_mouse_up"});
-var _5d=document.getElementsByTagName("IFRAME");
-for(var n in _5d){
-var _5f;
-if(_5d[n].contentDocument){
-_5f=_5d[n].contentDocument;
+var _64=document.getElementsByTagName("iframe");
+for(var n in _64){
+var _66;
+if(_64[n].contentDocument){
+_66=_64[n].contentDocument;
 }else{
-if(_5d[n].contentWindow){
-_5f=_5d[n].contentWindow.document;
+if(_64[n].contentWindow){
+_66=_64[n].contentWindow.document;
 }else{
-if(_5d[n].document){
-_5f=_5d[n].document;
+if(_64[n].document){
+_66=_64[n].document;
 }
 }
 }
-if(_5f){
+if(_66){
 if(this.iframe_events[n]){
-if(_5f.removeEventListener){
-_5f.removeEventListener("mousemove",this.iframe_events[n],false);
+if(_66.removeEventListener){
+_66.removeEventListener("mousemove",this.iframe_events[n],false);
 }else{
-if(_5f.detachEvent){
-_5f.detachEvent("onmousemove",this.iframe_events[n]);
+if(_66.detachEvent){
+_66.detachEvent("onmousemove",this.iframe_events[n]);
 }else{
-_5f["onmousemove"]=null;
+_66["onmousemove"]=null;
 }
 }
 }
-rcube_event.remove_listener({element:_5f,event:"mouseup",object:this,method:"drag_mouse_up"});
+rcube_event.remove_listener({element:_66,event:"mouseup",object:this,method:"drag_mouse_up"});
 }
 }
-this.focus();
 return rcube_event.cancel(e);
-},set_classname:function(obj,_61,set){
-var reg=new RegExp("s*"+_61,"i");
-if(!set&&obj.className.match(reg)){
-obj.className=obj.className.replace(reg,"");
+},set_background_mode:function(_67){
+if(_67){
+this.background=document.createElement("tbody");
 }else{
-if(set&&!obj.className.match(reg)){
-obj.className+=" "+_61;
-}
-}
-},addEventListener:function(evt,_65){
-if(this.events[evt]){
-var _66=this.events[evt].length;
-this.events[evt][_66]=_65;
-return _66;
-}else{
-return false;
-}
-},removeEventListener:function(evt,_68){
-if(this.events[evt]&&this.events[evt][_68]){
-this.events[evt][_68]=null;
-}
-},trigger_event:function(evt,p){
-if(this.events[evt]&&this.events[evt].length){
-for(var i=0;i<this.events[evt].length;i++){
-if(typeof (this.events[evt][i])=="function"){
-this.events[evt][i](this,p);
-}
+if(this.background){
+this.list.replaceChild(this.background,this.list.tBodies[0]);
+this.background=null;
 }
 }
 }};
+rcube_list_widget.prototype.addEventListener=rcube_event_engine.prototype.addEventListener;
+rcube_list_widget.prototype.removeEventListener=rcube_event_engine.prototype.removeEventListener;
+rcube_list_widget.prototype.triggerEvent=rcube_event_engine.prototype.triggerEvent;