Re: ResourceReference.getResource() returns NULL ?

2011-07-02 Thread Jim Pinkham
Search for "Dynamically loading image" for good examples of how to do this.

Basically, you do not put the image data directly into HTML.  Instead, you
make your page.html  with some table perhaps, and a series of links to your
images.  So you would need one method to list the ids of your images to put
as a parameters into your links.   Then, you will 'mount' the resource in
your application class at app init time, which will allow your app to serve
up the image data for each  tag.

Good luck
Jim

On Tue, Feb 22, 2011 at 8:00 AM, smallufo  wrote:

> I want to build a DynamicImageResource which can scale internal (packaged)
> images (with name : {index}.gif ) .
> In getImageData() , I try to load a truly existing image , but cannot
> getResource() , it returns null !
>
> Here is my code :
>
> public class ScaledImageResource extends DynamicImageResource
> {
>  private ThreadLocal index = new ThreadLocal();
>  private ThreadLocal width = new ThreadLocal();
>  private ThreadLocal height = new ThreadLocal();
>
>  @Override
>  public IResourceStream getResourceStream()
>  {
>ValueMap map = getParameters();
>index .set(map.getAsInteger("index" ,  1));
>width .set(map.getAsInteger("width" , 50));
>height.set(map.getAsInteger("height", 50));
>return super.getResourceStream();
>  }
>
>  @Override
>  protected byte[] getImageData()
>  {
>ResourceReference imageResource = new ResourceReference(MyPage.class ,
> "icons/byIndex/"+index.get()+".gif");
>http://foobar.com/app/resources/foo.bar.MyPage/icons/byIndex/1.gif does
> exist !
>
>try
>{
>  System.out.println("imageResource.getResource() = " +
> imageResource.getResource()); // returns NULL
>  InputStream is =
> imageResource.getResource().getResourceStream().getInputStream();
>  BufferedImage bufferedImage = ImageIO.read(is);
>  BufferedImage scaledImage = BufferedImageTools.getImage(bufferedImage,
> width.get() , height.get());
>
>  byte[] bytes = null;
>  //scale image , build bytes  , skipped here.
>  return bytes;
>}
>catch (Exception e)
>{
>}
>return null;
>  }
> }
>
> And in Application's init():
> getSharedResources().add(IMG_KEY, new ScaledImageResource());
> mountSharedResource("/scaledImage", new
> ResourceReference(IMG_KEY).getSharedResourceKey());
>
> Note , the image file does exist there ,
> and http://foobar.com/app/resources/foo.bar.MyPage/icons/byIndex/1.gifdoes
> browsable !
>
> But why cannot I getResource() of the imageResource ?
>


ResourceReference.getResource() returns NULL ?

2011-02-22 Thread smallufo
I want to build a DynamicImageResource which can scale internal (packaged)
images (with name : {index}.gif ) .
In getImageData() , I try to load a truly existing image , but cannot
getResource() , it returns null !

Here is my code :

public class ScaledImageResource extends DynamicImageResource
{
  private ThreadLocal index = new ThreadLocal();
  private ThreadLocal width = new ThreadLocal();
  private ThreadLocal height = new ThreadLocal();

  @Override
  public IResourceStream getResourceStream()
  {
ValueMap map = getParameters();
index .set(map.getAsInteger("index" ,  1));
width .set(map.getAsInteger("width" , 50));
height.set(map.getAsInteger("height", 50));
return super.getResourceStream();
  }

  @Override
  protected byte[] getImageData()
  {
ResourceReference imageResource = new ResourceReference(MyPage.class ,
"icons/byIndex/"+index.get()+".gif");
http://foobar.com/app/resources/foo.bar.MyPage/icons/byIndex/1.gif does
exist !

try
{
  System.out.println("imageResource.getResource() = " +
imageResource.getResource()); // returns NULL
  InputStream is =
imageResource.getResource().getResourceStream().getInputStream();
  BufferedImage bufferedImage = ImageIO.read(is);
  BufferedImage scaledImage = BufferedImageTools.getImage(bufferedImage,
width.get() , height.get());

  byte[] bytes = null;
  //scale image , build bytes  , skipped here.
  return bytes;
}
catch (Exception e)
{
}
return null;
  }
}

And in Application's init():
getSharedResources().add(IMG_KEY, new ScaledImageResource());
mountSharedResource("/scaledImage", new
ResourceReference(IMG_KEY).getSharedResourceKey());

Note , the image file does exist there ,
and http://foobar.com/app/resources/foo.bar.MyPage/icons/byIndex/1.gif does
browsable !

But why cannot I getResource() of the imageResource ?