5 ui.ResultTable = ui.Table.extend({
13 this.on("rowClick", this._showPreview_handler);
14 this.selectedRow = null;
15 $(document).bind("keydown", this._nav_handler);
18 $(document).unbind("keydown", this._nav_handler);
21 attach: function(parent) {
23 var height = parent.height() || ( $(document).height() - parent.offset().top - 41 ); // 41 = height in px of .uiTable-tools + uiTable-header
24 var width = parent.width();
25 this.el.width( width );
26 this.body.width( width ).height( height );
30 showPreview: function(row) {
31 row.addClass("selected");
32 this.preview = new app.ui.JsonPanel({
33 title: i18n.text("Browser.ResultSourcePanelTitle"),
34 json: row.data("row")._source,
35 onClose: function() { row.removeClass("selected"); }
38 _nav_handler: function(jEv) {
39 if(jEv.keyCode !== 40 && jEv.keyCode !== 38) {
42 this.selectedRow && this.preview && this.preview.remove();
43 if(jEv.keyCode === 40) { // up arrow
44 this.selectedRow = this.selectedRow ? this.selectedRow.next("TR") : this.body.find("TR:first");
45 } else if(jEv.keyCode === 38) { // down arrow
46 this.selectedRow = this.selectedRow ? this.selectedRow.prev("TR") : this.body.find("TR:last");
48 this.selectedRow && this.showPreview(this.selectedRow);
50 _showPreview_handler: function(obj, data) {
51 this.showPreview(this.selectedRow = data.row);
55 })( this.jQuery, this.app );