Search in sources :

Example 16 with ICaller

use of de.janrufmonitor.framework.ICaller in project janrufmonitor by tbrandt77.

the class ImagePreview method renderAsImageID.

public String renderAsImageID() {
    if (this.m_o != null) {
        if (this.m_o instanceof ICall) {
            this.m_o = ((ICall) this.m_o).getCaller();
        }
        if (this.m_o instanceof ICaller) {
            if (ImageHandler.getInstance().hasImage((ICaller) this.m_o)) {
                String path = ImageHandler.getInstance().getImagePath((ICaller) this.m_o);
                if (new File(path).exists())
                    return path;
                String newPath = PathResolver.getInstance().getTempDirectory() + File.separator + ((ICaller) this.m_o).getUUID() + ".jpg";
                try {
                    FileOutputStream fos = new FileOutputStream(newPath);
                    InputStream imgin = ImageHandler.getInstance().getImageStream((ICaller) this.m_o);
                    Stream.copy(imgin, fos, true);
                    return newPath;
                } catch (FileNotFoundException e) {
                } catch (IOException e) {
                }
            }
        }
    }
    return "";
}
Also used : ICaller(de.janrufmonitor.framework.ICaller) ICall(de.janrufmonitor.framework.ICall) InputStream(java.io.InputStream) FileOutputStream(java.io.FileOutputStream) FileNotFoundException(java.io.FileNotFoundException) IOException(java.io.IOException) File(java.io.File)

Example 17 with ICaller

use of de.janrufmonitor.framework.ICaller in project janrufmonitor by tbrandt77.

the class HistoryAction method run.

public void run() {
    Viewer v = this.m_app.getApplication().getViewer();
    if (v != null) {
        IStructuredSelection selection = (IStructuredSelection) v.getSelection();
        if (!selection.isEmpty()) {
            Object o = selection.getFirstElement();
            if (o instanceof ICall) {
                o = ((ICall) o).getCaller();
            }
            if (o instanceof ICaller) {
                History h = new History(((ICaller) o));
                h.open();
            }
        }
    }
}
Also used : ICaller(de.janrufmonitor.framework.ICaller) ICall(de.janrufmonitor.framework.ICall) Viewer(org.eclipse.jface.viewers.Viewer) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) History(de.janrufmonitor.ui.jface.application.history.History)

Example 18 with ICaller

use of de.janrufmonitor.framework.ICaller in project janrufmonitor by tbrandt77.

the class MacAddressBookProxy method getContactsByAreaCode.

@SuppressWarnings("unchecked")
public synchronized ICallerList getContactsByAreaCode(String countrycode, String areacode) throws MacAddressBookProxyException {
    this.m_total = 0;
    this.m_current = 0;
    final ICallerList callers = getRuntime().getCallerFactory().createCallerList();
    if (this.m_dbh != null) {
        try {
            List uuids = this.m_dbh.select(countrycode, areacode);
            if (uuids.size() > 0) {
                List contacts = getRecordsByUIDs(uuids);
                if (contacts.size() > 0) {
                    this.m_total = contacts.size();
                    ICaller businessCaller, privateCaller = null;
                    for (Object contact : contacts) {
                        if (contact instanceof Map<?, ?>) {
                            this.m_current++;
                            privateCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new PrivateMacAddressBookMapping());
                            businessCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new BusinessMacAddressBookMapping());
                            if (privateCaller == null && businessCaller != null && this.containsCountryAndAreaCode(businessCaller, countrycode, areacode)) {
                                callers.add(businessCaller);
                            }
                            if (privateCaller != null && businessCaller == null && this.containsCountryAndAreaCode(privateCaller, countrycode, areacode)) {
                                callers.add(privateCaller);
                            }
                            if (privateCaller != null && businessCaller != null) {
                                if (((IMultiPhoneCaller) businessCaller).getPhonenumbers().size() == 1) {
                                    // only one entry available
                                    IPhonenumber pn = (IPhonenumber) ((IMultiPhoneCaller) businessCaller).getPhonenumbers().get(0);
                                    IAttribute numbertype = businessCaller.getAttribute(IMacAddressBookNumberMapping.MAPPING_ATTTRIBUTE_ID + pn.getTelephoneNumber());
                                    if (numbertype != null && numbertype.getValue().equalsIgnoreCase(IMacAddressBookConst.MOBILE)) {
                                        this.m_logger.info("Bussiness caller will be dropped. Only mobile number available, but still in private contact: " + businessCaller);
                                        businessCaller = null;
                                    }
                                }
                                if (((IMultiPhoneCaller) privateCaller).getPhonenumbers().size() == 1 && businessCaller != null) {
                                    // only one entry available
                                    IPhonenumber pn = (IPhonenumber) ((IMultiPhoneCaller) privateCaller).getPhonenumbers().get(0);
                                    IAttribute numbertype = privateCaller.getAttribute(IMacAddressBookNumberMapping.MAPPING_ATTTRIBUTE_ID + pn.getTelephoneNumber());
                                    if (numbertype != null && numbertype.getValue().equalsIgnoreCase(IMacAddressBookConst.MOBILE)) {
                                        this.m_logger.info("Private caller will be dropped. Only mobile number available, but still in business contact: " + privateCaller);
                                        privateCaller = null;
                                    }
                                }
                                if (privateCaller != null && this.containsCountryAndAreaCode(privateCaller, countrycode, areacode)) {
                                    callers.add(privateCaller);
                                }
                                if (businessCaller != null && this.containsCountryAndAreaCode(businessCaller, countrycode, areacode)) {
                                    callers.add(businessCaller);
                                }
                            }
                        }
                    }
                }
            }
        } catch (SQLException e) {
            this.m_logger.log(Level.SEVERE, e.getMessage(), e);
        }
    }
    if (callers.size() > 0) {
        Thread updateDbhThread = new Thread() {

            public void run() {
                updateProxyDatabase(callers);
            }
        };
        updateDbhThread.setName("JAM-MacAddressBookSync-Thread-(deamon)");
        updateDbhThread.start();
    }
    return callers;
}
Also used : ICaller(de.janrufmonitor.framework.ICaller) ICallerList(de.janrufmonitor.framework.ICallerList) PrivateMacAddressBookMapping(de.janrufmonitor.repository.mapping.PrivateMacAddressBookMapping) SQLException(java.sql.SQLException) IAttribute(de.janrufmonitor.framework.IAttribute) ArrayList(java.util.ArrayList) ICallerList(de.janrufmonitor.framework.ICallerList) List(java.util.List) IMultiPhoneCaller(de.janrufmonitor.framework.IMultiPhoneCaller) BusinessMacAddressBookMapping(de.janrufmonitor.repository.mapping.BusinessMacAddressBookMapping) HashMap(java.util.HashMap) Map(java.util.Map) IPhonenumber(de.janrufmonitor.framework.IPhonenumber)

Example 19 with ICaller

use of de.janrufmonitor.framework.ICaller in project janrufmonitor by tbrandt77.

the class MacAddressBookProxy method preload.

public void preload() throws MacAddressBookProxyException {
    final ICallerList callers = getRuntime().getCallerFactory().createCallerList();
    List<Object> ac = this.getRawMacContacts();
    if (ac == null)
        return;
    ICaller businessCaller, privateCaller = null;
    for (Object contact : ac) {
        if (contact instanceof Map<?, ?>) {
            privateCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new PrivateMacAddressBookMapping());
            businessCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new BusinessMacAddressBookMapping());
            if (businessCaller != null) {
                callers.add(businessCaller);
            }
            if (privateCaller != null) {
                callers.add(privateCaller);
            }
        }
    }
    if (callers.size() > 0) {
        Thread updateDbhThread = new Thread() {

            public void run() {
                updateProxyDatabase(callers);
            }
        };
        updateDbhThread.setName("JAM-MacAddressBookSync-Thread-(deamon)");
        updateDbhThread.start();
    }
}
Also used : ICaller(de.janrufmonitor.framework.ICaller) ICallerList(de.janrufmonitor.framework.ICallerList) PrivateMacAddressBookMapping(de.janrufmonitor.repository.mapping.PrivateMacAddressBookMapping) BusinessMacAddressBookMapping(de.janrufmonitor.repository.mapping.BusinessMacAddressBookMapping) HashMap(java.util.HashMap) Map(java.util.Map)

Example 20 with ICaller

