2015-06-27 2 views
2

Я пытаюсь установить «визуальные переменные», но не работает. полный код здесь: http://pastebin.com/j6i1B8ieСвязанные атрибуты не работают

<script type="application/javascript"> 
    var neo = { 
     url: 'http://localhost:7474', 
     user: 'neo4j', 
     password: '***' 
    }; 
    function customiseGraph(s) { 
     s.graph.nodes().forEach(function(n) { 
      n.type = 'square'; 
      n.color = '#4444BB'; 
      n.labelAlignment = 'left'; 
      if (n.neo4j_labels[0] == 'DMSys') { 
       n.label = n.neo4j_data.System; 
      } 
      if (n.neo4j_labels[0] == 'DMFile') { 
       n.label = n.neo4j_data.Name; 
       n.color = '#BB4444'; 
      } 
     }); 
     s.refresh(); 
    } 

    sigma.neo4j.cypher(neo, 
     'MATCH (n) OPTIONAL MATCH (n)-[r]->(m) RETURN n,r,m LIMIT 100', 
     { container: 'graph', type: 'canvas' }, 
     customiseGraph 
    ); 
</script> 

в выше, я бы ожидать, что каждый узел отображается визуализируется в виде квадрата, но это не так. разумеется, цвета устанавливаются правильно, но ни labelAlignment, ни type не соблюдаются.

Могу ли я не так? или что мне не хватает?

* Обновление I *

function customiseGraph(s) { 
    s.settings({ 
     labelAlignment: 'inside', 
     edgeColor: 'default', 
     defaultEdgeColor: '#ff0000' 
    }); 
    s.graph.nodes().forEach(function(n) { 
     n.color = '#4444BB'; 
     if (n.neo4j_labels[0] == 'DMSys') { 
      n.label = n.neo4j_data.System; 
     } 
     if (n.neo4j_labels[0] == 'DMFile') { 
      n.label = n.neo4j_data.Name; 
      n.color = '#BB4444'; 
     } 
    }); 
    s.refresh(); 
} 

, которые я бы ожидать, чтобы производить красные края и метки внутри узлов, но делает ни. что еще мне нужно?

+0

одно заключительное примечание: «внутри», кажется, работает в Chrome, но в Safari, если узлы не достаточно большой, чтобы соответствовать ярлык, он будет получать отображается справа, а и увеличение уровня масштабирования не помогает. увеличение диаметра узла фиксирует это. В Chrome метки всегда внутри, независимо от того, насколько маленький узел – ekkis

+1

человек и спас мою жизнь !!! – Zingo

+1

хорошо, тогда я надеюсь, что получил голосование :) – ekkis

ответ

3

Какой инструмент рендеринга вы используете? Предпочтительно использовать sigma.renderers.linkurious. Renderers - это обезьяньи патчи стандартных рендереров Sigma. Чтобы использовать sigma.renderers.linkurious, просто добавьте файлы этого средства визуализации в ваш код, как показано в https://github.com/Linkurious/linkurious.js/blob/linkurious-version/examples/renderers-linkurious.html.

labelAlignment не является свойством узла, но параметр Sigma, применяемый ко всем узлам, см. https://github.com/Linkurious/linkurious.js/wiki/Settings. Вы не можете применить его к конкретным узлам.

EDIT2: исправлено в https://github.com/Linkurious/linkurious.js/issues/139

+0

это означает, что я не могу установить его для какого-то узла, но не для других? – ekkis

+0

и как мне выбрать «рендеринг узла»? Я выбрал «холст» как средство визуализации, но как это отличается? Кроме того, я прочитал документацию для 'sigma.classes.configurable', но я не вижу документацию о том, как ее подключить к моему графику? – ekkis

+0

Я отредактировал свой андерсер по вашим вопросам. – Seb