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

📄 pim_list.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 5 页
字号:
 * DESCRIPTION
 * PARAMETERS
 *  categoryname        [?]
 * RETURNS
 *****************************************************************************/
kal_int32 pim_getIndexOfCategory(kal_int32 dbhandle, kal_char *categoryname)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 result, i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_PIM_GETINDEXOFCATEGORY, -1000);

    if (categoryname == NULL)
    {
        return 0;
    }

    if ((result = pim_getCategories(dbhandle)) != SUCCESS)
    {
        return 0;
    }

    for (i = 0; i < nCategory; i++)
    {
        if (app_ucs2_strcmp((kal_int8*)categories[i].group_name, (kal_int8*)categoryname) == 0)
        {
            JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_PIM_GETINDEXOFCATEGORY, i+1);
            return i+1;
        }
    }
    JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_PIM_GETINDEXOFCATEGORY, 0);
    return 0;
}


/*****************************************************************************
 * FUNCTION
 *  setCategoryByIndex
 * DESCRIPTION
 * PARAMETERS
 *  categoryname        [?]
 *  newname             [?]
 * RETURNS
 *****************************************************************************/
kal_int32 pim_renameCategory(kal_int32 dbhandle, kal_char *categoryname, kal_char *newname)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 result, index;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIM_RENAMECATEGORY);

    if (categoryname == NULL || newname == NULL)
    {
        return NULLP;
    }

    if ((result = pim_getCategories(dbhandle)) != SUCCESS)
    {
        return result;
    }
    index = pim_getIndexOfCategory(dbhandle, categoryname);

    if (index <= 0)
    {
        return PIM;
    }

    app_ucs2_strncpy((kal_int8*)categories[index].group_name, (kal_int8*)newname, MAX_PB_NAME_LENGTH);
    result = pim_tsfErrCode(CONTACT_LIST, setGroupInfo(categories[index].group_id , &categories[index]));
    if (result != SUCCESS)
    {
        return result;
    }

    /* let Category refresh next time */
    nCategory = ctdbh = -1;

    return SUCCESS;
}


/*****************************************************************************
 * FUNCTION
 *  getIndexOfCategory
 * DESCRIPTION
 * PARAMETERS
 *  categoryname        [?]
 * RETURNS
 *****************************************************************************/
kal_wchar* pim_getCategoryByIndex(kal_int32 dbhandle, kal_int32 index)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 result;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

    JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIM_GETCATEGORYBYINDEX);

    if ((result = pim_getCategories(dbhandle)) != SUCCESS)
    {
        return NULL;
    }

    if(index <= 0 || index > nCategory)
    {
        return NULL;
    }

    return (kal_wchar*)categories[index-1].group_name;
}

