1 26 27 package org.nightlabs.editor2d.iofilter.xstream; 28 29 import org.nightlabs.editor2d.DrawComponent; 30 import org.nightlabs.editor2d.ImageDrawComponent; 31 import org.nightlabs.editor2d.impl.ImageDrawComponentImpl; 32 import com.thoughtworks.xstream.converters.MarshallingContext; 33 import com.thoughtworks.xstream.converters.UnmarshallingContext; 34 import com.thoughtworks.xstream.io.HierarchicalStreamReader; 35 import com.thoughtworks.xstream.io.HierarchicalStreamWriter; 36 37 public class ImageDrawComponentConverter 38 extends DrawComponentConverter 39 { 40 public ImageDrawComponentConverter() { 41 super(); 42 } 43 44 public static final String IMAGE_SHAPE = "ImageShape"; 45 46 protected DrawComponent readSpecific(DrawComponent dc, HierarchicalStreamReader reader, 47 UnmarshallingContext context) 48 { 49 ImageDrawComponent image = (ImageDrawComponent) dc; 50 image.setImageShape(factory.createGeneralShapeFromString(reader.getAttribute(IMAGE_SHAPE))); 51 return image; 52 } 53 54 protected void writeSpecific(DrawComponent dc, 55 HierarchicalStreamWriter writer, MarshallingContext context) 56 { 57 ImageDrawComponent image = (ImageDrawComponent) dc; 58 writer.addAttribute(IMAGE_SHAPE, factory.convertGeneralShapeToString(image.getImageShape())); 59 } 60 61 public boolean canConvert(Class type) 62 { 63 if (type.equals(ImageDrawComponentImpl.class)) { 64 return true; 65 } 66 return false; 67 } 68 69 protected String getNodeName() { 70 return "ImageDrawComponent"; 71 } 72 73 public Class getImpl() { 74 return ImageDrawComponentImpl.class; 75 } 76 77 } 78 | Popular Tags |