Commit b8ef076d authored by PkSM3's avatar PkSM3

both edge filters ok

parent 18ba0e00
......@@ -773,7 +773,7 @@ class extract:
edge["t"] = n[1]
edge["w"] = str(wr)
edge["type"] = GG[n[0]][n[1]]['type']
if edge["type"]=="nodes1": print wr
# if edge["type"]=="nodes1": print wr
edges[str(e)] = edge
e+=1
#if e%1000 == 0:
......
......@@ -30,6 +30,7 @@ var startingNodeId = "1";
var minLengthAutoComplete = 1;
var maxSearchResults = 10;
var strSearchBar = "Search";
var cursor_size_min= 0;
var cursor_size= 0;
var cursor_size_max= 100;
......@@ -52,6 +53,7 @@ var seed=999999999;//defaultseed
var showLabelsIfZoom=2.0;
var greyColor = "#9b9e9e";
// ============ < SIGMA.JS PROPERTIES > ============
......@@ -113,7 +115,10 @@ var constantNGramFilter;
// var nodeFilterB_past = ""
// var nodeFilterB_now = ""
var lastEdgeFilterA = "-"
var lastFilter = []
lastFilter["#sliderBNodeWeight"] = "-"
lastFilter["#sliderAEdgeWeight"] = "-"
lastFilter["#sliderBEdgeWeight"] = "-"
// var edgeFilterB_past = ""
// var edgeFilterB_now = ""
......
......@@ -337,53 +337,204 @@ function justhide(){
//=========================== < FILTERS-SLIDERS > ===========================//
// EdgeWeightFilter("#sliderAEdgeWeight", "label" , "nodes1", "weight");
// EdgeWeightFilter("#sliderBEdgeWeight", "label" , "nodes2", "weight");
function EdgeWeightFilter(sliderDivID , type_attrb , type , criteria) {
function OrganizeEdgeWeightsForSlider( edgtype ) {
// ( 1 )
// get visible sigma edges
visible_edges=partialGraph._core.graph.edges.filter(function(e) {
return !e['hidden'] && e["label"]==edgtype;
if ($(sliderDivID).html()!="") {
pr("\t\t\t\t\t\t[[ algorithm not applied "+sliderDivID+" ]]")
return;
}
// sliderDivID = "#sliderAEdgeWeight"
// type = "nodes1"
// type_attrb = "label"
// criteria = "weight"
// sliderDivID = "#sliderBNodeSize"
// type = "NGram"
// type_attrb = "type"
// criteria = "size"
// AlgorithmForSliders ( partialGraph._core.graph.edges , "label" , "nodes1" , "weight")
// AlgorithmForSliders ( partialGraph._core.graph.edges , "label" , "nodes2" , "weight")
// AlgorithmForSliders ( partialGraph._core.graph.nodes , "type" , "Document" , "size")
// AlgorithmForSliders ( partialGraph._core.graph.nodes , "type" , "NGram" , "size")
var filterparams = AlgorithmForSliders ( partialGraph._core.graph.edges , type_attrb , type , criteria)
var steps = filterparams["steps"]
var finalarray = filterparams["finalarray"]
//finished
$(sliderDivID).freshslider({
range: true,
step: 1,
min:0,
max:steps-1,
value:[0,steps-1],
onchange:function(low, high){
var filtervalue = low+"-"+high
if(filtervalue!=lastFilter[sliderDivID]) {
if(lastFilter[sliderDivID]=="-") {
pushFilterValue( sliderDivID , filtervalue )
return false
}
// $.doTimeout(300,function (){
for(var i in finalarray) {
ids = finalarray[i]
if(i>=low && i<=high){
for(var id in ids) {
ID = ids[id]
add1Edge(ID)
}
} else {
for(var id in ids) {
ID = ids[id]
partialGraph.dropEdge(ID)
}
}
}
pushFilterValue(sliderDivID,filtervalue)
if (!is_empty(selections))
DrawAsSelectedNodes(selections)
partialGraph.refresh()
partialGraph.draw()
// });
}
}
});
}
// NodeWeightFilter ( "#sliderANodeWeight" , "Document" , "type" , "size")
// NodeWeightFilter ( "#sliderBNodeWeight" , "NGram" , "type" , "size")
function NodeWeightFilter(sliderDivID , type_attrb , type , criteria) {
if ($(sliderDivID).html()!="") {
pr("\t\t\t\t\t\t[[ algorithm not applied "+sliderDivID+" ]]")
return;
}
// sliderDivID = "#sliderAEdgeWeight"
// type = "nodes1"
// type_attrb = "label"
// criteria = "weight"
// sliderDivID = "#sliderBNodeSize"
// type = "NGram"
// type_attrb = "type"
// criteria = "size"
// AlgorithmForSliders ( partialGraph._core.graph.edges , "label" , "nodes1" , "weight")
// AlgorithmForSliders ( partialGraph._core.graph.edges , "label" , "nodes2" , "weight")
// AlgorithmForSliders ( partialGraph._core.graph.nodes , "type" , "Document" , "size")
// AlgorithmForSliders ( partialGraph._core.graph.nodes , "type" , "NGram" , "size")
var filterparams = AlgorithmForSliders ( partialGraph._core.graph.nodes , type_attrb , type , criteria)
var steps = filterparams["steps"]
var finalarray = filterparams["finalarray"]
//finished
$(sliderDivID).freshslider({
range: true,
step: 1,
min:0,
max:steps-1,
value:[0,steps-1],
onchange:function(low, high){
var filtervalue = low+"-"+high
if(filtervalue!=lastFilter[sliderDivID]) {
if(lastFilter[sliderDivID]=="-") {
pushFilterValue( sliderDivID , filtervalue )
return false
}
// $.doTimeout(300,function (){
for(var i in finalarray) {
ids = finalarray[i]
if(i>=low && i<=high){
for(var id in ids) {
ID = ids[id]
partialGraph._core.graph.nodesIndex[ID].hidden = false;
}
} else {
for(var id in ids) {
ID = ids[id]
partialGraph._core.graph.nodesIndex[ID].hidden = true;
}
}
}
pushFilterValue(sliderDivID,filtervalue)
if (!is_empty(selections))
DrawAsSelectedNodes(selections)
partialGraph.refresh()
partialGraph.draw()
// });
}
}
});
}
// ( 2 )
// extract [ "edgeID" : edgeWEIGHT ]
// and save this into edges_weight
var edges_weight=[]
for (var i in visible_edges) {
e = visible_edges[i]
// AlgorithmForSliders ( partialGraph._core.graph.edges , "label" , "nodes1" , "weight")
// AlgorithmForSliders ( partialGraph._core.graph.edges , "label" , "nodes2" , "weight")
// AlgorithmForSliders ( partialGraph._core.graph.nodes , "type" , "Document" , "size")
// AlgorithmForSliders ( partialGraph._core.graph.nodes , "type" , "NGram" , "size")
function AlgorithmForSliders( elements , type_attrb , type , criteria) {
// // ( 1 )
// // get visible sigma nodes|edges
elems=elements.filter(function(e) {
return e[type_attrb]==type;
});
// pr("nodes|edges length: "+elems.length)
// // ( 2 )
// // extract [ "edgeID" : edgeWEIGHT ] | [ "nodeID" : nodeSIZE ]
// // and save this into edges_weight | nodes_size
var elem_attrb=[]
for (var i in elems) {
e = elems[i]
id = e.id
edges_weight[id]=e.weight
// pr(id+"\t:\t"+e.weight)
elem_attrb[id]=e[criteria]
// pr(id+"\t:\t"+e[criteria])
}
// pr("{ id : size|weight } ")
// pr(elem_attrb)
// ( 3 )
// order dict edges_weight by edge weight
var result = ArraySortByValue(edges_weight, function(a,b){
// // ( 3 )
// // order dict edges_weight by edge weight | nodes_size by node size
var result = ArraySortByValue(elem_attrb, function(a,b){
return a-b
//ASCENDENT
});
// pr("result: ")
// pr(result)
// pr(result.length)
// // ( 4 )
// printing ordered ASC by weigth
// // printing ordered ASC by weigth
// for (var i in result) {
// r = result[i]
// edgeid = r.key
// edgeweight = r.value
// pr(edgeid+"\t:\t"+edgeweight)
// idid = r.key
// elemattrb = r.value
// pr(idid+"\t:\t"+elemattrb)
// // e = result[i]
// // pr(e.weight)
// // pr(e[criteria])
// }
var nb_E = result.length
var magnitude = (""+nb_E).length //order of magnitude of #visibleedges
var N = result.length
var magnitude = (""+N).length //order of magnitude of edges|nodes
var exponent = magnitude - 1
var steps = Math.pow(10,exponent) // #(10 ^ magnit-1) steps
var stepsize = Math.round(nb_E/steps)// ~~(visibledges / #steps)
var stepsize = Math.round(N/steps)// ~~(visibledges / #steps)
// pr("-----------------------------------")
// pr("number of visible edges: "+nb_E);
// pr("result array:")
// pr(result)
// pr("number of visible nodes|edges: "+N);
// pr("magnitude : "+magnitude)
// pr("number of steps : "+steps)
// pr("size of one step : "+stepsize)
......@@ -392,428 +543,25 @@ function OrganizeEdgeWeightsForSlider( edgtype ) {
var finalarray = []
var counter=0
for(var i = 0; i < steps; i++) {
for(var i = 0; i < steps*2; i++) {
// pr(i)
var edgIDs = []
var IDs = []
for(var j = 0; j < stepsize; j++) {
if(!isUndef(result[counter])) {
k = result[counter].key
// w = result[counter].value
// pr("\t["+counter+"] : "+w)
edgIDs.push(k)
IDs.push(k)
}
counter++;
}
if(edgIDs.length==0) break;
finalarray[i] = edgIDs
if(IDs.length==0) break;
finalarray[i] = IDs
}
// pr("finalarray: ")
return {"steps":finalarray.length,"finalarray":finalarray}
}
function updateEdgeFilter(edgeFilterName) {
pr("nothing: Updating edge filter_ "+edgeFilterName);
/*
thing="";
if(edgeFilterName=="social") {
edgeFilterName="#sliderAEdgeWeight";
minvalue="#nodeAFilterMinValue";
maxvalue="#nodeAFilterMaxValue";
thing="nodes1";
}
if(edgeFilterName=="semantic") {
minvalue="#nodeBFilterMinValue";
maxvalue="#nodeBFilterMaxValue";
edgeFilterName="#sliderBEdgeWeight";
thing="nodes2";
}
edges=partialGraph._core.graph.edges.filter(function(e) {
return !e['hidden'];
});
// pr("\tpartialGraph._core.graph.edges: "+partialGraph._core.graph.edges.length);
// pr(partialGraph._core.graph.edges); //#edges=936
// pr("\tpartialGraph._core.graph.edges.filter(function(x){return !x['hidden']});: "+edges.length);
// pr(edges); //#edges=936
edgesByWeight=[];
for(var i in edges){
if(edges[i].hidden==false){
if(edges[i].label==thing){
if(isUndef(edgesByWeight[edges[i].weight])){
edgesByWeight[edges[i].weight]=[];
}
edgesByWeight[edges[i].weight].push(edges[i].id);
}
}
}
// pr("\tedgesByWeight: ");
// pr(edgesByWeight);
edgesSortedByWeight = ArraySortByKey(edgesByWeight, function(a,b){
return a-b
});
// pr("\tedgesSortedByWeight: ");
// pr(edgesSortedByWeight);
normEdges=[];
cont=0;
index=0;
nbCuts=Math.floor(edges.length/10);
for(var i in edgesSortedByWeight){
for(var j in edgesSortedByWeight[i].value){
if(isUndef(normEdges[index])){
normEdges[index]=[];
}
normEdges[index].push(edgesSortedByWeight[i].value[j])
cont++;
if(cont%nbCuts==0) {
index++;
cont=0;
}
}
}
// pr("\tnormEdges: ");
// pr(normEdges);
$(edgeFilterName).slider({
range: true,
min: 0,
max: normEdges.length-1,
values: [0, normEdges.length-1],
step: 1,
animate: true,
slide: function(event, ui) {
$.doTimeout(300,function (){
//console.log("Rango Pesos Arista: "+ui.values[ 0 ]+" , "+ui.values[ 1 ]);
edgesTemp = partialGraph._core.graph.edgesIndex;
for(i=0;i<normEdges.length;i++){
if(i>=ui.values[0] && i<=ui.values[1]){
//$(minvalue).text(ui.values[ 0 ]);
//$(maxvalue).text(ui.values[ 1 ]);
//console.log("Rango Pesos Arista: "+ui.values[ 0 ]+" , "+ui.values[ 1 ]);
for (var j in normEdges[i]){
id=normEdges[i][j];
//pr("unHideElem("+id+");");
// if(isUndef(edgesTemp[id])){
// //source=Edges[id].sourceID;
// //target=Edges[id].targetID;
// //edge=Edges[id];
// pr("unHideElem("+id+");")
unHideElem(id);
//partialGraph.addEdge(id,source,target,edge);
// }
}
}
else {
for (var j in normEdges[i]){
hideElem(normEdges[i][j]);
}
//partialGraph.dropEdge(normEdges[i]);
}
}
pr("==========================================")
partialGraph.draw();
});
}
});
*/
}
function updateBothEdgeFilters() {
pr("nothing: Updating both edge filters");
/*
edges=partialGraph._core.graph.edges.filter(function(e) {
return !e['hidden'];
});;
scholarsEdgesByWeight=[];
keywordsEdgesByWeight=[];
for(var i in edges){
if(edges[i].label=="nodes1"){
if(isUndef(scholarsEdgesByWeight[edges[i].weight])){
scholarsEdgesByWeight[edges[i].weight]=[];
}
scholarsEdgesByWeight[edges[i].weight].push(edges[i].id);
}
if(edges[i].label=="nodes2"){
if(isUndef(keywordsEdgesByWeight[edges[i].weight])){
keywordsEdgesByWeight[edges[i].weight]=[];
}
keywordsEdgesByWeight[edges[i].weight].push(edges[i].id);
}
}
scholarsEdgesSortedByWeight = ArraySortByKey(scholarsEdgesByWeight, function(a,b){
return a-b
});
keywordsEdgesSortedByWeight = ArraySortByKey(keywordsEdgesByWeight, function(a,b){
return a-b
});
//
// normScholarEdges=[];
// cont=0;
// index=0;
// for(var i in scholarsEdgesSortedByWeight){
// for(var j in scholarsEdgesSortedByWeight[i].value){
// if(isUndef(normScholarEdges[index])){
// normScholarEdges[index]=[];
// }
// normScholarEdges[index].push(scholarsEdgesSortedByWeight[i].value[j])
// cont++;
// if(cont%20==0) {
// index++;
// cont=0;
// }
// }
// }
// pr(normScholarEdges);
$("#sliderAEdgeWeight").slider({
range: true,
min: 0,
max: scholarsEdgesSortedByWeight.length-1,
values: [0, scholarsEdgesSortedByWeight.length-1],
step: 1,
animate: true,
slide: function(event, ui) {
$.doTimeout(300,function (){
//console.log("Rango Pesos Arista: "+ui.values[ 0 ]+" , "+ui.values[ 1 ]);
edgesTemp = partialGraph._core.graph.edgesIndex;
for(i=0;i<scholarsEdgesSortedByWeight.length;i++){
if(i>=ui.values[0] && i<=ui.values[1]){
for (var j in scholarsEdgesSortedByWeight[i].value){
id=scholarsEdgesSortedByWeight[i].value[j];
unHideElem(id);
// if(isUndef(edgesTemp[id])){
// source=Edges[id].sourceID;
// target=Edges[id].targetID;
// edge=Edges[id];
// //partialGraph.addEdge(id,source,target,edge);
// }
}
}
else {
for(var j in scholarsEdgesSortedByWeight[i].value){
hideElem(scholarsEdgesSortedByWeight[i].value[j])
}
}
}
partialGraph.draw();
});
}
});
$("#sliderBEdgeWeight").slider({
range: true,
min: 0,
max: keywordsEdgesSortedByWeight.length-1,
values: [0, keywordsEdgesSortedByWeight.length-1],
step: 1,
animate: true,
slide: function(event, ui) {
$.doTimeout(300,function (){
//console.log("Rango Pesos Arista: "+ui.values[ 0 ]+" , "+ui.values[ 1 ]);
edgesTemp = partialGraph._core.graph.edgesIndex;
for(i=0;i<keywordsEdgesSortedByWeight.length;i++){
if(i>=ui.values[0] && i<=ui.values[1]){
for (var j in keywordsEdgesSortedByWeight[i].value){
id=keywordsEdgesSortedByWeight[i].value[j];
unHideElem(id);
// if(isUndef(edgesTemp[id])){
// source=Edges[id].sourceID;
// target=Edges[id].targetID;
// edge=Edges[id];
// //partialGraph.addEdge(id,source,target,edge);
// }
}
}
else {
for(var j in keywordsEdgesSortedByWeight[i].value){
hideElem(keywordsEdgesSortedByWeight[i].value[j])
}
//partialGraph.dropEdge(keywordsEdgesSortedByWeight[i].value);
}
}
partialGraph.draw();
});
}
});
*/
}
function updateNodeFilter(nodeFilterName) {
pr("nothing: Updating node filter_ "+nodeFilterName);
/*
scholarsNodesBySize=[];
keywordsNodesBySize=[];
nodesSortedBySize=[];
nodeType="";
divName="";
pr("something weird is going here dude: enviroment.js|updateNodeFilter(nodeFilterName)")
pr(catSoc)
pr(catSem)
// if(nodeFilterName=="social"){
// nodeType=catSoc;
// divName="#sliderANodeWeight";
// }
// else {
// nodeType=catSem;
// divName="#sliderBNodeWeight";
// }
// nodes=partialGraph._core.graph.nodes.filter(function(n) {
// return !n['hidden'];
// });
// nodesBySize=[];
// for(var i in nodes){
// if(Nodes[nodes[i].id].type==catSoc){
// if(isUndef(nodesBySize[nodes[i].degree])){
// nodesBySize[nodes[i].degree]=[];
// }
// nodesBySize[nodes[i].degree].push(nodes[i].id);
// }
// if(Nodes[nodes[i].id].type==catSem){
// if(isUndef(nodesBySize[nodes[i].size])){
// nodesBySize[nodes[i].size]=[];
// }
// nodesBySize[nodes[i].size].push(nodes[i].id);
// }
// }
// nodesSortedBySize = ArraySortByKey(nodesBySize, function(a,b){
// return a-b
// });
// if(nodeFilterName=="social"){
// return null;
// }
// $(divName).slider({
// range: true,
// min: 0,
// max: nodesSortedBySize.length-1,
// values: [0, nodesSortedBySize.length-1],
// step: 1,
// animate: true,
// slide: function(event, ui) {
// $.doTimeout(300,function (){
// //console.log("Rango Pesos Arista: "+ui.values[ 0 ]+" , "+ui.values[ 1 ]);
// nodesTemp = partialGraph._core.graph.nodesIndex;
// for(i=0;i<nodesSortedBySize.length;i++){
// if(i>=ui.values[0] && i<=ui.values[1]){
// for (var j in nodesSortedBySize[i].value){
// id=nodesSortedBySize[i].value[j];
// nodesTemp[id].hidden=false;
// }
// }
// else {
// for (var j in nodesSortedBySize[i].value){
// id=nodesSortedBySize[i].value[j];
// nodesTemp[id].hidden=true;
// }
// }
// }
// partialGraph.draw();
// });
// }
// });
*/
}
function updateBothNodeFilters() {
pr("nothing: Updating both node filters");
/*
nodes=partialGraph._core.graph.nodes.filter(function(n) {
return !n['hidden'];
});
scholarsNodesBySize=[];
keywordsNodesBySize=[];
nodesSortedBySize=[];
for(var i in nodes){
if(Nodes[nodes[i].id].type==catSoc){
if(isUndef(scholarsNodesBySize[nodes[i].degree])){
scholarsNodesBySize[nodes[i].degree]=[];
}
scholarsNodesBySize[nodes[i].degree].push(nodes[i].id);
}
if(Nodes[nodes[i].id].type==catSem){
if(isUndef(keywordsNodesBySize[nodes[i].size])){
keywordsNodesBySize[nodes[i].size]=[];
}
keywordsNodesBySize[nodes[i].size].push(nodes[i].id);
}
}
scholarsSortedBySize = ArraySortByKey(scholarsNodesBySize, function(a,b){
return a-b
});
keywordsSortedBySize = ArraySortByKey(keywordsNodesBySize, function(a,b){
return a-b
});
// $("#sliderANodeWeight").slider({
// range: true,
// min: 0,
// max: scholarsSortedBySize.length-1,
// values: [0, scholarsSortedBySize.length-1],
// step: 1,
// animate: true,
// slide: function(event, ui) {
// $.doTimeout(300,function (){
// //console.log("Rango Pesos Arista: "+ui.values[ 0 ]+" , "+ui.values[ 1 ]);
// nodesTemp = partialGraph._core.graph.nodesIndex;
// for(i=0;i<scholarsSortedBySize.length;i++){
// if(i>=ui.values[0] && i<=ui.values[1]){
// for (var j in scholarsSortedBySize[i].value){
// id=scholarsSortedBySize[i].value[j];
// nodesTemp[id].hidden=false;
// }
// }
// else {
// for (var j in scholarsSortedBySize[i].value){
// id=scholarsSortedBySize[i].value[j];
// nodesTemp[id].hidden=true;
// }
// }
// }
// partialGraph.draw();
// });
// }
// });
$("#sliderBNodeWeight").slider({
range: true,
min: 0,
max: keywordsSortedBySize.length-1,
values: [0, keywordsSortedBySize.length-1],
step: 1,
animate: true,
slide: function(event, ui) {
$.doTimeout(300,function (){
//console.log("Rango Pesos Arista: "+ui.values[ 0 ]+" , "+ui.values[ 1 ]);
nodesTemp = partialGraph._core.graph.nodesIndex;
for(i=0;i<keywordsSortedBySize.length;i++){
if(i>=ui.values[0] && i<=ui.values[1]){
for (var j in keywordsSortedBySize[i].value){
id=keywordsSortedBySize[i].value[j];
nodesTemp[id].hidden=false;
}
}
else {
for (var j in keywordsSortedBySize[i].value){
id=keywordsSortedBySize[i].value[j];
nodesTemp[id].hidden=true;
}
}
}
partialGraph.draw();
});
}
});
*/
}
//=========================== </ FILTERS-SLIDERS > ===========================//
......
......@@ -34,6 +34,7 @@ if (mainfile) {
if(isUndef(getUrlParam.nodeidparam)) {
pr("doing something 'cause i'm a doer"); mainfile=true;
bringTheNoise("data/pkmn_types.gexf","mono");
scanCategories();
} else {
if(getUrlParam.nodeidparam.indexOf("__")===-1){
......@@ -202,8 +203,6 @@ function bringTheNoise(pathfile,type){
// < === DATA EXTRACTED!! === >
if(fa2enabled==="off") $("#edgesButton").hide();
// updateEdgeFilter("social");
// updateNodeFilter("social");
pushSWClick("social");
// < === ASYNCHRONOUS FA2.JS === >
......@@ -362,7 +361,7 @@ function theListeners(){
});
/******************* /SEARCH ***********************/
// button CENTER
$("#lensButton").click(function () {
partialGraph.position(0,0,1);
partialGraph.zoomTo(partialGraph._core.width / 2, partialGraph._core.height / 2, 0.8);
......@@ -462,7 +461,10 @@ function theListeners(){
}
});
//finished
// finished but not used
// NodeWeightFilter ( "#sliderANodeWeight" , "Document" , "type" , "size")
$("#sliderANodeWeight").freshslider({
range: true,
step:1,
......@@ -473,59 +475,10 @@ function theListeners(){
}
});
// finished
EdgeWeightFilter("#sliderAEdgeWeight", "label" , "nodes1", "weight");
var filterparams = OrganizeEdgeWeightsForSlider ( "nodes1" )
var steps = filterparams["steps"]
var finalarray = filterparams["finalarray"]
//finished
$("#sliderAEdgeWeight").freshslider({
range: true,
step: 1,
min:0,
max:steps-1,
onchange:function(low, high){
var filtervalue = low+"-"+high
// pr("filterNOW: "+filtervalue+" | filterPAST: "+lastEdgeFilterA+" => "+(filtervalue!=lastEdgeFilterA))
if(filtervalue!=lastEdgeFilterA) {
if(lastEdgeFilterA=="-") {
pushEdgesFilterA(filtervalue)
return false
}
// $.doTimeout(300,function (){
for(var i in finalarray) {
ids = finalarray[i]
if(i>=low && i<=high){
for(var id in ids) {
edgeid = ids[id]
add1Edge(edgeid)
// partialGraph.addEdge(edgeid,Edges[edgeid].source,target,edge);
// unHideElem(edgeid)
}
} else {
for(var id in ids) {
edgeid = ids[id]
remove1Edge(edgeid)
// hideElem(edgeid)
}
}
}
pushEdgesFilterA(filtervalue)
partialGraph.refresh()
partialGraph.draw()
// });
}
// pr("filterNOW: "+filtervalue+" | filterPAST: "+lastEdgeFilterA+" => "+(filtervalue!=lastEdgeFilterA))
}
});
//finished
$("#sliderANodeSize").freshslider({
step:1,
......@@ -542,26 +495,8 @@ function theListeners(){
partialGraph.draw();
});
}
});
$("#sliderBNodeWeight").freshslider({
range: true,
step:1,
value:[20, 60],
onchange:function(low, high){
console.log(low, high);
}
});
});
$("#sliderBEdgeWeight").freshslider({
range: true,
step:1,
value:[20, 100],
onchange:function(low, high){
console.log(low, high);
}
});
//finished
$("#sliderBNodeSize").freshslider({
step:1,
......@@ -578,7 +513,13 @@ function theListeners(){
partialGraph.draw();
});
}
});
});
//NodeWeightFilter ( "#sliderBNodeWeight" , "NGram" , "type" , "size")
// EdgeWeightFilter("#sliderBEdgeWeight", "label" , "nodes2", "weight");
//finished
$("#unranged-value").freshslider({
......@@ -594,54 +535,5 @@ function theListeners(){
});
// $("#sliderSelectionZone").slider({
// value: cursor_size,
// min: parseFloat(cursor_size_min),
// max: parseFloat(cursor_size_max),
// animate: true,
// change: function(event, ui) {
// cursor_size= ui.value;
// //if(cursor_size==0) updateDownNodeEvent(false);
// //else updateDownNodeEvent(true);
// //return callSlider("#sliderSelectionZone", "selectionRadius");
// }
// });
//
// $("#sliderANodeSize").slider({
// value: 1,
// min: 1,
// max: 25,
// animate: true,
// slide: function(event, ui) {
// $.doTimeout(100,function (){
// partialGraph.iterNodes(function (n) {
// pr();
// if(Nodes[n.id].type==catSoc) {
// n.size = parseFloat(Nodes[n.id].size) + parseFloat((ui.value-1))*0.3;
// }
// });
// partialGraph.draw();
// });
// }
// });
// $("#sliderBNodeSize").slider({
// value: 1,
// min: 1,
// max: 25,
// animate: true,
// slide: function(event, ui) {
// $.doTimeout(100,function (){
// partialGraph.iterNodes(function (n) {
// if(Nodes[n.id].type==catSem) {
// n.size = parseFloat(Nodes[n.id].size) + parseFloat((ui.value-1))*0.3;
// }
// });
// partialGraph.draw();
// });
// }
// });
}
......@@ -228,6 +228,7 @@ function RefreshState(newNOW){
pr("in social N: "+N+" - k: "+k+" - s: "+s)
if(NOW=="A" && (s==0 || k>=N)) LevelButtonDisable(true);
else LevelButtonDisable(false);
EdgeWeightFilter("#sliderAEdgeWeight", "label" , "nodes1", "weight");
}
if(NOW=="B" || NOW=="b") {
var N=Object.keys(partialGraph._core.graph.nodes.filter(function(n){return n.type==catSem && !n.hidden })).length;
......@@ -236,6 +237,8 @@ function RefreshState(newNOW){
pr("in semantic N: "+N+" - k: "+k+" - s: "+s)
if( NOW=="B" && (s==0 || k>=N) ) LevelButtonDisable(true);
else LevelButtonDisable(false);
EdgeWeightFilter("#sliderBEdgeWeight", "label" , "nodes2", "weight");
NodeWeightFilter ( "#sliderBNodeWeight" , "type" , "NGram" , "size")
}
if(NOW=="AaBb"){
LevelButtonDisable(true);
......@@ -249,9 +252,6 @@ function pushSWClick(arg){
}
function pushEdgesFilterA(arg){
lastEdgeFilterA = arg;
}
// it receives entire node
function selection(currentNode){
......@@ -608,9 +608,7 @@ function graphNGrams(node_id){
}
node = partialGraph._core.graph.nodesIndex[node_id];
selection(node);
partialGraph.startForceAtlas2();
updateEdgeFilter("semantic");
updateNodeFilter("semantic");
partialGraph.startForceAtlas2();
$("#category-A").hide();
$("#category-B").show();
changeButton("active_tags.png");
......@@ -666,8 +664,7 @@ function graphDocs(node_id){
selection(node);
partialGraph.startForceAtlas2();
$("#category-A").show();
$("#category-B").hide();
updateEdgeFilter("social");
$("#category-B").hide();
changeButton("active_scholars.png");
}
}
......@@ -686,7 +683,6 @@ function greyEverything(){
// partialGraph._core.graph.nodesIndex[i].forceLabel=false;
// }
// deselections={};
greyColor = '#9b9e9e';
nds = partialGraph._core.graph.nodes.filter(function(n) {
return !n['hidden'];
......@@ -724,7 +720,6 @@ function greyEverything(){
}
function markAsSelected(n_id,sel) {
greyColor = '#9b9e9e';
if(!isUndef(n_id.id)) nodeSel=n_id;
else nodeSel = partialGraph._core.graph.nodesIndex[n_id];
......@@ -734,11 +729,38 @@ function markAsSelected(n_id,sel) {
nodeSel.attr['grey'] = 0;
if(categoriesIndex.length==1) {
pr("jeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeere")
if( !isUndef(nodes1[nodeSel.id]) &&
!isUndef(nodes1[nodeSel.id].neighbours)
){
neigh=nodes1[nodeSel.id].neighbours;/**/
for(var i in neigh){
// nodeVec = partialGraph._core.graph.nodesIndex[neigh[i]];
// // vec.color = vec.attr['true_color'];
// // vec.attr['grey'] = 0;
// // pr("nodeselected: "+nodeSel.id+"\t"+nodeSel.label+"\t\t||\t\tvecino: "+vec.id+"\t"+vec.label)
// possibledge1 = partialGraph._core.graph.edgesIndex[nodeVec.id+";"+nodeSel.id]
// possibledge2 = partialGraph._core.graph.edgesIndex[nodeSel.id+";"+nodeVec.id]
// an_edge = (!isUndef(possibledge1))?possibledge1:possibledge2;
// if(!isUndef(an_edge) && !an_edge.hidden) {
// //highlight node
// nodeVec.hidden = false;
// nodeVec.color = nodeVec.attr['true_color'];
// nodeVec.attr['grey'] = 0;
// //highlight edge
// an_edge.color = an_edge.attr['true_color'];
// an_edge.attr['grey'] = 0;
// }
// if (NOW=="a" || NOW=="b" && nodeVec.color==greyColor)
// nodeVec.hidden = true
vec = partialGraph._core.graph.nodesIndex[neigh[i]];
vec.color = vec.attr['true_color'];
vec.attr['grey'] = 0;
......@@ -754,7 +776,7 @@ function markAsSelected(n_id,sel) {
}
}
}
}
} // two categories network:
else {
if(swclickActual=="social") {
if(nodeSel.type==catSoc){
......@@ -763,23 +785,45 @@ function markAsSelected(n_id,sel) {
){
neigh=nodes1[nodeSel.id].neighbours;/**/
for(var i in neigh){
vec = partialGraph._core.graph.nodesIndex[neigh[i]];
vec.color = vec.attr['true_color'];
vec.attr['grey'] = 0;
an_edge=partialGraph._core.graph.edgesIndex[vec.id+";"+nodeSel.id];
if(!isUndef(an_edge) && !an_edge.hidden){
an_edge.color = an_edge.attr['true_color'];
an_edge.attr['grey'] = 0;
}
an_edge=partialGraph._core.graph.edgesIndex[nodeSel.id+";"+vec.id];
if(!isUndef(an_edge) && !an_edge.hidden){
nodeVec = partialGraph._core.graph.nodesIndex[neigh[i]];
// vec.color = vec.attr['true_color'];
// vec.attr['grey'] = 0;
// pr("nodeselected: "+nodeSel.id+"\t"+nodeSel.label+"\t\t||\t\tvecino: "+vec.id+"\t"+vec.label)
possibledge1 = partialGraph._core.graph.edgesIndex[nodeVec.id+";"+nodeSel.id]
possibledge2 = partialGraph._core.graph.edgesIndex[nodeSel.id+";"+nodeVec.id]
an_edge = (!isUndef(possibledge1))?possibledge1:possibledge2;
if(!isUndef(an_edge) && !an_edge.hidden) {
//highlight node
// nodeVec.hidden = false;
nodeVec.color = nodeVec.attr['true_color'];
nodeVec.attr['grey'] = 0;
//highlight edge
an_edge.color = an_edge.attr['true_color'];
an_edge.attr['grey'] = 0;
an_edge.attr['grey'] = 0;
}
// if ( (NOW=="a" || NOW=="b") && nodeVec.color==grey)
// pr(nodeVec)
// nodeVec.hidden = true
// an_edge=partialGraph._core.graph.edgesIndex[vec.id+";"+nodeSel.id];
// if(!isUndef(an_edge) && !an_edge.hidden){
// an_edge.color = an_edge.attr['true_color'];
// an_edge.attr['grey'] = 0;
// }
// an_edge=partialGraph._core.graph.edgesIndex[nodeSel.id+";"+vec.id];
// if(!isUndef(an_edge) && !an_edge.hidden){
// an_edge.color = an_edge.attr['true_color'];
// an_edge.attr['grey'] = 0;
// }
}
}
}
else {
} else {
if( !isUndef(bipartiteN2D[nodeSel.id]) &&
!isUndef(bipartiteN2D[nodeSel.id].neighbours)
......@@ -826,25 +870,52 @@ function markAsSelected(n_id,sel) {
}
}
}
else {
else {
if( !isUndef(nodes2[nodeSel.id]) &&
!isUndef(nodes2[nodeSel.id].neighbours)
){
neigh=nodes2[nodeSel.id].neighbours;/**/
for(var i in neigh){
vec = partialGraph._core.graph.nodesIndex[neigh[i]];
vec.color = vec.attr['true_color'];
vec.attr['grey'] = 0;
an_edge=partialGraph._core.graph.edgesIndex[vec.id+";"+nodeSel.id];
if(!isUndef(an_edge) && !an_edge.hidden){
an_edge.color = an_edge.attr['true_color'];
an_edge.attr['grey'] = 0;
}
an_edge=partialGraph._core.graph.edgesIndex[nodeSel.id+";"+vec.id];
if(!isUndef(an_edge) && !an_edge.hidden){
nodeVec = partialGraph._core.graph.nodesIndex[neigh[i]];
// vec.color = vec.attr['true_color'];
// vec.attr['grey'] = 0;
// pr("nodeselected: "+nodeSel.id+"\t"+nodeSel.label+"\t\t||\t\tvecino: "+vec.id+"\t"+vec.label)
possibledge1 = partialGraph._core.graph.edgesIndex[nodeVec.id+";"+nodeSel.id]
possibledge2 = partialGraph._core.graph.edgesIndex[nodeSel.id+";"+nodeVec.id]
an_edge = (!isUndef(possibledge1))?possibledge1:possibledge2;
if(!isUndef(an_edge) && !an_edge.hidden) {
//highlight node
// nodeVec.hidden = false;
nodeVec.color = nodeVec.attr['true_color'];
nodeVec.attr['grey'] = 0;
//highlight edge
an_edge.color = an_edge.attr['true_color'];
an_edge.attr['grey'] = 0;
an_edge.attr['grey'] = 0;
}
// if ( (NOW=="a" || NOW=="b") && nodeVec.color==grey)
// pr(nodeVec)
// nodeVec.hidden = true
// vec = partialGraph._core.graph.nodesIndex[neigh[i]];
// vec.color = vec.attr['true_color'];
// vec.attr['grey'] = 0;
// an_edge=partialGraph._core.graph.edgesIndex[vec.id+";"+nodeSel.id];
// if(!isUndef(an_edge) && !an_edge.hidden){
// an_edge.color = an_edge.attr['true_color'];
// an_edge.attr['grey'] = 0;
// }
// an_edge=partialGraph._core.graph.edgesIndex[nodeSel.id+";"+vec.id];
// if(!isUndef(an_edge) && !an_edge.hidden){
// an_edge.color = an_edge.attr['true_color'];
// an_edge.attr['grey'] = 0;
// }
}
}
}
......@@ -942,7 +1013,7 @@ function markAsSelected(n_id,sel) {
}
// /* Just in case of unselection */
// /* Finally I decide not using this unselection. */
// /* We just grayEverything and color the selections[] */
// /* We just greyEverything and color the selections[] */
// else { // sel=false <-> unselect(nodeSel)
//
// nodeSel.color = greyColor;
......@@ -1097,6 +1168,31 @@ function markAsSelected(n_id,sel) {
// }
}
function DrawAsSelectedNodes( nodeskeys ) {
greyEverything();
var ndsids=[]
if( $.isArray(nodeskeys) ) {
if(nodeskeys.length==0 && !is_empty(nodeskeys))
ndsids = Object.keys(nodeskeys)
else
ndsids=nodeskeys;
} else ndsids.push(nodeskeys);
if(!checkBox) {
checkBox=true;
for(var i in ndsids){
nodeid = ndsids[i]
markAsSelected(nodeid,true);
}
checkBox=false;
}
overNodes=true;
}
function MultipleSelection(nodes){
pr("IN MULTIPLE SELECTION")
......@@ -1349,9 +1445,15 @@ function unHide(id){
}
}
function add1Edge(ID) {
if(gete(edgeid)) return;
function pushFilterValue(filtername,arg){
lastFilter[filtername] = arg;
}
function add1Edge(ID) {
if(gete(ID)) return;
var s = Edges[ID].sourceID
var t = Edges[ID].targetID
var edge = {
......@@ -1366,10 +1468,6 @@ function add1Edge(ID) {
}
function remove1Edge(ID) {
partialGraph.dropEdge(ID);
}
function hideElem(id){
if(id.split(";").length==1){
//updateSearchLabels(id,Nodes[id].label,Nodes[id].type);
......@@ -1403,13 +1501,13 @@ function changeToMeso(iwannagraph) {
// for(var i in partialGraph._core.graph.edgesIndex){
// e=partialGraph._core.graph.edgesIndex[i];
// if(e.color=="#9b9e9e") {
// if(e.color==greyColor) {
// e.hidden=true;
// }
// }
// for(var i in partialGraph._core.graph.nodesIndex){
// n=partialGraph._core.graph.nodesIndex[i];
// if(n.color=="#9b9e9e") {
// if(n.color==greyColor) {
// n.hidden=true;
// }
// }
......@@ -1471,7 +1569,6 @@ function changeToMeso(iwannagraph) {
}
overNodes=true;
}
updateEdgeFilter(iwannagraph);
}
}
......@@ -1490,8 +1587,6 @@ function changeToMeso(iwannagraph) {
partialGraph.startForceAtlas2();
socsemFlag=true;
updateBothEdgeFilters();
updateBothNodeFilters();
}
}
......@@ -1545,8 +1640,6 @@ function changeToMeso(iwannagraph) {
}
}
}
updateEdgeFilter(iwannagraph);
updateNodeFilter("semantic");
}
}
// highlightSelectedNodes(true);
......@@ -1581,9 +1674,6 @@ function changeToMacro(iwannagraph) {
MultipleSelection(Object.keys(chosenones))
});
updateEdgeFilter(iwannagraph);
updateNodeFilter(iwannagraph);
} else {
//iwantograph socio-semantic
for(var n in Nodes) unHide(n);
......@@ -1613,8 +1703,6 @@ function changeToMacro(iwannagraph) {
unHide(e);
}
}
updateBothEdgeFilters();
updateBothNodeFilters();
}
// highlightSelectedNodes(true);
// // partialGraph.stopForceAtlas2();
......
......@@ -1137,7 +1137,8 @@ sigma.classes.Cascade = function() {
*/
function addEdge(id, source, target, params) {
if (self.edgesIndex[id]) {
//console.log('Edge "' + id + '" already exists.');
//console.log('Edge "' + id + '" already exists.');
return;
}
if (!self.nodesIndex[source]) {
......@@ -1150,7 +1151,8 @@ sigma.classes.Cascade = function() {
throw new Error(s);
}
var ident = params.sourceID.charAt(0)+params.targetID.charAt(0);
// var ident = params.sourceID.charAt(0)+params.targetID.charAt(0);
var color;
//pr(params.label);
if(params.label=="nodes1") {
......@@ -1161,13 +1163,13 @@ sigma.classes.Cascade = function() {
}
if(params.label=="bipartite") {
color = "#7e9bc2";
}
}
params = params || {};
var e = {
'source': self.nodesIndex[source],
'target': self.nodesIndex[target],
'size': 1,
'dead':false,
'weight': 1,
'displaySize': 0.5,
'color': color,
......@@ -1184,7 +1186,6 @@ sigma.classes.Cascade = function() {
for (var k in params) {
switch (k) {
case 'id':
case 'dead':
case 'source':
case 'target':
break;
......@@ -1209,6 +1210,18 @@ sigma.classes.Cascade = function() {
e['attr'][k] = params[k];
}
}
// var colS = self.nodesIndex[source].color
// var colT = self.nodesIndex[target].color
// e.attr['true_color'] = color
// e.attr['grey'] = 0
// // if node source and target are inactive, grey edge
// if ( colS==greyColor || colT==greyColor ) {
// e.attr['grey'] = 1
// e.color = greyColor
// }
self.edges.push(e);
self.edgesIndex[id.toString()] = e;
......@@ -1228,7 +1241,6 @@ sigma.classes.Cascade = function() {
'size': edge['size'],
'type': edge['type'],
'weight': edge['weight'],
'dead' : edge['dead'],
'displaySize': edge['displaySize'],
'label': edge['label'],
'hidden': edge['hidden'],
......@@ -1251,7 +1263,6 @@ sigma.classes.Cascade = function() {
for (var k in copy) {
switch (k) {
case 'id':
case 'dead':
case 'displaySize':
break;
case 'weight':
......@@ -2379,7 +2390,7 @@ sigma.classes.Cascade = function() {
case 'curve':
ctx.strokeStyle = color;
if(overNodes==false) {
if(color == '#9b9e9e') {
if(color == greyColor) {
ctx.lineWidth = edge['displaySize'] / 16;
}
else {
......@@ -2387,7 +2398,7 @@ sigma.classes.Cascade = function() {
}
}
else {
if(color == '#9b9e9e') {
if(color == greyColor) {
ctx.lineWidth = edge['displaySize'] / 16;
}
else {
......
......@@ -647,6 +647,7 @@ function extractFromJson(data,seed){
partialGraph.addNode(i,Nodes[i]);
unHide(i);
}
// pr(Nodes[i])
}
var edgeId = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment