In the example - Resizing Group Resizes Member Nodes when member are moved, group node doesn’t get moved and restrict member moving within nodes.
After adding Placeholder in the group node, the behavior changes → One cannot move members outside the node but depending on direction where member node is moved it moves the group node also. How to prevent this ??
If I understand the situation you are describing, the whole purpose of a Placeholder in a Group is to make sure the group is located and sized where its members are. But perhaps I do not understand you precisely.
My group template has a fixed header similar to the sample - Regrouping Demo
where Panel is used to have top header and place holder for other member nodes.
And whenever member nodes are moved, resize of group node shouldn’t be possible like shown below -
Here I wanted to achieve using drag-drop reorder of items.
I think you want to prevent nodes from being dragged horizontally. The general solution is to set Part.dragComputation on your node template so that the location’s Point.x property does not change. Part | GoJS API
However for this specific case, it is easier to set these properties in your node template: Part | GoJS API Part | GoJS API
minLocation: new go.Point(NaN, -Infinity),
maxLocation: new go.Point(NaN, Infinity),
That will allow the user to drag arbitrarily far vertically while limiting the location.x to remain the same.
minLocation and maxLocation - worked as expected when member nodes are moved, group node cannot be moved.
Applying this on node template, there is another issue.
I have pallete from where new nodes can be dropped. For pallete diagram node template same template is assigned. Now when node is dragged from pallete to diagram, it gets positioned on fix position. Tried by applying different template for pallete where these properties are not set but then still same issue. Location of dragged node doesn’t get changed with mouse location. How this can be applied based on some condition like when node is member of some group ?