on 08-28-2005 2:24 PM
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.