use of de.janrufmonitor.framework.ICaller in project janrufmonitor by tbrandt77.

the class MacAddressBookProxy method getContactsByCharAttribute.

@SuppressWarnings("unchecked")
public synchronized ICallerList getContactsByCharAttribute(IAttribute charAttribute) throws MacAddressBookProxyException {
    this.m_total = 0;
    this.m_current = 0;
    final ICallerList callers = getRuntime().getCallerFactory().createCallerList();
    if (this.m_dbh != null) {
        try {
            List uuids = this.m_dbh.select(charAttribute);
            if (uuids.size() > 0) {
                List contacts = getRecordsByUIDs(uuids);
                if (contacts.size() > 0) {
                    this.m_total = contacts.size();
                    ICaller businessCaller, privateCaller = null;
                    for (Object contact : contacts) {
                        if (contact instanceof Map<?, ?>) {
                            this.m_current++;
                            privateCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new PrivateMacAddressBookMapping());
                            businessCaller = MacAddressBookMappingManager.getInstance().mapToJamCaller((Map<?, ?>) contact, new BusinessMacAddressBookMapping());
                            if (privateCaller != null && businessCaller != null) {
                                // check if firstname, lastname or additional is filled or not
                                if (privateCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_FIRSTNAME) == null && privateCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_LASTNAME) == null && privateCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_ADDITIONAL) == null) {
                                    ((IMultiPhoneCaller) businessCaller).getPhonenumbers().addAll(((IMultiPhoneCaller) privateCaller).getPhonenumbers());
                                    privateCaller = null;
                                }
                                if (businessCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_FIRSTNAME) == null && businessCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_LASTNAME) == null && businessCaller.getAttribute(IJAMConst.ATTRIBUTE_NAME_ADDITIONAL) == null) {
                                    ((IMultiPhoneCaller) privateCaller).getPhonenumbers().addAll(((IMultiPhoneCaller) businessCaller).getPhonenumbers());
                                    businessCaller = null;
                                }
                            }
                            if (businessCaller != null) {
                                callers.add(businessCaller);
                            }
                            if (privateCaller != null) {
                                callers.add(privateCaller);
                            }
                        }
                    }
                }
            }
        } catch (SQLException e) {
            this.m_logger.log(Level.SEVERE, e.getMessage(), e);
        }
    }
    if (callers.size() > 0) {
        Thread updateDbhThread = new Thread() {

            public void run() {
                updateProxyDatabase(callers);
            }
        };
        updateDbhThread.setName("JAM-MacAddressBookSync-Thread-(deamon)");
        updateDbhThread.start();
    }
    return callers;
}
Also used : ICaller(de.janrufmonitor.framework.ICaller) ICallerList(de.janrufmonitor.framework.ICallerList) PrivateMacAddressBookMapping(de.janrufmonitor.repository.mapping.PrivateMacAddressBookMapping) SQLException(java.sql.SQLException) ArrayList(java.util.ArrayList) ICallerList(de.janrufmonitor.framework.ICallerList) List(java.util.List) BusinessMacAddressBookMapping(de.janrufmonitor.repository.mapping.BusinessMacAddressBookMapping) HashMap(java.util.HashMap) Map(java.util.Map)

Aggregations

ICaller (de.janrufmonitor.framework.ICaller)144 IPhonenumber (de.janrufmonitor.framework.IPhonenumber)62 ICallerList (de.janrufmonitor.framework.ICallerList)49 List (java.util.List)46 IAttribute (de.janrufmonitor.framework.IAttribute)42 ICall (de.janrufmonitor.framework.ICall)41 ArrayList (java.util.ArrayList)40 IAttributeMap (de.janrufmonitor.framework.IAttributeMap)32 SQLException (java.sql.SQLException)26 IMultiPhoneCaller (de.janrufmonitor.framework.IMultiPhoneCaller)25 IOException (java.io.IOException)25 Viewer (org.eclipse.jface.viewers.Viewer)24 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)22 File (java.io.File)20 Date (java.util.Date)17 Iterator (java.util.Iterator)17 Shell (org.eclipse.swt.widgets.Shell)17 IMsn (de.janrufmonitor.framework.IMsn)16 Properties (java.util.Properties)15 ICip (de.janrufmonitor.framework.ICip)14