@Override
	public void dragGestureRecognized(DragGestureEvent e) {

		// check input event: if any button other than MB1 is pressed,
		// don't attempt to process the drag and drop event.
		InputEvent ie = e.getTriggerEvent();
		int modifiers = ie.getModifiersEx();
		if ((modifiers & InputEvent.BUTTON2_DOWN_MASK) != 0 ||
			(modifiers & InputEvent.BUTTON3_DOWN_MASK) != 0) {
			return;
		}

		int dragAction = dragComponent.getDragAction();

		if (((e.getDragAction() & dragAction) == 0) || !dragComponent.isStartDragOk(e)) {
			return;
		}

		DragSourceListener l = dragComponent.getDragSourceListener();
		if (l == null) {
			return;
		}

		Transferable t = dragComponent.getTransferable(e.getDragOrigin());
		if (t == null) {
			return;
		}

		try {
			e.startDrag(DragSource.DefaultCopyNoDrop, t, l);
		}
		catch (InvalidDnDOperationException exc) {
			// the Drag and Drop system is unable to initiate a drag operation
			Msg.error(this, "Exception occurred during drag initiation: " + exc, exc);
		}
	}
Construct a new DragGestureAdapter

@param dragComponent Component that can support drag operations
Ghidra/Framework/Docking/src/main/java/docking/dnd/DragGestureAdapter.java