TemplateImageResolver refactoring to support 64x64 icons as a new filetype image size. More icons from Linton.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5707 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
@@ -40,6 +40,7 @@ import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.template.AbsoluteUrlMethod;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.repository.FileTypeImageSize;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
@@ -309,9 +310,9 @@ public abstract class BaseTemplateContentServlet extends BaseServlet
|
||||
/** Template Image resolver helper */
|
||||
protected TemplateImageResolver imageResolver = new TemplateImageResolver()
|
||||
{
|
||||
public String resolveImagePathForName(String filename, boolean small)
|
||||
public String resolveImagePathForName(String filename, FileTypeImageSize size)
|
||||
{
|
||||
return Utils.getFileTypeImage(getServletContext(), filename, small);
|
||||
return Utils.getFileTypeImage(getServletContext(), filename, size);
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -38,6 +38,7 @@ import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.model.ApplicationModel;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.service.cmr.repository.CopyService;
|
||||
import org.alfresco.service.cmr.repository.FileTypeImageSize;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.TemplateImageResolver;
|
||||
@@ -286,9 +287,9 @@ public abstract class BaseDetailsBean
|
||||
/** Template Image resolver helper */
|
||||
protected TemplateImageResolver imageResolver = new TemplateImageResolver()
|
||||
{
|
||||
public String resolveImagePathForName(String filename, boolean small)
|
||||
public String resolveImagePathForName(String filename, FileTypeImageSize size)
|
||||
{
|
||||
return Utils.getFileTypeImage(filename, small);
|
||||
return Utils.getFileTypeImage(FacesContext.getCurrentInstance(), filename, size);
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -40,6 +40,7 @@ import org.alfresco.filesys.smb.server.repo.ContentContext;
|
||||
import org.alfresco.filesys.smb.server.repo.ContentDiskInterface;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.security.permissions.AccessDeniedException;
|
||||
import org.alfresco.service.cmr.repository.FileTypeImageSize;
|
||||
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
@@ -491,9 +492,9 @@ public class NavigationBean
|
||||
model.put(TemplateService.KEY_IMAGE_RESOLVER,
|
||||
new TemplateImageResolver()
|
||||
{
|
||||
public String resolveImagePathForName(String filename, boolean small)
|
||||
public String resolveImagePathForName(String filename, FileTypeImageSize size)
|
||||
{
|
||||
return Utils.getFileTypeImage(filename, small);
|
||||
return Utils.getFileTypeImage(FacesContext.getCurrentInstance(), filename, size);
|
||||
}
|
||||
});
|
||||
|
||||
|
@@ -36,6 +36,7 @@ import org.alfresco.repo.template.AbsoluteUrlMethod;
|
||||
import org.alfresco.repo.template.CropContentMethod;
|
||||
import org.alfresco.repo.template.TemplateNode;
|
||||
import org.alfresco.repo.template.UrlEncodeMethod;
|
||||
import org.alfresco.service.cmr.repository.FileTypeImageSize;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.TemplateImageResolver;
|
||||
@@ -129,9 +130,9 @@ public class NodeInfoBean
|
||||
/** Template Image resolver helper */
|
||||
private TemplateImageResolver imageResolver = new TemplateImageResolver()
|
||||
{
|
||||
public String resolveImagePathForName(String filename, boolean small)
|
||||
public String resolveImagePathForName(String filename, FileTypeImageSize size)
|
||||
{
|
||||
return Utils.getFileTypeImage(FacesContext.getCurrentInstance(), filename, small);
|
||||
return Utils.getFileTypeImage(FacesContext.getCurrentInstance(), filename, size);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@@ -37,6 +37,7 @@ import org.alfresco.repo.template.CropContentMethod;
|
||||
import org.alfresco.repo.template.TemplateNode;
|
||||
import org.alfresco.repo.template.UrlEncodeMethod;
|
||||
import org.alfresco.repo.template.Workflow;
|
||||
import org.alfresco.service.cmr.repository.FileTypeImageSize;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.TemplateImageResolver;
|
||||
@@ -151,9 +152,9 @@ public class TaskInfoBean
|
||||
/** Template Image resolver helper */
|
||||
private TemplateImageResolver imageResolver = new TemplateImageResolver()
|
||||
{
|
||||
public String resolveImagePathForName(String filename, boolean small)
|
||||
public String resolveImagePathForName(String filename, FileTypeImageSize size)
|
||||
{
|
||||
return Utils.getFileTypeImage(FacesContext.getCurrentInstance(), filename, small);
|
||||
return Utils.getFileTypeImage(FacesContext.getCurrentInstance(), filename, size);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@@ -35,6 +35,7 @@ import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.cache.ExpiringValueCache;
|
||||
import org.alfresco.repo.security.permissions.AccessDeniedException;
|
||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||
import org.alfresco.service.cmr.repository.FileTypeImageSize;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.TemplateImageResolver;
|
||||
@@ -120,9 +121,9 @@ public abstract class BasePreviewBean
|
||||
/** Template Image resolver helper */
|
||||
protected TemplateImageResolver imageResolver = new TemplateImageResolver()
|
||||
{
|
||||
public String resolveImagePathForName(String filename, boolean small)
|
||||
public String resolveImagePathForName(String filename, FileTypeImageSize size)
|
||||
{
|
||||
return Utils.getFileTypeImage(filename, small);
|
||||
return Utils.getFileTypeImage(FacesContext.getCurrentInstance(), filename, size);
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -34,8 +34,10 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import javax.faces.context.FacesContext;
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.alfresco.service.cmr.repository.FileTypeImageSize;
|
||||
import org.alfresco.service.cmr.repository.TemplateImageResolver;
|
||||
import org.alfresco.util.AbstractLifecycleBean;
|
||||
import org.alfresco.web.scripts.WebScriptDescription.RequiredAuthentication;
|
||||
@@ -130,9 +132,9 @@ public class DeclarativeWebScriptRegistry extends AbstractLifecycleBean
|
||||
{
|
||||
this.imageResolver = new TemplateImageResolver()
|
||||
{
|
||||
public String resolveImagePathForName(String filename, boolean small)
|
||||
public String resolveImagePathForName(String filename, FileTypeImageSize size)
|
||||
{
|
||||
return Utils.getFileTypeImage(getContext(), filename, small);
|
||||
return Utils.getFileTypeImage(FacesContext.getCurrentInstance(), filename, size);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@@ -62,6 +62,7 @@ import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||
import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.model.FileNotFoundException;
|
||||
import org.alfresco.service.cmr.repository.FileTypeImageSize;
|
||||
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
|
||||
import org.alfresco.service.cmr.repository.NoTransformerException;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
@@ -92,9 +93,12 @@ public final class Utils
|
||||
|
||||
private static final String IMAGE_PREFIX16 = "/images/filetypes/";
|
||||
private static final String IMAGE_PREFIX32 = "/images/filetypes32/";
|
||||
private static final String IMAGE_POSTFIX = ".gif";
|
||||
private static final String DEFAULT_FILE_IMAGE16 = IMAGE_PREFIX16 + "_default" + IMAGE_POSTFIX;
|
||||
private static final String DEFAULT_FILE_IMAGE32 = IMAGE_PREFIX32 + "_default" + IMAGE_POSTFIX;
|
||||
private static final String IMAGE_PREFIX64 = "/images/filetypes64/";
|
||||
private static final String IMAGE_POSTFIX_GIF = ".gif";
|
||||
private static final String IMAGE_POSTFIX_PNG = ".png";
|
||||
private static final String DEFAULT_FILE_IMAGE16 = IMAGE_PREFIX16 + "_default" + IMAGE_POSTFIX_GIF;
|
||||
private static final String DEFAULT_FILE_IMAGE32 = IMAGE_PREFIX32 + "_default" + IMAGE_POSTFIX_GIF;
|
||||
private static final String DEFAULT_FILE_IMAGE64 = IMAGE_PREFIX64 + "_default" + IMAGE_POSTFIX_PNG;
|
||||
|
||||
private static final Map<String, String> s_fileExtensionMap = new HashMap<String, String>(89, 1.0f);
|
||||
|
||||
@@ -1164,7 +1168,8 @@ public final class Utils
|
||||
*/
|
||||
public static String getFileTypeImage(String name, boolean small)
|
||||
{
|
||||
return getFileTypeImage(FacesContext.getCurrentInstance(), null, name, small);
|
||||
return getFileTypeImage(FacesContext.getCurrentInstance(), null, name,
|
||||
(small ? FileTypeImageSize.Small : FileTypeImageSize.Medium));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1178,7 +1183,21 @@ public final class Utils
|
||||
*/
|
||||
public static String getFileTypeImage(FacesContext fc, String name, boolean small)
|
||||
{
|
||||
return getFileTypeImage(fc, null, name, small);
|
||||
return getFileTypeImage(fc, null, name, (small ? FileTypeImageSize.Small : FileTypeImageSize.Medium));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the image path to the filetype icon for the specified file name string
|
||||
*
|
||||
* @param fc FacesContext
|
||||
* @param name File name to build filetype icon path for
|
||||
* @param size Size of the icon to return
|
||||
*
|
||||
* @return the image path for the specified node type or the default icon if not found
|
||||
*/
|
||||
public static String getFileTypeImage(FacesContext fc, String name, FileTypeImageSize size)
|
||||
{
|
||||
return getFileTypeImage(fc, null, name, size);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1192,18 +1211,42 @@ public final class Utils
|
||||
*/
|
||||
public static String getFileTypeImage(ServletContext sc, String name, boolean small)
|
||||
{
|
||||
return getFileTypeImage(null, sc, name, small);
|
||||
return getFileTypeImage(null, sc, name, (small ? FileTypeImageSize.Small : FileTypeImageSize.Medium));
|
||||
}
|
||||
|
||||
private static String getFileTypeImage(FacesContext fc, ServletContext sc, String name, boolean small)
|
||||
/**
|
||||
* Return the image path to the filetype icon for the specified file name string
|
||||
*
|
||||
* @param sc ServletContext
|
||||
* @param name File name to build filetype icon path for
|
||||
* @param size Size of the icon to return
|
||||
*
|
||||
* @return the image path for the specified node type or the default icon if not found
|
||||
*/
|
||||
public static String getFileTypeImage(ServletContext sc, String name, FileTypeImageSize size)
|
||||
{
|
||||
String image = (small ? DEFAULT_FILE_IMAGE16 : DEFAULT_FILE_IMAGE32);
|
||||
return getFileTypeImage(null, sc, name, size);
|
||||
}
|
||||
|
||||
private static String getFileTypeImage(FacesContext fc, ServletContext sc, String name, FileTypeImageSize size)
|
||||
{
|
||||
String image = null;
|
||||
String defaultImage = null;
|
||||
switch (size)
|
||||
{
|
||||
case Small:
|
||||
defaultImage = DEFAULT_FILE_IMAGE16; break;
|
||||
case Medium:
|
||||
defaultImage = DEFAULT_FILE_IMAGE32; break;
|
||||
case Large:
|
||||
defaultImage = DEFAULT_FILE_IMAGE64; break;
|
||||
}
|
||||
|
||||
int extIndex = name.lastIndexOf('.');
|
||||
if (extIndex != -1 && name.length() > extIndex + 1)
|
||||
{
|
||||
String ext = name.substring(extIndex + 1).toLowerCase();
|
||||
String key = ext + ' ' + (small ? "16" : "32");
|
||||
String key = ext + ' ' + size.toString();
|
||||
|
||||
// found file extension for appropriate size image
|
||||
synchronized (s_fileExtensionMap)
|
||||
@@ -1212,7 +1255,15 @@ public final class Utils
|
||||
if (image == null)
|
||||
{
|
||||
// not found create for first time
|
||||
image = (small ? IMAGE_PREFIX16 : IMAGE_PREFIX32) + ext + IMAGE_POSTFIX;
|
||||
if (size != FileTypeImageSize.Large)
|
||||
{
|
||||
image = (size == FileTypeImageSize.Small ? IMAGE_PREFIX16 : IMAGE_PREFIX32) +
|
||||
ext + IMAGE_POSTFIX_GIF;
|
||||
}
|
||||
else
|
||||
{
|
||||
image = IMAGE_PREFIX64 + ext + IMAGE_POSTFIX_PNG;
|
||||
}
|
||||
|
||||
// does this image exist on the web-server?
|
||||
if ((fc != null && fc.getExternalContext().getResourceAsStream(image) != null) ||
|
||||
@@ -1224,14 +1275,13 @@ public final class Utils
|
||||
else
|
||||
{
|
||||
// not found, save the default image for this extension instead
|
||||
image = (small ? DEFAULT_FILE_IMAGE16 : DEFAULT_FILE_IMAGE32);
|
||||
s_fileExtensionMap.put(key, image);
|
||||
s_fileExtensionMap.put(key, defaultImage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return image;
|
||||
return (image != null ? image : defaultImage);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -26,7 +26,10 @@ package org.alfresco.web.ui.repo.component.template;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import javax.faces.context.FacesContext;
|
||||
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.repository.FileTypeImageSize;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.TemplateImageResolver;
|
||||
import org.alfresco.web.app.Application;
|
||||
@@ -101,9 +104,9 @@ public class DefaultModelHelper
|
||||
/** Template Image resolver helper */
|
||||
public static final TemplateImageResolver imageResolver = new TemplateImageResolver()
|
||||
{
|
||||
public String resolveImagePathForName(String filename, boolean small)
|
||||
public String resolveImagePathForName(String filename, FileTypeImageSize size)
|
||||
{
|
||||
return Utils.getFileTypeImage(filename, small);
|
||||
return Utils.getFileTypeImage(FacesContext.getCurrentInstance(), filename, size);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@@ -32,6 +32,7 @@ import javax.faces.context.FacesContext;
|
||||
import javax.faces.el.ValueBinding;
|
||||
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.repository.FileTypeImageSize;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
import org.alfresco.service.cmr.repository.TemplateException;
|
||||
@@ -300,9 +301,9 @@ public class UITemplate extends SelfRenderingComponent
|
||||
/** Template Image resolver helper */
|
||||
private TemplateImageResolver imageResolver = new TemplateImageResolver()
|
||||
{
|
||||
public String resolveImagePathForName(String filename, boolean small)
|
||||
public String resolveImagePathForName(String filename, FileTypeImageSize size)
|
||||
{
|
||||
return Utils.getFileTypeImage(filename, small);
|
||||
return Utils.getFileTypeImage(FacesContext.getCurrentInstance(), filename, size);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
BIN
source/web/images/filetypes64/_default.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 822 B After Width: | Height: | Size: 823 B |
Before Width: | Height: | Size: 706 B After Width: | Height: | Size: 719 B |
Before Width: | Height: | Size: 739 B After Width: | Height: | Size: 726 B |
Before Width: | Height: | Size: 806 B After Width: | Height: | Size: 803 B |
Before Width: | Height: | Size: 821 B After Width: | Height: | Size: 845 B |
Before Width: | Height: | Size: 784 B After Width: | Height: | Size: 808 B |