How to skip specific bindings or updates

I have a Diagram that receives external data successively.
I want to be able to display these updates and be able to use some tools without seeing conflicts and glitch on the diagram.
The tool have always the priority.

That means : suppose a node that receives new text and location simultaneously. If the user does not use the DraggingTool I want to display both changes. However if the user update the location using the DraggingTool I want to display the new name and skip the location update. When he drop the node that what we’re going to use as location. Unless if we receive another one just after he drop. The important point here is to avoid any glitch and conflict between the incoming data and the Tool as I said.

What’s the best option to use in this case ?

This is a demo here. Press the button then try to move the node. You will see few glitch sometimes.

I am not sure what’s the best option ?
I tried returning undefined in the bindings if the DraggingTool is active. I played a little bit with skipDiagramUpdate, but I am not sure if I want to turn it true in some cases and provide my own mergeData. Same in the DraggingTool. Not sure actually.

You can look at the Diagram.currentTool to decide whether or not to merge data. Or whether the data to be merge includes location information.

You mean if the currentTool is DraggingTool I need to set skipDiagramUpdate to true than provide my own mergeData (without including location), right ?

I think whenever you have new data you need to merge them in. But you can choose whether or not to include location information depending on the current tool being used in the diagram.

Presumably the location information is being passed to the server at the end of the DraggingTool’s transaction.

Thanks for you help Walter. I appreciate it.

I think I have a working example here