function ScatterplotDialog() { this._createDialog(); } ScatterplotDialog.prototype._createDialog = function() { var self = this; var frame = DialogSystem.createDialog(); frame.width("900px"); var header = $('
').addClass("dialog-header").text('Scatterplot Matrix').appendTo(frame); var body = $('
').addClass("dialog-body").appendTo(frame); var footer = $( '' ).appendTo(frame); var html = $( '
' + '
' + '
' ).appendTo(body); this._elmts = DOM.bind(html); var left_footer = footer.find(".left"); var right_footer = footer.find(".right"); $('').text("Close").click(function() { self._dismiss(); }).appendTo(right_footer); this._renderMatrix(theProject.columnModel.columns); this._level = DialogSystem.showDialog(frame); }; ScatterplotDialog.prototype._renderMatrix = function(columns) { var self = this; var container = this._elmts.tableContainer; if (columns.length > 0) { var table = $('
').addClass("scatterplot-matrix-table")[0]; for (var i = 0; i < columns.length; i++) { var tr = table.insertRow(table.rows.length); for (var j = 0; j < i; j++) { var cx = columns[i]; var cy = columns[j]; var plotter_params = { 'cx' : cx.name, 'cy' : cy.name, 'w' : 20, 'h' : 20 }; var params = { project: theProject.id, engine: JSON.stringify(ui.browsingEngine.getJSON()), plotter: JSON.stringify(plotter_params) } var url = "/command/get-scatterplot?" + $.param(params); var name = cx.name + '(x) vs. ' + cy.name + '(y)'; var cell = $(tr.insertCell(j)); var link = $('').attr("title",name).click(function() { ui.browsingEngine.addFacet( "scatterplot", { "name" : name, "x_column" : cx.name, "y_column" : cy.name, "expression" : "value", "mode" : "scatterplot" } ); //self._dismiss(); }); var plot = $('').addClass("scatterplot").appendTo(link); link.appendTo(cell); } $(tr.insertCell(i)).text(columns[i]); for (var j = i + 1; j < columns.length; j++) { $(tr.insertCell(j)).text(" "); } } container.empty().append(table); } else { container.html( '
There are no columns in this dataset
' ); } }; ScatterplotDialog.prototype._dismiss = function() { DialogSystem.dismissUntil(this._level - 1); };