Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Java аппликация и ActiveX componnent(Viewer)


Автор: Nin 28.7.2005, 18:28
Как в Java аппликации показать маленькую аппликацию завернутую в ActiveX componnent. Аппликация показывает DWF/DWG фаилы.

Я делаю каталог с помощю которого можно быстро искать и просматривать информацию о продуктах. Каждый продукт имеет рисунки, чертежи и PDF документы.
Всё это дoлжно показыватся в каталоге(в отдельном tab), и не выпрыгивать как Pop-up.

Нашёл аппликацию с помощю которой можно открывать dwf/dwg фаилы, и её можно использонать как ActiveX componnent.

Кто нибудь сталкивался с подобной проблемой, подкиньте идеи или линки на инфу,

Заранее благодарен,

Ильдар

Автор: Sardar 29.7.2005, 00:19
У тебя же и-нет приложение/каталог. Клиентская часть в браузере. Тогда этот ActiveX можно в IE показать не напрягаясь. Зачем тебе Java на клиенте?

Автор: Stampede 29.7.2005, 00:37
Я в одном проекте использовал для подобных целей библиотеку Дена Адлера http://danadler.com/jacob/ (Java-COM Bridge). Деталей уже не помню, но было все достаточно просто. Посмотри, может, тебе и подойдет.

Автор: LSD 29.7.2005, 09:00
Jacob позволяет вызывать методы COM, но вот поместить ActiveX control на Java Component не получится. У нас в свое время была похожая задача, но решить ее не удалось.

Автор: Nin 29.7.2005, 11:04
Чем отличается J++ от стандартной Sun Java? Дело в том что через J++ открыть этот viewer можно...

Вот что стоит в Programmers Reference:
Software Required
You can use the Control from any environment that supports using ActiveX controls. Some possible tools include:

* Powerbuilder
* Borland Delphi
* Borland C++ Builder
* Microsoft Visual Basic
* Microsoft Visual C++ 2.0 or higher
* Microsoft Office applications (via Visual Basic for Applications)
* Microsoft Internet Explorer (via VBScript of JavaScript)
* Microsoft Visual J++

The specifics of how each tool uses ActiveX controls depend on the individual application. Consult the tool documentation to see how it handles controls.


Автор: Nin 29.7.2005, 12:04
У тебя же и-нет приложение/каталог. Клиентская часть в браузере. Тогда этот ActiveX можно в IE показать не напрягаясь. Зачем тебе Java на клиенте?

tо Sardar:
Нет, это не так, и-нет приложение/каталог это только для пользователей, а ещё нужно както всю инфу о продуктах собрать... Причем импортировать с ДБ фабриканта, в нашу ДБ.

Всем:
Как так, что такая могучая Java, и не имеет решении для данной проблеммы?

Может JBeans + Bridge + ActiveX component?



Автор: LSD 29.7.2005, 13:10
Цитата(Nin @ 29.7.2005, 12:04)
Вот что стоит в Programmers Reference:
Software Required
You can use the Control from any environment that supports using ActiveX controls. Some possible tools include:
  .....
* Microsoft Visual J++

Microsoft Visual J++ позволяет использовать COM, это да (кстати Jacob просто повторяет эту функциональность, но для Sun JVM). Но вот способ внедрения ActiveX Control-ов я там не нашел.
Откуда цитата?

Автор: Sardar 29.7.2005, 14:40
Цитата(Nin @ 29.7.2005, 11:04)

Нет, это не так, и-нет приложение/каталог это только для пользователей, а ещё нужно както всю инфу о продуктах собрать... Причем импортировать с ДБ фабриканта, в нашу ДБ.

Для Java тут проблем не будет(и вообще это задача сервера, а не клиента), проблема похоже только одна: отрисовать DWG/DWF файл в окошке.
При этом в ограничениях jacob видим:
Цитата
This release does not provide any support for hosting graphical ActiveX controls inside of Java components.

Как сказал LSD поместить вьювер на окошко не получиться.

Не знаю можно ли извратиться и попробовать положить ActiveX контрол на скрытое виндовое окошко, затем сграбить получившееся изображение в массив пикселей(на крайняк скриншот взять), а затем этот массив пикселей с помощью jacob'а забрать. Быстро это работать не будет, но может хоть получиться снять картинку.

Как поместить контрол и сграбить изображение можно спосить в VB/C++.

