Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
О Notes
Советы
Шаблоны и примеры
Литература
Презентации
 
Всё о задаче AdminP. Часть вторая   Во второй части мы завершаем рассмотрение AdminP. В ней рассмотрены запросы междоменного администрирования и способы управления функциями AdminP с помощью настроек документа сервера, команд консоли сервера, файла Notes.ini и интервалов очистки базы данных. В этой статье предполагается, что вы опытный администратор Domino и прочитали первую часть
О Notes Читать статью
 
Всё о задаче AdminP. Proxy-действия в R5 и Domino 6   Приложение к статье об административном процессе
О Notes Читать статью
 
Всё о задаче AdminP. Часть первая   Перевод классической статьи 2003-его года о задаче административного процесса (AdminP). Очень полезна для понимания работы механизма этой задачи. В первой части статьи описаны компоненты задачи AdminP, как они работают, и как их использование помогает сделать работу администратора Domino проще. Задача AdminP (сакращённо от Administration Process, Административный процесс) работает с базой административных запросов (Administration Requests, admin4.nsf)
О Notes Читать статью
 


Шаблоны и примеры

Главная   Библиотека   Шаблоны и примеры

Java-applet для визуализации графических файлов. Новая версия

Михаил Чолоков
разработчик

Для создания апплета, визуализирующего графические файлы, первоначально использовалась библиотека SWT, требующая jre выше, чем 1.1.8, используемой клиентом Lotus Notes R5. Позднее автор пересобрал решение, заменив библиотеку SWT авторским кодом, с целью дать возможность использовать апплет и клиентам версии R5
В отличие от примера Николая Норкина (>>>) присоединенный к документу файл не выгружается на локальный диск, а открывает поток для чтения (InputStream)
Для визуализации картинок, чьи размеры превосходят размеры окна апплета, в проекте для клиента R6 использован скроллинг на основе пакета javax.swing.*
В проекте для клиента R5 использовано масштабирование картинки
Добавлена возможность работы с файлами формата TIFF с использованием пакета от lizard (см. ссылки внизу страницы)

Несколько слов об использованных средствах
SWT. От использования библиотеки SWT для реализации автор отказался ввиду необходимости дополнительных действий по установке, хотя большой плюс - использование нативной платформы (т.е. быстрота работы и гибкость).
Большим недостатком для создания апплетов, работающих в клиенте Notes, следует признать использование этой библиотекой java не младше 1.4.x (Notes версии R6, напомню, использует java 1.3.1, версии R5 - 1.1.x)
В SWT для указанной версии java уже реализован штатный механизм работы с TIFF, что видится заметным плюсом
Пакет javax.swing.*. Преимущества решения с javax.swing.* (ImageView.class его использует) - нет необходимости самому писать маштабирование, скролирование и т.д., все есть в его библиотеках. Недостаток - не работает для java младше 1.3.x
Пример использования библиотеки SWT >>>

Структура примера
В прилагаемых архивах находятся файлы проекта под Eclipse апплета для клиента Lotus Notes версии R6 (SwingNotesImages.zip >>> скачать) и для Notes версии R5 (NotesImages.zip >>> скачать)
В базе test.nsf (архив test.zip >>> скачать) содержится небольшая библиотека картинок, которые из двух представлений открываются по двум различным формам: с апплетом, работающим в клиенте R5 и R6 (реализовано масштабирование больших картинок), и, во втором случае - с апплетом, работающим только в клиенте R6 со скроллингом картинок

В клиенте Notes необходимо включить (Команда Главного меню File -> Preferences -> User Preferences... поле Additional Options) возможность выполнения java-апплетов (Enable Java applets)

Создание проекта в Eclipse
Проект создавался в Eclipse 2.1.3 (скачать можно отсюда >>>)
Вкратце изложу шаги:

  • Создается java-проект
  • jre меняется на 1.3.1 (jre 1.3.x является родным для Eclipse 2.3.1, но в ОС можно использовать старше )
свойства проекта (картинка)


