2014-02-18 4 views

ответ

1

Вот как я работал над проблемой, если кому-то интересно: я просто поместил глобальную stop_layout var в функцию stableEnergy. Уродливый, но он работает. Ура!

var stop_layout = false; 
layout_params = { 
    name: 'arbor', 
    stableEnergy: function(energy){ 
    var e = energy; 
    return (e.max <= 0.5) || (e.mean <= 0.3) || stop_layout; 
    } 
}; 

// Then change the stop_layout value when you want to run or stop layout processing 
0

layoutstop это событие, чтобы показать, что раскладка перестала бежать. Arbor включает в себя опцию maxSimulationTime, так что вы можете быстро остановить раскладку: http://cytoscape.github.io/cytoscape.js/#layouts/arbor

+0

Так что нет способа вручную остановить макет? Для больших графиков было бы здорово, если бы пользователь мог нажать на кнопку, чтобы остановить макет, когда он считает, что нет необходимости продолжать. – Pierre

+0

Нет, в настоящее время нет. Единственный макет, на который он повлиял бы, - это беседка (только непрерывная компоновка), которая в любом случае отключается в 'maxSimulationTime'. Если вы настроили 'maxSimulationTime' соответственно для своего типа графика, вам не нужна такая кнопка - лучше быть автоматическим, чем требовать от пользователя делать это вручную. – maxkfranz