mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-29 17:27:22 +02:00
AWESOME MASSIVE RED DIFF because animation factory cleanup and promise animations now :D
This commit is contained in:
parent
e38d747780
commit
6091fd5a2e
1 changed files with 0 additions and 187 deletions
|
@ -114,53 +114,6 @@ AnimationFactory.prototype.playRefreshAnimation = function(gitVisuals) {
|
||||||
return animation.getPromise();
|
return animation.getPromise();
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimationFactory.prototype.overrideOpacityDepth2 = function(attr, opacity) {
|
|
||||||
opacity = (opacity === undefined) ? 1 : opacity;
|
|
||||||
|
|
||||||
var newAttr = {};
|
|
||||||
|
|
||||||
_.each(attr, function(partObj, partName) {
|
|
||||||
newAttr[partName] = {};
|
|
||||||
_.each(partObj, function(val, key) {
|
|
||||||
if (key == 'opacity') {
|
|
||||||
newAttr[partName][key] = opacity;
|
|
||||||
} else {
|
|
||||||
newAttr[partName][key] = val;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
return newAttr;
|
|
||||||
};
|
|
||||||
|
|
||||||
AnimationFactory.prototype.overrideOpacityDepth3 = function(snapShot, opacity) {
|
|
||||||
var newSnap = {};
|
|
||||||
|
|
||||||
_.each(snapShot, function(visObj, visID) {
|
|
||||||
newSnap[visID] = this.overrideOpacityDepth2(visObj, opacity);
|
|
||||||
}, this);
|
|
||||||
return newSnap;
|
|
||||||
};
|
|
||||||
|
|
||||||
AnimationFactory.prototype.genCommitBirthClosureFromSnapshot = function(step, gitVisuals) {
|
|
||||||
var time = GRAPHICS.defaultAnimationTime * 1.0;
|
|
||||||
var bounceTime = time * 1.5;
|
|
||||||
|
|
||||||
var visNode = step.newCommit.get('visNode');
|
|
||||||
var afterAttrWithOpacity = this.overrideOpacityDepth2(step.afterSnapshot[visNode.getID()]);
|
|
||||||
var afterSnapWithOpacity = this.overrideOpacityDepth3(step.afterSnapshot);
|
|
||||||
|
|
||||||
var animation = function() {
|
|
||||||
visNode.setBirthFromSnapshot(step.beforeSnapshot);
|
|
||||||
visNode.parentInFront();
|
|
||||||
gitVisuals.visBranchesFront();
|
|
||||||
|
|
||||||
visNode.animateToAttr(afterAttrWithOpacity, bounceTime, 'bounce');
|
|
||||||
visNode.animateOutgoingEdgesToAttr(afterSnapWithOpacity, bounceTime);
|
|
||||||
};
|
|
||||||
|
|
||||||
return animation;
|
|
||||||
};
|
|
||||||
|
|
||||||
AnimationFactory.prototype.refreshTree = function(animationQueue, gitVisuals) {
|
AnimationFactory.prototype.refreshTree = function(animationQueue, gitVisuals) {
|
||||||
animationQueue.add(new Animation({
|
animationQueue.add(new Animation({
|
||||||
closure: function() {
|
closure: function() {
|
||||||
|
@ -169,36 +122,6 @@ AnimationFactory.prototype.refreshTree = function(animationQueue, gitVisuals) {
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimationFactory.prototype.rebaseAnimation = function(animationQueue, rebaseResponse,
|
|
||||||
gitEngine, gitVisuals) {
|
|
||||||
|
|
||||||
this.rebaseHighlightPart(animationQueue, rebaseResponse, gitEngine);
|
|
||||||
this.rebaseBirthPart(animationQueue, rebaseResponse, gitEngine, gitVisuals);
|
|
||||||
};
|
|
||||||
|
|
||||||
AnimationFactory.prototype.rebaseHighlightPart = function(animationQueue, rebaseResponse, gitEngine) {
|
|
||||||
// we want to highlight all the old commits
|
|
||||||
var oldCommits = rebaseResponse.toRebaseArray;
|
|
||||||
// we are either highlighting to a visBranch or a visNode
|
|
||||||
var visBranch = rebaseResponse.destinationBranch.get('visBranch');
|
|
||||||
if (!visBranch) {
|
|
||||||
// in the case where we rebase onto a commit
|
|
||||||
visBranch = rebaseResponse.destinationBranch.get('visNode');
|
|
||||||
}
|
|
||||||
|
|
||||||
_.each(oldCommits, function(oldCommit) {
|
|
||||||
var visNode = oldCommit.get('visNode');
|
|
||||||
var anPack = makeHighlightAnimation(visNode, visBranch);
|
|
||||||
animationQueue.add(new Animation({
|
|
||||||
closure: anPack.animation,
|
|
||||||
duration: anPack.duration
|
|
||||||
}));
|
|
||||||
}, this);
|
|
||||||
|
|
||||||
var fullTime = GRAPHICS.defaultAnimationTime * 0.66;
|
|
||||||
this.delay(animationQueue, fullTime * 2);
|
|
||||||
};
|
|
||||||
|
|
||||||
AnimationFactory.prototype.genHighlightPromiseAnimation = function(commit, destObj) {
|
AnimationFactory.prototype.genHighlightPromiseAnimation = function(commit, destObj) {
|
||||||
// could be branch or node
|
// could be branch or node
|
||||||
var visObj = destObj.get('visBranch') || destObj.get('visNode');
|
var visObj = destObj.get('visBranch') || destObj.get('visNode');
|
||||||
|
@ -212,51 +135,6 @@ AnimationFactory.prototype.playHighlightPromiseAnimation = function(commit, dest
|
||||||
return animation.getPromise();
|
return animation.getPromise();
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimationFactory.prototype.rebaseBirthPart = function(animationQueue, rebaseResponse,
|
|
||||||
gitEngine, gitVisuals) {
|
|
||||||
var rebaseSteps = rebaseResponse.rebaseSteps;
|
|
||||||
|
|
||||||
var newVisNodes = [];
|
|
||||||
_.each(rebaseSteps, function(step) {
|
|
||||||
var visNode = step.newCommit.get('visNode');
|
|
||||||
|
|
||||||
newVisNodes.push(visNode);
|
|
||||||
visNode.setOpacity(0);
|
|
||||||
visNode.setOutgoingEdgesOpacity(0);
|
|
||||||
}, this);
|
|
||||||
|
|
||||||
var previousVisNodes = [];
|
|
||||||
_.each(rebaseSteps, function(rebaseStep, index) {
|
|
||||||
var toOmit = newVisNodes.slice(index + 1);
|
|
||||||
|
|
||||||
var snapshotPart = this.genFromToSnapshotAnimation(
|
|
||||||
rebaseStep.beforeSnapshot,
|
|
||||||
rebaseStep.afterSnapshot,
|
|
||||||
toOmit,
|
|
||||||
previousVisNodes,
|
|
||||||
gitVisuals
|
|
||||||
);
|
|
||||||
var birthPart = this.genCommitBirthClosureFromSnapshot(rebaseStep, gitVisuals);
|
|
||||||
|
|
||||||
var animation = function() {
|
|
||||||
snapshotPart();
|
|
||||||
birthPart();
|
|
||||||
};
|
|
||||||
|
|
||||||
animationQueue.add(new Animation({
|
|
||||||
closure: animation,
|
|
||||||
duration: GRAPHICS.defaultAnimationTime * 1.5
|
|
||||||
}));
|
|
||||||
|
|
||||||
previousVisNodes.push(rebaseStep.newCommit.get('visNode'));
|
|
||||||
}, this);
|
|
||||||
|
|
||||||
// need to delay to let bouncing finish
|
|
||||||
this.delay(animationQueue);
|
|
||||||
|
|
||||||
this.refreshTree(animationQueue, gitVisuals);
|
|
||||||
};
|
|
||||||
|
|
||||||
AnimationFactory.prototype.delay = function(animationQueue, time) {
|
AnimationFactory.prototype.delay = function(animationQueue, time) {
|
||||||
time = time || GRAPHICS.defaultAnimationTime;
|
time = time || GRAPHICS.defaultAnimationTime;
|
||||||
animationQueue.add(new Animation({
|
animationQueue.add(new Animation({
|
||||||
|
@ -265,70 +143,5 @@ AnimationFactory.prototype.delay = function(animationQueue, time) {
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
AnimationFactory.prototype.genSetAllCommitOpacities = function(visNodes, opacity) {
|
|
||||||
// need to slice for closure
|
|
||||||
var nodesToAnimate = visNodes.slice(0);
|
|
||||||
|
|
||||||
return function() {
|
|
||||||
_.each(nodesToAnimate, function(visNode) {
|
|
||||||
visNode.setOpacity(opacity);
|
|
||||||
visNode.setOutgoingEdgesOpacity(opacity);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
AnimationFactory.prototype.stripObjectsFromSnapshot = function(snapShot, toOmit) {
|
|
||||||
var ids = [];
|
|
||||||
_.each(toOmit, function(obj) {
|
|
||||||
ids.push(obj.getID());
|
|
||||||
});
|
|
||||||
|
|
||||||
var newSnapshot = {};
|
|
||||||
_.each(snapShot, function(val, key) {
|
|
||||||
if (_.include(ids, key)) {
|
|
||||||
// omit
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
newSnapshot[key] = val;
|
|
||||||
}, this);
|
|
||||||
return newSnapshot;
|
|
||||||
};
|
|
||||||
|
|
||||||
AnimationFactory.prototype.genFromToSnapshotAnimation = function(
|
|
||||||
beforeSnapshot,
|
|
||||||
afterSnapshot,
|
|
||||||
commitsToOmit,
|
|
||||||
commitsToFixOpacity,
|
|
||||||
gitVisuals) {
|
|
||||||
|
|
||||||
// we want to omit the commit outgoing edges
|
|
||||||
var toOmit = [];
|
|
||||||
_.each(commitsToOmit, function(visNode) {
|
|
||||||
toOmit.push(visNode);
|
|
||||||
toOmit = toOmit.concat(visNode.get('outgoingEdges'));
|
|
||||||
});
|
|
||||||
|
|
||||||
var fixOpacity = function(obj) {
|
|
||||||
if (!obj) { return; }
|
|
||||||
_.each(obj, function(attr, partName) {
|
|
||||||
obj[partName].opacity = 1;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
// HORRIBLE loop to fix opacities all throughout the snapshot
|
|
||||||
_.each([beforeSnapshot, afterSnapshot], function(snapShot) {
|
|
||||||
_.each(commitsToFixOpacity, function(visNode) {
|
|
||||||
fixOpacity(snapShot[visNode.getID()]);
|
|
||||||
_.each(visNode.get('outgoingEdges'), function(visEdge) {
|
|
||||||
fixOpacity(snapShot[visEdge.getID()]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
return function() {
|
|
||||||
gitVisuals.animateAllFromAttrToAttr(beforeSnapshot, afterSnapshot, toOmit);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.AnimationFactory = AnimationFactory;
|
exports.AnimationFactory = AnimationFactory;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue