cancel
Showing results for 
Search instead for 
Did you mean: 

Mime-types icons in java code

Former Member
0 Kudos

Hi all,

I use a custom developed iView for viewing a list of KM documents.

I now need to add an icon next to each document according to its mime-type.

I want to use the table in System Administration -> System Configuration -> Knowledge Management -> Content Management -> Utilities -> Icons.

Since I couldn't find a way to access it, I "copied" it to my code:

private String getIconPath(IResource r){
	String filename = "unknown.gif";
	try{
		String mimeType = r.getContent().getContentType();
		if (mimeType.equalsIgnoreCase("application/msword")){
			filename = "document.gif";
		}
		else if (mimeType.equalsIgnoreCase("application/pdf")){
			filename = "pdf.gif";
		}
		else if (mimeType.equalsIgnoreCase("application/vnd.ms-excel")){
			filename = "spreadsheet.gif";
		}
		else if (mimeType.equalsIgnoreCase("application/vnd.ms-powerpoint")){
			filename = "presentation.gif";
		}
		else if (mimeType.equalsIgnoreCase("application/vnd.visio")){
			filename = "vectorgraphics.gif";
		}
		else if (mimeType.equalsIgnoreCase("application/vnd.wcm-folder")){
			filename = "standard_folder.gif";
		}
		else if (mimeType.equalsIgnoreCase("application/vnd.wcm-weblink")){
			filename = "html_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("audio/basic")){
			filename = "audio.gif";
		}
		else if (mimeType.equalsIgnoreCase("audio/midi")){
			filename = "audio.gif";
		}
		else if (mimeType.equalsIgnoreCase("audio/mpeg")){
			filename = "audio.gif";
		}
		else if (mimeType.equalsIgnoreCase("audio/x_mpeg")){
			filename = "audio.gif";
		}
		else if (mimeType.equalsIgnoreCase("image/")){
			filename = "image.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.application/msword")){
			filename = "document_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.application/octet-stream")){
			filename = "unknown_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.application/pdf")){
			filename = "pdf_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.application/vnd.ms-excel")){
			filename = "spreadsheet_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.application/vnd.ms-powerpoint")){
			filename = "presentation_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.application/vnd.visio")){
					filename = "vectorgraphics_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.application/vnd.wcm-folder")){
			filename = "standard_folder_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.audio/basic")){
			filename = "audio_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.audio/midi")){
			filename = "audio_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.audio/mpeg")){
			filename = "audio_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.audio/x_mpeg")){
			filename = "audio_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.default")){
			filename = "unknown_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.image/")){
			filename = "image_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.text/html")){
			filename = "html_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.text/plain")){
			filename = "plaintext_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.text/xml")){
			filename = "xml_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("link.video/vdo")){
			filename = "video_link.gif";
		}
		else if (mimeType.equalsIgnoreCase("sap-crt/state-error")){
			filename = "s_s_ledr.gif";
		}
		else if (mimeType.equalsIgnoreCase("sap-crt/state-not-init")){
			filename = "s_s_ledi.gif";
		}
		else if (mimeType.equalsIgnoreCase("sap-crt/state-ok")){
			filename = "s_s_ledg.gif";
		}
		else if (mimeType.equalsIgnoreCase("sap-crt/state-warn")){
			filename = "s_s_ledy.gif";
		}
		else if (mimeType.equalsIgnoreCase("text/html")){
			filename = "html.gif";
		}
		else if (mimeType.equalsIgnoreCase("text/plain")){
			filename = "plaintext.gif";
		}
		else if (mimeType.equalsIgnoreCase("text/xml")){
			filename = "xml.gif";
		}
		else if (mimeType.equalsIgnoreCase("video/vdo")){
			filename = "video.gif";
		}
	} catch (Exception e){
		e.printStackTrace();
	}

	try {
		IURLGeneratorService urlgen = (IURLGeneratorService)ResourceFactory.getInstance().getServiceFactory().getService(IServiceTypesConst.URLGENERATOR_SERVICE);					
		return urlgen.getImageUri(filename).toString();
	} catch (Exception e) {
		e.printStackTrace();
		return "";
	} 
}

Is there a way to access that table and avoid this (ugly) duplication?

Thanks ahead,

Yoav.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

try using the mimeHandler service for getting the SRC of image for a resource in KM:


IMimeHandlerService mh = (IMimeHandlerService) 
  ResourceFactory.
  getInstance().
  getServiceFactory().
  getService("MimeHandlerService");

String imagePath = mh.get(res).getImagePath();

where 'res' is IResource object of the resource in KM.

Hope this helps.

Romano

Former Member
0 Kudos

Thanks Romano!

Answers (0)