Quantcast
Channel: GoJS - Northwoods Software
Viewing all articles
Browse latest Browse all 7069

Palette -> updating multiple nodes of same type on diagram with different values

$
0
0

@vihag wrote:

  1. I am trying to create a palette based canvas.
  2. I have created my own node definitions, each node has a a data property 'configurations' which is an array of fixed schema objects('name','value','defaultValue','description')
  3. When I drop two of these nodes onto the canvas, i want to update the configurations of the two nodes separately
  4. when i am updating the 2nd node with the configurations, the first node also assumes the same values, which is undesirable.

How do i make sure that the two nodes have separate configurations ?

Code snippet for adding palette nodes ->
` jQuery.each(activeGenomes, function(key, value) {

    genomePalette.model.addNodeData({
        key: value.id,
        genome: value.name,
        displayname: value.name,
        inputSchema: value.inputSchema,
        outputSchema: value.outputSchema,
        configuration: value.configuration,
        jarName: value.jarName,
        className: value.className,
        fig: "hexagon",
        type: "genome"
    });

});`

Code Snippet for updating values of configs based on user input ->
`function updateNodeConfigurations() {

var clickedNodeKey = subjectBeingConfigured.part.data.key;
genomeCanvas.startTransaction("savenewconfig");

var clickedNode;
jQuery.each(genomeCanvas.model.nodeDataArray, function(key, node) {
console.log("comparing "+node.key+" with "+clickedNodeKey);
    if (node.key === clickedNodeKey){
        clickedNode = node;
        return false;
    }


});
console.log("Subject part data : "+subjectBeingConfigured.part.data.configuration);
console.log("Updating configurations for : " + clickedNode.data);


jQuery.each(clickedNode.configuration, function(key, config) {

    //we are looping over each configuration of the clicked node

    configurationId = '#' + clickedNode.key + '_' + config.name;
    var valueForConfiguration = jQuery(configurationId).val();

    console.log("config old value : " + config.name + " : " + config.value);
    console.log("config new value : " + config.name + " : " + valueForConfiguration);

    config.value = valueForConfiguration;
    //genomeCanvas.model.setDataProperty(clickedNode,"configuration", valueForConfiguration)

    return true;
});

console.log()
genomeCanvas.commitTransaction("savenewconfig");

}`

Posts: 2

Participants: 2

Read full topic


Viewing all articles
Browse latest Browse all 7069

Trending Articles