Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
О Notes
Советы
Шаблоны и примеры
Литература
Презентации
 
Java: внутри файла MS Excel 2007. Часть четвёртая   В публикуемой сегодня части статьи заканчивается описание процедур загрузки электронной таблицы и начинается описание самого интересного - каким образом получить данные, хранящиеся в ячейках таблицы
Шаблоны и примеры Читать статью
 
Java: внутри файла MS Excel 2007. Часть третья   В предлагаемой вниманию читателя третьей части статьи о структуре файла электронной таблицы Microsoft Excel формата 2007 речь идёт о коде Java, "разархивирующем" файловый поток и формирующем объекты, с которыми предстоит взаимодействовать при дальнейшей обработке данных электронной таблицы
Шаблоны и примеры Читать статью
 
Java: внутри файла MS Excel 2007. Часть вторая   В настоящем материале автор постарается систематизировать свои знания о том, как устроено хранение данных электронной таблицы, и презентовать небольшую Java-библиотеку, предоставляющую возможность чтения данных и заполнения файла электронной таблицы Microsoft Excel
Шаблоны и примеры Читать статью
 


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

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

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
Комментарий * :
Код подтверждения * :

Мероприятия
Пресс-релизы
Биржа труда
Последнее на форуме
 
А так же:
Lotus notes и ЭЦП
29.09.2017 17:16:14
Как удалить профиль?
16.04.2016 00:08:51
Скопировать в буфер поле документа
24.05.2015 08:55:52
 
© LOGOSPHERE.RU