Cytoscape Составной узел порядок вставки - PullRequest
1 голос
/ 08 марта 2019

Я работаю с cytoscape (макет колы) и динамическими (вставка / удаление) составными узлами, и у меня возникла проблема с родительскими узлами, которые отображались некорректно.Я понял, что родительские узлы нужно вставлять перед дочерними узлами, но мне интересно, есть ли более простой способ сделать это, потому что каждый раз, когда я вставляю новый узел, мне нужно просматривать мой список существующих узлов и прибегать к ним, чтобы убедиться, что родителидобавляются перед потомками.

Есть ли способ настроить Cytoscape для обработки проходов, чтобы нам не нужно было сортировать узлы?(1- вставка узла, 2-разметка)?

Спасибо за помощь

Ответы [ 3 ]

1 голос
/ 12 марта 2019

Просто добавьте элементы в одной операции, а не в нескольких.

cy.add(manyEles);

против

cy.add(ele1);
cy.add(ele2);
// ...
cy.add(eleN);
0 голосов
/ 18 марта 2019

это может помочь (colaConfig)

export default {
  boxSelectionEnabled: true,
  autounselectify: false,
  userZoomingEnabled: false,
  minZoom: 0.3,
  maxZoom: 1.5,
  wheelSensitivity: 0.1,

  layout: {
    name: 'cola',
    directed: false,
    fit: false, // on every layout reposition of nodes, fit the viewport
    animate: true, // whether to show the layout as it's running
    boundingBox: { x1:0, y1:0, w:0, h:0 },
    maxSimulationTime: 4000, // max length in ms to run the layout
    avoidOverlap: true, // if true, prevents overlap of node bounding boxes
    convergenceThreshold: 0.01, // when the alpha value (system energy) falls below this value, the layout stops
    nodeDimensionsIncludeLabels: false,
//    nodeSpacing: 40,//function( edge ) { return edge.data('label').length * 5.5},
    infinite: false,
    refresh: 3, // number of ticks per frame; higher is faster but more jerky
  },

}
0 голосов
/ 17 марта 2019

Хорошо, вот код, который обновляет / загружает данные:

updateGraphData(data){
    if(data){
        this.cy.$('*').remove()
        this.cy.add(data)
//      this.cy.json({elements: data})
    }
    this.cy.makeLayout(ColaConfig.layout).run()
    this.cy.resize()
    this.cy.zoom(1)
    this.cy.center()
}

и вот что в данных:

[  
   {  
      "data":{  
         "id":"b0489a7f-1794-3053-6bb5-f4fa5adcc129",
         "label":"Kid A",
         "conceptType":"Enfant",
         "parent":"415f5871-9312-5857-99bc-8a523283ebd9",
         "hidden":false,
         "deprecated":false
      },
      "classes":"Enfant"
   },
   {  
      "data":{  
         "id":"415f5871-9312-5857-99bc-8a523283ebd9",
         "label":"I'm the parent",
         "conceptType":"Parent",
         "parent":"",
         "hidden":false,
         "deprecated":false
      },
      "classes":"Parent"
   },
   {  
      "data":{  
         "id":"06e76ece-edee-5a55-1492-f4e22b5685d9",
         "label":"Kid B",
         "conceptType":"Enfant",
         "parent":"415f5871-9312-5857-99bc-8a523283ebd9",
         "hidden":false,
         "deprecated":false
      },
      "classes":"Enfant"
   },
   {  
      "data":{  
         "id":"415f5871-9312-5857-99bc-8a523283ebd9",
         "label":"I'm the parent",
         "conceptType":"Parent",
         "parent":"",
         "hidden":false,
         "deprecated":false
      },
      "classes":"Parent"
   },
   {  
      "data":{  
         "id":"6e65d053-a124-fc44-72b7-8563ee4ca63f",
         "label":"Kid C",
         "conceptType":"Enfant",
         "parent":"415f5871-9312-5857-99bc-8a523283ebd9",
         "hidden":false,
         "deprecated":false
      },
      "classes":"Enfant"
   },
   {  
      "data":{  
         "id":"415f5871-9312-5857-99bc-8a523283ebd9",
         "label":"I'm the parent",
         "conceptType":"Parent",
         "parent":"",
         "hidden":false,
         "deprecated":false
      },
      "classes":"Parent"
   },
   {  
      "data":{  
         "id":"415f5871-9312-5857-99bc-8a523283ebd9",
         "label":"I'm the parent",
         "conceptType":"Parent",
         "parent":"orphan",
         "hidden":false,
         "deprecated":false
      },
      "classes":"Parent"
   }
]

Что я получаю:

Что я получаю, когда сортирую узлы в моем JSON (Что мне нужно)

...