-- JRE меняется через Add Library.... В диалоге ссылаемся на библиотеку и присваиваем имя, остальное Eclipse сам подхватит. Будет правильным использовать ссылку на каталог Notes (<notes directory>\jvm), это справедливо только для R6
-- подключается Notes.jar, lizard.zip и ImageView.zip (два последних прилагаются к данному материалу >>>) через Add External JARs...
Наверное, следует объяснить про версии java: установленная в системе роли не играет - важна java в Notes
Для 6.x - она 1.3.x для 5.x - 1.1.x (уже в составе). Сборка в Эклипсе возможна и с java 1.3, но обязательно взять из каталога программ Notes - файл Notes.jar (чтобы накладок не получилось)
К сожалению, в версии R5 java, используемая клиентом, зашита в dll-ку. Для сборки апплетов использовать приходится jdk от Sun
  • Можно попробовать импортировать готовый проект (см. прилагаемые архивы)
  • Если не получится - создать самому, текст скопировать из файла AWTNotesImageCompat.java или SwingNotesImage.java соответственно
  • Для запуска нажать кнопку Run



Размещение апплета в форме Notes
Создается новый апплет (используя акцию New Applet Resource) в Shared Resources базы данных.
Для R6 - В нем размещаются файлы классов SwingNotesImage.class, ImageView.class, ImageViewNew.class (класс находятся в архиве SwingNotesImages.zip)
Для R5 - только AWTNotesImageCompat.class (класс находятся в архиве NotesImages.zip)
Обязательно добавьте архив lizard_113.zip (реализация работы с файлами формата TIFF)
В форме создается апплет (Команда Главного меню Create -> Java applet...). По кнопке Locate... эти классы добавляются в проект
В качестве параметров апплета задаются
server - сервер, на котором размещена база данных @Subset(@DbName; 1)
dbname - путь к базе данных @Subset(@DbName; -1)
imagesource - универсальный идентификатор документа @Text(@DocumentUniqueID)
Для присоединения файла картинки к документу создается форматируемое поле Body
В текущей версии апплета на основе AWTNotesImageCompat.class предусмотрена возможность передачи параметров rtname (имя поля с аттачем картинки) и showsize (любое передаваемое значение блокирует вывод строки размера). Без этих параметров поведение апплета остается прежним
Подобный апплет встроен в форму test1 базы примера. Демонстрирует работу апплета документ test1 при открытии из представления ALL
Светлые идеи, использованные в проекте (ссылки), которые были изменены и доработаны:
естественно - оригинал от Николая Норкина (>>>)
http://www.eclipse.org/articles/Article-SWT-images/graphics-resources.html
http://www.lizardworks.com/libs.html - очень ценный ресурс, жаль, проект не развивается, его функционал использован для работы с картинками в формате TIFF
http://java.freehep.org/jcvslet/JCVSlet/show/freehep/freehep/org/freehep/util/images/ImageHandler.java/1.3 - здесь возможный вариант обработки стрима (в примере реализован другой)
http://tutorials.beginners.co.uk/read/category/82/id/107/p/2 - swing и его виджеты ;)
http://www.filigris.com/products/docflextor_for_javadoc/examples/html/javax/swing/text/html/ImageView.html - тоже swing - доработанная версия класса для работы со стримом (не моя :)
http://www.wizzcomputers.com/ImageView.php - описание того, как пользоваться классом (естественно, нужна доработка, чтобы отображать - она и была проделана;)

Рекомендуемые дополнительные ссылки:
http://www-106.ibm.com/developerworks/lotus/library/notes-eclipse/
http://www-106.ibm.com/developerworks/lotus/library/notes-plugin-eclipse/
http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/b51a9677ecf025fb85256f1f003fc3c8?OpenDocument

Читайте на Notesnet.ru:
Java-апплет: альтернатива встроенному представлению >>>
 
  Опубликовано — 06/22/2006 |    

Ivan, 04.12.2008:
Отличный апплет, спасибо большое! Единственная проблемка - это если в одном и том же документе пролистывать изображения из других документов, используя например комбобокс, то лотус падает в том случае, если пользователь переходит к следущей картинке не дожидаясь когда загрузится (будет отрисована апплетом) текущая картинка. Т.е. когда по сути апплет прерывают в середине работыы и заставляют грузить другую картинку. Можно ли это как то обойти? Апплет к сожалению не может никак сказать документу что он сейчас занят и чтобы в этот момент документ не рефрешили...



Добавить комментарий
Имя * :
e-mail
Комментарий * :
Код подтверждения * :

Мероприятия
Пресс-релизы
Биржа труда
Последнее на форуме
 
А так же:
Как удалить профиль?
16.04.2016 00:08:51
Скопировать в буфер поле документа
24.05.2015 08:55:52
Импорт DXL-описания документов в Lotus Domino. Одноимённые поля
16.04.2015 16:49:58
 
© LOGOSPHERE.RU