Adds net.java.sip.communicator.plugin.addrbook.OUTLOOK_ADDR_BOOK_SEARCH_FIELD_DISABLED and net.java.sip.communicator.plugin.addrbook.MACOSX_ADDR_BOOK_SEARCH_FIELD_DISABLED properties to disable respectively MsOutlook and/or MacOsX contact source services to provide results when using the search field.

cusax-fix
Vincent Lucas 13 years ago
parent f3f30e9094
commit 1196b57431

@ -1642,14 +1642,20 @@ private void initContactSources()
for (ContactSourceService contactSource
: GuiActivator.getContactSources())
{
ExternalContactSource extContactSource
= new ExternalContactSource(contactSource, this);
if(!(contactSource instanceof AsyncContactSourceService)
|| ((AsyncContactSourceService) contactSource)
.canBeUsedToSearchContacts())
{
ExternalContactSource extContactSource
= new ExternalContactSource(contactSource, this);
int sourceIndex = contactSource.getIndex();
if (sourceIndex >= 0 && contactSources.size() >= sourceIndex)
contactSources.add(sourceIndex, extContactSource);
else
contactSources.add(extContactSource);
}
int sourceIndex = contactSource.getIndex();
if (sourceIndex >= 0 && contactSources.size() >= sourceIndex)
contactSources.add(sourceIndex, extContactSource);
else
contactSources.add(extContactSource);
}
GuiActivator.bundleContext.addServiceListener(
new ContactSourceServiceListener());
@ -1671,7 +1677,12 @@ public Collection<UIContactSource> getContactSources()
*/
public void addContactSource(ContactSourceService contactSource)
{
contactSources.add(new ExternalContactSource(contactSource, this));
if(!(contactSource instanceof AsyncContactSourceService)
|| ((AsyncContactSourceService) contactSource)
.canBeUsedToSearchContacts())
{
contactSources.add(new ExternalContactSource(contactSource, this));
}
}
/**
@ -2071,11 +2082,17 @@ public void serviceChanged(ServiceEvent event)
switch (event.getType())
{
case ServiceEvent.REGISTERED:
ExternalContactSource contactSource
= new ExternalContactSource(
(ContactSourceService) service, TreeContactList.this);
contactSources.add(contactSource);
changed = true;
if(!(service instanceof AsyncContactSourceService)
|| ((AsyncContactSourceService) service)
.canBeUsedToSearchContacts())
{
ExternalContactSource contactSource
= new ExternalContactSource(
(ContactSourceService) service,
TreeContactList.this);
contactSources.add(contactSource);
changed = true;
}
break;
case ServiceEvent.UNREGISTERING:
UIContactSource cSource

@ -26,6 +26,17 @@ public class MacOSXAddrBookContactSourceService
public static final String MACOSX_ADDR_BOOK_PREFIX
= "net.java.sip.communicator.plugin.addrbook.MACOSX_ADDR_BOOK_PREFIX";
/**
* Boolean property that defines whether using this contact source service
* as result for the search field is authorized. This is useful when an
* external plugin looks for result of this contact source service, but want
* to display the search field result from its own (avoid duplicate
* results).
*/
public static final String PNAME_MACOSX_ADDR_BOOK_SEARCH_FIELD_DISABLED =
"net.java.sip.communicator.plugin.addrbook.MACOSX_ADDR_BOOK_SEARCH_FIELD_DISABLED";
static
{
System.loadLibrary("jmacosxaddrbook");
@ -252,4 +263,19 @@ public void deleteContact(String id)
}
}
}
/**
* Defines whether using this contact source service can be used as result
* for the search field. This is useful when an external plugin looks for
* result of this contact source service, but want to display the search
* field result from its own (avoid duplicate results).
*
* @return True if this contact source service can be used to perform search
* for contacts. False otherwise.
*/
public boolean canBeUsedToSearchContacts()
{
return !AddrBookActivator.getConfigService().getBoolean(
PNAME_MACOSX_ADDR_BOOK_SEARCH_FIELD_DISABLED, false);
}
}

@ -37,6 +37,16 @@ public class MsOutlookAddrBookContactSourceService
public static final String OUTLOOK_ADDR_BOOK_PREFIX
= "net.java.sip.communicator.plugin.addrbook.OUTLOOK_ADDR_BOOK_PREFIX";
/**
* Boolean property that defines whether using this contact source service
* as result for the search field is authorized. This is useful when an
* external plugin looks for result of this contact source service, but want
* to display the search field result from its own (avoid duplicate
* results).
*/
public static final String PNAME_OUTLOOK_ADDR_BOOK_SEARCH_FIELD_DISABLED =
"net.java.sip.communicator.plugin.addrbook.OUTLOOK_ADDR_BOOK_SEARCH_FIELD_DISABLED";
private static final long MAPI_INIT_VERSION = 0;
private static final long MAPI_MULTITHREAD_NOTIFICATIONS = 0x00000001;
@ -262,4 +272,19 @@ public void deleteContact(String id)
}
}
}
/**
* Defines whether using this contact source service can be used as result
* for the search field. This is useful when an external plugin looks for
* result of this contact source service, but want to display the search
* field result from its own (avoid duplicate results).
*
* @return True if this contact source service can be used to perform search
* for contacts. False otherwise.
*/
public boolean canBeUsedToSearchContacts()
{
return !AddrBookActivator.getConfigService().getBoolean(
PNAME_OUTLOOK_ADDR_BOOK_SEARCH_FIELD_DISABLED, false);
}
}

@ -58,4 +58,16 @@ public ContactQuery queryContactSource(String query, int contactCount)
* Stops this <tt>ContactSourceService</tt>.
*/
public abstract void stop();
/**
* Defines whether using this contact source service (Outlook or MacOSX
* Contacs) can be used as result for the search field. This is
* useful when an external plugin looks for result of this contact source
* service, but want to display the search field result from its own (avoid
* duplicate results).
*
* @return True if this contact source service can be used to perform search
* for contacts. False otherwise.
*/
public abstract boolean canBeUsedToSearchContacts();
}

Loading…
Cancel
Save