mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Adding graph traversal types
This commit is contained in:
@@ -121,12 +121,24 @@ define(function() { return /******/ (function(modules) { // webpackBootstrap
|
||||
kruskal.edges().addClass('searchpath');
|
||||
}
|
||||
|
||||
if ( settings.get( 'graph_traversal' ) !== "" ) {
|
||||
|
||||
}
|
||||
|
||||
// Register tap event on graph nodes
|
||||
// Right now on tapping on any node, BFS starts from that node
|
||||
cytoscape.$( 'node' ).on('tap', function( e ) {
|
||||
var ele = e.cyTarget,
|
||||
search_algorithm = settings.get( 'search_algorithm' );
|
||||
self.run_search_algorithm(cytoscape, ele.id(), search_algorithm);
|
||||
search_algorithm = settings.get( 'search_algorithm' ),
|
||||
traversal_type = settings.get( 'graph_traversal' );
|
||||
// If search algorithm and traversal both are chosen together,
|
||||
// search algorithm chosen will take preferencel
|
||||
if( settings.get( 'search_algorithm' ) !== "" ) {
|
||||
self.run_search_algorithm(cytoscape, ele.id(), search_algorithm);
|
||||
}
|
||||
else if( settings.get( 'graph_traversal' ) !== "" ) {
|
||||
self.run_traversal_type( cytoscape, ele.id(), traversal_type );
|
||||
}
|
||||
});
|
||||
|
||||
chart.state( 'ok', 'Chart drawn.' );
|
||||
@@ -163,6 +175,31 @@ define(function() { return /******/ (function(modules) { // webpackBootstrap
|
||||
}
|
||||
};
|
||||
selectNextElement();
|
||||
},
|
||||
run_traversal_type: function( cytoscape, root_id, type ) {
|
||||
var node_collection;
|
||||
switch( type ) {
|
||||
case "predecessors":
|
||||
node_collection = cytoscape.$( '#' + root_id ).predecessors();
|
||||
break;
|
||||
case "successors":
|
||||
node_collection = cytoscape.$( '#' + root_id ).successors();
|
||||
break;
|
||||
case "outgoers":
|
||||
node_collection = cytoscape.$( '#' + root_id ).outgoers();
|
||||
break;
|
||||
case "incomers":
|
||||
node_collection = cytoscape.$( '#' + root_id ).incomers();
|
||||
break;
|
||||
case "roots":
|
||||
node_collection = cytoscape.$( '#' + root_id ).roots();
|
||||
break;
|
||||
case "leaves":
|
||||
node_collection = cytoscape.$( '#' + root_id ).leaves();
|
||||
break;
|
||||
}
|
||||
node_collection.edges().addClass( 'searchpath' );
|
||||
node_collection.nodes().addClass( 'searchpath' );
|
||||
}
|
||||
});
|
||||
}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -860,7 +860,6 @@ define(function() { return /******/ (function(modules) { // webpackBootstrap
|
||||
value : '',
|
||||
data : [ { label : 'Directed', value : 'triangle' },
|
||||
{ label : 'Undirected', value : '' } ]
|
||||
|
||||
},
|
||||
search_algorithm : {
|
||||
label : 'Graph algorithms',
|
||||
@@ -872,7 +871,20 @@ define(function() { return /******/ (function(modules) { // webpackBootstrap
|
||||
{ label : 'Depth First Search', value : 'dfs' },
|
||||
{ label : 'Minimum Spanning Tree (Kruskal)', value : 'kruskal' },
|
||||
{ label : 'None', value : '' } ]
|
||||
|
||||
},
|
||||
graph_traversal: {
|
||||
label : 'Graph traversal',
|
||||
help : 'Select a graph traversal type.',
|
||||
type : 'select',
|
||||
display : 'radio',
|
||||
value : '',
|
||||
data : [ { label : 'Successors', value : 'successors' },
|
||||
{ label : 'Predecessors', value : 'predecessors' },
|
||||
{ label : 'Outgoers', value : 'outgoers' },
|
||||
{ label : 'Incomers', value : 'incomers' },
|
||||
{ label : 'Roots', value : 'roots' },
|
||||
{ label : 'Leaves', value : 'leaves' },
|
||||
{ label : 'None', value : '' } ]
|
||||
},
|
||||
choose_red : {
|
||||
name : 'choose_red',
|
||||
@@ -882,7 +894,6 @@ define(function() { return /******/ (function(modules) { // webpackBootstrap
|
||||
min : 0,
|
||||
max : 255,
|
||||
value : 51
|
||||
|
||||
},
|
||||
choose_green : {
|
||||
name : 'choose_green',
|
||||
@@ -892,7 +903,6 @@ define(function() { return /******/ (function(modules) { // webpackBootstrap
|
||||
min : 0,
|
||||
max : 255,
|
||||
value : 102
|
||||
|
||||
},
|
||||
choose_blue : {
|
||||
name : 'choose_blue',
|
||||
@@ -902,7 +912,6 @@ define(function() { return /******/ (function(modules) { // webpackBootstrap
|
||||
min : 0,
|
||||
max : 255,
|
||||
value : 153
|
||||
|
||||
},
|
||||
min_zoom : {
|
||||
name : 'min_zoom',
|
||||
|
||||
File diff suppressed because one or more lines are too long
+14
-5
@@ -40,7 +40,6 @@ define( [], function() {
|
||||
value : '',
|
||||
data : [ { label : 'Directed', value : 'triangle' },
|
||||
{ label : 'Undirected', value : '' } ]
|
||||
|
||||
},
|
||||
search_algorithm : {
|
||||
label : 'Graph algorithms',
|
||||
@@ -52,7 +51,20 @@ define( [], function() {
|
||||
{ label : 'Depth First Search', value : 'dfs' },
|
||||
{ label : 'Minimum Spanning Tree (Kruskal)', value : 'kruskal' },
|
||||
{ label : 'None', value : '' } ]
|
||||
|
||||
},
|
||||
graph_traversal: {
|
||||
label : 'Graph traversal',
|
||||
help : 'Select a graph traversal type.',
|
||||
type : 'select',
|
||||
display : 'radio',
|
||||
value : '',
|
||||
data : [ { label : 'Successors', value : 'successors' },
|
||||
{ label : 'Predecessors', value : 'predecessors' },
|
||||
{ label : 'Outgoers', value : 'outgoers' },
|
||||
{ label : 'Incomers', value : 'incomers' },
|
||||
{ label : 'Roots', value : 'roots' },
|
||||
{ label : 'Leaves', value : 'leaves' },
|
||||
{ label : 'None', value : '' } ]
|
||||
},
|
||||
choose_red : {
|
||||
name : 'choose_red',
|
||||
@@ -62,7 +74,6 @@ define( [], function() {
|
||||
min : 0,
|
||||
max : 255,
|
||||
value : 51
|
||||
|
||||
},
|
||||
choose_green : {
|
||||
name : 'choose_green',
|
||||
@@ -72,7 +83,6 @@ define( [], function() {
|
||||
min : 0,
|
||||
max : 255,
|
||||
value : 102
|
||||
|
||||
},
|
||||
choose_blue : {
|
||||
name : 'choose_blue',
|
||||
@@ -82,7 +92,6 @@ define( [], function() {
|
||||
min : 0,
|
||||
max : 255,
|
||||
value : 153
|
||||
|
||||
},
|
||||
min_zoom : {
|
||||
name : 'min_zoom',
|
||||
|
||||
+39
-2
@@ -75,12 +75,24 @@ define( [ 'utilities/utils', 'utilities/sifjson', 'plugins/cytoscape/cytoscape'
|
||||
kruskal.edges().addClass('searchpath');
|
||||
}
|
||||
|
||||
if ( settings.get( 'graph_traversal' ) !== "" ) {
|
||||
|
||||
}
|
||||
|
||||
// Register tap event on graph nodes
|
||||
// Right now on tapping on any node, BFS starts from that node
|
||||
cytoscape.$( 'node' ).on('tap', function( e ) {
|
||||
var ele = e.cyTarget,
|
||||
search_algorithm = settings.get( 'search_algorithm' );
|
||||
self.run_search_algorithm(cytoscape, ele.id(), search_algorithm);
|
||||
search_algorithm = settings.get( 'search_algorithm' ),
|
||||
traversal_type = settings.get( 'graph_traversal' );
|
||||
// If search algorithm and traversal both are chosen together,
|
||||
// search algorithm chosen will take preferencel
|
||||
if( settings.get( 'search_algorithm' ) !== "" ) {
|
||||
self.run_search_algorithm(cytoscape, ele.id(), search_algorithm);
|
||||
}
|
||||
else if( settings.get( 'graph_traversal' ) !== "" ) {
|
||||
self.run_traversal_type( cytoscape, ele.id(), traversal_type );
|
||||
}
|
||||
});
|
||||
|
||||
chart.state( 'ok', 'Chart drawn.' );
|
||||
@@ -117,6 +129,31 @@ define( [ 'utilities/utils', 'utilities/sifjson', 'plugins/cytoscape/cytoscape'
|
||||
}
|
||||
};
|
||||
selectNextElement();
|
||||
},
|
||||
run_traversal_type: function( cytoscape, root_id, type ) {
|
||||
var node_collection;
|
||||
switch( type ) {
|
||||
case "predecessors":
|
||||
node_collection = cytoscape.$( '#' + root_id ).predecessors();
|
||||
break;
|
||||
case "successors":
|
||||
node_collection = cytoscape.$( '#' + root_id ).successors();
|
||||
break;
|
||||
case "outgoers":
|
||||
node_collection = cytoscape.$( '#' + root_id ).outgoers();
|
||||
break;
|
||||
case "incomers":
|
||||
node_collection = cytoscape.$( '#' + root_id ).incomers();
|
||||
break;
|
||||
case "roots":
|
||||
node_collection = cytoscape.$( '#' + root_id ).roots();
|
||||
break;
|
||||
case "leaves":
|
||||
node_collection = cytoscape.$( '#' + root_id ).leaves();
|
||||
break;
|
||||
}
|
||||
node_collection.edges().addClass( 'searchpath' );
|
||||
node_collection.nodes().addClass( 'searchpath' );
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user