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

📄 gnomevfswrapper.cpp

📁 JDesktop Integration Components (JDIC)
💻 CPP
字号:
/* * Copyright (C) 2004 Sun Microsystems, Inc. All rights reserved. Use is * subject to license terms. *  * This program is free software; you can redistribute it and/or modify * it under the terms of the Lesser GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. *  * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * General Public License for more details. *  * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. */  #include <jni.h>#include "GnomeVfsWrapper.h"#include <stdio.h>#include <stdlib.h>#include <libgnomevfs/gnome-vfs-init.h>#include <libgnomevfs/gnome-vfs-mime.h>#include <libgnomevfs/gnome-vfs-mime-handlers.h>#include <libgnomevfs/gnome-vfs-mime-info.h>  JNIEXPORT jstring JNICALL Java_org_jdesktop_jdic_filetypes_internal_GnomeVfsWrapper_gnome_1vfs_1get_1mime_1type  (JNIEnv *env, jclass cl, jstring url) {  gnome_vfs_init();  const char* urlStr = env->GetStringUTFChars(url, JNI_FALSE);  const char* mimeTypeStr = gnome_vfs_get_mime_type(urlStr);  env->ReleaseStringUTFChars(url, urlStr);  if(mimeTypeStr == NULL) {    return NULL;  } else {    jstring mimeType = env->NewStringUTF(mimeTypeStr);    return mimeType;  }}  JNIEXPORT jstring JNICALL Java_org_jdesktop_jdic_filetypes_internal_GnomeVfsWrapper_gnome_1vfs_1mime_1get_1value  (JNIEnv *env, jclass cl, jstring mimeType, jstring key) {  gnome_vfs_init();	    const char* mimeTypeStr = env->GetStringUTFChars(mimeType, JNI_FALSE);  const char* keyStr = env->GetStringUTFChars(key, JNI_FALSE);  const char* keyValueStr = gnome_vfs_mime_get_value(mimeTypeStr, keyStr);  env->ReleaseStringUTFChars(mimeType, mimeTypeStr);  env->ReleaseStringUTFChars(key, keyStr);    if(keyValueStr == NULL) {    return NULL;  } else {      jstring keyValue = env->NewStringUTF(keyValueStr);     return keyValue;  }   }  JNIEXPORT jstring JNICALL Java_org_jdesktop_jdic_filetypes_internal_GnomeVfsWrapper_gnome_1vfs_1mime_1get_1description  (JNIEnv *env, jclass cl, jstring mimeType) {  gnome_vfs_init();  const char* mimeTypeStr = env->GetStringUTFChars(mimeType, JNI_FALSE);  const char* descStr = gnome_vfs_mime_get_description(mimeTypeStr);  env->ReleaseStringUTFChars(mimeType, mimeTypeStr);  if(descStr == NULL) {    return NULL;  } else {    jstring desc = env->NewStringUTF(descStr);    return desc;  }}JNIEXPORT jstring JNICALL Java_org_jdesktop_jdic_filetypes_internal_GnomeVfsWrapper_gnome_1vfs_1mime_1get_1icon  (JNIEnv *env, jclass cl, jstring mimeType) {  gnome_vfs_init();  const char* mimeTypeStr = env->GetStringUTFChars(mimeType, JNI_FALSE);  const char* iconFileStr = gnome_vfs_mime_get_icon(mimeTypeStr);  env->ReleaseStringUTFChars(mimeType, mimeTypeStr);  if(iconFileStr == NULL) {    return NULL;  } else {    jstring iconFile = env->NewStringUTF(iconFileStr);    return iconFile;  }}	  JNIEXPORT jobjectArray JNICALL Java_org_jdesktop_jdic_filetypes_internal_GnomeVfsWrapper_gnome_1vfs_1mime_1get_1key_1list  (JNIEnv *env, jclass cl, jstring mimeType) {  gnome_vfs_init();  const char* mimeTypeStr = env->GetStringUTFChars(mimeType, JNI_FALSE);  GList* keyList = gnome_vfs_mime_get_key_list(mimeTypeStr);  env->ReleaseStringUTFChars(mimeType, mimeTypeStr);  int listLen;  if (keyList != NULL) {    listLen = g_list_length(keyList);  } else {    listLen = 0;  }    if(listLen == 0) {    return NULL;  } else {    jobjectArray retArray;    const char* keyStr;    retArray = (jobjectArray)env->NewObjectArray(listLen, env->FindClass("java/lang/String"),		    				 env->NewStringUTF(""));    for(int i = 0; i < listLen; i++) {      keyStr = (const char*)g_list_nth_data(keyList, i);      env->SetObjectArrayElement(retArray, i, env->NewStringUTF(keyStr));    }      return retArray;  }    }JNIEXPORT jstring JNICALL Java_org_jdesktop_jdic_filetypes_internal_GnomeVfsWrapper_gnome_1vfs_1mime_1get_1default_1application_1command  (JNIEnv *env, jclass cl, jstring mimeType) {  gnome_vfs_init();  const char* mimeTypeStr = env->GetStringUTFChars(mimeType, JNI_FALSE);  GnomeVFSMimeApplication *mimeApp = gnome_vfs_mime_get_default_application(mimeTypeStr);  env->ReleaseStringUTFChars(mimeType, mimeTypeStr);  if(mimeApp == NULL) {    return NULL;  } else {    const char* mimeAppCommandStr = mimeApp->command;    if(mimeAppCommandStr == NULL) {      return NULL;    } else {            jstring mimeAppCommand = env->NewStringUTF(mimeAppCommandStr);      return mimeAppCommand;    }  }}JNIEXPORT jobjectArray JNICALL Java_org_jdesktop_jdic_filetypes_internal_GnomeVfsWrapper_gnome_1vfs_1get_1registered_1mime_1types  (JNIEnv *env, jclass cl) {  gnome_vfs_init();  GList* mimeTypeList = gnome_vfs_get_registered_mime_types();  int listLen;  if (mimeTypeList != NULL) {    listLen = g_list_length(mimeTypeList);  } else {    listLen = 0;  }  if(listLen == 0) {    return NULL;  } else {    jobjectArray retArray;    const char* mimeTypeStr;    retArray = (jobjectArray)env->NewObjectArray(listLen, env->FindClass("java/lang/String"),			                                                   env->NewStringUTF(""));    for(int i = 0; i < listLen; i++) {      mimeTypeStr = (const char*)g_list_nth_data(mimeTypeList, i);      if(mimeTypeStr != NULL) {            env->SetObjectArrayElement(retArray, i, env->NewStringUTF(mimeTypeStr));      }    }   return retArray;  }}	 JNIEXPORT jobjectArray JNICALL Java_org_jdesktop_jdic_filetypes_internal_GnomeVfsWrapper_gnome_1vfs_1mime_1get_1extensions_1list    (JNIEnv *env, jclass cl, jstring mimeType) {  gnome_vfs_init();    const char* mimeTypeStr = env->GetStringUTFChars(mimeType, JNI_FALSE);  GList* extList = gnome_vfs_mime_get_extensions_list(mimeTypeStr);  env->ReleaseStringUTFChars(mimeType, mimeTypeStr);  int listLen;  if (extList != NULL) {    listLen = g_list_length(extList);  } else {    listLen = 0;  }  if(listLen == 0) {    return NULL;  } else {    jobjectArray retArray;    const char* extensionStr;    retArray = (jobjectArray)env->NewObjectArray(listLen, env->FindClass("java/lang/String"),			                                                 env->NewStringUTF(""));    for(int i = 0; i < listLen; i++) {      extensionStr = (const char*)g_list_nth_data(extList, i);      if(extensionStr != NULL) {        env->SetObjectArrayElement(retArray, i, env->NewStringUTF(extensionStr));      }    }   return retArray;  }  }	    JNIEXPORT jstring JNICALL Java_org_jdesktop_jdic_filetypes_internal_GnomeVfsWrapper_getenv    (JNIEnv *env, jclass cl, jstring envName) {  const char* envNameStr = env->GetStringUTFChars(envName, JNI_FALSE);  const char* envValueStr = getenv(envNameStr);  env->ReleaseStringUTFChars(envName, envNameStr);  return (envValueStr == NULL) ? 0 : env->NewStringUTF(envValueStr);}

⌨️ 快捷键说明

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