Commit fdce8631 authored by joshua-gould's avatar joshua-gould

updated fit to window to include column track header width

parent c9904fab
...@@ -2890,53 +2890,56 @@ morpheus.HeatMap.prototype = { ...@@ -2890,53 +2890,56 @@ morpheus.HeatMap.prototype = {
}, },
getFitColumnSize : function() { getFitColumnSize : function() {
var heatmap = this.heatmap; var heatmap = this.heatmap;
var columnSizes = heatmap.getColumnPositions(); var availablePixels = this.getAvailableWidth();
var totalWidth = columnSizes.getItemSize(columnSizes.getLength() - 1)
+ columnSizes.getPosition(columnSizes.getLength() - 1);
var availableWidth = this.options.width ? this.options.width : this.$el
.outerWidth();
if (this.rowDendrogram) { if (this.rowDendrogram) {
availableWidth -= this.rowDendrogram.getUnscaledWidth(); availablePixels -= this.rowDendrogram.getUnscaledWidth();
} }
var rowTrackWidth = 45; var trackPixels = 12; // spacer
for (var i = 0, length = this.rowTracks.length; i < length; i++) { for (var i = 0, length = this.rowTracks.length; i < length; i++) {
var track = this.rowTracks[i]; var track = this.rowTracks[i];
if (track.isVisible()) { if (track.isVisible()) {
var size = morpheus.CanvasUtil.getPreferredSize(track); trackPixels += track.getUnscaledWidth();
var headerSize = morpheus.CanvasUtil }
.getPreferredSize(this.rowTrackHeaders[i]); }
var width = Math.max(headerSize.width, size.width); for (var i = 0, length = this.columnTracks.length; i < length; i++) {
rowTrackWidth += width; var track = this.columnTracks[i];
if (track.isVisible()) { // all column track headers have the
// same width
trackPixels += this.columnTrackHeaders[i].getUnscaledWidth();
break;
} }
} }
availableWidth -= rowTrackWidth;
var columnSize = columnSizes.getSize(); availablePixels -= trackPixels;
columnSize = columnSize * (availableWidth / totalWidth); var positions = heatmap.getColumnPositions();
columnSize = Math.min(22, columnSize); var totalCurrent = positions.getItemSize(positions.getLength() - 1)
return columnSize; + positions.getPosition(positions.getLength() - 1);
var size = positions.getSize();
size = size * (availablePixels / totalCurrent);
size = Math.min(22, size);
return size;
}, },
getFitRowSize : function() { getFitRowSize : function() {
var heatmap = this.heatmap; var heatmap = this.heatmap;
var rowSizes = heatmap.getRowPositions(); var availablePixels = this.getAvailableHeight();
var totalHeight = rowSizes.getItemSize(rowSizes.getLength() - 1)
+ rowSizes.getPosition(rowSizes.getLength() - 1);
var availableHeight = this.getAvailableHeight();
if (this.columnDendrogram) { if (this.columnDendrogram) {
availableHeight -= this.columnDendrogram.getUnscaledHeight(); availablePixels -= this.columnDendrogram.getUnscaledHeight();
} }
var columnTrackHeight = 8; var trackPixels = 12;
for (var i = 0, length = this.columnTracks.length; i < length; i++) { for (var i = 0, length = this.columnTracks.length; i < length; i++) {
var track = this.columnTracks[i]; var track = this.columnTracks[i];
if (track.isVisible()) { if (track.isVisible()) {
columnTrackHeight += morpheus.CanvasUtil trackPixels += track.getUnscaledHeight();
.getPreferredSize(track).height;
} }
} }
availableHeight -= columnTrackHeight; availablePixels -= trackPixels;
var rowSize = rowSizes.getSize(); var positions = heatmap.getRowPositions();
rowSize = rowSize * (availableHeight / totalHeight); var totalCurrent = positions.getItemSize(positions.getLength() - 1)
rowSize = Math.min(22, rowSize); + positions.getPosition(positions.getLength() - 1);
return rowSize; var size = positions.getSize();
size = size * (availablePixels / totalCurrent);
size = Math.min(22, size);
return size;
}, },
fitToWindow : function(repaint) { fitToWindow : function(repaint) {
this.heatmap.getRowPositions().setSize(this.getFitRowSize()); this.heatmap.getRowPositions().setSize(this.getFitRowSize());
......
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