001 package com.khubla.pragmatach.plugin.responsive; 002 003 import java.io.InputStream; 004 005 import com.khubla.pragmatach.framework.annotation.Controller; 006 import com.khubla.pragmatach.framework.annotation.Route; 007 import com.khubla.pragmatach.framework.annotation.RouteParameter; 008 import com.khubla.pragmatach.framework.api.PragmatachException; 009 import com.khubla.pragmatach.framework.api.Response; 010 import com.khubla.pragmatach.framework.controller.impl.stat.StaticResourceController; 011 012 /** 013 * @author tome 014 */ 015 @Controller(name = "ResponsiveImageController") 016 public class ResponsiveImageController extends StaticResourceController { 017 /** 018 * ctor 019 */ 020 public ResponsiveImageController() { 021 } 022 023 /** 024 * render 025 */ 026 @Route(uri = "/pragmatach/plugin/getscaledimage/@img/@xscale/@yscale") 027 public Response getscaledimage(@RouteParameter(name = "img") String imageResource, @RouteParameter(name = "xscale") double xscale, @RouteParameter(name = "yscale") double yscale) 028 throws PragmatachException { 029 try { 030 final InputStream imageStream = getResource(imageResource); 031 return new ResponsiveImageResponse(getCacheHeaders(), imageStream, xscale, yscale); 032 } catch (final Exception e) { 033 throw new PragmatachException("Exception in render", e); 034 } 035 } 036 037 /** 038 * render 039 */ 040 @Route(uri = "/pragmatach/plugin/getsizedimage/@img/@width/@height") 041 public Response getsizedimage(@RouteParameter(name = "img") String imageResource, @RouteParameter(name = "width") int width, @RouteParameter(name = "height") int height) throws PragmatachException { 042 try { 043 final InputStream imageStream = getResource(imageResource); 044 return new ResponsiveImageResponse(getCacheHeaders(), imageStream, width, height); 045 } catch (final Exception e) { 046 throw new PragmatachException("Exception in render", e); 047 } 048 } 049 }