Adornment position

Is this possible to change the rotation adornment handle position to the TopCenter of the node ? This code doesn’t work and then handle is too far from the node :

return this.go(go.Adornment,
  {
    locationSpot: go.Spot.TopCenter,
  },
  ...
);

Draggable Link demonstrates that, and unfortunately for you, a lot of other customizations. You’ll need the custom RotatingTool.

Perfect !

Below a class equivalent with a default export :

import go from 'gojs';

export default class TopRotatingTool extends go.RotatingTool {

  constructor(spot) {
    super();
    this.spot = spot;
  }

  updateAdornments(part) {
    super.updateAdornments(part);
    const adornment = part.findAdornment('Rotating');
    if (adornment !== null) {
      adornment.location = part.rotateObject.getDocumentPoint(this.spot);
    }
  }

  rotate(newangle) {
    super.rotate(newangle + 90);
  }
}

It’s now simple to use with :

import TopRotatingTool from 'yourJsFile';

...

diagram.toolManager.rotatingTool = new TopRotatingTool(new go.Spot(0.5, 0, 0, -15));

Walter, Is it possible to change this point from a node template ?

You could change the TopRotatingTool to look at the .data and decide what angle and Spot to use.