Hi Hans,

if it's possible it could be better to do not introduce new compile warning 
into OFBiz now that we have completed to remove it.

Thanks
Marco

Il giorno 14/mar/2011, alle ore 08.16, hans...@apache.org ha scritto:

> Author: hansbak
> Date: Mon Mar 14 07:16:36 2011
> New Revision: 1081272
> 
> URL: http://svn.apache.org/viewvc?rev=1081272&view=rev
> Log:
> patch to scale main image product content and additional image product 
> content: a contribution by Eric de Maulde: 
> https://issues.apache.org/jira/browse/OFBIZ-4212
> 
> Modified:
>    
> ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
>    
> ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
> 
> Modified: 
> ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java?rev=1081272&r1=1081271&r2=1081272&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java 
> (original)
> +++ 
> ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java 
> Mon Mar 14 07:16:36 2011
> @@ -107,35 +107,41 @@ public class ScaleImage {
>         String imgName = filenameToUse.substring(0, index - 1);
>         String imgExtension = filenameToUse.substring(index + 1);
>         // paths
> -        String mainFilenameFormat = 
> UtilProperties.getPropertyValue("catalog", "image.filename.format");
>         String imageServerPath = 
> FlexibleStringExpander.expandString(UtilProperties.getPropertyValue("catalog",
>  "image.server.path"), context);
>         String imageUrlPrefix = UtilProperties.getPropertyValue("catalog", 
> "image.url.prefix");
> -
> -        String id = null;
> +        
> +        FlexibleStringExpander filenameExpander;
> +        String fileLocation = null;
>         String type = null;
> +        String id = null;
>         if (viewType.toLowerCase().contains("main")) {
> -            type = "original";
> +            String filenameFormat = 
> UtilProperties.getPropertyValue("catalog", "image.filename.format");
> +            filenameExpander = 
> FlexibleStringExpander.getInstance(filenameFormat);
>             id = (String) context.get("productId");
> +            fileLocation = 
> filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", 
> id, "type", "original"));
> +            Debug.logWarning("fileLocation for view type = MAIN : " + 
> fileLocation,module);
>         } else if (viewType.toLowerCase().contains("additional") && 
> viewNumber != null && !viewNumber.equals("0")) {
> -            type = "additional";
> -            id = imgName + "_View_" + viewNumber;
> +            String filenameFormat = 
> UtilProperties.getPropertyValue("catalog", 
> "image.filename.additionalviewsize.format");
> +            filenameExpander = 
> FlexibleStringExpander.getInstance(filenameFormat);
> +            id = (String) context.get("productId");
> +            if (filenameFormat.endsWith("${id}")) {
> +                id = id + "_View_" + viewNumber;
> +            } else {
> +                viewType = "additional" + viewNumber;
> +            }    
> +            fileLocation = 
> filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", 
> id, "viewtype", viewType, "sizetype", "original"));
>         } else {
> -            return 
> ServiceUtil.returnError(UtilProperties.getMessage(resource, 
> -                    "ProductImageViewType", UtilMisc.toMap("viewType", 
> type), locale));
> +            return 
> ServiceUtil.returnError(UtilProperties.getMessage(resource, 
> "ProductImageViewType", UtilMisc.toMap("viewType", type), locale));
>         }
> -        FlexibleStringExpander mainFilenameExpander = 
> FlexibleStringExpander.getInstance(mainFilenameFormat);
> -        String fileLocation = 
> mainFilenameExpander.expandString(UtilMisc.toMap("location", "products", 
> "id", context.get("productId"), "type", type));
> +
>         String filePathPrefix = "";
>         if (fileLocation.lastIndexOf("/") != -1) {
>             filePathPrefix = fileLocation.substring(0, 
> fileLocation.lastIndexOf("/") + 1); // adding 1 to include the trailing slash
>         }
> 
> -        if (context.get("contentId") != null){
> -            
> resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" 
> + context.get("productId") + "/" + context.get("clientFileName"), locale));
> -        } else {
> -            /* get original BUFFERED IMAGE */
> -            
> resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" 
> + filePathPrefix + filenameToUse, locale));
> -        }
> +        /* get original BUFFERED IMAGE */
> +            
> resultBufImgMap.putAll(ImageTransform.getBufferedImage(imageServerPath + "/" 
> + fileLocation + "." + imgExtension, locale));
> +
>         if (resultBufImgMap.containsKey("responseMessage") && 
> resultBufImgMap.get("responseMessage").equals("success")) {
>             bufImg = (BufferedImage) resultBufImgMap.get("bufferedImage");
> 
> @@ -149,13 +155,6 @@ public class ScaleImage {
>                 return result;
>             }
> 
> -            // new Filename Format
> -            FlexibleStringExpander addFilenameExpander = 
> mainFilenameExpander;
> -            if (viewType.toLowerCase().contains("additional")) {
> -                String addFilenameFormat = 
> UtilProperties.getPropertyValue("catalog", 
> "image.filename.additionalviewsize.format");
> -                addFilenameExpander = 
> FlexibleStringExpander.getInstance(addFilenameFormat);
> -            }
> -
>             /* scale Image for each Size Type */
>             Iterator<String> sizeIter = sizeTypeList.iterator();
>             while (sizeIter.hasNext()) {
> @@ -169,10 +168,11 @@ public class ScaleImage {
>                     String newFileLocation = null;
>                     filenameToUse = sizeType + 
> filenameToUse.substring(filenameToUse.lastIndexOf("."));
>                     if (viewType.toLowerCase().contains("main")) {
> -                        newFileLocation = 
> mainFilenameExpander.expandString(UtilMisc.toMap("location", "products", 
> "id", id, "type", sizeType));
> +                        newFileLocation = 
> filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", 
> id, "type", sizeType));
>                     } else if (viewType.toLowerCase().contains("additional")) 
> {
> -                        newFileLocation = 
> addFilenameExpander.expandString(UtilMisc.toMap("location", "products", "id", 
> id, "viewtype", viewType, "sizetype", sizeType));
> +                        newFileLocation = 
> filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", 
> id, "viewtype", viewType, "sizetype", sizeType));
>                     }
> +
>                     String newFilePathPrefix = "";
>                     if (newFileLocation.lastIndexOf("/") != -1) {
>                         newFilePathPrefix = newFileLocation.substring(0, 
> newFileLocation.lastIndexOf("/") + 1); // adding 1 to include the trailing 
> slash
> @@ -191,7 +191,7 @@ public class ScaleImage {
> 
>                     // write new image
>                     try {
> -                        ImageIO.write(bufNewImg, imgExtension, new 
> File(imageServerPath + "/" + newFilePathPrefix + filenameToUse));
> +                        ImageIO.write(bufNewImg, imgExtension, new 
> File(imageServerPath + "/" + newFileLocation + "." + imgExtension));
>                     } catch (IllegalArgumentException e) {
>                         String errMsg = UtilProperties.getMessage(resource, 
> "ScaleImage.one_parameter_is_null", locale) + e.toString();
>                         Debug.logError(errMsg, module);
> @@ -205,7 +205,7 @@ public class ScaleImage {
>                     }
> 
>                     /* write Return Result */
> -                    String imageUrl = imageUrlPrefix + "/" + 
> newFilePathPrefix + filenameToUse;
> +                    String imageUrl = imageUrlPrefix + "/" + newFileLocation 
> + "." + imgExtension;
>                     imgUrlMap.put(sizeType, imageUrl);
> 
>                 } // scaleImgMap
> 
> Modified: 
> ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java?rev=1081272&r1=1081271&r2=1081272&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
>  (original)
> +++ 
> ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductServices.java
>  Mon Mar 14 07:16:36 2011
> @@ -980,13 +980,19 @@ public class ProductServices {
>         Locale locale = (Locale) context.get("locale");
> 
>         if (UtilValidate.isNotEmpty(context.get("_uploadedFile_fileName"))) {
> -            String imageFilenameFormat = 
> UtilProperties.getPropertyValue("catalog", "image.filename.format");
> +            String imageFilenameFormat = 
> UtilProperties.getPropertyValue("catalog", 
> "image.filename.additionalviewsize.format");
>             String imageServerPath = 
> FlexibleStringExpander.expandString(UtilProperties.getPropertyValue("catalog",
>  "image.server.path"), context);
>             String imageUrlPrefix = 
> UtilProperties.getPropertyValue("catalog", "image.url.prefix");
> 
>             FlexibleStringExpander filenameExpander = 
> FlexibleStringExpander.getInstance(imageFilenameFormat);
> -            String id = productId + "_View_" + 
> productContentTypeId.charAt(productContentTypeId.length() - 1);
> -            String fileLocation = 
> filenameExpander.expandString(UtilMisc.toMap("location", "products", "type", 
> "additional", "id", id));
> +            String viewNumber = 
> String.valueOf(productContentTypeId.charAt(productContentTypeId.length() - 
> 1));
> +            String viewType = "additional" + viewNumber;
> +            String id = productId;
> +            if (imageFilenameFormat.endsWith("${id}")) {
> +                id = productId + "_View_" + viewNumber;   
> +                viewType = "additional";
> +            }
> +            String fileLocation = 
> filenameExpander.expandString(UtilMisc.toMap("location", "products", "id", 
> id, "viewtype", viewType, "sizetype", "original"));
>             String filePathPrefix = "";
>             String filenameToUse = fileLocation;
>             if (fileLocation.lastIndexOf("/") != -1) {
> @@ -1007,8 +1013,18 @@ public class ProductServices {
>                 filenameToUse += "." + extension.getString("fileExtensionId");
>             }
> 
> -            File file = new File(imageServerPath + "/" + filePathPrefix + 
> filenameToUse);
> -
> +            /* Write the new image file */
> +            String targetDirectory = imageServerPath + "/" + filePathPrefix;
> +            File targetDir = new File(targetDirectory);
> +            if (!targetDir.exists()) {
> +                boolean created = targetDir.mkdirs();
> +                if (!created) {
> +                    String errMsg = UtilProperties.getMessage(resource, 
> "ScaleImage.unable_to_create_target_directory", locale) + " - " + 
> targetDirectory;
> +                    Debug.logFatal(errMsg, module);
> +                    return ServiceUtil.returnError(errMsg);
> +                }
> +            }
> +            File file = new File(imageServerPath + "/" + fileLocation + "." 
> +  extension.getString("fileExtensionId"));
>             try {
>                 RandomAccessFile out = new RandomAccessFile(file, "rw");
>                 out.write(imageData.array());
> @@ -1024,7 +1040,6 @@ public class ProductServices {
>             }
> 
>             /* scale Image in different sizes */
> -            String viewNumber = 
> String.valueOf(productContentTypeId.charAt(productContentTypeId.length() - 
> 1));
>             Map<String, Object> resultResize = FastMap.newInstance();
>             try {
>                 resultResize.putAll(ScaleImage.scaleImageInAllSize(context, 
> filenameToUse, "additional", viewNumber));
> @@ -1038,7 +1053,7 @@ public class ProductServices {
>                         "ProductImageViewParsingError", 
> UtilMisc.toMap("errorString", e.toString()), locale));
>             }
> 
> -            String imageUrl = imageUrlPrefix + "/" + filePathPrefix + 
> filenameToUse;
> +            String imageUrl = imageUrlPrefix + "/" + fileLocation + "." +  
> extension.getString("fileExtensionId");
>             /* store the imageUrl version of the image, for backwards 
> compatibility with code that does not use scaled versions */
>             Map<String, Object> result = addImageResource(dispatcher, 
> delegator, context, imageUrl, productContentTypeId);
> 
> 
> 

Reply via email to