⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contact.cpp

📁 funambol windows mobile plugin source code, the source code is taken from the funambol site
💻 CPP
📖 第 1 页 / 共 4 页
字号:
                    businessDetail->setAddress(*adr);

                    delete adr;
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("ROLE")))
                if(getProperty(i)->getValue()) {
                    vCardProperty *prop = getPropertyFromVProperty(getProperty(i));
                    if(!businessDetail)
                        businessDetail = new BusinessDetail();
                    businessDetail->setRole(*prop);

                    delete prop;
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("TITLE")))
                if(getProperty(i)->getValue()) {
                    titles[titlesIndex] = new WCHAR[MAX_VPROPERTY_VALUE + 1];
                    wcscpy(titles[titlesIndex], getProperty(i)->getValue());
                    titlesIndex++;
                }

            if(!wcscmp(getProperty(i)->getName(), TEXT("ORG")))
                if(getProperty(i)->getValue()) {
                    vCardProperty *prop = getPropertyFromVProperty(getProperty(i));
                    if(!businessDetail)
                        businessDetail = new BusinessDetail();
                    businessDetail->setCompany(*prop);

                    delete prop;
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("LOGO")))
                if(getProperty(i)->getValue()) {
                    vCardProperty *prop = getPropertyFromVProperty(getProperty(i));
                    if(!businessDetail)
                        businessDetail = new BusinessDetail();
                    businessDetail->setLogo(*prop);

                    delete prop;
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("TEL")))
                if(getProperty(i)->isType(TEXT("WORK"))) {
                    if(getProperty(i)->isType(TEXT("CELL"))) {
                        vCardProperty* prop = getPropertyFromVProperty(getProperty(i));
                        Phone* phone = new Phone();
                        phone->setPhoneNumber(*prop);
                        phone->setType(TEXT("MobileBusinessTelephoneNumber"));
                        if(!phones)
                            phones = new ArrayList();
                        phones->add((ArrayElement&) *phone);
                        delete phone;
                    }

                    if(getProperty(i)->isType(TEXT("VOICE"))) {
                        vCardProperty* prop = getPropertyFromVProperty(getProperty(i));
                        Phone* phone = new Phone();
                        phone->setPhoneNumber(*prop);
                        phone->setType(TEXT("BusinessTelephoneNumber"));
                        if(!phones)
                            phones = new ArrayList();
                        phones->add((ArrayElement&) *phone);
                        delete phone;
                    }

                    if(getProperty(i)->isType(TEXT("FAX"))) {
                        vCardProperty* prop = getPropertyFromVProperty(getProperty(i));
                        Phone* phone = new Phone();
                        phone->setPhoneNumber(*prop);
                        phone->setType(TEXT("BusinessFaxNumber"));
                        if(!phones)
                            phones = new ArrayList();
                        phones->add((ArrayElement&) *phone);
                        delete phone;
                    }
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("EMAIL")))
                if(getProperty(i)->containsParameter(TEXT("WORK")) && getProperty(i)->isType(TEXT("INTERNET"))) {
                    vCardProperty* prop = getPropertyFromVProperty(getProperty(i));
                    Email* email = new Email();
                    email->setEmailAddress(*prop);
                    email->setType(TEXT("Email3Address"));
                    if(!emails)
                        emails = new ArrayList();
                    emails->add((ArrayElement&) *email);
                    delete email;
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("URL")))
                if(getProperty(i)->containsParameter(TEXT("WORK"))) {
                    vCardProperty* prop = getPropertyFromVProperty(getProperty(i));
                    WebPage* url = new WebPage();
                    url->setWebPage(*prop);
                    url->setType(TEXT("BusinessWebPage"));
                    if(!webPages)
                        webPages = new ArrayList();
                    webPages->add((ArrayElement&) *url);
                    delete url;
                }
        }
       if(titlesIndex>0) {
            if(!businessDetail)
                businessDetail = new BusinessDetail();
            businessDetail->setTitles(titles, titlesIndex);
            delete *titles;
        }
        if(phones) {
            if(!contactDetail)
                contactDetail = new ContactDetail();
            contactDetail->setPhones(*phones);
            delete phones;
        }
        if(emails) {
            if(!contactDetail)
                contactDetail = new ContactDetail();
            contactDetail->setEmails(*emails);
            delete emails;
        }
        if(webPages) {
            if(!contactDetail)
                contactDetail = new ContactDetail();
            contactDetail->setWebPages(*webPages);
            delete webPages;
        }
        if(contactDetail) {
            if(!businessDetail)
                businessDetail = new BusinessDetail();
            businessDetail->setContactDetail(*contactDetail);
            delete contactDetail;
        }
    }
    return businessDetail;
}

