Commit 6ab07bed authored by Joshua Gould's avatar Joshua Gould

tooltip

parent 1b464c40
...@@ -21,7 +21,7 @@ morpheus.ChartTool2 = function (chartOptions) { ...@@ -21,7 +21,7 @@ morpheus.ChartTool2 = function (chartOptions) {
this.formBuilder = formBuilder; this.formBuilder = formBuilder;
formBuilder.append({ formBuilder.append({
name: 'chart_type', name: 'chart_type',
type: 'select', type: 'bootstrap-select',
options: ['boxplot', 'row scatter', 'column scatter', 'row profile', 'column profile'] options: ['boxplot', 'row scatter', 'column scatter', 'row profile', 'column profile']
}); });
var rowOptions = []; var rowOptions = [];
...@@ -105,18 +105,18 @@ morpheus.ChartTool2 = function (chartOptions) { ...@@ -105,18 +105,18 @@ morpheus.ChartTool2 = function (chartOptions) {
updateOptions(); updateOptions();
formBuilder.append({ formBuilder.append({
name: 'group_columns_by', name: 'group_columns_by',
type: 'select', type: 'bootstrap-select',
options: options options: options
}); });
formBuilder.append({ formBuilder.append({
name: 'group_rows_by', name: 'group_rows_by',
type: 'select', type: 'bootstrap-select',
options: options options: options
}); });
formBuilder.append({ formBuilder.append({
name: 'axis_label', name: 'axis_label',
type: 'select', type: 'bootstrap-select',
options: rowOptions options: rowOptions
}); });
formBuilder.append({ formBuilder.append({
...@@ -127,20 +127,26 @@ morpheus.ChartTool2 = function (chartOptions) { ...@@ -127,20 +127,26 @@ morpheus.ChartTool2 = function (chartOptions) {
formBuilder.append({ formBuilder.append({
name: 'color', name: 'color',
type: 'select', type: 'bootstrap-select',
options: options options: options
}); });
formBuilder.append({ formBuilder.append({
name: 'size', name: 'size',
type: 'select', type: 'bootstrap-select',
options: numericOptions options: numericOptions
}); });
formBuilder.append({
name: 'tooltip',
type: 'bootstrap-select',
multiple: true,
search: true,
options: options.slice(1)
});
function setVisibility() { function setVisibility() {
// 'boxplot', 'row scatter', 'column scatter', 'row profile', 'column profile' // 'boxplot', 'row scatter', 'column scatter', 'row profile', 'column profile'
var chartType = formBuilder.getValue('chart_type'); var chartType = formBuilder.getValue('chart_type');
formBuilder.setVisible('group_rows_by', chartType === 'boxplot'); formBuilder.setVisible('group_rows_by', chartType === 'boxplot');
formBuilder.setVisible('group_columns_by', chartType === 'boxplot'); formBuilder.setVisible('group_columns_by', chartType === 'boxplot');
if (chartType !== 'boxplot') { if (chartType !== 'boxplot') {
...@@ -162,9 +168,21 @@ morpheus.ChartTool2 = function (chartOptions) { ...@@ -162,9 +168,21 @@ morpheus.ChartTool2 = function (chartOptions) {
} }
formBuilder.$form.find('select').on('change', function () { this.tooltip = [];
setVisibility(); formBuilder.$form.find('select').on('change', function (e) {
_this.draw(); if ($(this).attr('name') === 'tooltip') {
var tooltipVal = _this.formBuilder.getValue('tooltip');
_this.tooltip = [];
if (tooltipVal != null) {
tooltipVal.forEach(function (tip) {
_this.tooltip.push(morpheus.ChartTool2.getVectorInfo(tip));
});
}
} else {
setVisibility();
_this.draw();
}
}); });
formBuilder.$form.find('input').on('click', function () { formBuilder.$form.find('input').on('click', function () {
_this.draw(); _this.draw();
...@@ -400,18 +418,15 @@ morpheus.ChartTool2.prototype = { ...@@ -400,18 +418,15 @@ morpheus.ChartTool2.prototype = {
j: j j: j
}; };
obj.toString = function () { obj.toString = function () {
var trackNames = _this.getVisibleTrackNames(!isColumnChart);
var s = []; var s = [];
for (var tipIndex = 0; tipIndex < _this.tooltip.length; tipIndex++) {
for (var i = 0; i < trackNames.length; i++) { var tip = _this.tooltip[tipIndex];
var v = dataset.getColumnMetadata() if (tip.isColumns) {
.getByName(trackNames[i]); morpheus.HeatMapTooltipProvider.vectorToString(dataset.getColumnMetadata().getByName(tip.field),
if (v) {
morpheus.HeatMapTooltipProvider.vectorToString(v,
this.j, s, '<br>'); this.j, s, '<br>');
} }
} }
return s.join(''); return s.join('');
}; };
...@@ -489,7 +504,6 @@ morpheus.ChartTool2.prototype = { ...@@ -489,7 +504,6 @@ morpheus.ChartTool2.prototype = {
var traces = []; var traces = [];
var ticktext = []; var ticktext = [];
var tickvals = []; var tickvals = [];
console.log(dataset.getRowCount(), dataset.getColumnCount());
for (var j = 0, ncols = dataset.getColumnCount(); j < ncols; j++) { for (var j = 0, ncols = dataset.getColumnCount(); j < ncols; j++) {
ticktext.push(axisLabelVector != null ? axisLabelVector.getValue(j) : '' + j); ticktext.push(axisLabelVector != null ? axisLabelVector.getValue(j) : '' + j);
tickvals.push(j); tickvals.push(j);
...@@ -516,21 +530,22 @@ morpheus.ChartTool2.prototype = { ...@@ -516,21 +530,22 @@ morpheus.ChartTool2.prototype = {
j: j j: j
}; };
obj.toString = function () { obj.toString = function () {
var trackNames = _this.getVisibleTrackNames(!isColumnChart);
var s = []; var s = [];
for (var tipIndex = 0; tipIndex < _this.tooltip.length; tipIndex++) {
for (var i = 0; i < trackNames.length; i++) { var tip = _this.tooltip[tipIndex];
var v = dataset.getColumnMetadata() if (tip.isColumns) {
.getByName(trackNames[i]); morpheus.HeatMapTooltipProvider.vectorToString(dataset.getColumnMetadata().getByName(tip.field),
if (v) {
morpheus.HeatMapTooltipProvider.vectorToString(v,
this.j, s, '<br>'); this.j, s, '<br>');
} else {
morpheus.HeatMapTooltipProvider.vectorToString(dataset.getRowMetadata().getByName(tip.field),
this.i, s, '<br>');
} }
} }
return s.join(''); return s.join('');
}; };
text.push(obj); text.push(obj);
} }
var trace = { var trace = {
...@@ -635,7 +650,6 @@ morpheus.ChartTool2.prototype = { ...@@ -635,7 +650,6 @@ morpheus.ChartTool2.prototype = {
var item = array[k]; var item = array[k];
y.push(dataset.getValue(item.row, item.column)); y.push(dataset.getValue(item.row, item.column));
if (points) { if (points) {
x.push(scale(Math.random())); x.push(scale(Math.random()));
if (colorByVector) { if (colorByVector) {
var colorByValue = colorByGetter(item); var colorByValue = colorByGetter(item);
...@@ -647,34 +661,22 @@ morpheus.ChartTool2.prototype = { ...@@ -647,34 +661,22 @@ morpheus.ChartTool2.prototype = {
size.push(sizeFunction(sizeByValue)); size.push(sizeFunction(sizeByValue));
} }
var obj = { var obj = {
row: item.row, i: item.row,
column: item.column j: item.column
}; };
obj.toString = function () { obj.toString = function () {
var s = []; var s = [];
var trackNames = _this.getVisibleTrackNames(true); for (var tipIndex = 0; tipIndex < _this.tooltip.length; tipIndex++) {
var tip = _this.tooltip[tipIndex];
for (var trackIndex = 0; trackIndex < trackNames.length; trackIndex++) { if (tip.isColumns) {
var v = dataset.getColumnMetadata().getByName( morpheus.HeatMapTooltipProvider.vectorToString(dataset.getColumnMetadata().getByName(tip.field),
trackNames[trackIndex]); this.j, s, '<br>');
if (v) { } else {
morpheus.HeatMapTooltipProvider.vectorToString(v, morpheus.HeatMapTooltipProvider.vectorToString(dataset.getRowMetadata().getByName(tip.field),
this.column, s, '<br>'); this.i, s, '<br>');
} }
} }
trackNames = _this.getVisibleTrackNames(false);
for (var trackIndex = 0; trackIndex < trackNames.length; trackIndex++) {
var v = dataset.getRowMetadata().getByName(
trackNames[trackIndex]);
if (v) {
morpheus.HeatMapTooltipProvider.vectorToString(v,
this.row, s, '<br>');
}
}
return s.join(''); return s.join('');
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment