package ch.elexis.core.mail.ui.dialogs;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.fieldassist.ContentProposal;
import org.eclipse.jface.fieldassist.IContentProposal;
import org.eclipse.jface.fieldassist.IContentProposalProvider;
import ch.elexis.data.Kontakt;
import ch.elexis.data.Query;
public class MailAddressContentProposalProvider implements IContentProposalProvider {
@Override
public IContentProposal[] getProposals(String contents, int position){
List<IContentProposal> ret = new ArrayList<IContentProposal>();
if (contents != null && !contents.isEmpty()) {
String addressString = getContentAddress(contents);
if (!addressString.isEmpty()) {
Query<Kontakt> query = new Query<Kontakt>(Kontakt.class);
query.add(Kontakt.FLD_E_MAIL, Query.LIKE, addressString + "%");
List<Kontakt> contacts = query.execute();
for (Kontakt contact : contacts) {
String mailAddress = contact.getMailAddress();
ret.add(new ContentProposal(mailAddress));
}
}
}
return ret.toArray(new IContentProposal[ret.size()]);
}
private String getContentAddress(String contents){
int index = getLastAddressIndex(contents);
if (index == 0) {
return contents;
} else {
return contents.substring(index + 1).trim();
}
}
public static int getLastAddressIndex(String contents){
int index = contents.lastIndexOf(",");
if (index == -1) {
return 0;
}
return index;
}
}