2012-06-01 5 views
2

Я начал использовать базу данных DEX Graph с C#. До сих пор мне удалось запустить простые примеры, но не могу узнать, как экспортировать график.DEX Graph Database с C#: Есть ли примеры кода для экспорта графа?

Я хотел бы экспортировать график в формат Graphviz, чтобы отображать его с помощью других инструментов визуализации. Кто-нибудь знает какой-либо хороший ресурс, где может быть найден пример экспорта графа, или, возможно, кому-то из вас уже удалось экспортировать граф и поделиться кодом?

Я был бы очень благодарен за вашу помощь.

ответ

4

Существует простой по умолчанию экспортер, который можно использовать следующим образом:

DefaultExport exp = new DefaultExport(); 
graph.Export("exported.gv", ExportType.Graphviz, exp); 

Но чтобы получить лучший выход, вам может понадобиться закодировать свой собственный экспортер расширения ExportManager класса.

И вы можете задать вопрос в компании forum, если у вас есть проблемы.

0

Чтобы сделать свой собственный экспортер, вы должны сделать что-то вроде этого:

public class MyExport : ExportManager 
    { 
     private Graph g = null; 

     public MyExport() { 
     } 

     public override void Prepare(Graph graph) { 
      // This method will be called once at the beginning of the export. 
      // So we keep the graph being exported. 
      g = graph; 

     } 

     public override void Release() { 
      // Called once at the end of the export process. 
     } 

     public override bool GetGraph(GraphExport graphExport) { 
      // Called once to get the Graph details (a label) 
      graphExport.SetLabel("[MyExport] MyGraph"); 
      return true; 
     } 

     public override bool EnableType(int type) { 
      // Will be called once for each type to allow or deny the export of 
      // the nodes/edges of each type 
      return true; // We enable the export of all types 
     } 


     public override bool GetNode(long node, NodeExport nodeExport) { 
      // Called once for each node of an allowed type to get it's export definition. 
      // The definition will be used if it returns true, or the default 
      // node type definition from getNodeType will be used if this method 
      // returns false. 
      // It can set the label, shape, color, ... 
      nodeExport.SetLabel("[MyExport] MyNode " + node); 
      return true; 
     } 

     public override bool GetNodeType(int type, NodeExport nodeExport) { 
      // Used to get a node type generic export definition. 
      // Called once for each node only if the call to GetNode returned false. 
      // It can set the label, shape, color, ... 
      nodeExport.SetLabel("[MyExport] MyNodeType " + type); 
      return true; 
     } 

     public override bool GetEdge(long edge, EdgeExport edgeExport) { 
      // Called once for each edge of an allowed type to get it's export definition. 
      // The definition will be used if it returns true, or the default 
      // edge type definition from getEdgeType will be used if this method 
      // returns false. 
      // It can set the label, shape, color, ... 
      edgeExport.SetLabel("[MyExport] MyEdge " + edge); 
      return true; 
     } 

     public override bool GetEdgeType(int type, EdgeExport edgeExport) { 
      // Used to get an edge type generic export definition. 
      // Called once for each edge only if the call to GetEdge returned false. 
      // It can set the label, shape, color, ... 
      edgeExport.SetLabel("[MyExport] MyEdgeType " + type); 
      return true; 
     } 
    } 

Боюсь, что для GraphViz экспортера принимает только изменение меток. Для цветов и форм ... возможно, вы можете рассмотреть возможность экспорта ygraphml?

 Смежные вопросы

  • Нет связанных вопросов^_^