Christopher,

thanks for the help! I will try to add this extension point today, and
make an example plugin for it - I think that will be a perfect
exercise to make sure I understand how this stuff works.

-- 
Morten


On 13/11/2007, Christopher Oezbek <[EMAIL PROTECTED]> wrote:
> Hi,
>    yes that would be a perfect candidate for an extension-point.
>
> To add this as a new extension-point, you need to declare this
> extension-point in the plugin.xml of the core plugin:
>
>         <extension-point id="PushToApplication">
>                 <parameter-def type="string" id="pushToApp"
>                         custom-data="<classname of the interface that plugin 
> providers need to
> implement>" />
>                 <!-- optionally other parameters (we currently do not use any 
> of these
> for anything)
>                         <parameter-def type="string" id="name" />
>                         <parameter-def type="string" id="description"
>                                 multiplicity="none-or-one" />
>                  -->
>         </extension-point>
>
> Then you need to re-run the plugin code generator "ant generate", which
> will re-create the helper class in "net.sf.jabref.plugin.core.generated"
> so that it includes a method
>
> getPushToApplicationExtensions() which returns a list of all PushToTalk
> extensions registered with the system.
>
> This list then can be used like this (here an example what we do with the
> entry fetcher extensions):
>
> /*
>   * Load fetchers that are plug-in extensions
>   */
> JabRefPlugin jabrefPlugin =
> JabRefPlugin.getInstance(PluginCore.getManager());
> if (jabrefPlugin != null){
>         for (EntryFetcherExtension ext :
> jabrefPlugin.getEntryFetcherExtensions()){
>                 EntryFetcher fetcher = ext.getEntryFetcher();
>                 if (fetcher != null){
>                         fetchers.add(fetcher);
>                 }
>         }
> }
>
> // and later...
>
> for (EntryFetcher fetcher : fetchers){
>    GeneralFetcher generalFetcher = new GeneralFetcher(sidePaneManager,
> this, fetcher);
>    web.add(generalFetcher.getAction());
>    fetcherActions.add(generalFetcher.getAction());
> }
>
> Hope this helps,
>    Christopher
>
> On Tue, 13 Nov 2007 09:33:45 +0100, Morten Omholt Alver
> <[EMAIL PROTECTED]> wrote:
>
> > Hi,
> >
> > it's occured to me that the net.sf.jabref.external.PushToApplication
> > interface would be a good candidate for a plugin extension point. This
> > interface defines the operation of sending a citation to an external
> > application, and we already have implementations for Gnuserv/Emacs,
> > Vim, WinEdt, Lyx/Kile and LatexEditor. It's probably fairly simple to
> > develop implementations for other apps as well, so this could be a
> > very useful way to use the plugin framework.
> >
> > I'm not sure if the interface needs any modifications - probably the
> > pushEntries() method should have additional references to the
> > BibtexDatabase and MetaData to ensure that all necessary information
> > is available.
> >
> >
>
>
>

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Jabref-devel mailing list
Jabref-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jabref-devel

Reply via email to