Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
clinicaltrials
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
david Chavalarias
clinicaltrials
Commits
b8123669
Commit
b8123669
authored
Oct 12, 2016
by
Romain Loth
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove only trailing spaces
parent
e1b6143a
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
440 additions
and
446 deletions
+440
-446
init.js
crowdsourcingModule/init.js
+1
-1
suggest.js
crowdsourcingModule/suggest.js
+10
-10
explorerjs.html
explorerjs.html
+46
-46
init.js
histogramModule/init.js
+1
-1
settings_explorerjs.js
settings_explorerjs.js
+6
-7
Tinaweb.js
tinawebJS/Tinaweb.js
+86
-87
asyncFA2.js
tinawebJS/asyncFA2.js
+12
-12
enviroment.js
tinawebJS/enviroment.js
+57
-57
globalUtils.js
tinawebJS/globalUtils.js
+20
-20
jLouvain.js
tinawebJS/jLouvain.js
+19
-19
main.js
tinawebJS/main.js
+15
-18
methods.js
tinawebJS/methods.js
+41
-41
sigma.forceatlas2.js
tinawebJS/sigma.forceatlas2.js
+16
-16
sigma.min.js
tinawebJS/sigma.min.js
+40
-41
sigma.parseCustom.js
tinawebJS/sigma.parseCustom.js
+70
-70
No files found.
crowdsourcingModule/init.js
View file @
b8123669
...
...
@@ -2,7 +2,7 @@
// ====================
// Allows suggestions from search box
// Our module_name is simultaneously 3 things:
// Our module_name is simultaneously 3 things:
// - a DivsFlag for settings_explorerjs
// - our current dir for this module's files (and this init.js)
// - the class of module's html elements
...
...
crowdsourcingModule/suggest.js
View file @
b8123669
...
...
@@ -24,7 +24,7 @@ $("#searchinput").on("tw:eraseNodeSet", function(e) {
// emptyNodeSet event when Tinawab had a search but with no matches
$
(
"#searchinput"
).
on
(
"tw:emptyNodeSet"
,
function
(
e
)
{
$
(
'#savesuggestion'
).
prop
(
'disabled'
,
false
)
;
// when query has no match
if
(
e
.
nodeIds
==
null
||
e
.
nodeIds
.
length
==
0
)
{
...
...
@@ -59,12 +59,12 @@ function save_suggestions(term) {
"data"
:
term
,
"date"
:
(
new
Date
()).
toISOString
(),
}
// sqlite columns in new table 'terms'
// 0|source|CHAR(250)|0||0
// 1|suggestion|CHAR(250)|0||0
// 2|time|CHAR(30)|0||0
// console.log( "SAVE INFO:" + info )
$
.
ajax
({
type
:
"POST"
,
...
...
@@ -84,21 +84,21 @@ function save_suggestions(term) {
p
.
append
(
i
);
p
.
append
(
' was saved as a suggestion'
);
$
(
"#crowdsourcing_answer"
).
html
(
p
)
;
// show "saved" icon
$
(
"#saveicon"
).
removeClass
(
"glyphicon-save"
);
$
(
"#saveicon"
).
addClass
(
"glyphicon-saved"
);
// reset state after 3 secs
setTimeout
(
function
()
{
clean_crowdsourcingzone
()
;
// if we want to reset the input value too
// $("#proposed_terms").val('') ;
},
3000
);
},
error
:
function
(
exception
)
{
error
:
function
(
exception
)
{
console
.
log
(
exception
)
console
.
log
(
"exception!:"
+
exception
.
status
)
}
...
...
@@ -134,11 +134,11 @@ function clean_crowdsourcingzone() {
//~ }, 3000);
//~ }, 1000);
//~ },
//~
//~ error: function(exception) {
//~
//~ error: function(exception) {
//~ console.log(exception)
//~ console.log("exception!:"+exception.status)
//~ }
//~
//~
//~ })
//~ }
explorerjs.html
View file @
b8123669
This diff is collapsed.
Click to expand it.
histogramModule/init.js
View file @
b8123669
...
...
@@ -2,7 +2,7 @@
// =================
// Presents a histogram from WOS API
// Our module_name is simultaneously 3 things:
// Our module_name is simultaneously 3 things:
// - a DivsFlag for settings_explorerjs
// - our current dir for this module's files (and this init.js)
// - the class of module's html elements
...
...
settings_explorerjs.js
View file @
b8123669
...
...
@@ -52,7 +52,7 @@ var TW = {}
TW
.
SystemStates
.
opposites
=
[];
TW
.
catSoc
=
"Document"
;
TW
.
catSem
=
"NGram"
;
TW
.
strSearchBar
=
"Select or suggest topics"
;
var
ParseCustom
=
function
()
{};
...
...
@@ -85,7 +85,7 @@ var desirableScholarSize=6; //Remember that all scholars have the same size!
*Three states:
* - true: fa2 running at start
* - false: fa2 stopped at start, button exists
* - "off": button doesn't exist, fa2 stopped forever
* - "off": button doesn't exist, fa2 stopped forever
**/
var
fa2enabled
=
false
;
//"off";
var
stopcriteria
=
false
;
var
iterationsFA2
=
1000
;
...
...
@@ -120,7 +120,7 @@ var sigmaJsMouseProperties = {
maxRatio
:
50
};
// ============ < / SIGMA.JS PROPERTIES > ============
// ============ < / DEVELOPER OPTIONS > ============
...
...
@@ -165,15 +165,15 @@ var overviewScale = 0.25;
var
overviewHover
=
false
;
var
moveDelay
=
80
,
zoomDelay
=
2
;
//var Vecindad;
TW
.
partialGraph
;
TW
.
partialGraph
;
var
otherGraph
;
TW
.
Nodes
=
[];
TW
.
Nodes
=
[];
TW
.
Edges
=
[];
TW
.
Clusters
=
[];
var
nodeslength
=
0
;
var
labels
=
[];
var
labels
=
[];
var
numberOfDocs
=
0
;
var
numberOfNGrams
=
0
;
...
...
@@ -232,4 +232,3 @@ var RVUniformC = function(seed){
};
}
//unifCont = new RVUniformC(100000000)
tinawebJS/Tinaweb.js
View file @
b8123669
This diff is collapsed.
Click to expand it.
tinawebJS/asyncFA2.js
View file @
b8123669
...
...
@@ -237,7 +237,7 @@ var ForceAtlas2 = function(graph) {
totalSwinging
+=
n
.
fa2
.
mass
*
swinging
;
swingingSum
+=
swinging
;
promdxdy
+=
(
Math
.
abs
(
n
.
fa2
.
dx
)
+
Math
.
abs
(
n
.
fa2
.
dy
))
/
2
;
/**/
totalEffectiveTraction
+=
n
.
fa2
.
mass
*
0.5
*
Math
.
sqrt
(
...
...
@@ -246,15 +246,15 @@ var ForceAtlas2 = function(graph) {
);
}
});
self
.
p
.
totalSwinging
=
totalSwinging
;
var
convg
=
((
Math
.
pow
(
nodes
.
length
,
2
))
/
promdxdy
);
/**/
var
swingingVSnodes_length
=
swingingSum
/
nodes
.
length
;
/**/
// if(convg > swingingVSnodes_length){
// if(convg > swingingVSnodes_length){
// self.p.banderita=true;
// }
self
.
p
.
totalEffectiveTraction
=
totalEffectiveTraction
;
// We want that swingingMovement < tolerance * convergenceMovement
...
...
@@ -880,7 +880,7 @@ var Region = function(nodes, depth) {
massCenterX
:
0
,
massCenterY
:
0
};
console
.
log
(
"updating mass and geometry"
);
this
.
updateMassAndGeometry
();
}
...
...
@@ -960,7 +960,7 @@ var applyForce = function(n, Force, theta) {
// [ NEW STUFF FOR WORKERS ]
// [ NEW STUFF FOR WORKERS ]
// 01. Return the values to MainContext when spatialization is finished
var
startForceAtlas2
=
function
(
graph
,
limit_it
)
{
...
...
@@ -987,7 +987,7 @@ var applyForce = function(n, Force, theta) {
forceatlas2
=
new
ForceAtlas2
(
graph
);
forceatlas2
.
setAutoSettings
();
forceatlas2
.
init
();
count
=
0
;
flag
=
false
;
while
(
true
){
...
...
@@ -1000,13 +1000,13 @@ var applyForce = function(n, Force, theta) {
}
count
++
;
if
(
flag
||
count
>
limit_it
)
break
;
}
}
// pr(forceatlas2.graph.nodes[0].x)
// pr(forceatlas2.graph.nodes[0].y)
// console.log("\titerations: "+count)
result
=
{
"nodes"
:
forceatlas2
.
graph
.
nodes
,
"it"
:
count
"it"
:
count
}
return
result
;
};
...
...
@@ -1024,8 +1024,8 @@ var applyForce = function(n, Force, theta) {
"nodes"
:
result
.
nodes
,
"it"
:
result
.
it
});
},
false
);
// [ / NEW STUFF FOR WORKERS ]
\ No newline at end of file
// [ / NEW STUFF FOR WORKERS ]
tinawebJS/enviroment.js
View file @
b8123669
This diff is collapsed.
Click to expand it.
tinawebJS/globalUtils.js
View file @
b8123669
...
...
@@ -51,7 +51,7 @@ function isUndef(variable){
$
.
fn
.
toggleClick
=
function
(){
methods
=
arguments
,
// store the passed arguments for future reference
count
=
methods
.
length
;
// cache the number of methods
count
=
methods
.
length
;
// cache the number of methods
//use return this to maintain jQuery chainability
return
this
.
each
(
function
(
i
,
item
){
...
...
@@ -101,7 +101,7 @@ function ArraySortByValue(array, sortFunc){
for
(
var
k
in
array
)
{
if
(
array
.
hasOwnProperty
(
k
))
{
tmp
.
push
({
key
:
k
,
key
:
k
,
value
:
array
[
k
]
});
if
((
array
[
k
])
>
oposMAX
)
oposMAX
=
array
[
k
];
...
...
@@ -110,8 +110,8 @@ function ArraySortByValue(array, sortFunc){
tmp
.
sort
(
function
(
o1
,
o2
)
{
return
sortFunc
(
o1
.
value
,
o2
.
value
);
});
return
tmp
;
});
return
tmp
;
}
...
...
@@ -121,7 +121,7 @@ function ArraySortByKey(array, sortFunc){
for
(
var
k
in
array
)
{
if
(
array
.
hasOwnProperty
(
k
))
{
tmp
.
push
({
key
:
k
,
key
:
k
,
value
:
array
[
k
]
});
}
...
...
@@ -129,10 +129,10 @@ function ArraySortByKey(array, sortFunc){
tmp
.
sort
(
function
(
o1
,
o2
)
{
return
sortFunc
(
o1
.
key
,
o2
.
key
);
});
return
tmp
;
});
return
tmp
;
}
function
is_empty
(
obj
)
{
// Assume if it has a length property with a non-zero value
...
...
@@ -214,7 +214,7 @@ normalizeString = function(string, escapeHtml) {
// (or use jquery .text())
saferString
=
function
(
string
)
{
// TODO table in an outer scope
conversions
=
{
conversions
=
{
'&'
:
'&'
,
'<'
:
'<'
,
'>'
:
'>'
,
...
...
@@ -222,17 +222,17 @@ saferString = function(string) {
"'"
:
'''
,
"{"
:
'{'
,
"}"
:
'}'
,
'%'
:
'%'
'%'
:
'%'
}
;
matchables
=
/
[
&<>"'{}%
]
/g
;
if
(
!
typeof
string
==
"string"
)
{
return
""
;
}
else
{
return
string
.
replace
(
matchables
,
matchables
,
function
(
char
)
{
return
conversions
[
char
]
}
...
...
@@ -243,17 +243,17 @@ saferString = function(string) {
/**
* function to load a given css file
*/
* function to load a given css file
*/
loadCSS
=
function
(
href
)
{
var
cssLink
=
$
(
"<link rel='stylesheet' type='text/css' href='"
+
href
+
"'>"
);
$
(
"head"
).
append
(
cssLink
);
$
(
"head"
).
append
(
cssLink
);
};
/**
* function to load a given js file
*/
* function to load a given js file
*/
loadJS
=
function
(
src
)
{
var
jsLink
=
$
(
"<script type='text/javascript' src='"
+
src
+
"'>"
);
$
(
"head"
).
append
(
jsLink
);
};
$
(
"head"
).
append
(
jsLink
);
};
tinawebJS/jLouvain.js
View file @
b8123669
/*
/*
Author: Corneliu S. (github.com/upphiminn)
This is a javascript implementation of the Louvain
This is a javascript implementation of the Louvain
community detection algorithm (http://arxiv.org/abs/0803.0476)
Based on https://bitbucket.org/taynaud/python-louvain/overview
Based on https://bitbucket.org/taynaud/python-louvain/overview
*/
(
function
(){
...
...
@@ -48,16 +48,16 @@ Based on https://bitbucket.org/taynaud/python-louvain/overview
});
return
weight
;
};
function
get_neighbours_of_node
(
graph
,
node
){
if
(
typeof
graph
.
_assoc_mat
[
node
]
==
'undefined'
)
return
[];
var
neighbours
=
Object
.
keys
(
graph
.
_assoc_mat
[
node
]);
var
neighbours
=
Object
.
keys
(
graph
.
_assoc_mat
[
node
]);
return
neighbours
;
}
function
get_edge_weight
(
graph
,
node1
,
node2
){
return
graph
.
_assoc_mat
[
node1
]
?
graph
.
_assoc_mat
[
node1
][
node2
]
:
undefined
;
}
...
...
@@ -113,7 +113,7 @@ Based on https://bitbucket.org/taynaud/python-louvain/overview
return
temp
;
}
//Core-Algorithm Related
//Core-Algorithm Related
function
init_status
(
graph
,
status
,
part
){
status
[
'nodes_to_com'
]
=
{};
status
[
'total_weight'
]
=
0
;
...
...
@@ -184,13 +184,13 @@ Based on https://bitbucket.org/taynaud/python-louvain/overview
var
weights
=
{};
var
neighboorhood
=
get_neighbours_of_node
(
graph
,
node
);
//make iterable;
neighboorhood
.
forEach
(
function
(
neighbour
,
i
){
if
(
neighbour
!=
node
){
var
weight
=
graph
.
_assoc_mat
[
node
][
neighbour
]
||
1
;
var
weight
=
graph
.
_assoc_mat
[
node
][
neighbour
]
||
1
;
var
neighbourcom
=
status
.
nodes_to_com
[
neighbour
];
weights
[
neighbourcom
]
=
(
weights
[
neighbourcom
]
||
0
)
+
weight
;
}
}
});
return
weights
;
...
...
@@ -212,7 +212,7 @@ Based on https://bitbucket.org/taynaud/python-louvain/overview
function
__renumber
(
dict
){
var
count
=
0
;
var
ret
=
clone
(
dict
);
//deep copy :)
var
ret
=
clone
(
dict
);
//deep copy :)
var
new_values
=
{};
var
dict_keys
=
Object
.
keys
(
dict
);
dict_keys
.
forEach
(
function
(
key
){
...
...
@@ -255,7 +255,7 @@ Based on https://bitbucket.org/taynaud/python-louvain/overview
best_increase
=
incr
;
best_com
=
com
;
}
});
});
__insert
(
node
,
best_com
,
neigh_communities
[
best_com
]
||
0
,
status
);
...
...
@@ -278,7 +278,7 @@ Based on https://bitbucket.org/taynaud/python-louvain/overview
weight
=
edge
.
weight
||
1
;
var
com1
=
partition
[
edge
.
source
];
var
com2
=
partition
[
edge
.
target
];
w_prec
=
(
get_edge_weight
(
ret
,
com1
,
com2
)
||
0
);
w_prec
=
(
get_edge_weight
(
ret
,
com1
,
com2
)
||
0
);
var
new_weight
=
(
w_prec
+
weight
);
add_edge_to_graph
(
ret
,
{
'source'
:
com1
,
'target'
:
com2
,
'weight'
:
new_weight
});
});
...
...
@@ -298,7 +298,7 @@ Based on https://bitbucket.org/taynaud/python-louvain/overview
function
generate_dendogram
(
graph
,
part_init
){
if
(
graph
.
edges
.
length
==
0
){
var
part
=
{};
graph
.
nodes
.
forEach
(
function
(
node
,
i
){
...
...
@@ -326,14 +326,14 @@ Based on https://bitbucket.org/taynaud/python-louvain/overview
break
;
partition
=
__renumber
(
status
.
nodes_to_com
);
status_list
.
push
(
partition
);
status_list
.
push
(
partition
);
mod
=
new_mod
;
current_graph
=
induced_graph
(
partition
,
current_graph
);
init_status
(
current_graph
,
status
);
}
return
status_list
;
return
status_list
;
}
var
core
=
function
(){
...
...
@@ -361,7 +361,7 @@ Based on https://bitbucket.org/taynaud/python-louvain/overview
'_assoc_mat'
:
assoc_mat
};
}
return
core
;
};
core
.
partition_init
=
function
(
prttn
){
...
...
@@ -373,4 +373,4 @@ Based on https://bitbucket.org/taynaud/python-louvain/overview
return
core
;
}
})();
\ No newline at end of file
})();
tinawebJS/main.js
View file @
b8123669
...
...
@@ -47,13 +47,13 @@ var AjaxSync = (function(TYPE, URL, DATA, CT , DT) {
}
Result
=
{
"OK"
:
true
,
"format"
:
format
,
"data"
:
data
};
},
error
:
function
(
exception
)
{
error
:
function
(
exception
)
{
Result
=
{
"OK"
:
false
,
"format"
:
false
,
"data"
:
exception
.
status
};
}
});
return
Result
;
}).
index
();
function
getGexfPath
(
v
){
var
gexfpath
=
(
TW
.
gexfDictReverse
[
v
])?
TW
.
gexfDictReverse
[
v
]:
v
;
return
gexfpath
;
...
...
@@ -73,7 +73,7 @@ var file =""
if
(
!
isUndef
(
getUrlParam
.
mode
))
{
// if {db|api}.json
file
=
getUrlParam
.
mode
}
else
{
if
(
!
isUndef
(
getUrlParam
.
file
)
)
if
(
!
isUndef
(
getUrlParam
.
file
)
)
TW
.
mainfile
.
unshift
(
getUrlParam
.
file
);
var
unique_mainfile
=
TW
.
mainfile
.
filter
(
function
(
item
,
pos
)
{
...
...
@@ -87,7 +87,7 @@ if(RES["OK"]) {
var
fileparam
;
// = { db|api.json , somefile.json|gexf }
var
the_data
=
RES
[
"data"
];
var
the_file
=
""
;
if
(
!
isUndef
(
getUrlParam
.
mode
)
&&
getUrlParam
.
mode
==
"db.json"
)
{
...
...
@@ -141,7 +141,7 @@ if(RES["OK"]) {
fileparam
=
sub_RES
[
"format"
]
pr
(
the_data
.
length
)
pr
(
fileparam
)
getUrlParam
.
file
=
the_file
;
console
.
log
(
" . .. . -. - .- . - -."
)
console
.
log
(
getUrlParam
.
file
)
...
...
@@ -161,7 +161,7 @@ if(RES["OK"]) {
if
(
file
!=
"db.json"
&&
file
!=
"api.json"
)
fileparam
=
RES
[
"format"
];
start
=
new
ParseCustom
(
fileparam
,
the_data
);
categories
=
start
.
scanFile
();
//user should choose the order of categories
pr
(
"Categories: "
)
...
...
@@ -186,11 +186,11 @@ if(RES["OK"]) {
for
(
var
i
in
categories
)
{
TW
.
Filters
[
i
]
=
{}
TW
.
Filters
[
i
][
"#slidercat"
+
i
+
"edgesweight"
]
=
true
;
}
TW
.
Filters
[
i
][
"#slidercat"
+
i
+
"edgesweight"
]
=
true
;
}
// [ Initiating Sigma-Canvas ]
var
twjs_
=
new
TinaWebJS
(
'#sigma-example'
);
var
twjs_
=
new
TinaWebJS
(
'#sigma-example'
);
console
.
log
(
twjs_
.
AdjustSigmaCanvas
()
);
$
(
window
).
resize
(
function
()
{
console
.
log
(
twjs_
.
AdjustSigmaCanvas
())
});
// [ / Initiating Sigma-Canvas ]
...
...
@@ -242,7 +242,7 @@ if(RES["OK"]) {
var
past
=
TW
.
partialGraph
.
states
.
slice
(
-
2
)[
0
]
// avant Last
console
.
log
(
"previous level: "
+
past
.
level
)
console
.
log
(
"new level: "
+
present
.
level
)
console
.
log
(
" % % % % % % % % % % "
)
console
.
log
(
""
)
...
...
@@ -270,7 +270,7 @@ if(RES["OK"]) {
$
(
"#category0"
).
hide
();
$
(
"#category1"
).
show
();
if
(
$
(
"#slidercat1nodesweight"
).
html
()
==
""
)
if
(
$
(
"#slidercat1nodesweight"
).
html
()
==
""
)
NodeWeightFilter
(
this
.
categories
,
"#slidercat1nodesweight"
,
this
.
categories
[
1
],
"type"
,
"size"
);
if
(
$
(
"#slidercat1edgesweight"
).
html
()
==
""
)
...
...
@@ -288,7 +288,7 @@ if(RES["OK"]) {
$
(
"#category0"
).
show
();
$
(
"#category1"
).
hide
();
if
(
$
(
"#slidercat0nodesweight"
).
html
()
==
""
)
if
(
$
(
"#slidercat0nodesweight"
).
html
()
==
""
)
NodeWeightFilter
(
this
.
categories
,
"#slidercat0nodesweight"
,
this
.
categories
[
0
],
"type"
,
"size"
);
if
(
$
(
"#slidercat0edgesweight"
).
html
()
==
""
)
...
...
@@ -300,7 +300,7 @@ if(RES["OK"]) {
}
set_ClustersLegend
(
"clust_default"
)
}
else
{
//finished
$
(
"#slidercat1nodessize"
).
freshslider
({
step
:
1
,
...
...
@@ -320,7 +320,7 @@ if(RES["OK"]) {
TW
.
partialGraph
.
draw
();
});
}
});
});
}
...
...
@@ -370,6 +370,3 @@ ProcessDivsFlags() ;
$
(
"#searchinput"
).
attr
(
'placeholder'
,
TW
.
strSearchBar
)
;
console
.
log
(
"finish"
)
tinawebJS/methods.js
View file @
b8123669
...
...
@@ -10,7 +10,7 @@ function cancelSelection (fromTagCloud) {
TW
.
partialGraph
.
refresh
();
TW
.
partialGraph
.
states
.
slice
(
-
1
)[
0
].
selections
=
[]
//Nodes colors go back to normal
overNodes
=
false
;
e
=
TW
.
partialGraph
.
_core
.
graph
.
edges
;
...
...
@@ -19,18 +19,18 @@ function cancelSelection (fromTagCloud) {
e
[
i
].
attr
[
'grey'
]
=
0
;
}
TW
.
partialGraph
.
draw
(
2
,
1
,
2
);
TW
.
partialGraph
.
iterNodes
(
function
(
n
){
n
.
active
=
false
;
n
.
color
=
n
.
attr
[
'grey'
]
?
n
.
attr
[
'true_color'
]
:
n
.
color
;
n
.
attr
[
'grey'
]
=
0
;
}).
draw
(
2
,
1
,
2
);
//Nodes colors go back to normal
if
(
fromTagCloud
==
false
){
$
(
"#names"
).
html
(
""
);
$
(
"#names"
).
html
(
""
);
$
(
"#topPapers"
).
html
(
""
);
$
(
"#topPapers"
).
hide
();
$
(
"#opossiteNodes"
).
html
(
""
);
$
(
"#tab-container"
).
hide
();
$
(
"#information"
).
html
(
""
);
...
...
@@ -38,11 +38,11 @@ function cancelSelection (fromTagCloud) {
$
(
"#unselectbutton"
).
hide
();
$
(
"#tips"
).
html
(
getTips
());
}
// we send our "eraseNodeSet" event
// (signal for plugins that any selection behavior is finished)
$
(
'#searchinput'
).
trigger
(
"tw:eraseNodeSet"
);
for
(
var
i
in
deselections
){
if
(
!
isUndef
(
TW
.
partialGraph
.
_core
.
graph
.
nodesIndex
[
i
])
)
{
TW
.
partialGraph
.
_core
.
graph
.
nodesIndex
[
i
].
forceLabel
=
false
;
...
...
@@ -57,9 +57,9 @@ function cancelSelection (fromTagCloud) {
TW
.
partialGraph
.
draw
();
}
function
highlightSelectedNodes
(
flag
){
function
highlightSelectedNodes
(
flag
){
pr
(
"
\
t***methods.js:highlightSelectedNodes(flag)"
+
flag
+
" selEmpty:"
+
is_empty
(
selections
))
if
(
!
is_empty
(
selections
)){
if
(
!
is_empty
(
selections
)){
for
(
var
i
in
selections
)
{
if
(
TW
.
Nodes
[
i
].
type
==
TW
.
catSoc
&&
swclickActual
==
"social"
){
node
=
TW
.
partialGraph
.
_core
.
graph
.
nodesIndex
[
i
];
...
...
@@ -73,13 +73,13 @@ function highlightSelectedNodes(flag){
node
=
TW
.
partialGraph
.
_core
.
graph
.
nodesIndex
[
i
];
node
.
active
=
flag
;
}
else
break
;
else
break
;
}
}
}
function
alertCheckBox
(
eventCheck
){
function
alertCheckBox
(
eventCheck
){
if
(
!
isUndef
(
eventCheck
.
checked
))
checkBox
=
eventCheck
.
checked
;
}
...
...
@@ -98,7 +98,7 @@ function RefreshState(newNOW){
if
(
newNOW
!=
""
)
{
PAST
=
NOW
;
NOW
=
newNOW
;
// if(NOW=="a" || NOW=="A" || NOW=="AaBb") {
// $("#category-A").show();
// }
...
...
@@ -108,7 +108,7 @@ function RefreshState(newNOW){
}
$
(
"#category-A"
).
hide
();
$
(
"#category-B"
).
hide
();
$
(
"#category-B"
).
hide
();
// i=0; for(var s in selections) { i++; break;}
// if(is_empty(selections) || i==0) LevelButtonDisable(true);
// else LevelButtonDisable(false);
...
...
@@ -137,7 +137,7 @@ function RefreshState(newNOW){
$
(
"#semLoader"
).
hide
();
$
(
"#category-A"
).
show
();
$
(
"#colorGraph"
).
show
();
}
if
(
NOW
==
"B"
||
NOW
==
"b"
)
{
var
N
=
(
Object
.
keys
(
TW
.
Nodes
).
filter
(
function
(
n
){
return
TW
.
Nodes
[
n
].
type
==
TW
.
catSem
})
).
length
...
...
@@ -160,7 +160,7 @@ function RefreshState(newNOW){
$
.
doTimeout
(
30
,
function
(){
EdgeWeightFilter
(
"#sliderBEdgeWeight"
,
"label"
,
"nodes2"
,
"weight"
);
NodeWeightFilter
(
"#sliderBNodeWeight"
,
"NGram"
,
"type"
,
"size"
);
});
}
else
{
$
(
"#semLoader"
).
css
(
'visibility'
,
'visible'
);
...
...
@@ -261,7 +261,7 @@ function htmlfied_nodesatts(elems){
}
}
else
{
information
+=
'<li>'
+
$
(
"<div/>"
).
html
(
node
.
htmlCont
).
text
()
+
'</li>'
;
}
}
socnodes
.
push
(
information
)
}
...
...
@@ -330,7 +330,7 @@ function updateLeftPanel_fix( sels , oppos ) {
if
(
oppos
.
length
>
0
)
{
alterNodesDIV
+=
'<div id="opossitesBox">'
;
//tagcloud
alterNodesDIV
+=
htmlfied_alternodes
(
oppos
).
join
(
"
\n
"
)
alterNodesDIV
+=
htmlfied_alternodes
(
oppos
).
join
(
"
\n
"
)
alterNodesDIV
+=
'</div>'
;
}
...
...
@@ -362,18 +362,18 @@ function updateLeftPanel_fix( sels , oppos ) {
//using the readmore.js
// ive put a limit for nodes-name div
// and opposite-nodes div aka tagcloud div
// and im commenting now because github is not
// and im commenting now because github is not
// pushing my commit
// because i need more lines, idk
$
(
"#names"
).
html
(
namesDIV
).
readmore
({
maxHeight
:
100
});
$
(
"#names"
).
html
(
namesDIV
).
readmore
({
maxHeight
:
100
});
$
(
"#tab-container"
).
show
();
$
(
"#opossiteNodes"
).
html
(
alterNodesDIV
).
readmore
({
maxHeight
:
200
});
$
(
"#sameNodes"
).
html
(
sameNodesDIV
).
readmore
({
maxHeight
:
200
});
$
(
"#opossiteNodes"
).
html
(
alterNodesDIV
).
readmore
({
maxHeight
:
200
});
$
(
"#sameNodes"
).
html
(
sameNodesDIV
).
readmore
({
maxHeight
:
200
});
$
(
"#information"
).
html
(
informationDIV
);
$
(
"#tips"
).
html
(
""
);
if
(
TW
.
categoriesIndex
.
length
==
1
)
getTopPapers
(
"semantic"
);
else
getTopPapers
(
swclickActual
);
else
getTopPapers
(
swclickActual
);
}
function
printStates
()
{
...
...
@@ -437,7 +437,7 @@ function graphTagCloudElem(nodes) {
nodes_2_colour
[
t
]
=
false
;
edges_2_colour
[
s
+
";"
+
t
]
=
true
;
edges_2_colour
[
t
+
";"
+
s
]
=
true
;
if
(
!
selections
[
t
]
)
if
(
!
selections
[
t
]
)
voisinage
[
Number
(
t
)
]
=
true
;
}
}
...
...
@@ -461,10 +461,10 @@ function graphTagCloudElem(nodes) {
// console.log( "\t" + voisinage[i] + " vs " + voisinage[j] )
add1Elem
(
voisinage
[
i
]
+
";"
+
voisinage
[
j
]
)
}
}
}
futurelevel
=
false
;
...
...
@@ -481,7 +481,7 @@ function graphTagCloudElem(nodes) {
TW
.
partialGraph
.
states
[
avantlastpos
]
=
{};
TW
.
partialGraph
.
states
[
avantlastpos
].
level
=
present
.
level
;
TW
.
partialGraph
.
states
[
avantlastpos
].
selections
=
present
.
selections
;
TW
.
partialGraph
.
states
[
avantlastpos
].
type
=
present
.
type
;
TW
.
partialGraph
.
states
[
avantlastpos
].
type
=
present
.
type
;
TW
.
partialGraph
.
states
[
avantlastpos
].
opposites
=
present
.
opposites
;
TW
.
partialGraph
.
states
[
avantlastpos
].
categories
=
present
.
categories
;
//to_del
TW
.
partialGraph
.
states
[
avantlastpos
].
categoriesDict
=
present
.
categoriesDict
;
//to_del
...
...
@@ -503,7 +503,7 @@ function graphTagCloudElem(nodes) {
}
function
greyEverything
(){
nds
=
TW
.
partialGraph
.
_core
.
graph
.
nodes
.
filter
(
function
(
n
)
{
return
!
n
[
'hidden'
];
});
...
...
@@ -515,7 +515,7 @@ function greyEverything(){
}
nds
[
i
].
attr
[
'grey'
]
=
1
;
}
eds
=
TW
.
partialGraph
.
_core
.
graph
.
edges
.
filter
(
function
(
e
)
{
return
!
e
[
'hidden'
];
});
...
...
@@ -535,18 +535,18 @@ function graphResetColor(){
eds
=
TW
.
partialGraph
.
_core
.
graph
.
edges
.
filter
(
function
(
x
)
{
return
!
x
[
'hidden'
];
});
for
(
var
x
in
nds
){
n
=
nds
[
x
];
n
.
attr
[
"grey"
]
=
0
;
n
.
color
=
n
.
attr
[
"true_color"
];
}
for
(
var
x
in
eds
){
e
=
eds
[
x
];
e
.
attr
[
"grey"
]
=
0
;
e
.
color
=
e
.
attr
[
"true_color"
];
}
}
}
function
hideEverything
(){
...
...
@@ -595,7 +595,7 @@ function add1Elem(id) {
}
else
{
// It's an edge!
if
(
!
isUndef
(
gete
(
id
)))
return
;
if
(
TW
.
Edges
[
id
]
&&
!
TW
.
Edges
[
id
].
lock
){
// var present = TW.partialGraph.states.slice(-1)[0];
// var present = TW.partialGraph.states.slice(-1)[0];
var
anedge
=
{
id
:
id
,
sourceID
:
TW
.
Edges
[
id
].
source
,
...
...
@@ -625,7 +625,7 @@ function pushFilterValue(filtername,arg){
}
function
saveGraph
()
{
size
=
getByID
(
"check_size"
).
checked
color
=
getByID
(
"check_color"
).
checked
atts
=
{
"size"
:
size
,
"color"
:
color
}
...
...
@@ -657,15 +657,15 @@ function saveGEXF(nodes,edges,atts){
gexf
+=
'</attributes>
\
n'
;
gexf
+=
"<nodes>
\n
"
;
for
(
var
n
in
nodes
){
for
(
var
n
in
nodes
){
gexf
+=
'<node id="'
+
nodes
[
n
].
id
+
'" label="'
+
nodes
[
n
].
label
+
'">
\
n'
;
gexf
+=
' <viz:position x="'
+
nodes
[
n
].
x
+
'" y="'
+
nodes
[
n
].
y
+
'" z="0" />
\
n'
;
if
(
atts
[
"color"
])
gexf
+=
' <viz:size value="'
+
nodes
[
n
].
size
+
'" />
\
n'
;
if
(
atts
[
"color"
])
{
col
=
hex2rga
(
nodes
[
n
].
color
);
gexf
+=
' <viz:color r="'
+
col
[
0
]
+
'" g="'
+
col
[
1
]
+
'" b="'
+
col
[
2
]
+
'" a="1"/>
\
n'
;
}
}
gexf
+=
' <attvalues>
\
n'
;
gexf
+=
' <attvalue for="0" value="'
+
nodes
[
n
].
type
+
'"/>
\
n'
;
gexf
+=
' <attvalue for="1" value="'
+
TW
.
Nodes
[
nodes
[
n
].
id
].
CC
+
'"/>
\
n'
;
...
...
@@ -673,7 +673,7 @@ function saveGEXF(nodes,edges,atts){
gexf
+=
'</node>
\
n'
;
}
gexf
+=
"
\n
</nodes>
\n
"
;
gexf
+=
"<edges>
\n
"
;
gexf
+=
"<edges>
\n
"
;
cont
=
1
;
for
(
var
e
in
edges
){
gexf
+=
'<edge id="'
+
cont
+
'" source="'
+
edges
[
e
].
source
.
id
+
'" target="'
+
edges
[
e
].
target
.
id
+
'" weight="'
+
edges
[
e
].
weight
+
'">
\
n'
;
...
...
@@ -687,9 +687,9 @@ function saveGEXF(nodes,edges,atts){
}
function
saveGraphIMG
(){
var
strDownloadMime
=
"image/octet-stream"
var
nodesDiv
=
TW
.
partialGraph
.
_core
.
domElements
.
nodes
;
var
nodesCtx
=
nodesDiv
.
getContext
(
"2d"
);
...
...
tinawebJS/sigma.forceatlas2.js
View file @
b8123669
...
...
@@ -149,7 +149,7 @@ sigma.forceatlas2.ForceAtlas2 = function(graph , V , E) {
}
}
else
{
if
(
self
.
firstit
)
{
n
.
x
=
self
.
Ox
+
self
.
R
*
Math
.
cos
(
Math
.
PI
*
self
.
stepDeg
*
mult
);
n
.
y
=
self
.
Oy
+
self
.
R
*
Math
.
sin
(
Math
.
PI
*
self
.
stepDeg
*
mult
);
...
...
@@ -158,7 +158,7 @@ sigma.forceatlas2.ForceAtlas2 = function(graph , V , E) {
}
}
});
self
.
firstit
=
false
;
...
...
@@ -274,21 +274,21 @@ sigma.forceatlas2.ForceAtlas2 = function(graph , V , E) {
if
(
self
.
p
.
edgeWeightInfluence
==
0
)
{
while
(
i
<
edges
.
length
&&
i
<
self
.
state
.
index
+
cInt
)
{
var
e
=
edges
[
i
++
];
if
(
!
e
.
hidden
)
{
if
(
!
e
.
hidden
)
{
Attraction
.
apply_nn
(
e
.
source
,
e
.
target
,
1
);
}
}
}
else
if
(
self
.
p
.
edgeWeightInfluence
==
1
)
{
while
(
i
<
edges
.
length
&&
i
<
self
.
state
.
index
+
cInt
)
{
var
e
=
edges
[
i
++
];
if
(
!
e
.
hidden
)
{
if
(
!
e
.
hidden
)
{
Attraction
.
apply_nn
(
e
.
source
,
e
.
target
,
e
.
weight
||
1
);
}
}
}
else
{
while
(
i
<
edges
.
length
&&
i
<
self
.
state
.
index
+
cInt
)
{
var
e
=
edges
[
i
++
];
if
(
!
e
.
hidden
)
{
if
(
!
e
.
hidden
)
{
Attraction
.
apply_nn
(
e
.
source
,
e
.
target
,
Math
.
pow
(
e
.
weight
||
1
,
self
.
p
.
edgeWeightInfluence
)
...
...
@@ -325,7 +325,7 @@ sigma.forceatlas2.ForceAtlas2 = function(graph , V , E) {
totalSwinging
+=
n
.
fa2
.
mass
*
swinging
;
swingingSum
+=
swinging
;
promdxdy
+=
(
Math
.
abs
(
n
.
fa2
.
dx
)
+
Math
.
abs
(
n
.
fa2
.
dy
))
/
2
;
/**/
totalEffectiveTraction
+=
n
.
fa2
.
mass
*
0.5
*
Math
.
sqrt
(
...
...
@@ -334,16 +334,16 @@ sigma.forceatlas2.ForceAtlas2 = function(graph , V , E) {
);
}
});
self
.
p
.
totalSwinging
=
totalSwinging
;
var
convg
=
((
Math
.
pow
(
nodes
.
length
,
2
))
/
promdxdy
);
/**/
var
swingingVSnodes_length
=
swingingSum
/
nodes
.
length
;
/**/
if
(
stopcriteria
&&
(
convg
>
swingingVSnodes_length
)){
if
(
stopcriteria
&&
(
convg
>
swingingVSnodes_length
)){
pr
(
"i've applied the stopcriteria: "
+
self
.
count
)
TW
.
partialGraph
.
stopForceAtlas2
();
TW
.
partialGraph
.
stopForceAtlas2
();
}
self
.
p
.
totalEffectiveTraction
=
totalEffectiveTraction
;
// We want that swingingMovement < tolerance * convergenceMovement
...
...
@@ -362,7 +362,7 @@ sigma.forceatlas2.ForceAtlas2 = function(graph , V , E) {
// Save old coordinates
nodes
.
forEach
(
function
(
n
)
{
if
(
!
n
.
hidden
&&
n
.
degree
>
0
)
{
if
(
!
n
.
hidden
&&
n
.
degree
>
0
)
{
n
.
old_x
=
+
n
.
x
;
n
.
old_y
=
+
n
.
y
;
}
...
...
@@ -403,7 +403,7 @@ sigma.forceatlas2.ForceAtlas2 = function(graph , V , E) {
}
}
if
(
self
.
isolated
>
0
&&
self
.
count
%
50
==
0
)
{
nodes
.
forEach
(
function
(
n
)
{
if
(
n
.
degree
>
0
)
{
...
...
@@ -994,7 +994,7 @@ sigma.forceatlas2.Region = function(nodes, depth) {
massCenterX
:
0
,
massCenterY
:
0
};
this
.
updateMassAndGeometry
();
}
...
...
@@ -1130,7 +1130,7 @@ sigma.publicPrototype.startForceAtlas2 = function() {
if
(
isolatedBCauseFilter
==
ene
)
{
TW
.
partialGraph
.
stopForceAtlas2
();
return
;
}
}
$
(
"#overviewzone"
).
hide
();
...
...
@@ -1148,7 +1148,7 @@ sigma.publicPrototype.startForceAtlas2 = function() {
return
;
}
});
}
};
...
...
tinawebJS/sigma.min.js
View file @
b8123669
...
...
@@ -487,7 +487,7 @@ sigma.classes.Cascade = function() {
drawHover
();
drawActive
();
// if(cursor_size>0){
// pr("moving with mouse-circle ON");
// }
...
...
@@ -1074,9 +1074,9 @@ sigma.classes.Cascade = function() {
var
s
=
'Edge
\'
s target "'
+
target
+
'" does not exist yet.'
;
throw
new
Error
(
s
);
}
// var ident = params.sourceID.charAt(0)+params.targetID.charAt(0);
//edge color will be the combination of the 2 node colors
var
a
=
self
.
nodesIndex
[
source
][
'color'
];
var
b
=
self
.
nodesIndex
[
target
][
'color'
];
...
...
@@ -1098,7 +1098,7 @@ sigma.classes.Cascade = function() {
var
b
=
(
a
[
2
]
+
b
[
2
])
>>
1
;
// var color = '#'+sigma.tools.rgbToHex(parseFloat(r),parseFloat(g),parseFloat(b))
var
color
=
"rgba( "
+
r
+
", "
+
g
+
" , "
+
b
+
" ,0.5)"
;
//pr(params.label);
// if(params.label=="nodes1") {
// color = "#cedc75";
...
...
@@ -1127,7 +1127,7 @@ sigma.classes.Cascade = function() {
e
[
'source'
][
'outDegree'
]
++
;
e
[
'target'
][
'degree'
]
++
;
e
[
'target'
][
'inDegree'
]
++
;
for
(
var
k
in
params
)
{
switch
(
k
)
{
case
'id'
:
...
...
@@ -1271,7 +1271,7 @@ sigma.classes.Cascade = function() {
* Deletes every nodes and edges from the graph.
* @return {Graph} Returns itself.
*/
function
empty
()
{
function
empty
()
{
if
(
TW
.
partialGraph
)
{
if
(
TW
.
partialGraph
.
forceatlas2
)
{
...
...
@@ -1297,7 +1297,7 @@ sigma.classes.Cascade = function() {
self
.
edges
.
splice
(
0
,
self
.
edges
.
length
);
}
self
.
edgesIndex
=
{};
self
.
edgesIndex
=
{};
if
(
self
.
edgesIndex
.
length
>
0
)
{
pr
(
"splicing edgesIndex"
)
self
.
edgesIndex
.
splice
(
0
,
self
.
edgesIndex
.
length
);
...
...
@@ -1773,7 +1773,7 @@ sigma.classes.Cascade = function() {
return
self
;
};
this
.
emptyGraph
=
function
()
{
s
.
graph
.
empty
();
return
self
;
...
...
@@ -2223,13 +2223,13 @@ sigma.classes.Cascade = function() {
shape
=
self
.
p
.
defaultNodeShape
;
}
ctx
=
nodesCtx
;
ctx
.
fillStyle
=
node
[
'color'
];
// Node border:
ctx
.
beginPath
();
switch
(
shape
)
{
case
'square'
:
wh
=
(
node
[
'displaySize'
]
*
2
)
+
self
.
p
.
borderSize
;
...
...
@@ -2237,7 +2237,7 @@ sigma.classes.Cascade = function() {
node
[
'displayY'
]
-
wh
/
2
,
wh
,
wh
);
// ctx.strokeRect(node['displayX']-size-(1.3),
// node['displayY']-size-(1.3),
// (node['displaySize'] * 2) + self.p.borderSize,
...
...
@@ -2257,15 +2257,15 @@ sigma.classes.Cascade = function() {
}
ctx
.
closePath
();
ctx
.
fill
();
// Node:
ctx
.
beginPath
();
switch
(
shape
)
{
case
'square'
:
wh
=
size
*
2
;
ctx
.
fillRect
(
node
[
'displayX'
]
-
wh
/
2
,
ctx
.
fillRect
(
node
[
'displayX'
]
-
wh
/
2
,
node
[
'displayY'
]
-
wh
/
2
,
wh
,
wh
);
...
...
@@ -2309,12 +2309,12 @@ sigma.classes.Cascade = function() {
* @param {Object} edge The edge to draw.
* @return {Plotter} Returns itself.
*/
function
drawEdge
(
edge
)
{
function
drawEdge
(
edge
)
{
var
x1
=
edge
[
'source'
][
'displayX'
];
var
y1
=
edge
[
'source'
][
'displayY'
];
var
x2
=
edge
[
'target'
][
'displayX'
];
var
y2
=
edge
[
'target'
][
'displayY'
];
var
color
=
edge
[
'color'
];
if
(
!
color
)
{
var
a
=
edge
[
'source'
][
'color'
];
...
...
@@ -2354,7 +2354,7 @@ sigma.classes.Cascade = function() {
}
else
{
ctx
.
lineWidth
=
edge
[
'displaySize'
]
/
3
;
/**/
}
}
}
else
{
//overNodes = TRUE
...
...
@@ -2402,7 +2402,7 @@ sigma.classes.Cascade = function() {
var
fontSize
;
/* = self.p.labelSize == 'fixed' ?
self.p.defaultLabelSize :
self.p.labelSizeRatio * node['displaySize'];*/
fontSize
=
(
self
.
p
.
labelSizeRatio
*
node
[
'displaySize'
])
<
self
.
p
.
defaultLabelSize
?
self
.
p
.
defaultLabelSize
:
self
.
p
.
labelSizeRatio
*
node
[
'displaySize'
];
...
...
@@ -2430,7 +2430,7 @@ sigma.classes.Cascade = function() {
function
drawHoverNode
(
node
)
{
size
=
Math
.
round
(
node
[
'displaySize'
]
*
10
)
/
10
;
ctx
=
hoverCtx
;
nodeShape
=
node
[
'shape'
];
if
(
!
nodeShape
)
{
nodeShape
=
self
.
p
.
defaultNodeShape
;
...
...
@@ -2439,7 +2439,7 @@ sigma.classes.Cascade = function() {
/*var fontSize = self.p.labelSize == 'fixed' ?
self.p.defaultLabelSize :
self.p.labelSizeRatio * node['displaySize'];*/
fontSize
=
(
self
.
p
.
labelSizeRatio
*
node
[
'displaySize'
])
<
self
.
p
.
defaultLabelSize
?
self
.
p
.
defaultLabelSize
:
self
.
p
.
labelSizeRatio
*
node
[
'displaySize'
];
...
...
@@ -2485,7 +2485,7 @@ sigma.classes.Cascade = function() {
ctx
.
fillStyle
=
self
.
p
.
nodeBorderColor
==
'node'
?
(
node
[
'color'
]
||
self
.
p
.
defaultNodeColor
)
:
self
.
p
.
defaultNodeBorderColor
;
switch
(
nodeShape
)
{
case
'square'
:
ctx
.
lineWidth
=
2
;
...
...
@@ -2553,7 +2553,7 @@ sigma.classes.Cascade = function() {
function
drawActiveNode
(
node
)
{
size
=
Math
.
round
(
node
[
'displaySize'
]
*
10
)
/
10
;
ctx
=
hoverCtx
;
if
(
!
isOnScreen
(
node
))
{
return
self
;
}
...
...
@@ -2562,15 +2562,15 @@ sigma.classes.Cascade = function() {
if
(
!
nodeShape
)
{
nodeShape
=
self
.
p
.
defaultNodeShape
;
}
/*var fontSize = self.p.labelSize == 'fixed' ?
self.p.defaultLabelSize :
self.p.labelSizeRatio * node['displaySize'];*/
fontSize
=
(
self
.
p
.
labelSizeRatio
*
node
[
'displaySize'
])
<
self
.
p
.
defaultLabelSize
?
self
.
p
.
defaultLabelSize
:
self
.
p
.
labelSizeRatio
*
node
[
'displaySize'
];
ctx
.
font
=
(
self
.
p
.
activeFontStyle
||
self
.
p
.
fontStyle
||
''
)
+
' '
+
fontSize
+
'px '
+
(
self
.
p
.
activeFont
||
self
.
p
.
font
||
''
);
...
...
@@ -2578,13 +2578,13 @@ sigma.classes.Cascade = function() {
ctx
.
fillStyle
=
self
.
p
.
labelHoverBGColor
==
'node'
?
(
node
[
'color'
]
||
self
.
p
.
defaultNodeColor
)
:
self
.
p
.
defaultActiveLabelBGColor
;
switch
(
nodeShape
)
{
case
'square'
:
// Node border:
ctx
.
beginPath
();
ctx
.
beginPath
();
ctx
.
lineWidth
=
2
;
wh
=
(
node
[
'displaySize'
]
*
2
)
+
self
.
p
.
borderSize
;
ctx
.
strokeStyle
=
"red"
;
...
...
@@ -2623,10 +2623,10 @@ sigma.classes.Cascade = function() {
ctx
.
shadowOffsetX
=
0
;
ctx
.
shadowOffsetY
=
0
;
ctx
.
shadowBlur
=
0
;
// Node border:
ctx
.
beginPath
();
ctx
.
beginPath
();
ctx
.
fillStyle
=
self
.
p
.
nodeBorderColor
==
'node'
?
(
node
[
'color'
]
||
self
.
p
.
defaultNodeColor
)
:
self
.
p
.
defaultNodeBorderColor
;
...
...
@@ -2637,11 +2637,11 @@ sigma.classes.Cascade = function() {
0
,
Math
.
PI
*
2
,
true
);
ctx
.
closePath
();
ctx
.
fill
();
// Node:
ctx
.
beginPath
();
ctx
.
fillStyle
=
self
.
p
.
nodeActiveColor
==
'node'
?
...
...
@@ -2656,7 +2656,7 @@ sigma.classes.Cascade = function() {
ctx
.
closePath
();
ctx
.
fill
();
break
;
}
// Label:
...
...
@@ -2912,7 +2912,7 @@ sigma.classes.Cascade = function() {
);
TW
.
partialGraph
.
centreX
=
(
self
.
mouseX
*
(
overviewWidth
/
(
TW
.
partialGraph
.
_core
.
width
-
1
)));
TW
.
partialGraph
.
centreY
=
(
self
.
mouseY
*
(
overviewHeight
/
(
TW
.
partialGraph
.
_core
.
height
-
1
)));
if
(
self
.
p
[
'blockScroll'
])
{
if
(
event
.
preventDefault
)
{
event
.
preventDefault
();
...
...
@@ -3803,4 +3803,3 @@ sigma.classes.Cascade = function() {
sigma
.
publicPrototype
=
SigmaPublic
.
prototype
;
})();
tinawebJS/sigma.parseCustom.js
View file @
b8123669
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment