1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
(function( $, app ) {
var ui = app.ns("ui");
ui.ResultTable = ui.Table.extend({
defaults: {
width: 500,
height: 400
},
init: function() {
this._super();
this.on("rowClick", this._showPreview_handler);
this.selectedRow = null;
$(document).bind("keydown", this._nav_handler);
},
remove: function() {
$(document).unbind("keydown", this._nav_handler);
this._super();
},
attach: function(parent) {
if(parent) {
var height = parent.height() || ( $(document).height() - parent.offset().top - 41 ); // 41 = height in px of .uiTable-tools + uiTable-header
var width = parent.width();
this.el.width( width );
this.body.width( width ).height( height );
}
this._super(parent);
},
showPreview: function(row) {
row.addClass("selected");
this.preview = new app.ui.JsonPanel({
title: i18n.text("Browser.ResultSourcePanelTitle"),
json: row.data("row")._source,
onClose: function() { row.removeClass("selected"); }
});
},
_nav_handler: function(jEv) {
if(jEv.keyCode !== 40 && jEv.keyCode !== 38) {
return;
}
this.selectedRow && this.preview && this.preview.remove();
if(jEv.keyCode === 40) { // up arrow
this.selectedRow = this.selectedRow ? this.selectedRow.next("TR") : this.body.find("TR:first");
} else if(jEv.keyCode === 38) { // down arrow
this.selectedRow = this.selectedRow ? this.selectedRow.prev("TR") : this.body.find("TR:last");
}
this.selectedRow && this.showPreview(this.selectedRow);
},
_showPreview_handler: function(obj, data) {
this.showPreview(this.selectedRow = data.row);
}
});
})( this.jQuery, this.app );
|