Commit 8d9b45f4 authored by jgould's avatar jgould

collapse columns fix

parent 319cf5c3
This source diff could not be displayed because it is too large. You can view the blob instead.
morpheus.TxtReader = function(options) { morpheus.TxtReader = function (options) {
this.options = $.extend({}, { this.options = $.extend({}, {
dataRowStart : 1, dataRowStart: 1,
dataColumnStart : 1 dataColumnStart: 1
}, options); }, options);
}; };
morpheus.TxtReader.prototype = { morpheus.TxtReader.prototype = {
read : function(fileOrUrl, callback) { read: function (fileOrUrl, callback) {
var _this = this; var _this = this;
var name = morpheus.Util.getBaseFileName(morpheus.Util var name = morpheus.Util.getBaseFileName(morpheus.Util
.getFileName(fileOrUrl)); .getFileName(fileOrUrl));
morpheus.BufferedReader.getArrayBuffer(fileOrUrl, function(err, morpheus.BufferedReader.getArrayBuffer(fileOrUrl, function (err,
arrayBuffer) { arrayBuffer) {
if (err) { if (err) {
callback(err); callback(err);
...@@ -25,7 +25,7 @@ morpheus.TxtReader.prototype = { ...@@ -25,7 +25,7 @@ morpheus.TxtReader.prototype = {
}); });
}, },
_read : function(datasetName, reader) { _read: function (datasetName, reader) {
var tab = /\t/; var tab = /\t/;
var header = morpheus.Util.trim(reader.readLine()).split(tab); var header = morpheus.Util.trim(reader.readLine()).split(tab);
if (this.options.dataRowStart > 1) { if (this.options.dataRowStart > 1) {
...@@ -50,7 +50,7 @@ morpheus.TxtReader.prototype = { ...@@ -50,7 +50,7 @@ morpheus.TxtReader.prototype = {
var tokens = s.split(tab); var tokens = s.split(tab);
for (var j = 0; j < dataColumnStart; j++) { for (var j = 0; j < dataColumnStart; j++) {
// row metadata // row metadata
arrayOfRowArrays[j].push(String(tokens[j])); arrayOfRowArrays[j].push(morpheus.Util.copyString(tokens[j]));
} }
for (var j = dataColumnStart; j <= ncols; j++) { for (var j = dataColumnStart; j <= ncols; j++) {
var token = tokens[j]; var token = tokens[j];
...@@ -59,23 +59,16 @@ morpheus.TxtReader.prototype = { ...@@ -59,23 +59,16 @@ morpheus.TxtReader.prototype = {
} }
} }
var dataset = new morpheus.Dataset({ var dataset = new morpheus.Dataset({
name : datasetName, name: datasetName,
rows : matrix.length, rows: matrix.length,
columns : ncols, columns: ncols,
array : matrix, array: matrix,
dataType : 'Float32' dataType: 'Float32'
}); });
// if (this.options.trim) {
// arrayOfRowArrays.forEach(function(array) {
// for (var i = 0, length = array.length; i < length; i++) {
// array[i] = $.trim(array[i]);
// }
// });
// }
// morpheus.DatasetUtil.fill(dataset, NaN);
var columnIds = dataset.getColumnMetadata().add('id'); var columnIds = dataset.getColumnMetadata().add('id');
for (var i = 0, j = dataColumnStart; i < ncols; i++, j++) { for (var i = 0, j = dataColumnStart; i < ncols; i++, j++) {
columnIds.setValue(i, String(header[j])); columnIds.setValue(i, morpheus.Util.copyString(header[j]));
} }
var rowIdVector = dataset.getRowMetadata().add('id'); var rowIdVector = dataset.getRowMetadata().add('id');
rowIdVector.array = arrayOfRowArrays[0]; rowIdVector.array = arrayOfRowArrays[0];
......
...@@ -57,13 +57,13 @@ morpheus.CollapseDatasetTool.prototype = { ...@@ -57,13 +57,13 @@ morpheus.CollapseDatasetTool.prototype = {
var dataset = project.getFullDataset(); var dataset = project.getFullDataset();
var rows = options.input.collapse == 'Rows'; var rows = options.input.collapse == 'Rows';
if (!rows) { if (!rows) {
dataset = morpheus.DatasetUtil.transposedView(dataset); dataset = new morpheus.TransposedDatasetView(dataset);
} }
var allFields = morpheus.MetadataUtil.getMetadataNames(dataset var allFields = morpheus.MetadataUtil.getMetadataNames(dataset
.getRowMetadata()); .getRowMetadata());
dataset = morpheus.CollapseDataset(dataset, collapseToFields, f, true); dataset = morpheus.CollapseDataset(dataset, collapseToFields, f, true);
if (!rows) { if (!rows) {
dataset = dataset.getDataset(); dataset = new morpheus.TransposedDatasetView(dataset);
} }
var set = new morpheus.Map(); var set = new morpheus.Map();
_.each(allFields, function (field) { _.each(allFields, function (field) {
......
...@@ -168,9 +168,19 @@ morpheus.HeatMapElementCanvas.prototype = { ...@@ -168,9 +168,19 @@ morpheus.HeatMapElementCanvas.prototype = {
var right = morpheus.Positions.getRight(clip, columnPositions); var right = morpheus.Positions.getRight(clip, columnPositions);
var top = morpheus.Positions.getTop(clip, rowPositions); var top = morpheus.Positions.getTop(clip, rowPositions);
var bottom = morpheus.Positions.getBottom(clip, rowPositions); var bottom = morpheus.Positions.getBottom(clip, rowPositions);
if (this.dataset.getRowCount() === 0 || this.dataset.getColumnCount() === 0) {
return context.fillText("No data", 0, 0);
} else {
context.translate(-clip.x, -clip.y); context.translate(-clip.x, -clip.y);
this._draw({left: left, right: right, top: top, bottom: bottom, context: context}); this._draw({
left: left,
right: right,
top: top,
bottom: bottom,
context: context
});
context.translate(clip.x, clip.y); context.translate(clip.x, clip.y);
}
}, },
_draw: function (options) { _draw: function (options) {
...@@ -180,6 +190,7 @@ morpheus.HeatMapElementCanvas.prototype = { ...@@ -180,6 +190,7 @@ morpheus.HeatMapElementCanvas.prototype = {
var bottom = options.bottom; var bottom = options.bottom;
var context = options.context; var context = options.context;
var dataset = this.dataset; var dataset = this.dataset;
var columnPositions = this.columnPositions; var columnPositions = this.columnPositions;
var rowPositions = this.rowPositions; var rowPositions = this.rowPositions;
......
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