Автор: LSD 29.7.2005, 15:59
Цитата(Sardar @ 29.7.2005, 15:40)
Не знаю можно ли извратиться и попробовать положить ActiveX контрол на скрытое виндовое окошко, затем сграбить получившееся изображение в массив пикселей(на крайняк скриншот взять), а затем этот массив пикселей с помощью jacob'а забрать. Быстро это работать не будет, но может хоть получиться снять картинку.

Вот это полет мысли smile
Мы до такого не додумались, хотя нам именно картинка и была нужна.

Автор: Nin 29.7.2005, 16:33
Цитата
Microsoft Visual J++ позволяет использовать COM, это да (кстати Jacob просто повторяет эту функциональность, но для Sun JVM). Но вот способ внедрения ActiveX Control-ов я там не нашел.
Откуда цитата?


Цитата отсюда:
http://www.nin.herejezus.nl/Projects/Programmers%20Reference.html


Цитата
Как поместить контрол и сграбить изображение можно спосить в VB/C++.


Уже проверено, в VB работает идиально, просто указывается где показать, и какои фаил открыть...
Также в Internet Explorer, даже если открывать через Mozilla нужно спрашивать об этом Internet Explorer...

Цитата

Вот это полет мысли smile
Мы до такого не додумались, хотя нам именно картинка и была нужна.


Нам нужна не только картинка, а вся аппликация которая бы занимала определенное пространство на экране.
Это аппликация показывает не Image, а чертеж, и имеет такие фунkции как ZoomIn, ZoomOut... etc.

Здесь архив с аппликацией и её Programmers Reference: http://www.nin.herejezus.nl/Projects/catalogus/invisio.rar

Обидно будет если с чистои Ява нельзя открыть.. тогда придется открывать из под J++,
В любом случае о платfормо независимости уже говорить не приходится, а ведь какая идея то была smile

Может есть какие то решения проблемы через Bridge между JBeans и ActiveX?
Или попробовать деиствительно на прямую обратится к java.awt.Window?
Сказать обьекту этого класса что он должен показать результат работы указанной программы, вот в этом месте(например справа, 400х500 пикселей)

Viewer можно легко запустить из Ява, но он запускается отдельной аппликацией и выпрыгивает как Pop-up, это не удобно, пользователь должен моч быстро листать продукты...




Автор: Sardar 29.7.2005, 18:01
Цитата(Nin @ 29.7.2005, 15:33)
а вся аппликация которая бы занимала определенное пространство на экране.
Это аппликация показывает не Image, а чертеж, и имеет такие фунkции как ZoomIn, ZoomOut... etc.

Тогда скорее всего придёться ставить крест smile

Цитата(Nin @ 29.7.2005, 15:33)
В любом случае о платfормо независимости уже говорить не приходится, а ведь какая идея то была

Используя ActiveX(COM) ни о какой кроссплатформенности говорить не приходиться, только под винду.
Вообще мало смысла использовать Java, проще написать на дельфях.

Цитата(LSD @ 29.7.2005, 14:59)
Вот это полет мысли smile
Мы до такого не додумались, хотя нам именно картинка и была нужна.

Ну дык когда оно ребром и не такое в голову лезет smile

Автор: Nin 30.7.2005, 12:05
Цитата
Используя ActiveX(COM) ни о какой кроссплатформенности говорить не приходиться, только под винду.
Вообще мало смысла использовать Java, проще написать на дельфях.


Идея в том что скоро будет бесплатный viewer на Java, сеичас используем этот компоннент, а потом его можно заменить, для платформо независимости...

Хотя в принципе можно переписать и на Делфи... проблема в том что сроки гарят, и большая часть кода уже написана на Java


Автор: Nin 30.7.2005, 17:32
Народ смотрите сюда!!!!
http://www.ezjcom.com/google.html

Короче всё работает, всё открывается через Internet Explorer.
На компе устанавливается любая известная программа с помощю которой можно просматривать чертежи.
И указывается в регистре что files с таким то раширением должны открыватся через Internet Explorer.

Причем убиваем сразу 2 заицев, так как теперь сам каталог не обязан следить за тем что и чем открывать..
А просто передавать IЕxplorer что вот этот фаил надо открыть, а он заботится уже о том чем его открыть...

Вот так это будет примерно в законченной апплицации выглядеть:


http://nin.herejezus.nl/Projects/Viewers.JPG

Автор: Sardar 30.7.2005, 20:16
А стоит приблуда не мало... smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)