void Contact::setBusinessDetail(BusinessDetail& d) {
    if (businessDetail) delete businessDetail;

    businessDetail = d.clone();

    for(int i = 0, m = propertiesCount(); i < m;i++) {
        if(!wcscmp(getProperty(i)->getName(), TEXT("ADR")) && getProperty(i)->isType(TEXT("WORK"))) {
            removeProperty(i);
            --i;
            --m;
        }
        if(!wcscmp(getProperty(i)->getName(), TEXT("LABEL")) && getProperty(i)->isType(TEXT("WORK"))) {
            removeProperty(i);
            --i;
            --m;
        }
        if(!wcscmp(getProperty(i)->getName(), TEXT("ROLE"))) {
            removeProperty(i);
            --i;
            --m;
        }
        if(!wcscmp(getProperty(i)->getName(), TEXT("TITLE"))) {
            removeProperty(i);
            --i;
            --m;
        }
        if(!wcscmp(getProperty(i)->getName(), TEXT("ORG"))) {
            removeProperty(i);
            --i;
            --m;
        }
        if(!wcscmp(getProperty(i)->getName(), TEXT("LOGO"))) {
            removeProperty(i);
            --i;
            --m;
        }
        if(!wcscmp(getProperty(i)->getName(), TEXT("TEL")) && getProperty(i)->isType(TEXT("WORK"))) {
                    removeProperty(i);
                    --i;
                    --m;
                }
        if(!wcscmp(getProperty(i)->getName(), TEXT("EMAIL")) && getProperty(i)->containsParameter(TEXT("WORK"))
            && getProperty(i)->isType(TEXT("INTERNET"))) {
                removeProperty(i);
                --i;
                --m;
            }
            if(!wcscmp(getProperty(i)->getName(), TEXT("URL")) && getProperty(i)->containsParameter(TEXT("WORK"))) {
                removeProperty(i);
                --i;
                --m;
            }
    }

    if(businessDetail) {
        if(businessDetail->getAddress()) {
            VProperty* vp = composeVAddress(businessDetail->getAddress());
            vp->addParameter(TEXT("TYPE"), TEXT("WORK"));
            insertProperty(vp);

            if(businessDetail->getAddress()->getLabel()) {
                VProperty* vp = getVPropertyFromProperty(TEXT("LABEL"),businessDetail->getAddress()->getLabel());
                vp->addParameter(TEXT("TYPE"), TEXT("WORK"));
                insertProperty(vp);
            }
        }
        if(businessDetail->getContactDetail()) {
            if(businessDetail->getContactDetail()->getEmails()) {
                ArrayList* emails = businessDetail->getContactDetail()->getEmails();
                for (int i=0; i<emails->size(); ++i) {
                    if(((Email*) emails->get(i))->getProperty()) {
                        VProperty* vp = getVPropertyFromProperty(TEXT("EMAIL"), ((Email*)emails->get(i))->getProperty());
                        vp->addParameter(TEXT("WORK"), NULL);
                        vp->addParameter(TEXT("TYPE"),TEXT("INTERNET"));
                        insertProperty(vp);
                    }
                }
            }
            if(businessDetail->getContactDetail()->getWebPages()) {
                ArrayList* webs = businessDetail->getContactDetail()->getWebPages();
                for (int i=0; i<webs->size(); ++i) {
                    if(((WebPage*) webs->get(i))->getProperty()) {
                        VProperty* vp = getVPropertyFromProperty(TEXT("URL"), ((WebPage*)webs->get(i))->getProperty());
                        vp->addParameter(TEXT("WORK"), NULL);
                        insertProperty(vp);
                    }
                }
            }
            if(businessDetail->getContactDetail()->getPhones()) {
                ArrayList* phones = businessDetail->getContactDetail()->getPhones();
                for (int i=0; i<phones->size(); ++i)
                    if(((Phone*) phones->get(i))->getProperty()) {
                        VProperty* vp = getVPropertyFromProperty(TEXT("TEL"), ((Phone*)phones->get(i))->getProperty());
                        if(!wcscmp(TEXT("MobileBusinessTelephoneNumber"),((Phone*)phones->get(i))->getType()))
                            vp->addParameter(TEXT("TYPE"),TEXT("WORK,CELL"));
                        if(!wcscmp(TEXT("BusinessTelephoneNumber"),((Phone*)phones->get(i))->getType()))
                            vp->addParameter(TEXT("TYPE"),TEXT("WORK,VOICE"));
                        if(!wcscmp(TEXT("BusinessFaxNumber"),((Phone*)phones->get(i))->getType()))
                            vp->addParameter(TEXT("TYPE"),TEXT("WORK,FAX"));
                        insertProperty(vp);
                    }
            }
        }
        if(businessDetail->getRole()) {
            VProperty* vp = getVPropertyFromProperty(TEXT("ROLE"), businessDetail->getRole());
            insertProperty(vp);
        }
        if(businessDetail->getLogo()) {
            VProperty* vp = getVPropertyFromProperty(TEXT("LOGO"), businessDetail->getLogo());
            insertProperty(vp);
        }
        if(businessDetail->getCompany()) {
            VProperty* vp = getVPropertyFromProperty(TEXT("ORG"), businessDetail->getCompany());
            insertProperty(vp);
        }

        if(businessDetail->getTitles()) {
            ArrayList* titles = businessDetail->getTitles();
            for (int i=0; i<titles->size(); ++i) {
                if(((Title*)titles->get(i))->getProperty()) {
                    VProperty* vp = getVPropertyFromProperty(TEXT("TITLE"), ((Title*)titles->get(i))->getProperty());
                    insertProperty(vp);
                }
            }
        }
    }
}

