payload: {"action":"created","issue":{"url":"https://api.github.com/repos/OpenKieler/elkjs/issues/57","repository_url":"https://api.github.com/repos/OpenKieler/elkjs","labels_url":"https://api.github.com/repos/OpenKieler/elkjs/issues/57/labels{/name}","comments_url":"https://api.github.com/repos/OpenKieler/elkjs/issues/57/comments","events_url":"https://api.github.com/repos/OpenKieler/elkjs/issues/57/events","html_url":"https://github.com/OpenKieler/elkjs/issues/57","id":420901613,"node_id":"MDU6SXNzdWU0MjA5MDE2MTM=","number":57,"title":"Set position (x axis) of elements like a grid","user":{"login":"xino1010","id":7092367,"node_id":"MDQ6VXNlcjcwOTIzNjc=","avatar_url":"https://avatars2.githubusercontent.com/u/7092367?v=4","gravatar_id":"","url":"https://api.github.com/users/xino1010","html_url":"https://github.com/xino1010","followers_url":"https://api.github.com/users/xino1010/followers","following_url":"https://api.github.com/users/xino1010/following{/other_user}","gists_url":"https://api.github.com/users/xino1010/gists{/gist_id}","starred_url":"https://api.github.com/users/xino1010/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xino1010/subscriptions","organizations_url":"https://api.github.com/users/xino1010/orgs","repos_url":"https://api.github.com/users/xino1010/repos","events_url":"https://api.github.com/users/xino1010/events{/privacy}","received_events_url":"https://api.github.com/users/xino1010/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2019-03-14T09:05:53Z","updated_at":"2019-03-19T19:01:32Z","closed_at":null,"author_association":"NONE","body":"Hello @uruuru ,\r\n\r\nI currently have this diagram that is correct but it does not take into account an order of positioning of the elements.\r\n\r\n![image](https://user-images.githubusercontent.com/7092367/54342024-b4b0a100-463b-11e9-99a5-f9250b6d3254.png)\r\n\r\nI want to emulate a grid where I indicate the library the position or the order that an element must occupy in such a way that for the same position on the x axis no other element could be neither above nor below\r\n\r\n![image](https://user-images.githubusercontent.com/7092367/54343842-f3e0f100-463f-11e9-8958-dee49a71c745.png)\r\n\r\nThe idea is to have as many columns as there are elements in the graphic\r\n\r\nIs this approach possible?\r\n\r\nP.S. Ignore fields like eType, container, numberOfReplicas... Used for drawing\r\n\r\nThank you\r\n\r\n```javascript\r\n{\r\n  \"id\": \"61e5b9e1-18a6-4067-9cd6-17fd4acebbdb\",\r\n  \"children\": [\r\n    {\r\n      \"id\": \"70d0eab1-a9f3-4155-9d1d-477ff5ca5335\",\r\n      \"eType\": null,\r\n      \"container\": null,\r\n      \"name\": \"simulationActiveUnits\",\r\n      \"labels\": [\r\n        {\r\n          \"text\": \"simulationActiveUnits\"\r\n        }\r\n      ],\r\n      \"properties\": {\r\n        \"de.cau.cs.kieler.nodeLabelPlacement\": \"V_TOP H_CENTER OUTSIDE\",\r\n        \"de.cau.cs.kieler.portConstraints\": \"FIXED_SIDE\",\r\n        \"de.cau.cs.kieler.portLabelPlacement\": \"OUTSIDE\"\r\n      },\r\n      \"width\": 25,\r\n      \"height\": 25,\r\n      \"drawRect\": true,\r\n      \"stroke\": \"#000000\",\r\n      \"fill\": \"#f8ac59\",\r\n      \"labelColor\": \"#000000\",\r\n      \"labelSize\": 8,\r\n      \"numberOfReplicas\": 1,\r\n      \"ports\": [\r\n        {\r\n          \"id\": \"simulationView#simulation-server#StorageService#data#simulationActiveUnits\",\r\n          \"name\": \"simulationActiveUnits\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"EAST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        }\r\n      ]\r\n    },\r\n    {\r\n      \"id\": \"b559795f-a49a-49e7-9bfa-346be8f4ee67\",\r\n      \"eType\": \"Project/ScriptServiceInfo\",\r\n      \"container\": null,\r\n      \"name\": \"Composite Service Config Component\",\r\n      \"labels\": [\r\n        {\r\n          \"text\": \"Composite Service Config Component\"\r\n        }\r\n      ],\r\n      \"properties\": {\r\n        \"de.cau.cs.kieler.nodeLabelPlacement\": \"V_TOP H_CENTER OUTSIDE\",\r\n        \"de.cau.cs.kieler.portConstraints\": \"FIXED_SIDE\",\r\n        \"de.cau.cs.kieler.portLabelPlacement\": \"OUTSIDE\"\r\n      },\r\n      \"width\": 100,\r\n      \"height\": 50,\r\n      \"drawRect\": true,\r\n      \"stroke\": \"#000000\",\r\n      \"fill\": \"#1ab394\",\r\n      \"labelColor\": \"#000000\",\r\n      \"labelSize\": 8,\r\n      \"numberOfReplicas\": 1,\r\n      \"ports\": [\r\n        {\r\n          \"id\": \"b559795f-a49a-49e7-9bfa-346be8f4ee67#52b5dc93-54bf-4a4e-9f06-630337ea7378\",\r\n          \"name\": \"activeUnitsSpec\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"b559795f-a49a-49e7-9bfa-346be8f4ee67#db4f8445-8569-4a61-9ffa-9f01fd58e426\",\r\n          \"name\": \"compositeInternalModel\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"b559795f-a49a-49e7-9bfa-346be8f4ee67#2b6aa968-a263-4c8b-8139-fe0ac41e3f0e\",\r\n          \"name\": \"compositeServiceConfig\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"b559795f-a49a-49e7-9bfa-346be8f4ee67#16ea1c37-d4d2-48ee-8f30-ef34f6c09537\",\r\n          \"name\": \"compositeInternalModelData\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"dashboardView#common-server#CompositeServiceConfigComponent#edit#compositeInternalModel\",\r\n          \"name\": \"Composite Internal Model\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"EAST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"dashboardView#common-server#CompositeServiceConfigComponent#edit#compositeServiceConfig\",\r\n          \"name\": \"Composite Service Config\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"EAST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"dashboardView#common-server#CompositeServiceConfigComponent#edit#compositeInternalModelData\",\r\n          \"name\": \"Composite Internal Model Data\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"EAST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        }\r\n      ]\r\n    },\r\n    {\r\n      \"id\": \"c1dff021-0d68-467b-8580-833fa37487ca\",\r\n      \"eType\": \"Project/ScriptServiceInfo\",\r\n      \"container\": null,\r\n      \"name\": \"Boolean Component\",\r\n      \"labels\": [\r\n        {\r\n          \"text\": \"Boolean Component\"\r\n        }\r\n      ],\r\n      \"properties\": {\r\n        \"de.cau.cs.kieler.nodeLabelPlacement\": \"V_TOP H_CENTER OUTSIDE\",\r\n        \"de.cau.cs.kieler.portConstraints\": \"FIXED_SIDE\",\r\n        \"de.cau.cs.kieler.portLabelPlacement\": \"OUTSIDE\"\r\n      },\r\n      \"width\": 100,\r\n      \"height\": 50,\r\n      \"drawRect\": true,\r\n      \"stroke\": \"#000000\",\r\n      \"fill\": \"#1ab394\",\r\n      \"labelColor\": \"#000000\",\r\n      \"labelSize\": 8,\r\n      \"numberOfReplicas\": 1,\r\n      \"ports\": [\r\n        {\r\n          \"id\": \"c1dff021-0d68-467b-8580-833fa37487ca#8080fda7-ec27-487a-86d5-ce3422530358\",\r\n          \"name\": \"value\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"dashboardView#common-server#BooleanComponent#edit#value\",\r\n          \"name\": \"Output Boolean\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"EAST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        }\r\n      ]\r\n    },\r\n    {\r\n      \"id\": \"f0a59439-7083-4a6e-8019-19314be2c4f2\",\r\n      \"eType\": \"Project/ScriptServiceInfo\",\r\n      \"container\": null,\r\n      \"name\": \"Composite Model Data Component\",\r\n      \"labels\": [\r\n        {\r\n          \"text\": \"Composite Model Data Component\"\r\n        }\r\n      ],\r\n      \"properties\": {\r\n        \"de.cau.cs.kieler.nodeLabelPlacement\": \"V_TOP H_CENTER OUTSIDE\",\r\n        \"de.cau.cs.kieler.portConstraints\": \"FIXED_SIDE\",\r\n        \"de.cau.cs.kieler.portLabelPlacement\": \"OUTSIDE\"\r\n      },\r\n      \"width\": 100,\r\n      \"height\": 50,\r\n      \"drawRect\": true,\r\n      \"stroke\": \"#000000\",\r\n      \"fill\": \"#1ab394\",\r\n      \"labelColor\": \"#000000\",\r\n      \"labelSize\": 8,\r\n      \"numberOfReplicas\": 1,\r\n      \"ports\": [\r\n        {\r\n          \"id\": \"f0a59439-7083-4a6e-8019-19314be2c4f2#2f52c38f-d35e-494f-814b-3bdde113cf97\",\r\n          \"name\": \"activeUnitsSpec\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"f0a59439-7083-4a6e-8019-19314be2c4f2#463ce0aa-9b5e-4c82-b20f-c263e252373f\",\r\n          \"name\": \"compositeServiceConfig\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"f0a59439-7083-4a6e-8019-19314be2c4f2#8ed2ed84-c77b-4108-9c0a-1b2b0ee12953\",\r\n          \"name\": \"compositeInternalModelData\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"dashboardView#common-server#CompositeModelDataComponent#edit#compositeServiceConfig\",\r\n          \"name\": \"Composite Service Config\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"EAST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"dashboardView#common-server#CompositeModelDataComponent#edit#compositeInternalModelData\",\r\n          \"name\": \"Composite Internal Model Data\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"EAST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        }\r\n      ]\r\n    },\r\n    {\r\n      \"id\": \"fb6a717b-b649-45a4-8318-a45de34f34c3\",\r\n      \"eType\": \"Project/ScriptServiceInfo\",\r\n      \"container\": null,\r\n      \"name\": \"Simulation Composte Service\",\r\n      \"labels\": [\r\n        {\r\n          \"text\": \"Simulation Composte Service\"\r\n        }\r\n      ],\r\n      \"properties\": {\r\n        \"de.cau.cs.kieler.nodeLabelPlacement\": \"V_TOP H_CENTER OUTSIDE\",\r\n        \"de.cau.cs.kieler.portConstraints\": \"FIXED_SIDE\",\r\n        \"de.cau.cs.kieler.portLabelPlacement\": \"OUTSIDE\"\r\n      },\r\n      \"width\": 100,\r\n      \"height\": 50,\r\n      \"drawRect\": true,\r\n      \"stroke\": \"#000000\",\r\n      \"fill\": \"#1ab394\",\r\n      \"labelColor\": \"#000000\",\r\n      \"labelSize\": 8,\r\n      \"numberOfReplicas\": 1,\r\n      \"ports\": [\r\n        {\r\n          \"id\": \"fb6a717b-b649-45a4-8318-a45de34f34c3#341bd205-b9fb-4ac1-82af-8351fb8d70b4\",\r\n          \"name\": \"compositeInternalModel\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"fb6a717b-b649-45a4-8318-a45de34f34c3#3be76665-3e3d-4666-8f6d-3d3b414a63c0\",\r\n          \"name\": \"fastMode\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        },\r\n        {\r\n          \"id\": \"fb6a717b-b649-45a4-8318-a45de34f34c3#26a593eb-5dc1-4171-87d7-cf12dbaaf35e\",\r\n          \"name\": \"compositeInternalModelData\",\r\n          \"width\": 3,\r\n          \"height\": 6,\r\n          \"properties\": {\r\n            \"de.cau.cs.kieler.portSide\": \"WEST\"\r\n          },\r\n          \"stroke\": \"#000000\",\r\n          \"fill\": \"#c2c2c2\",\r\n          \"shape\": \"RECTANGLE\"\r\n        }\r\n      ]\r\n    }\r\n  ],\r\n  \"edges\": []\r\n}\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/OpenKieler/elkjs/issues/comments/474526982","html_url":"https://github.com/OpenKieler/elkjs/issues/57#issuecomment-474526982","issue_url":"https://api.github.com/repos/OpenKieler/elkjs/issues/57","id":474526982,"node_id":"MDEyOklzc3VlQ29tbWVudDQ3NDUyNjk4Mg==","user":{"login":"uruuru","id":7552459,"node_id":"MDQ6VXNlcjc1NTI0NTk=","avatar_url":"https://avatars3.githubusercontent.com/u/7552459?v=4","gravatar_id":"","url":"https://api.github.com/users/uruuru","html_url":"https://github.com/uruuru","followers_url":"https://api.github.com/users/uruuru/followers","following_url":"https://api.github.com/users/uruuru/following{/other_user}","gists_url":"https://api.github.com/users/uruuru/gists{/gist_id}","starred_url":"https://api.github.com/users/uruuru/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uruuru/subscriptions","organizations_url":"https://api.github.com/users/uruuru/orgs","repos_url":"https://api.github.com/users/uruuru/repos","events_url":"https://api.github.com/users/uruuru/events{/privacy}","received_events_url":"https://api.github.com/users/uruuru/received_events","type":"User","site_admin":false},"created_at":"2019-03-19T19:01:32Z","updated_at":"2019-03-19T19:01:32Z","author_association":"MEMBER","body":"One option could be to use Coffman Graham also layering strategy with the\nbound set to 1.\n\nSee\nhttps://www.eclipse.org/elk/reference/options/org-eclipse-elk-layered-layering-strategy.html\nand\nhttps://www.eclipse.org/elk/reference/options/org-eclipse-elk-layered-layering-coffmangraham-layerbound.html\n"}}
other: {"actor":{"display_login":"uruuru"}}