1 29 30 package nextapp.echo2.app.componentxml.propertypeer; 31 32 import org.w3c.dom.Element ; 33 import org.w3c.dom.NodeList ; 34 35 import nextapp.echo2.app.Color; 36 import nextapp.echo2.app.FillImage; 37 import nextapp.echo2.app.FillImageBorder; 38 import nextapp.echo2.app.Insets; 39 import nextapp.echo2.app.componentxml.InvalidPropertyException; 40 import nextapp.echo2.app.componentxml.PropertyLoader; 41 import nextapp.echo2.app.componentxml.PropertyXmlPeer; 42 import nextapp.echo2.app.util.DomUtil; 43 44 48 public class FillImageBorderPeer 49 implements PropertyXmlPeer { 50 51 54 public Object getValue(ClassLoader classLoader, Class objectClass, Element propertyElement) 55 throws InvalidPropertyException { 56 Element fillImageBorderElement = DomUtil.getChildElementByTagName(propertyElement, "fill-image-border"); 57 if (fillImageBorderElement == null) { 58 throw new InvalidPropertyException("Invalid FillImageBorder property.", null); 59 } 60 61 FillImageBorder fillImageBorder = new FillImageBorder(); 62 PropertyLoader propertyLoader = PropertyLoader.forClassLoader(classLoader); 63 64 if (fillImageBorderElement.hasAttribute("color")) { 65 Color color = ColorPeer.toColor(fillImageBorderElement.getAttribute("color")); 66 fillImageBorder.setColor(color); 67 } 68 if (fillImageBorderElement.hasAttribute("border-insets")) { 69 Insets insets = InsetsPeer.toInsets(fillImageBorderElement.getAttribute("border-insets")); 70 fillImageBorder.setBorderInsets(insets); 71 } 72 if (fillImageBorderElement.hasAttribute("content-insets")) { 73 Insets insets = InsetsPeer.toInsets(fillImageBorderElement.getAttribute("content-insets")); 74 fillImageBorder.setContentInsets(insets); 75 } 76 77 NodeList borderPartList = fillImageBorderElement.getElementsByTagName("border-part"); 78 int borderPartCount = borderPartList.getLength(); 79 for (int i = 0; i < borderPartCount; ++i) { 80 Element borderPartElement = (Element ) borderPartList.item(i); 81 String position = borderPartElement.getAttribute("position"); 82 83 FillImage fillImage = (FillImage) propertyLoader.getPropertyValue(FillImageBorder.class, FillImage.class, 84 borderPartElement); 85 86 if ("top-left".equals(position)) { 87 fillImageBorder.setFillImage(FillImageBorder.TOP_LEFT, fillImage); 88 } else if ("top".equals(position)) { 89 fillImageBorder.setFillImage(FillImageBorder.TOP, fillImage); 90 } else if ("top-right".equals(position)) { 91 fillImageBorder.setFillImage(FillImageBorder.TOP_RIGHT, fillImage); 92 } else if ("left".equals(position)) { 93 fillImageBorder.setFillImage(FillImageBorder.LEFT, fillImage); 94 } else if ("right".equals(position)) { 95 fillImageBorder.setFillImage(FillImageBorder.RIGHT, fillImage); 96 } else if ("bottom-left".equals(position)) { 97 fillImageBorder.setFillImage(FillImageBorder.BOTTOM_LEFT, fillImage); 98 } else if ("bottom".equals(position)) { 99 fillImageBorder.setFillImage(FillImageBorder.BOTTOM, fillImage); 100 } else if ("bottom-right".equals(position)) { 101 fillImageBorder.setFillImage(FillImageBorder.BOTTOM_RIGHT, fillImage); 102 } 103 } 104 105 return fillImageBorder; 106 } 107 } 108 | Popular Tags |