From c1c3c6a7a2f0a2893ef36ab3dfc7b09d04a133bc Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 26 Apr 2011 18:05:39 -0400
Subject: [PATCH] Commit header panel. File type icons. Docs page.

---
 src/com/gitblit/wicket/WicketUtils.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/src/com/gitblit/wicket/WicketUtils.java b/src/com/gitblit/wicket/WicketUtils.java
index fb8e296..bf2bcb9 100644
--- a/src/com/gitblit/wicket/WicketUtils.java
+++ b/src/com/gitblit/wicket/WicketUtils.java
@@ -3,6 +3,7 @@
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.List;
 import java.util.TimeZone;
 
 import org.apache.wicket.Component;
@@ -83,10 +84,55 @@
 		return label;
 	}
 
+	public static ContextImage getFileImage(String wicketId, String filename) {
+		filename = filename.toLowerCase();
+		if (filename.endsWith(".java")) {
+			return newImage(wicketId, "file_java_16x16.png");
+		} else if (filename.endsWith(".rb")) {
+			return newImage(wicketId, "file_ruby_16x16.png");
+		} else if (filename.endsWith(".php")) {
+			return newImage(wicketId, "file_php_16x16.png");
+		} else if (filename.endsWith(".cs")) {
+			return newImage(wicketId, "file_cs_16x16.png");
+		} else if (filename.endsWith(".cpp")) {
+			return newImage(wicketId, "file_cpp_16x16.png");
+		} else if (filename.endsWith(".c")) {
+			return newImage(wicketId, "file_c_16x16.png");
+		} else if (filename.endsWith(".h")) {
+			return newImage(wicketId, "file_h_16x16.png");
+		} else if (filename.endsWith(".sln")) {
+			return newImage(wicketId, "file_vs_16x16.png");
+		} else if (filename.endsWith(".csv") || filename.endsWith(".xls") || filename.endsWith(".xlsx")) {
+			return newImage(wicketId, "file_excel_16x16.png");
+		} else if (filename.endsWith(".doc") || filename.endsWith(".docx")) {
+			return newImage(wicketId, "file_word_16x16.png");
+		} else if (filename.endsWith(".ppt")) {
+			return newImage(wicketId, "file_ppt_16x16.png");
+		} else if (filename.endsWith(".zip")) {
+			return newImage(wicketId, "file_zip_16x16.png");
+		} else if (filename.endsWith(".pdf")) {
+			return newImage(wicketId, "file_acrobat_16x16.png");
+		} else if (filename.endsWith(".htm") || filename.endsWith(".html")) {
+			return newImage(wicketId, "file_world_16x16.png");
+		} else if (filename.endsWith(".xml")) {
+			return newImage(wicketId, "file_code_16x16.png");
+		} else if (filename.endsWith(".properties")) {
+			return newImage(wicketId, "file_settings_16x16.png");
+		}
+
+		List<String> mdExtensions = GitBlit.self().settings().getStrings(Keys.web.markdownExtensions);
+		for (String ext : mdExtensions) {
+			if (filename.endsWith('.' + ext.toLowerCase())) {
+				return newImage(wicketId, "file_world_16x16.png");
+			}
+		}
+		return newImage(wicketId, "file_16x16.png");
+	}
+
 	public static ContextImage newClearPixel(String wicketId) {
 		return newImage(wicketId, "pixel.png");
 	}
-	
+
 	public static ContextImage newBlankImage(String wicketId) {
 		return newImage(wicketId, "blank.png");
 	}
@@ -102,7 +148,7 @@
 		}
 		return img;
 	}
-	
+
 	public static ContextRelativeResource getResource(String file) {
 		return new ContextRelativeResource("/com/gitblit/wicket/resources/" + file);
 	}

--
Gitblit v1.9.1