Advertisement
Guest User

Declan

a guest
Jun 11th, 2009
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.10 KB | None | 0 0
  1. package com.tactelus.cnn.ui.common;
  2.  
  3. import net.rim.device.api.system.Application;
  4. import net.rim.device.api.system.Bitmap;
  5. import net.rim.device.api.system.EncodedImage;
  6. import net.rim.device.api.ui.Manager;
  7. import net.rim.device.api.ui.component.BitmapField;
  8.  
  9. import com.tactelus.cnn.CNNApp;
  10. import com.tactelus.feed.api.Media;
  11. import com.tactelus.util.IOUtil;
  12. import com.tactelus.util.ImageUtil;
  13. import com.tactelus.util.IOUtil.WebDataCallback;
  14.  
  15. public class WebBitmapField extends BitmapField implements WebDataCallback {
  16.     private EncodedImage bitmap = null;
  17.     private Media media;
  18.     private int desiredWidth;
  19.     private int desiredHeight;
  20.     private Manager parent;
  21.  
  22.     public WebBitmapField(Media media, int desiredWidth, Manager parent) {
  23.         try {
  24.             this.parent = parent;
  25.             this.media = media;
  26.             this.desiredWidth = desiredWidth;
  27.             this.desiredHeight = ImageUtil.getScaledHeight(media.width, media.height, desiredWidth);
  28.             setBitmap(CNNApp.bmpWait);
  29.             IOUtil.getWebData(media.url, this);
  30.         } catch (Exception e) {
  31.         }
  32.     }
  33.  
  34.     public int getDesiredHeight() {
  35.         return desiredHeight;
  36.     }
  37.    
  38.     public int getDesiredWidth() {
  39.         return desiredWidth;
  40.     }
  41.    
  42. //  public int getPreferredHeight() {
  43. //      return getDesiredHeight();
  44. //  }
  45. // 
  46. //  public int getPreferredWidth() {
  47. //      return getDesiredWidth();
  48. //  }
  49.    
  50.     public Bitmap getBitmap() {
  51.         if (bitmap == null)
  52.             return null;
  53.         return bitmap.getBitmap();
  54.     }
  55.  
  56.     public void wdcCallback(final String data) {
  57.         if (data.startsWith("Exception"))
  58.             return;
  59.  
  60.         try {
  61.             byte[] dataArray = data.getBytes();
  62.             Bitmap original = EncodedImage.createEncodedImage(dataArray, 0, dataArray.length).getBitmap();
  63.             media.setBitmap(ImageUtil.scaleBitmap(original, desiredWidth, desiredHeight, false));
  64.             synchronized( Application.getEventLock() ) {
  65.                 setBitmap(media.getBitmap());
  66.                 invalidate();
  67.             }
  68. //          setDirty(true);
  69. //          updateLayout();
  70. //          parent.invalidate();
  71.         }
  72.         catch (final Exception e) {
  73.             wdcException(e);
  74.         }
  75.     }
  76.  
  77.     public void wdcException(Exception ex) {
  78.         setBitmap(CNNApp.bmpMissing);
  79.         ex.printStackTrace();
  80.     }
  81. }
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement