translateFlowProgrammer: function()

in app/scripts/core/apiProvider.js [22:66]


    translateFlowProgrammer: function(callback, jsonData) {
        var nodes = {};
        var nodeIndex = 1;
        var createNode = function(nodes, nodeId, nodeIndex, nodeType) {
        
            var coords = this.getStoredCoords(nodeId);

            if(coords === null) {
                coords = this.logarithmicSpiraCoords(nodeIndex);
            }

            var data = {
                id: nodeId,
                type : nodeType,
                coords: coords
            };

            if(Ember.isNone(nodes[nodeId])) {
                nodes[nodeId] = data;
                return true;
            }

            return false;
        }.bind(this);
        
        jsonData.edgeProperties.forEach(function(value, index) {
            var tailNodeId = value.edge.tailNodeConnector.node.id, 
                tailNodeType = value.edge.tailNodeConnector.node.type;

            var headNodeId = value.edge.headNodeConnector.node.id,
                headNodeType = value.edge.headNodeConnector.node.type;
            
            if(createNode(nodes, tailNodeId, nodeIndex, tailNodeType)) {
                nodeIndex++;
            }
            if(createNode(nodes, headNodeId, nodeIndex, headNodeType)) {
                nodeIndex++;
            }
        }); 
        
        return callback({
            nodes       : nodes,
            connections : jsonData.edgeProperties
        });
    },