Dragging nodes and creating links

I have a diagram with several nodes,
I need 2 kinds of dragging operations.

  • drag am item from an element
    image

I can drag from ft1 or from ft2
in this case I created a dragging tool that builds a template for the drag operation and when I drop on an empty space on the diagram then I create another Node.
that works fine
in order to enable the dragging operation I did write this code
this.diagram.toolManager.draggingTool = this.fieldDraggingTool;

now I need another drag operation, this time I want to link 2 nodes, I can drag from anywhere on a node (also dragging from Master is good enough) then I can drop on another node and a link should be added between them.

(I work with GraphLinksModel)

to do that I did write on the node

        node.toLinkable = true;
        node.fromLinkable = true;

now the problem is I can not work with both modes,

If I am using the dragging tool I can not create the links
if I am using the linkable option the I can not use the dragging tool.

how can I use both dragging options?

I think I solved it,
I should put the fromLinkable=true only on a panel not on a node,
so I can drag only from within a panel
am I correct?

another question related to that , when I drag or drag over the element is painted in some pink color,
how can I change the color to something else?

Yes, that is correct – normally you should only set “port”-related properties on the element on which you have set or bound the GraphObject.portId property to a string to identify the port on the node, or else on the whole Node if you haven’t set or bound portId. However the …Linkable properties are “inherited”, which is why they are defined to be tri-state boolean properties.
GoJS Validation -- Northwoods Software
GraphObject | GoJS API

To control the appearance of the temporary objects used during linking, you can customize the LinkingTool and the RelinkingTool: GoJS Tools -- Northwoods Software