ドラッグ&ドロップによる値の修正を制御するには

【ご質問】
TextField等入力可能なコントロールに対して、
ドラッグ&ドロップによる値の修正を制御することは可能でしょうか。

【回答】
TextFieldUIクラスのon-drop、on-drag-over、on-drag-startedメソッドを
オーバーライドし、ドラッグ&ドロップ時の処理をさせないようにすることで実現可能となります。

詳細は以下のサンプルをご参照ください。
(グラフィック階層の違いにより下記サンプルはバージョン6以前では動作しません。)

{curl 7.0,8.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}

{define-class public NoMoveTextFieldUI {inherits SkinnableTextFieldUI}
  {constructor public {default …}
    {construct-super {splice …}
    }
  }

  {method public open {on-drag-started e:DragStarted}:void
    {if not e.consumed? and
        self.enabled? and
        self.input-method-info == null
     then
        {self.start-dragscroll e, start-leaf = self.string-graphic}
        {e.consume}
    }
    {super.on-drag-started e}
  }

  {method public {on-drop e:Drop}:void
    {e.consume}
  }
 
  {method public {on-drag-over e:DragOver}:void
    {e.consume}
  }
}

{Table columns = 2,
    “ドラッグ&ドロップで切り取り、挿入ができない”,
    {TextField
        ui-object = {NoMoveTextFieldUI},
        value = “0123456789”
    },
    “通常のTextField”,
    {TextField
        value = “ABCDEFGHIJK”
    }
}