Преглед на файлове

Fixes to instance node creation and attributes.

Bentley James Oakes преди 6 години
родител
ревизия
51439218d2
променени са 1 файла, в които са добавени 29 реда и са изтрити 12 реда
  1. 29 12
      client/modelverse_connector.js

+ 29 - 12
client/modelverse_connector.js

@@ -146,6 +146,9 @@ class ModelVerseConnector {
                     edge_map[key] = [src, dest];
                 }
 
+                //for detecting duplications
+                let nodes_names = [];
+
                 let node_creation_promises = [];
                 for (const [key, node] of Object.entries(m.nodes)) {
                     // if (node.name == undefined){
@@ -168,6 +171,11 @@ class ModelVerseConnector {
                         node_name = node.name.value;
                     }
 
+                    if (nodes_names.includes((node_name))){
+                        node_name += "_" + key;
+                    }
+                    nodes_names.push(node_name);
+
                     let node_type = node.$type.split("/").slice(-1)[0];
 
                     node_creation_promises.push(ModelVerseConnector.send_command(
@@ -263,9 +271,12 @@ class ModelVerseConnector {
                     Promise.all(edge_creation_promises).then(function() {
 
 
-
+                        // Add attributes
+                        console.log("Adding attributes");
                         for (const [key, node] of Object.entries(m.nodes)) {
 
+                            console.log(node);
+
                             let ele = ModelVerseConnector.element_map[key];
                             let node_type = node.$type.split("/").slice(-1)[0];
 
@@ -276,9 +287,13 @@ class ModelVerseConnector {
                                 attrib_creation_promises.push(ModelVerseConnector.get_output());
                             }
 
-                            if (node.name != undefined && node_type != "GlobalConstraint"){
+                            for (const [attrib_key, attrib_value] of Object.entries(node)){
+                                if (attrib_key.startsWith("__") || attrib_value.value == undefined){
+                                    continue;
+                                }
+
                                 attrib_creation_promises.push(ModelVerseConnector.send_command(
-                                    {"data": utils.jsons(["attr_add", ele, "name", node.name.value])}
+                                    {"data": utils.jsons(["attr_add", ele, attrib_key, attrib_value.value])}
                                 ));
                                 attrib_creation_promises.push(ModelVerseConnector.get_output());
                             }
@@ -414,10 +429,10 @@ class ModelVerseConnector {
                 for (const obj of Object.values(AS)) {
                     let obj_type = obj["__type"];
 
-                    let name = obj["name"];
-                    if (name == undefined){
-                        name = obj_type;
-                    }
+                    let name = obj["__id"];
+                    // if (name == undefined){
+                    //     name = obj["name"];
+                    // }
 
                     if (obj_type == "SimpleAttribute"){
                         model_attrib_types.push(name);
@@ -429,7 +444,7 @@ class ModelVerseConnector {
 
                     let add_properties = true;
 
-                    //console.log("obj " + obj_type + " " + name + " = " + src + " - " + trgt);
+                    // console.log("obj " + obj_type + " " + name + " = " + src + " - " + trgt);
 
                     if (src == undefined && trgt == undefined){
                         model_elements.push([name, obj_type]);
@@ -455,7 +470,7 @@ class ModelVerseConnector {
                     if (add_properties) {
                         for (let [prop_name, prop_value] of Object.entries(obj)) {
 
-                            console.log(name + " :: " + prop_name + ' = ' + prop_value);
+                            // console.log(name + " :: " + prop_name + ' = ' + prop_value);
                             if (prop_name.startsWith("__")) {
                                 continue;
                             }
@@ -558,8 +573,8 @@ class ModelVerseConnector {
 
                     for (const [obj_type, src, trgt, obj_id] of model_links){
 
-                        console.log("Link:");
-                        console.log(obj_type + " " + src + " " + trgt + " " + obj_id);
+                        // console.log("Link:");
+                        // console.log(obj_type + " " + src + " " + trgt + " " + obj_id);
 
                         link_promises.push(new Promise(function(resolve, reject) {
                             let source_element = ele_ids[src];
@@ -591,7 +606,9 @@ class ModelVerseConnector {
                                 resolve();
                             };
 
-                            console.log(connectionType);
+                            console.log("Building " + connectionType + " between "
+                                + source_element + " (" + src + ") and " + target_element + " (" + trgt + ")");
+
                             HttpUtils.httpReq(
                                 'POST',
                                 HttpUtils.url(connectionType, __NO_USERNAME),