Я разрабатываю «макрос» для OpenOffice Calc. В качестве языка я выбрал Java, чтобы получить помощь по коду в Eclipse. Я даже написал небольшой скрипт сборки ant
, который компилирует и встраивает «макрос» в файл *.ods
. В целом это работает отлично и на удивление быстро; Я уже довольно успешно использую некоторые простые вещи.
НО
Так часто я застреваю, потому что с UNO
мне нужно «запросить» интерфейс для любого заданного нетривиального объекта, чтобы иметь доступ к данным/методам вызова этого объекта. То есть мне буквально нужно угадать, какие интерфейсы может предоставить данный объект. Это совсем не очевидно и даже не заметно во время Java-разработки (посредством какой-то метаинформации, отражения и т.п.), а также скудно документировано (я скачал кучу материала, но не знаю). не могу найти исходный код или, может быть, JavaDoc для интерфейсов, которые я использую, таких как XButton
, XPropertySet
и т. д. - XButton
есть setLabel
, но нет getLabel
- что??).
Есть онлайн-документация (по самым фундаментальным понятиям, что совсем неплохо!), но в ней не хватает многих деталей, с которыми я сталкивался. Он всегда волшебным образом останавливается именно в той точке, которую мне нужно решить.
Я хочу посмотреть на код C++
, чтобы понять, какие интерфейсы может предоставить объект (например, кнопка/событие, с которым я сейчас застрял). Как ни странно, имена классов и файлов C++
не совсем соответствуют интерфейсам Java. Это почти то, что я ищу, но тогда в Java я действительно не нахожу эквивалента, или вызов queryInterface
для данного объекта возвращает null
. Это становится немного расстраивает.
Как создаются интерфейсы UNO Java? Есть ли какая-то документация в коде, который служит источником для сгенерированного (Java) кода?
Я думаю, что мне действительно нужно знать, какие интерфейсы доступны в какой момент времени, чтобы стать немного более беглым во время разработки Java-UNO-macro.