2013-04-20 24 views
9

Sigma.js, GitHub'larına birkaç examples listelemektedir, ancak bir eklenti yüklemek için gerekli olanlardan net değildir.sigma.js eklentilerini nasıl ekleyebilirim?

Eklentinin JavaScript dosyasına işaret eden ancak çalışmayan bir <script> etiketi eklemeyi denedim. Eklentiyi siteme nasıl alırım/kullanırım/kopyalarım?

+0

Belki de Python ile rahat olduğum sürece, javascript'in benim forte'imi aradığınızdan bahsetmemeliydim. – Tuomas

+0

Doğru anlıyorum, eklentiler sadece javascript dosyalarıdır. Html dosyanızda bir eklenti ve "referans" indireceğinizi düşünürdüm. gibi "script type =" text/javascript "src = ...." – user1043144

+0

Hayır, üzgünüm, bunu denedim ama işe yaramadı. Sigma.js sitesinde listelenen örnekler, gerçek eklenti işlevlerinin yanı sıra, başka şeylere sahip gibi görünüyor. – Tuomas

cevap

7

Öncelikle, gerek sigma-dosyaları içerir:

<script src="sigma/sigma.concat.js"></script> 
<script src="sigma/plugins/sigma.parseGexf.js"></script> 
<script src="sigma/plugins/sigma.forceatlas2.js"></script> 

Sonra senaryoyu başlatmak;

<script type="text/javascript"> 
function init() { 
    // Instanciate sigma.js and customize rendering : 
    sigInst = sigma.init(document.getElementById('graph')).drawingProperties({ 
    defaultLabelColor: '#fff', 
    defaultLabelSize: 14, 
    defaultLabelBGColor: '#fff', 
    defaultLabelHoverColor: '#000', 
    labelThreshold: 6, 
    defaultEdgeType: 'curve' 

    }).graphProperties({ 
    minNodeSize: 2, 
    maxNodeSize: 5, 
    minEdgeSize: 1, 
    maxEdgeSize: 1 

    }).mouseProperties({ 
    maxRatio: 32 
    }); 

    // Parse a GEXF encoded file to fill the graph 
    // (requires "sigma.parseGexf.js" to be included) 
    sigInst.parseGexf('getgefx.php'); 


    sigInst.bind('downnodes',function(event){ 
    var nodes = event.content; 
    var neighbors = {}; 
    sigInst.iterEdges(function(e){ 
     if(nodes.indexOf(e.source)>=0 || nodes.indexOf(e.target)>=0){ 
     neighbors[e.source] = 1; 
     neighbors[e.target] = 1; 

     } 
    }).iterNodes(function(n){ 
     if(!neighbors[n.id]){ 
     n.attr['temphidden'] = 1; 
     n.attr['oldcolor'] = n.color; 
     // var c = sigma.tools.getRGB(n.color); 
     n.color = "#eee"; // #ccc"; 

     // n.color = "rgba("+c['r']+","+c['g']+","+c['b']+",0.2)"; 
     } 
    }).draw(2,2,2); 
    }).bind('upnodes',function(){ 
    sigInst.iterNodes(function(n){ 
     if(n.attr['temphidden'] == 1) { 
      n.color = n.attr['oldcolor']; 
      n.attr['temphidden'] = 0; 
     } 

    }).draw(2,2,2); 
    }); 
    // Draw the graph : 
    sigInst.draw(2,2,2); 
    sigInst.startForceAtlas2(); 
    var isRunning = true; 
    document.getElementById('stop-layout').addEventListener('click',function(){ 
    if(isRunning){ 
     isRunning = false; 
     sigInst.stopForceAtlas2(); 
     document.getElementById('stop-layout').childNodes[0].nodeValue = 'Start Layout'; 
    }else{ 
     isRunning = true; 
     sigInst.startForceAtlas2(); 
     document.getElementById('stop-layout').childNodes[0].nodeValue = 'Stop Layout'; 
    } 
    },true); 

} 

if (document.addEventListener) { 
    document.addEventListener("DOMContentLoaded", init, false); 
} else { 
    window.onload = init; 
} 
</script> 
İlgili konular