Commit 95de868f authored by PkSM3's avatar PkSM3

edge-filter improved

parent ed35fbc2
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>TinawebJS</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8">
<link rel="stylesheet" href="jquery2/jquery-ui.css" media="screen">
<link rel="stylesheet" href="css2/bootstrap.css" media="screen">
<link rel="stylesheet" href="css2/freshstyle.css" media="screen">
<link rel="stylesheet" href="css2/custom.css" media="screen">
<link rel="stylesheet" href="css2/sidebar.css" media="screen">
<link rel="stylesheet" href="bootswatch/css/bootswatch.css">
<link rel="stylesheet" href="css2/font.css" type="text/css">
<link rel="stylesheet" href="libs/bootstrap-select.min.css" media="screen">
</head>
<body>
<!-- this is the tweakbar -->
<div id="defaultop" class="navbar navbar-default">
<div class="navbar-collapse collapse navbar-responsive-collapse">
<div id="left" style="margin:0em 2em;">
<ul class="nav navbar-nav">
<li>
<a>
<div style="margin:0em 2em;" id="unranged-value"></div>
<label style="margin:0em 2em;" for="unranged-value">selector size</label>
</a>
</li>
</ul>
<ul id="category-B" class="nav navbar-nav navbar-right">
<li>
<ul style="list-style-type: none; margin:0em 1em;">
<li><div id="sliderBEdgeWeight"></div></li>
</ul>
</li>
</ul>
</div>
</div><!-- /.nav-collapse -->
</div><!-- /.navbar -->
<div id="wrapper"> lalalalalala </div>
<!--<script src="libs/jquery/jquery-1.9.1.js"></script>-->
<!--<script src="libs/jquery/jquery-ui.js" type="text/javascript"></script>-->
<script src="jquery2/jquery-1.10.2.js" type="text/javascript"></script>
<script src="jquery2/jquery-ui.js" type="text/javascript"></script>
<script src="libs/jquery/jquery.ba-dotimeout.min.js" type="text/javascript"></script>
<script type="text/javascript" src="libs/freshslider.1.0.js"></script>
<!--source: http://www.jqueryscript.net/slider/Simple-Nice-jQuery-Value-Range-Slider-Plugin-Fresh-Slider.html-->
<script src="libs/bootstrap/js/bootstrap.min.js"></script>
<script src="bootswatch/js/bootswatch.js"></script>
<script src="libs/bootstrap/js/bootstrap-modal.js" type="text/javascript"></script>
<script src="tinawebJS/js/globalUtils.js" type="text/javascript"></script>
<script src="slidertest.js" type="text/javascript"></script>
</body>
</html>
function calc_range(begin, end) {
if (typeof end === "undefined") {
end = begin; begin = 0;
}
var result = [], modifier = end > begin ? 1 : -1;
for ( var i = 0; i <= Math.abs(end - begin); i++ ) {
result.push(begin + i * modifier);
}
return result;
}
var lastFilter = []
lastFilter["#sliderBNodeWeight"] = "-"
lastFilter["#sliderAEdgeWeight"] = "-"
lastFilter["#sliderBEdgeWeight"] = "-"
function pushFilterValue(filtername,arg){
lastFilter[filtername] = arg;
}
var finalarray = [];
finalarray.push(["D:01","D:02","D:03","D:04","D:05","D:06","D:07","D:08","D:09","D:10"])
finalarray.push(["D:11","D:12","D:13","D:14","D:15","D:16","D:17","D:18","D:19","D:20"])
finalarray.push(["D:21","D:22","D:23","D:24","D:25","D:26","D:27","D:28","D:29","D:30"])
finalarray.push(["D:31","D:32","D:33","D:34","D:35","D:36","D:37","D:38","D:39","D:40"])
finalarray.push(["D:41","D:42","D:43","D:44","D:45","D:46","D:47","D:48","D:49","D:50"])
finalarray.push(["D:51","D:52","D:53","D:54","D:55","D:56","D:57","D:58","D:59","D:60"])
finalarray.push(["D:61","D:62","D:63","D:64","D:65","D:66","D:67","D:68","D:69","D:70"])
finalarray.push(["D:71","D:72","D:73","D:74","D:75","D:76","D:77","D:78","D:79","D:80"])
finalarray.push(["D:81","D:82","D:83","D:84","D:85","D:86","D:87","D:88","D:89","D:90"])
finalarray.push(["D:91","D:92","D:93","D:94","D:95","D:96","D:97","D:98","D:99","D:100"])
var steps = finalarray.length;
var sliderDivID = "#sliderBEdgeWeight";
var lastvalue=("0-"+(steps-1));
pushFilterValue( sliderDivID , "0-"+(steps-1) )
//finished
$(sliderDivID).freshslider({
range: true,
step: 1,
min:0,
bgcolor: "#FFA500" ,
max:steps-1,
value:[0,steps-1],
onchange:function(low, high) {
var filtervalue = low+"-"+high
if(filtervalue!=lastFilter[sliderDivID]) {
$.doTimeout(sliderDivID+"_"+lastFilter[sliderDivID]);
$.doTimeout( sliderDivID+"_"+filtervalue,2000,function () {
pr("\nprevious value "+lastvalue+" | current value "+filtervalue)
var t0 = lastvalue.split("-")
var mint0=parseInt(t0[0]), maxt0=parseInt(t0[1]), mint1=parseInt(low), maxt1=parseInt(high);
var addflag = false;
var delflag = false;
var iterarr = []
if(mint0!=mint1) {
if(mint0<mint1) {
delflag = true;
pr("cotainferior --||>--------|| a la derecha")
}
if(mint0>mint1) {
addflag = true;
pr("cotainferior --<||--------|| a la izquierda")
}
iterarr = calc_range(mint0,mint1).sort();
}
if(maxt0!=maxt1) {
if(maxt0<maxt1) {
addflag = true;
pr("cotasuperior ||--------||>-- a la derecha")
}
if(maxt0>maxt1) {
delflag = true;
pr("cotasuperior ||--------<||-- a la izquierda")
}
iterarr = calc_range(maxt0,maxt1).sort();
}
for( var c in iterarr ) {
var i = iterarr[c];
ids = finalarray[i]
if(i>=low && i<=high){
if(addflag) {
pr("\tADD pos"+i+": "+ids.join())
}
} else {
if(delflag) {
pr("\tDEL pos"+i+": "+ids.join())
}
}
}
lastvalue = filtervalue;
});
pushFilterValue( sliderDivID , filtervalue )
}
}
});
\ No newline at end of file
......@@ -197,10 +197,14 @@ function EdgeWeightFilter(sliderDivID , type_attrb , type , criteria) {
}
var filterparams = AlgorithmForSliders ( partialGraph._core.graph.edges , type_attrb , type , criteria)
var steps = filterparams["steps"]
var finalarray = filterparams["finalarray"]
var lastvalue=("0-"+(steps-1));
pushFilterValue( sliderDivID , lastvalue )
//finished
$(sliderDivID).freshslider({
range: true,
......@@ -211,48 +215,97 @@ function EdgeWeightFilter(sliderDivID , type_attrb , type , criteria) {
value:[0,steps-1],
onchange:function(low, high) {
$.doTimeout(300,function () {
var filtervalue = low+"-"+high
if(filtervalue!=lastFilter[sliderDivID]) {
$.doTimeout(sliderDivID+"_"+lastFilter[sliderDivID]);
$.doTimeout( sliderDivID+"_"+filtervalue,300,function () {
pr("\nprevious value "+lastvalue+" | current value "+filtervalue)
var filtervalue = low+"-"+high
if(filtervalue!=lastFilter[sliderDivID]) {
if(lastFilter[sliderDivID]=="-") {
pushFilterValue( sliderDivID , filtervalue )
return false
}
// [ Stopping FA2 ]
partialGraph.stopForceAtlas2();
// [ / Stopping FA2 ]
for(var i in finalarray) {
var t0 = lastvalue.split("-")
var mint0=parseInt(t0[0]), maxt0=parseInt(t0[1]), mint1=parseInt(low), maxt1=parseInt(high);
var addflag = false;
var delflag = false;
var iterarr = []
if(mint0!=mint1) {
if(mint0<mint1) {
delflag = true;
pr("cotainferior --||>--------|| a la derecha")
}
if(mint0>mint1) {
addflag = true;
pr("cotainferior --<||--------|| a la izquierda")
}
iterarr = calc_range(mint0,mint1).sort(compareNumbers);
}
if(maxt0!=maxt1) {
if(maxt0<maxt1) {
addflag = true;
pr("cotasuperior ||--------||>-- a la derecha")
}
if(maxt0>maxt1) {
delflag = true;
pr("cotasuperior ||--------<||-- a la izquierda")
}
iterarr = calc_range(maxt0,maxt1).sort(compareNumbers);
}
// do the important stuff
for( var c in iterarr ) {
var i = iterarr[c];
ids = finalarray[i]
if(i>=low && i<=high){
for(var id in ids) {
ID = ids[id]
Edges[ID].lock = false;
for (var n in partialGraph._core.graph.nodesIndex) {
sid = Edges[ID].sourceID
tid = Edges[ID].targetID
if (sid==n || tid==n) {
if(isUndef(getn(sid))) unHide(sid)
if(isUndef(getn(tid))) unHide(tid)
if(i>=low && i<=high) {
if(addflag) {
// pr("adding "+ids.join())
for(var id in ids) {
ID = ids[id]
Edges[ID].lock = false;
if(swMacro) {
add1Edge(ID)
// pr("addedge")
} else {
for (var n in partialGraph._core.graph.nodesIndex) {
sid = Edges[ID].sourceID
tid = Edges[ID].targetID
if (sid==n || tid==n) {
if(isUndef(getn(sid))) unHide(sid)
if(isUndef(getn(tid))) unHide(tid)
add1Edge(ID)
// pr("\tADD "+ID)
}
}
}
}
}
} else {
for(var id in ids) {
ID = ids[id]
partialGraph.dropEdge(ID)
Edges[ID].lock = true;
// pr("removeedge")
if(delflag) {
// pr("deleting "+ids.join())
for(var id in ids) {
ID = ids[id]
if(!isUndef(gete(ID)))
partialGraph.dropEdge(ID)
Edges[ID].lock = true;
// pr("\tDEL "+ID)
// pr("removeedge")
}
}
}
}
pushFilterValue(sliderDivID,filtervalue)
if (!is_empty(selections))
DrawAsSelectedNodes(selections)
......@@ -268,9 +321,11 @@ function EdgeWeightFilter(sliderDivID , type_attrb , type , criteria) {
});
// [ / Starting FA2 ]
}
});// [/doTimeout]
lastvalue = filtervalue;
});
pushFilterValue( sliderDivID , filtervalue )
}
}
});
......
......@@ -15,6 +15,22 @@ function getClientTime(){
return result;
}
function compareNumbers(a, b) {
return a - b;
}
//python range(a,b) | range(a)
function calc_range(begin, end) {
if (typeof end === "undefined") {
end = begin; begin = 0;
}
var result = [], modifier = end > begin ? 1 : -1;
for ( var i = 0; i <= Math.abs(end - begin); i++ ) {
result.push(begin + i * modifier);
}
return result;
}
//to general utils (not used btw)
function cloneObject(source) {
......
......@@ -1119,7 +1119,7 @@ sigma.publicPrototype.startForceAtlas2 = function() {
this.forceatlas2.init();
this.forceatlas2.active=true;
pr("\t\t\t\t\tFA2 Started")
// pr("\t\t\t\t\tFA2 Started")
var ene = this._core.graph.nodes.length;
var isolatedBCauseFilter = 0;
for (var i in this._core.graph.nodesIndex) {
......@@ -1140,7 +1140,7 @@ sigma.publicPrototype.startForceAtlas2 = function() {
// fixing anomaly in forceatlas2
$.doTimeout(250,function (){
if( partialGraph.forceatlas2.active && partialGraph.forceatlas2.count==0 ) {
if( !swMacro && partialGraph.forceatlas2.active && partialGraph.forceatlas2.count==0) {
pr("SUPER JUTSU!!")
partialGraph.startForceAtlas2();
return;
......@@ -1152,7 +1152,7 @@ sigma.publicPrototype.startForceAtlas2 = function() {
sigma.publicPrototype.stopForceAtlas2 = function() {
pr("\t\t\t\t\tFA2 Stopped")
// pr("\t\t\t\t\tFA2 Stopped")
this.removeGenerator('forceatlas2');
this.forceatlas2.active=false;
this.forceatlas2.count=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