Hello Reinis,
@Reinis: I CCed you, but send the answer to
dev@.... It would be
better to ask directly there, because you can get feedback from other people
and ask directly OOo core developers. If you are not subscribed yet, please
send a mail to
dev-subscribe@... and follow the instructions on
the mail you'll get back.
@people on dev@api: this comes from
http://www.openoffice.org/servlets/BrowseList?list=dev&by=thread&from=2263410On Friday 09 October 2009, 10:41, My Th wrote:
> Hi!
>
> I'm working on JChemPaint plug-in for OO.o (oochemistry)
I guess you're talking about
http://sourceforge.net/projects/oochemistry/> using Jmol plug-in example as reference.
@people on dev@api: he's referring to
http://arielch.fedorapeople.org/devel/JmolEmbeddedObject.oxtsources:
http://arielch.fedorapeople.org/devel/JmolEmbeddedObject.tar.gz> I have managed to make a NetBeans project
> to compile and install into OpenOffice, but it still doesn't do
> anything.
by "anything" you mean...? could you at least instantiate the factory?
> I created a menu command, but when I click on it I get error:
>
> This operation is not supported on this operating system.
If I understood you clearly, you can not insert your embedded object in an OOo
document, so you can not test if it works (so your "it does not do anything"
above).
The simplest way of inserting an embedded object is from the menu Insert >
Object > OLE Object
This will open a dialog like the one you can see here:
http://arielch.fedorapeople.org/images/jmol_ole.pngFor your embedded object to appear on the list, you need a configuration file,
in the sample on JmolEmbeddedObject/registry/org/openoffice/Office/Embedding.xcu
You have to set the ObjectUIName , which can be localized (on the sample "Jmol
3-D chemical structure") [and it may be needed that your factory works; don't
know how this is implemented internally, but in other cases I've seen OOo
instantiating the factories before filling a list with available features]
You may have noticed that you need a UUID as CLSID for your embedded object
(you need it both in the Embedding.xcu and the sources). On Linux it's easy to
create them
~]$ uuid -v4 -m -n 6 -1
will give you six different UUIDs.
You can also try to insert your embedded object using OOo API. See the code on
the OOo Basic library inside the Jmol sample
(EmbedObjectFactory/EmbedObjectFactoryTest.xba), you can find it among the office
libraries if you install the sample OXT.
If you want your own menu entry under Insert > Object, (like OOo Math has its
own under Insert > Object > Formula), you'll need a ProtocolHandler; and
you'll need a little more work (as you have to insert the object, you need to
take care of the document type [OLE objects are inserted in a different way on
the different OOo applications], the current selection, etc.; and once inserted
you have to call a doVerb() on the object to open the UI).
> I have built Jmol plug-in from the code you provided in mailing list, so
> my build setup should be ok.
take care of the settings in Embedding.xcu, they must match the ones you use
in the source code, otherwise your factory can not be instantiated.
> I'm using NetBeans 6.5 with OpenOffice.org
> API plug-in 2.0.4 and OpenOffice 3.1.1.
>
> I actually have several questions:
> - How does Jmol example plug-in creates embedded object? I see it is
> provided in example document, but is it created manually?
this may be clear from the answers above.
> - It looks that my menu command doesn't get to the plug-in code at all,
> which part is the entrance point into the plug-ins logic?
the class implementing com.sun.star.embed.XEmbedObjectFactory.
You will have to study this by debugging.
Take the Jmol sample NB project, and set breakpoints in every method
(specially JmolEmbeddedObjectFactory.createInstanceUserInit() )
Select the NB menu to debug the extension in the target office [this is IMHO the
best practice, because it creates a new user directory inside the NB project,
that is deleted when you clean the project], then insert a new embedded object
via Insert > Object > OLE Object > "Jmol 3-D chemical structure", and start
debugging.
> - Which files usually are put under revision control? Should I include
> NetBeans project files?
this is up to you. The best may be to arrange everything so that the sources
are independent from the IDE you choose. This way you can create a NB project,
a Maven project, an Eclipse project, etc.
Regards
--
Ariel Constenla-Haile
La Plata, Argentina
---------------------------------------------------------------------
To unsubscribe, e-mail:
dev-unsubscribe@...
For additional commands, e-mail:
dev-help@...