-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fonctionnement du système de graph déployé #21
Comments
Actuellement, le système de graph employé est cytoscape.js . C'est une library javascript de création de graph sur canvas basé sur la manipulation d'objet SVG par du JS. |
Mode fonctionnement du graph via angularJSActuellement, le graph Cytoscape est au niveau HTML lié à un canvas sous cette forme : <div id="placeNetwork" ng-controller="graphNetwork">
<div id="mynetwork"></div>
</div> Comme on peut le voir avec le Tout comme en java il existe un objet On a donc : $scope.cyto; // contient l'objet cytoscape qui est le coeur du graph, les noeuds et les liens
$scope.options; // contiens les options d'affichage et de placement du graph
$scope.styles; // contiens les styles CSS associés aux différents éléments du graph Tous ces éléments sont manipulables et modifiables en temps réel. Toutefois, la construction du graph nécessite pas mal de fonctions javascript. En premier lieu, il faut récupérer les données à afficher dans le graph. Pour cela, un certain nombre de fonction Le cœur de construction de graph est donc la fonction suivante : $scope.createCytoGraph = function(scan_data) {
// plein de code qui ajoute le contenu de scan_data sous la forme de noeuds & liens
...
...
// on ajoute l'ensemble des ip au graph
$scope.cyto.add($scope.nodes);
// on ajoute l'ensemble des lien au graph
$scope.cyto.add($scope.edges);
// on actualise la vue
$scope.layout = $scope.cyto.layout($scope.options);
$scope.layout.run();
}; Ce code est très important car il ne fait qu'actualiser continuellement le graph en y ajoutant les nouveaux noeuds qui peuvent ressortir. |
Cette issue change un peu la donne car elle ajoute un paramètre Cela dans le but de faciliter les recherches par ip : Line 285 in f4b4912
Sinon, une fonction de mise à jour des données d'un node via une fonction a été ajouté, ses données ne semblent pas impactés par un nouveau scan général de réseau : Lines 282 to 288 in f4b4912
|
La résolution de l'issue #42 change le fonctionnement du graph ainsi créé. On oublie tout ce qui est : $scope.nodes; // contiens les noeuds du graph
$scope.edges; // contiens les lien du graph ça sert à rien de les manipuler dans angularJS, ils sont récupérables à partir de |
Manipulation de graphe Lors de l’utilisation d’Echo Sounder on peut se retrouver parfois avec un graphe peu lisible selon le nombre de réseau, dans ce cas il est pratique de pouvoir faire de la manipulation de graphe directement sur la console. Nous allons voir différentes pratiques qui vont nous facilités la visibilité du graphe. Voici un exemple de graphe ( image 1) : Tout d'abord on peut sélectionner les nœuds qu'on veut manipuler pour ça on met le graphe dans une variable et on sélectionne les nœuds avec un .elements("node") (image 2). On peut notamment utiliser des fonctions comment .size() ou .empty() qui sont des fonctions utiles lorsque on a un grand réseau. On peut aussi faire de l'itération dessus avec le forEach(). Pour cet exemple on va faire la liste de l'attribut ID de tout les nœuds (image3): Et il y la possibilité de changer le style du graphe que ce soit la forme, la couleur, la taille, l'opacité etc .... avec la fonction style(). Maintenant qu'on a vu ce qu'on pouvait faire on va voir quelques cas qui pourrait être utile : Cas 1 : Rendre les services plus lisibles en utilisant style (image 4) : Obtenu avec :
Cas 2 : Trier les nœuds en fonctions de leurs père et fils : |
Cette issue à pour but de documenter et d'exploiter au mieux les possibilités du système d'affichage et de visualisation par graph proposé.
The text was updated successfully, but these errors were encountered: