node graph to visualize organisation hierarchies

2
We are looking for a way to graphically display organization hierarchies (where parents can have multiple children and children can have multiple parents). Does anyone have any recommendations? Thanks. EDIT: we are considering to use http://d3js.org/ (e.g. the Labeled force layout). Struggling a bit though to get it to work using data from our application. If anyone has any recommendations... More info: concept would be to select a record in a mendix datagrid, press a button (or use a listening grid) to display the hierarchy/graph related to the selected record. Considering the html snippet in combination with json input for the d3js code (have questions like: where to put the d3js library, how to identify the json file/stream etc...) Update 20140811: Did some more testing and now use a REST service to generate json that is used by a html that uses jquery and d3js to visualize the data. It does work however not 100% happy yet with the way the visual is displayed (in a separate browser popup) prefered would be in the mendix ui) and not 100% convinced whether the REST service is really required (and how do I ensure that only application users are allowed to call the rest service). Did take a look at creating my own widget but seems a bit complicated.
asked
2 answers
3

Depending on how visual it should be, you could try the Treeview widet. It provides a basic tree structure which I think you could also use in your situation.

answered
2

We have had some success with a graphics library - Northwoods jgo which we used to display and create topological relationships. We used web services to query the data from our application.

alt text

Edit: Our coding was JScript, and calling a web service looks like this:

var validateLink = function(e) {
    //debugger;
    //debug_console("validateLink: " + e.subject);
        var query_xml = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://servername:port/ws-doc/"><soapenv:Header><ws:authentication><username>' + ws_login + '</username><password>' + ws_pwd +'</password></ws:authentication></soapenv:Header><soapenv:Body><ws:GetLinksAllowed><!--Optional:--><UID>' + UserID + '</UID><DownstreamCMDB_ID>' + e.subject.toNode.data.key + '</DownstreamCMDB_ID><UpstreamCMDB_ID>' + e.subject.fromNode.data.key + '</UpstreamCMDB_ID></ws:GetLinksAllowed></soapenv:Body></soapenv:Envelope>';
        $.ajax({
            type: "POST",
            contentType: "text/xml",
            url: "/ws/SearchCMDB",
            data: query_xml,
            dataType: 'xml',
            success: function(xml) {
                //debug_console('xml='+xml);
                if ($(xml).find('AllowedLinks').length == 0) 
                {
                    alert('There are no allowed links between these objects!')

answered