PersonalDetail* Contact::getPersonalDetail() {
    if(!personalDetail) {
        ArrayList* phones = new ArrayList();
        ArrayList* emails = new ArrayList();
        ArrayList* webPages = new ArrayList();
        ContactDetail* contactDetail = NULL;
        Address* adr = NULL;

        for(int i = 0; i<propertiesCount();i++) {
            if(!wcscmp(getProperty(i)->getName(), TEXT("ADR")) && getProperty(i)->isType(TEXT("HOME")))
                if(getProperty(i)->getValue()) {
                    adr = composeAddress(getProperty(i), HOME);
                    if(!personalDetail)
                        personalDetail = new PersonalDetail();
                    personalDetail->setAddress(*adr);
                    delete adr;
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("LABEL")) && getProperty(i)->isType(TEXT("HOME")))
                if(getProperty(i)->getValue()) {
                    adr = addLabelAddress(getProperty(i), HOME);
                    if(!personalDetail)
                        personalDetail = new PersonalDetail();
                    personalDetail->setAddress(*adr);
                    delete adr;
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("ADR")) && !getProperty(i)->isType(TEXT("HOME"))
                && !getProperty(i)->isType(TEXT("WORK")))
                if(getProperty(i)->getValue()) {
                    adr = composeAddress(getProperty(i), OTHER);
                    if(!personalDetail)
                        personalDetail = new PersonalDetail();
                    personalDetail->setOtherAddress(*adr);
                    delete adr;
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("LABEL")) && !getProperty(i)->isType(TEXT("HOME"))
                && !getProperty(i)->isType(TEXT("WORK")))
                if(getProperty(i)->getValue()) {
                    adr = addLabelAddress(getProperty(i), OTHER);
                    if(!personalDetail)
                        personalDetail = new PersonalDetail();
                    personalDetail->setOtherAddress(*adr);
                    delete adr;
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("PHOTO")))
                if(getProperty(i)->getValue()) {
                    vCardProperty* prop = getPropertyFromVProperty(getProperty(i));
                    if(!personalDetail)
                        personalDetail = new PersonalDetail();
                    personalDetail->setPhoto(*prop);
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("BDAY")) && getProperty(i)->getValue()) {
                if(!personalDetail)
                    personalDetail = new PersonalDetail();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -