1 19 20 21 package org.netbeans.modules.image; 22 23 24 import java.awt.Image ; 25 import java.io.IOException ; 26 import java.io.Serializable ; 27 import javax.swing.ImageIcon ; 28 29 30 36 class NBImageIcon extends ImageIcon implements Serializable { 37 38 39 static final long serialVersionUID = -1730253055388017036L; 40 41 42 ImageDataObject obj; 43 44 57 public static NBImageIcon load(ImageDataObject obj) throws IOException { 58 Image image = obj.getImage(); 59 return (image != null) ? new NBImageIcon(obj, image) : null; 60 } 61 62 65 private NBImageIcon(ImageDataObject obj, Image image) { 66 super(image); this.obj = obj; 69 } 70 71 72 73 public Object writeReplace() { 74 return new ResolvableHelper(obj); 75 } 76 77 78 79 static class ResolvableHelper implements Serializable { 80 81 82 static final long serialVersionUID = -1120520132882774882L; 83 84 85 ImageDataObject obj; 86 87 88 ResolvableHelper(ImageDataObject obj) { 89 this.obj = obj; 90 } 91 92 93 public Object readResolve() { 94 Image image; 95 try { 96 image = obj.getImage(); 97 } catch (IOException ex) { 98 image = null; 99 } 100 return new NBImageIcon( 101 obj, 102 (image != null) ? image : new ImageIcon ().getImage()); 103 } 104 } } 106 | Popular Tags |