1

「FileCatalyst」JavaFTPアプレットを標準のDrupalフォームと統合するDrupalモジュールを構築しています。ファイル転送が完了したときにフォームを送信するためのフックを実装しています。現在、setTimeout()呼び出しを使用してアプレットをポーリングしていますが、このメソッドは、状態の変化が速すぎると、状態の変化を見逃す可能性があります。

ただし、FileCatalystオブジェクトはjava.util.Observableを継承しているため、アプレットのオブザーバーを登録して、状態変更の通知を受け取ることは明らかに可能です。これを実装する方法を知りたいのですが。

Javascriptのdocument.FileCatalyst.addObserver(obj)関数を使用して、これらの状態変更をJavascriptオブジェクトに送信できますか?addObserverに何を渡しますか?オブザーバーを作成するにはどうすればよいですか?状態変更通知を受信するために、オブザーバーはどのようなメソッドを実装する必要がありますか?

4

3 に答える 3

0

あなたの質問に完全に答えることはできませんが、java.util.Observable には暗い面があることを読みました (Head First Design Patterns を参照)。つまり、Observable をクラス階層に組み込む必要があります。java.beans の PropertyListener は、使用シナリオに適していますか? その場合、単純な古い JavaBean の PropertyListeners を設定する方法を示すサンプル コードが多数あります。

于 2010-01-10T21:44:00.547 に答える
0

すべての Java アプレットは、Java オブジェクトと同じメソッドを提供する Javascript オブジェクトでもあります。したがって、Javascript から addObserver() を呼び出すことができます。パラメータとして渡すオブジェクトは、Observer 型で指定されたメソッドと同じメソッドを提供する Javascript オブジェクトである必要があります (addObserver() が Observer 型のパラメータを 1 つ受け取ると仮定します)。

于 2010-01-10T21:49:19.867 に答える
0

fcupload.js で提供されるリダイレクト URL を使用する必要があります。例えば:

var callurlaftertransfer = "javascript:submitForm()";

次に、submitForm() 関数で document.myform.submit(); のような呼び出しを行います。

それが役立つことを願っています!

クリス

于 2010-01-11T14:33:24.407 に答える