JavaFX ベースのアプリケーション内で JavaFX と HTML5/JS を混在させたいと考えています。HTML5/JS コンポーネントは JavaFX WebView を使用して統合され、HTML5/JS コンポーネントごとに WebView のインスタンスが 1 つ存在します。
クラスPerson{String:firstname, String:lastname}を考慮して、JavaFX と HTML5 間のドラッグ アンド ドロップの実現可能性を調査しています。私の目標は、モデル オブジェクトを次の MIME タイプとしてドロップできるようにすることです。
- " text/plain " - これは、テキストの標準 MIME タイプです。私のデータは「 Mr jerry seinfeld」のようなものになります
- " application/x-pigelvy-person " - これは私自身の MIME タイプであり、ドラッグアンドドロップ操作が実際には Person オブジェクトに関するものであることを検出できます。データは、ドラッグされた Person によって{"firstname":"jerry","lastname":"seinfeld"}などの JSON に変換されます。
私のソースはhttps://github.com/pigelvy/dnd_jfx-jsで確認できます。
JavaFX ListView のドラッグ操作を開始し、ClipboardContent に Person オブジェクトを「text/plain」および「application/x-pigelvy-person 」として配置すると、「 text/plain 」のデータしか取得できませんでした (ただし、JS オブジェクトはDragEvent.dataTransfer)。どのブラウザーを使用しても同じ結果が得られます (アプリ内の WebView またはアプリ外の Firefox/Chrome)
HTML5 D'n'D 仕様を読んだところですが、セクション7.8.4.1および7.8.4.2に基づいて、D'n'D が別のアプリケーション/ドキュメントから/で開始/終了する場合でも、D'n'D が正しく行われるべきであることを理解しています。
私はいくつかの奇妙なことに気づきました:
- HTML ページを 2 つの Firefox タブまたは 2 つの Opera タブにロードすると、" text/plain "とともにカスタム MIME タイプにアクセスできます。
- 同じ JavaFX アプリケーション内の 2 つの JavaFX WebView に HTML ページをロードすると、カスタム MIME タイプにアクセスできますが、「text/plain」にしかアクセスできません。
カスタム データ型が利用できないのはなぜですか? 私が知らない制限はありますか?