/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_PIMListImpl_addCategoryN
 * DESCRIPTION
 *  private native void addCategoryN(int listType, int handle, String name) throws PIMException;
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_VOID
Java_com_ibm_oti_pim_PIMListImpl_addCategoryN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    PIM_THROW(PIM, "Can not add new category", FEATURE_NOT_SUPPORTED);
    KNI_ReturnVoid();
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_PIMListImpl_closePIMListN
 * DESCRIPTION
 *  private native void closePIMListN(int listType, int handle) throws PIMException;
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_VOID
Java_com_ibm_oti_pim_PIMListImpl_closePIMListN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
//    kal_int32 listtype = KNI_GetParameterAsInt(1);
//    kal_int32 dbhandle = KNI_GetParameterAsInt(2);

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIMLISTIMPL_CLOSEPIMLISTN);

    // TODO:

    KNI_ReturnVoid();

}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_PIMListImpl_deleteCategoryN
 * DESCRIPTION
 *  private native void deleteCategoryN(int listType, int handle, String name, boolean deleteUnassignedItems) throws PIMException;
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_VOID
Java_com_ibm_oti_pim_PIMListImpl_deleteCategoryN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    PIM_THROW(PIM, "Can not delete category", FEATURE_NOT_SUPPORTED);
    KNI_ReturnVoid();
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_PIMListImpl_extendedStringArraySizeN
 * DESCRIPTION
 *  private static native int extendedStringArraySizeN(int listType, int field);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMListImpl_extendedStringArraySizeN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    KNI_ReturnInt(0);
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_PIMListImpl_getAllSupportedAttributesN2
 * DESCRIPTION
 *  private native int getAllSupportedAttributesN2(int listType, int handle,int[] ret);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMListImpl_getAllSupportedAttributesN2(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 listtype = KNI_GetParameterAsInt(1);
    kal_int32 dbhandle = KNI_GetParameterAsInt(2);
    kal_int32 getsize;
    kal_int32 result = 0;
    kal_int32 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

    KNI_StartHandles(1);
    KNI_DeclareHandle(int_array);
    KNI_GetParameterAsObject(3, int_array);
    getsize = KNI_IsNullHandle(int_array);
    KNI_EndHandles();

    JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_PIMLISTIMPL_GETALLSUPPORTEDATTRIBUTESN2, getsize);

    CHECK_ATTR_RELOAD(listtype, dbhandle, KNI_ReturnInt(0));

    if (getsize)
    {
        switch (listtype)
        {
            case CONTACT_LIST:
                result = NUM_CONTACT_ATTR_FIELDS;
                break;
            case EVENT_LIST:
                result = 0;
                break;
            case TODO_LIST:
                PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
                break;
            default:
                PIM_THROW(ILLARG, "", GENERAL_ERROR);
        }
        JPIM_DEBUG_1(TRACE_FUNC, JPIM_LOG_INTEGER , result );
        KNI_ReturnInt(result);
    }

    switch (listtype)
    {
        case CONTACT_LIST:
            KNI_StartHandles(1);
            KNI_DeclareHandle(int_array);
            KNI_GetParameterAsObject(3, int_array);
            for( i = NUM_CONTACT_ATTR_FIELDS - 1 ;i >= 0; i--)
            {
                JPIM_DEBUG_1(TRACE_FUNC, JPIM_LOG_INTEGER , contactAttrs[i] );
                KNI_SetIntArrayElement(int_array, i, contactAttrs[i]);
            }
            KNI_EndHandles();
            break;

        case EVENT_LIST:
            break;
        case TODO_LIST:
            PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
            break;
        default:
            PIM_THROW(ILLARG, "", GENERAL_ERROR);
    }

    KNI_ReturnInt(0);
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_PIMListImpl_getArrayElementLabelN
 * DESCRIPTION
 *  private native String getArrayElementLabelN(int listType, int handle, int field, int arrayElement);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_OBJECT
Java_com_ibm_oti_pim_PIMListImpl_getArrayElementLabelN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 listtype = KNI_GetParameterAsInt(1);
    kal_int32 dbhandle = KNI_GetParameterAsInt(2);
    kal_int32 field = KNI_GetParameterAsInt(3);
    kal_int32 arrayElement = KNI_GetParameterAsInt(4);
    kal_wchar *label = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

    CHECK_FIELD_SUPPORT(listtype, dbhandle, field,
        {
            KNI_StartHandles(1);
            KNI_DeclareHandle(string);
            KNI_ReleaseHandle(string);
            KNI_EndHandlesAndReturnObject(string);
        });

    switch (listtype)
    {
        case CONTACT_LIST:
            /* dangerous here, do not transfer field to JPIM field macro */
            label = jpim_phb_getFieldEleLabel(field, arrayElement);
            break;

        case EVENT_LIST:
            break;

        case TODO_LIST:
            break;
        default:
            break;
    }

    KNI_StartHandles(1);
    KNI_DeclareHandle(string);
    if( label )
    {
        KNI_NewString((const jchar*)label, app_ucs2_strlen((kal_int8*)label), string);
    }
    else
    {
        KNI_ReleaseHandle(string);
    }
    KNI_EndHandlesAndReturnObject(string);
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_PIMListImpl_getAttributeLabelN
 * DESCRIPTION
 *  private native String getAttributeLabelN(int listType, int handle, int attribute);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_OBJECT
Java_com_ibm_oti_pim_PIMListImpl_getAttributeLabelN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 listtype = KNI_GetParameterAsInt(1);
//    kal_int32 dbhandle = KNI_GetParameterAsInt(2);
    kal_int32 attribute = KNI_GetParameterAsInt(3);
    kal_wchar *label = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */

⌨️ 快捷键说明

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