KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nextapp > echo2 > app > componentxml > propertypeer > FillImageBorderPeer


1 /*
2  * This file is part of the Echo Web Application Framework (hereinafter "Echo").
3  * Copyright (C) 2002-2005 NextApp, Inc.
4  *
5  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
6  *
7  * The contents of this file are subject to the Mozilla Public License Version
8  * 1.1 (the "License"); you may not use this file except in compliance with
9  * the License. You may obtain a copy of the License at
10  * http://www.mozilla.org/MPL/
11  *
12  * Software distributed under the License is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14  * for the specific language governing rights and limitations under the
15  * License.
16  *
17  * Alternatively, the contents of this file may be used under the terms of
18  * either the GNU General Public License Version 2 or later (the "GPL"), or
19  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
20  * in which case the provisions of the GPL or the LGPL are applicable instead
21  * of those above. If you wish to allow use of your version of this file only
22  * under the terms of either the GPL or the LGPL, and not to allow others to
23  * use your version of this file under the terms of the MPL, indicate your
24  * decision by deleting the provisions above and replace them with the notice
25  * and other provisions required by the GPL or the LGPL. If you do not delete
26  * the provisions above, a recipient may use your version of this file under
27  * the terms of any one of the MPL, the GPL or the LGPL.
28  */

29
30 package nextapp.echo2.app.componentxml.propertypeer;
31
32 import org.w3c.dom.Element JavaDoc;
33 import org.w3c.dom.NodeList JavaDoc;
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 /**
45  * <code>PropertyXmlPeer</code> implementation for
46  * <code>nextapp.echo2.app.FillImageBorder</code> properties.
47  */

48 public class FillImageBorderPeer
49 implements PropertyXmlPeer {
50
51     /**
52      * @see nextapp.echo2.app.componentxml.PropertyXmlPeer#getValue(java.lang.ClassLoader, java.lang.Class, org.w3c.dom.Element)
53      */

54     public Object JavaDoc getValue(ClassLoader JavaDoc classLoader, Class JavaDoc objectClass, Element JavaDoc propertyElement)
55     throws InvalidPropertyException {
56         Element JavaDoc 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 JavaDoc borderPartList = fillImageBorderElement.getElementsByTagName("border-part");
78         int borderPartCount = borderPartList.getLength();
79         for (int i = 0; i < borderPartCount; ++i) {
80             Element JavaDoc borderPartElement = (Element JavaDoc) borderPartList.item(i);
81             String JavaDoc 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