mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-28 00:40:07 +02:00
refresh tree update -- much better
This commit is contained in:
parent
04251a3da3
commit
24c344a4d0
2 changed files with 27 additions and 22 deletions
12
src/tree.js
12
src/tree.js
|
@ -28,12 +28,9 @@ var VisBranch = Backbone.Model.extend({
|
||||||
|
|
||||||
genGraphics: function(paper) {
|
genGraphics: function(paper) {
|
||||||
var pos = this.getPosition();
|
var pos = this.getPosition();
|
||||||
if (!paper) {
|
|
||||||
console.log('no paper');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var name = this.get('branch').get('id');
|
var name = this.get('branch').get('id');
|
||||||
var text = paper.text(pos.x, pos.y, String(name));
|
var text = paper.text(pos.x, pos.y, String(name));
|
||||||
|
|
||||||
text.attr({
|
text.attr({
|
||||||
'font-size': 16
|
'font-size': 16
|
||||||
});
|
});
|
||||||
|
@ -46,7 +43,8 @@ var VisBranch = Backbone.Model.extend({
|
||||||
x: pos.x,
|
x: pos.x,
|
||||||
y: pos.y
|
y: pos.y
|
||||||
},
|
},
|
||||||
speed || this.get('animationSpeed'),
|
// speed can be 0 when we want a harsh animation
|
||||||
|
speed !== undefined ? speed : this.get('animationSpeed'),
|
||||||
easing || this.get('animationEasing')
|
easing || this.get('animationEasing')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -100,7 +98,7 @@ var VisNode = Backbone.Model.extend({
|
||||||
cx: pos.x,
|
cx: pos.x,
|
||||||
cy: pos.y
|
cy: pos.y
|
||||||
},
|
},
|
||||||
speed || this.get('animationSpeed'),
|
speed !== undefined ? speed : this.get('animationSpeed'),
|
||||||
easing || this.get('animationEasing')
|
easing || this.get('animationEasing')
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -210,7 +208,7 @@ var VisEdge = Backbone.Model.extend({
|
||||||
this.get('path').stop().animate({
|
this.get('path').stop().animate({
|
||||||
path: newPath
|
path: newPath
|
||||||
},
|
},
|
||||||
speed || this.get('animationSpeed'),
|
speed !== undefined ? speed : this.get('animationSpeed'),
|
||||||
easing || this.get('animationEasing')
|
easing || this.get('animationEasing')
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
|
@ -71,19 +71,21 @@ GitVisuals.prototype.toScreenCoords = function(pos) {
|
||||||
**************************************/
|
**************************************/
|
||||||
|
|
||||||
GitVisuals.prototype.refreshTree = function() {
|
GitVisuals.prototype.refreshTree = function() {
|
||||||
if (!this.paperReady) { console.warn('called refresh tree when not ready yet'); return; }
|
|
||||||
|
|
||||||
this.calculateTreeCoords();
|
this.calculateTreeCoords();
|
||||||
this.animateNodePositions();
|
|
||||||
this.animateEdges();
|
this.animateAll();
|
||||||
this.animateRefs();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
GitVisuals.prototype.refreshTreeHarsh = function() {
|
GitVisuals.prototype.refreshTreeHarsh = function() {
|
||||||
this.calculateTreeCoords();
|
this.calculateTreeCoords();
|
||||||
|
|
||||||
this.animateEdges();
|
this.animateAll(0);
|
||||||
this.animateNodePositions();
|
};
|
||||||
|
|
||||||
|
GitVisuals.prototype.animateAll = function(speed) {
|
||||||
|
this.animateEdges(speed);
|
||||||
|
this.animateNodePositions(speed);
|
||||||
|
this.animateRefs(speed);
|
||||||
};
|
};
|
||||||
|
|
||||||
GitVisuals.prototype.calculateTreeCoords = function() {
|
GitVisuals.prototype.calculateTreeCoords = function() {
|
||||||
|
@ -180,9 +182,9 @@ GitVisuals.prototype.calcDepth = function() {
|
||||||
|
|
||||||
**************************************/
|
**************************************/
|
||||||
|
|
||||||
GitVisuals.prototype.animateNodePositions = function() {
|
GitVisuals.prototype.animateNodePositions = function(speed) {
|
||||||
_.each(this.visNodeMap, function(visNode) {
|
_.each(this.visNodeMap, function(visNode) {
|
||||||
visNode.animateUpdatedPosition();
|
visNode.animateUpdatedPosition(speed);
|
||||||
}, this);
|
}, this);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -196,15 +198,15 @@ GitVisuals.prototype.addBranch = function(branch) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
GitVisuals.prototype.animateRefs = function() {
|
GitVisuals.prototype.animateRefs = function(speed) {
|
||||||
this.visBranchCollection.each(function(visBranch) {
|
this.visBranchCollection.each(function(visBranch) {
|
||||||
visBranch.animateUpdatedPos(paper);
|
visBranch.animateUpdatedPos(speed);
|
||||||
}, this);
|
}, this);
|
||||||
};
|
};
|
||||||
|
|
||||||
GitVisuals.prototype.animateEdges = function() {
|
GitVisuals.prototype.animateEdges = function(speed) {
|
||||||
this.edgeCollection.each(function(edge) {
|
this.edgeCollection.each(function(edge) {
|
||||||
edge.animateUpdatedPath();
|
edge.animateUpdatedPath(speed);
|
||||||
}, this);
|
}, this);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -232,7 +234,12 @@ GitVisuals.prototype.calcDepthRecursive = function(commit, depth) {
|
||||||
GitVisuals.prototype.canvasResize = function(width, height) {
|
GitVisuals.prototype.canvasResize = function(width, height) {
|
||||||
this.paperWidth = width;
|
this.paperWidth = width;
|
||||||
this.paperHeight = height;
|
this.paperHeight = height;
|
||||||
// TODO figure out whether we are animating or not and possibly delay this
|
|
||||||
|
// there will be one resize before paper is ready -- if so, dont call it
|
||||||
|
if (!this.paperReady) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.refreshTree();
|
this.refreshTree();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -294,7 +301,7 @@ GitVisuals.prototype.drawTreeFirstTime = function() {
|
||||||
visBranch.genGraphics(paper);
|
visBranch.genGraphics(paper);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
this.refreshTree();
|
this.refreshTreeHarsh();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue