From de26dc8653cf0e5a4c261e78ed54ab4f80f40532 Mon Sep 17 00:00:00 2001 From: rloth <romain.loth@iscpif.fr> Date: Wed, 29 Mar 2017 14:30:29 +0200 Subject: [PATCH] WIP port: new sigma allows a simpler click one node -> MultipleSelection (no need for selectionEngine at all for one node) --- tinawebJS/Tinaweb.js | 71 ++++++++++++++++++++++++++++---------------- tinawebJS/main.js | 19 +++++++----- 2 files changed, 57 insertions(+), 33 deletions(-) diff --git a/tinawebJS/Tinaweb.js b/tinawebJS/Tinaweb.js index 0373df4..a0eecc6 100755 --- a/tinawebJS/Tinaweb.js +++ b/tinawebJS/Tinaweb.js @@ -54,6 +54,10 @@ function sigmaLimits( sigmacanvas ) { // will be instanciated as SelInst SelectionEngine = function() { + + // TODO REFA this block was used for area selection + // (!at least partly replaceable by getNodes from new sigma.misc.bindEvents) + // ----------------------------------------------------------8<------------- // Selection Engine!! finally... this.SelectorEngine_part01 = (function(cursorsize, area ) { var clickedNodes = [] @@ -126,6 +130,7 @@ SelectionEngine = function() { return targeted; }).index(); + // ----------------------------------------------------------8<------------- this.SelectorEngine = (function( cursorsize , area , addvalue , clicktype , prevsels , currsels ) { var targeted = [] @@ -311,7 +316,7 @@ SelectionEngine = function() { this.MultipleSelection2 = (function(nodes,nodesDict,edgesDict) { console.log("IN SelectionEngine.MultipleSelection2:") - // console.log(nodes) + console.log("nodes", nodes) greyEverything(); // TW.partialGraph.states.slice(-1)[0] is the present graph state @@ -364,7 +369,7 @@ SelectionEngine = function() { } } for(var i in edges_2_colour) { - an_edge = TW.partialGraph.edges(i) + an_edge = TW.partialGraph.graph.edges(i) if(!isUndef(an_edge) && !an_edge.hidden){ an_edge.color = an_edge.customAttrs['true_color']; an_edge.customAttrs['grey'] = 0; @@ -409,7 +414,7 @@ SelectionEngine = function() { overNodes=true; - TW.partialGraph.draw(); + TW.partialGraph.refresh({skipIndexation:true}); updateLeftPanel_fix( selections , oppos ); @@ -419,6 +424,10 @@ SelectionEngine = function() { }).index() }; +// REFA tempo expose selectionEngine and methods +var SelInst + + TinaWebJS = function ( sigmacanvas ) { this.sigmacanvas = sigmacanvas; @@ -440,7 +449,9 @@ TinaWebJS = function ( sigmacanvas ) { this.SearchListeners = function () { - var SelInst = new SelectionEngine(); + // REFA tempo expose + // var SelInst = new SelectionEngine(); + SelInst = new SelectionEngine(); //~ $.ui.autocomplete.prototype._renderItem = function(ul, item) { //~ var searchVal = $("#searchinput").val(); @@ -724,33 +735,43 @@ TinaWebJS = function ( sigmacanvas ) { partialGraph.camera.goTo({x:0, y:0, ratio:1}) }); + // new sigma.js: attempt to use sigma events bindings + // cases: + // [DONE] - simple click, one node + // [TODO] - simple click, area - // new sigma.js: attempt to use sigma events bindings - + // one node: + TW.partialGraph.bind('clickNode', function(e, node) { + // new sigma.js gives easy access to clicked node! + theNodeId = e.data.node.id + cancelSelection(false); + SelInst.MultipleSelection2({nodes:[theNodeId]}) + }) // TODO - TW.partialGraph.bind('click', function(e) { - console.log("===click==="); - console.log("e", e); - }) - TW.partialGraph.bind('clickNode', function(e) { - console.log("===clickNode==="); - console.log("e", e); - }) - TW.partialGraph.bind('downgraph upgraph', function(e) { - console.log("===downgraph upgraph==="); - console.log("e", e); - }) + // TW.partialGraph.bind('click', function(e) { + // console.log("===click==="); + // console.log("e", e); + // }) + + // TW.partialGraph.bind('downgraph upgraph', function(e) { + // console.log("===downgraph upgraph==="); + // console.log("e", e); + // }) // --------------------------------------------fragment from v1.customized - // }).bind('mousedown mouseup', function(e) { - // var targeted = self.graph.nodes.filter(function(n) { - // return !!n['hover']; - // }).map(function(n) { - // return n.id; - // }); + // TW.partialGraph.bind('mousedown mouseup', function(e) { + // + // console.log("---------- event", e) + // var targeted = self.graph.nodes.filter(function(n) { + // return !!n['hover']; + // }).map(function(n) { + // return n.id; + // }); + // console.log("---------- targeted by hover check loop", targeted) + // }) // // self.dispatch( // e['type'] == 'mousedown' ? @@ -765,8 +786,8 @@ TinaWebJS = function ( sigmacanvas ) { // 'upnodes', // targeted // ); + // } // } - // }).bind('move', function() { // -------------------------------------------/fragment from v1.customized diff --git a/tinawebJS/main.js b/tinawebJS/main.js index 2a4e2dc..75aff79 100755 --- a/tinawebJS/main.js +++ b/tinawebJS/main.js @@ -358,14 +358,17 @@ if(RES["OK"]) { bgcolor:"#FFA500", onchange:function(value){ $.doTimeout(100,function (){ - TW.partialGraph.iterNodes(function (n) { - if(TW.Nodes[n.id].type==TW.catSem) { - var newval = parseFloat(TW.Nodes[n.id].size) + parseFloat((value-1))*0.3 - n.size = (newval<1.0)?1:newval; - sizeMult[TW.catSem] = parseFloat(value-1)*0.3; - } - }); - TW.partialGraph.draw(); + // POSS: custom index by n.type + var nds = TW.partialGraph.graph.nodes() + for (var j in nds) { + var n = nds[j] + if(TW.Nodes[n.id].type==TW.catSem) { + var newval = parseFloat(TW.Nodes[n.id].size) + parseFloat((value-1))*0.3 + n.size = (newval<1.0)?1:newval; + sizeMult[TW.catSem] = parseFloat(value-1)*0.3; + } + } + TW.partialGraph.refresh({skipIndexation:true}); }); } }); -- 2.21.0