1

我正在构建一个 Drupal 模块,它将“FileCatalyst”Java FTP 小程序与标准 Drupal 表单集成在一起。我正在实现一个挂钩以在文件传输完成时提交表单。目前我正在使用 setTimeout() 调用轮询小程序,但如果状态更改发生得太快,此方法可能会错过。

然而,FileCatalyst 对象继承自 java.util.Observable——因此显然可以为 applet 注册一个观察者并获得状态变化的通知。我想知道如何实现这一点。

我可以使用 Javascript 中的 document.FileCatalyst.addObserver(obj) 函数将这些状态更改发送到 Javascript 对象吗?我将什么传递给 addObserver?如何构建观察者?观察者需要实现哪些方法才能接收状态更改通知?

4

3 回答 3

0

您需要使用 fcupload.js 中提供的重定向 URL。例如:

var callurlaftertransfer = "javascript:submitForm()";

然后你会让 submitForm() 函数调用 document.myform.submit();

希望有帮助!

克里斯

于 2010-01-11T14:33:24.407 回答
0

我无法完全回答您的问题,但我读到 java.util.Observable 有一个阴暗面(请参阅 Head First Design Patterns)。也就是说,必须将 Observable 放入类层次结构中。java.beans 中的 PropertyListener 是否适合您的使用场景?如果是这样,有很多示例代码展示了如何为普通的旧 JavaBean 设置 PropertyListener。

于 2010-01-10T21:44:00.547 回答
0

每个 Java 小程序也是一个 Javascript 对象,提供与 Java 对象相同的方法。因此,您可以从 Javascript 调用 addObserver()。作为参数传递的对象应该是提供与 Observer 类型指定的方法相同的方法的 Javascript 对象(假设 addObserver() 采用 Observer 类型的单个参数)。

于 2010-01-10T21:49:19.867 回答