Создание / редактирование моделей mxgraph с использованием Python - PullRequest
0 голосов
/ 16 июня 2020

Можно ли создавать, редактировать или преобразовывать модели mxgraph из данных JSON или XML в формат mxgraph с помощью Python? Если да, то как это можно сделать? Я искал на разных сайтах, но не нашел решения (пример JSON данных);

  {
    name: 'Globals',    
    parentObjects: []
  },

  {
    name: 'Customer',
    included: true,    
    parentObjects: [
      {
        name: 'Globals',
      }
    ],
  },

  {
    name: 'Product',
    included: true,    
    parentObjects: [
      {
        name: 'Globals',
      }
    ],
  },

  {
    name: 'Transaction',
    included: true,    
    parentObjects: [
      {
        name: 'Customer',
      },
      {
        name: 'Product',
      }
    ],
  }

1 Ответ

0 голосов
/ 24 июня 2020

Не существует "единого" способа использования mxgraph ... Вы можете создавать узлы различных типов с различными формами ... MxGraph позволяет вам импортировать и экспортировать графики в формате JSON и XML, но сначала всего, что вам нужно, чтобы создать его в формате JSON или XML, совместимом с MxGraph для чтения.

Здесь вы можете найти пример импорта кода в JSON и из *: Пример

Как вы можете видеть в JSON, вам необходимо указать различные аспекты узла (геометрия, родительский элемент, ребра, возможность соединения и т. Д. c.). Аналогично XML ...

Я не эксперт в Python, но вы должны преобразовать ваш JSON в то, что MxGraph действительно может читать ...

Пример JSON:

{
    "graph": [
        {
            "value": {
                "name": "Daffy Duck"
            },
            "geometry": {
                "x": 90,
                "y": 60,
                "width": 120,
                "height": 30,
                "relative": false,
                "TRANSLATE_CONTROL_POINTS": true,
                "alternateBounds": null,
                "sourcePoint": null,
                "targetPoint": null,
                "points": null,
                "offset": null
            },
            "id": "2",
            "vertex": true,
            "connectable": true,
            "parent": "1",
            "source": null,
            "target": null,
            "edges": [
                {
                    "value": "Edge",
                    "geometry": {
                        "x": 0,
                        "y": 0,
                        "width": 0,
                        "height": 0,
                        "relative": true
                    },
                    "id": "4",
                    "edge": true,
                    "parent": "1",
                    "source": "2",
                    "target": "3",
                    "mxObjectId": "mxCell#7"
                }
            ],
            "mxObjectId": "mxCell#6"
        },
        {
            "value": {
                "name": "Bugs Bunny"
            },
            "geometry": {
                "x": 1020,
                "y": 60,
                "width": 120,
                "height": 30,
                "relative": false,
                "TRANSLATE_CONTROL_POINTS": true,
                "alternateBounds": null,
                "sourcePoint": null,
                "targetPoint": null,
                "points": null,
                "offset": null
            },
            "id": "3",
            "vertex": true,
            "connectable": true,
            "parent": "1",
            "source": null,
            "target": null,
            "edges": [
                {
                    "value": "Edge",
                    "geometry": {
                        "x": 0,
                        "y": 0,
                        "width": 0,
                        "height": 0,
                        "relative": true
                    },
                    "id": "4",
                    "edge": true,
                    "parent": "1",
                    "source": "2",
                    "target": "3",
                    "mxObjectId": "mxCell#7"
                }
            ],
            "mxObjectId": "mxCell#8"
        },
        {
            "value": "Edge",
            "geometry": {
                "x": 0,
                "y": 0,
                "width": 0,
                "height": 0,
                "relative": true
            },
            "id": "4",
            "edge": true,
            "parent": "1",
            "source": "2",
            "target": "3",
            "mxObjectId": "mxCell#7"
        },
        {
            "value": {
                "name": "Elmer Fudd"
            },
            "geometry": {
                "x": 90,
                "y": 220,
                "width": 120,
                "height": 30,
                "relative": false,
                "TRANSLATE_CONTROL_POINTS": true,
                "alternateBounds": null,
                "sourcePoint": null,
                "targetPoint": null,
                "points": null,
                "offset": null
            },
            "id": "5",
            "vertex": true,
            "connectable": true,
            "parent": "1",
            "source": null,
            "target": null,
            "edges": [
                {
                    "value": "Edge",
                    "geometry": {
                        "x": 0,
                        "y": 0,
                        "width": 0,
                        "height": 0,
                        "relative": true
                    },
                    "id": "7",
                    "edge": true,
                    "parent": "1",
                    "source": "5",
                    "target": "6",
                    "mxObjectId": "mxCell#10"
                }
            ],
            "mxObjectId": "mxCell#9"
        },
        {
            "value": {
                "name": "Tasmanian Devil"
            },
            "geometry": {
                "x": 1020,
                "y": 220,
                "width": 120,
                "height": 30,
                "relative": false,
                "TRANSLATE_CONTROL_POINTS": true,
                "alternateBounds": null,
                "sourcePoint": null,
                "targetPoint": null,
                "points": null,
                "offset": null
            },
            "id": "6",
            "vertex": true,
            "connectable": true,
            "parent": "1",
            "source": null,
            "target": null,
            "edges": [
                {
                    "value": "Edge",
                    "geometry": {
                        "x": 0,
                        "y": 0,
                        "width": 0,
                        "height": 0,
                        "relative": true
                    },
                    "id": "7",
                    "edge": true,
                    "parent": "1",
                    "source": "5",
                    "target": "6",
                    "mxObjectId": "mxCell#10"
                }
            ],
            "mxObjectId": "mxCell#11"
        },
        {
            "value": "Edge",
            "geometry": {
                "x": 0,
                "y": 0,
                "width": 0,
                "height": 0,
                "relative": true
            },
            "id": "7",
            "edge": true,
            "parent": "1",
            "source": "5",
            "target": "6",
            "mxObjectId": "mxCell#10"
        }
    ]
}
...