J'essaie de créer une arborescence repliable dans Cytoscape en utilisant la mise en page breadthfirst, pour répliquer le D3 collapsible tree.Masquer et afficher les nœuds enfants sur le nœud Tapez sur Cytoscape
Je suis en train de reproduire ce type d'action de clic sur les nœuds, mais en ajoutant fonctionnalité de restauration en plus - Images & breadthfirst layout
La raison pour laquelle j'ai choisi Cytoscape est parce que j'avais un scénario dans lequel l'arbre aurait des noeuds avec plus de 1 parent.
J'ai essayé d'ajouter un événement du robinet en utilisant le code suivant:
cy.on('tap', 'node', function() {
if (this.scratch().restData == null) {
// Save node data and remove
this.scratch({
restData: this.connectedEdges().targets().remove()
});
} else {
// Restore the removed nodes from saved data
this.scratch().restData.restore();
this.scratch({
restData: null
});
}
}
Mais, ce ne réussit que pour réduire et développer ses nœuds enfants immédiats (reste des nœuds sont encore visibles) et provoque également problème quand je tape sur les nœuds feuilles.
Si quelqu'un connaît un moyen d'étendre et de réduire un nœud, aidez-nous.
Modifier: Les gars, si quelqu'un connaît la solution pour un simple arbre à plusieurs niveaux aussi, qui serait également un bon début ...
Cette question n'a rien à voir avec 'd3.js' et l'étiquette devrait probablement être retiré. Si vous êtes intéressé par d3, cependant, 'cytoscape' semble produire ce que' d3' pourrait appeler un [arbre de force] (http://bl.ocks.org/mbostock/95aa92e2f4e8345aaa55a4a94d41ce37). – Mark