Commit 8d9b45f4 authored by jgould's avatar jgould

collapse columns fix

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