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