Я создаю модуль Drupal, который объединяет апплет Java FTP FileCatalyst со стандартной формой Drupal. Я реализую привязку для отправки формы при завершении передачи файла. В настоящее время я обрабатываю апплет с помощью вызова setTimeout(), но этот метод может пропустить изменения состояния, если они происходят слишком быстро.Как использовать java.util.Observable из Javascript?
Однако объект FileCatalyst наследуется от java.util.Observable - так что, по-видимому, возможно зарегистрировать наблюдателя для апплета и получить уведомления об изменениях состояния. Я хотел бы знать, как это реализовать.
Могу ли я использовать функцию document.FileCatalyst.addObserver (obj) из Javascript для получения этих изменений состояния, отправленных на объект Javascript? Что я могу передать в addObserver? Как я могу построить наблюдателя? Какие методы должен выполнять наблюдатель для получения уведомлений об изменении состояния?
Это хороший ответ и отлично подходит к вопросу опроса. (Не знаю, почему я так не делал этого в первую очередь!). Большой смысл моего вопроса связан со спецификацией, которую мне дали реализовать. Клиент уже реализовал страницу с формой, а также апплет FileCatalyst под формой. Они хотят, чтобы форма отправлялась, когда файлы успешно загружались, и они хотят, чтобы список файлов отправлялся вместе с содержимым формы. К сожалению, метод callurlaftertransfer не включает эти данные. (см. Следующий комментарий ...) –
Существует еще одна настройка FileCatalyst, «postURL», которая включает в себя список загружаемых файлов, но для этого требуется перезагрузка страницы и пропустить отправку формы. Я надеялся получить список файлов, загруженных до перезагрузки любой страницы, поэтому его можно было отправить вместе с формой. (Вложение апплета в iframe - это одно хакерское решение, которое я рассмотрел.) В конце концов, я убедил клиента изменить спецификацию. А именно, покажите апплет сам по себе как шаг 1, захватите загруженные файлы из postURL, а затем покажите форму как шаг 2, которая затем будет содержать информацию postURL в скрытом поле. –