KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > cocoon > components > elementprocessor > impl > poi > hssf > elements > EPRight


1 /*
2  * Copyright 1999-2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.apache.cocoon.components.elementprocessor.impl.poi.hssf.elements;
18
19 import org.apache.cocoon.components.elementprocessor.types.Attribute;
20 import org.apache.cocoon.components.elementprocessor.ElementProcessor;
21
22 import org.apache.cocoon.components.elementprocessor.types.NumericConverter;
23 import org.apache.cocoon.components.elementprocessor.types.NumericResult;
24 import org.apache.cocoon.components.elementprocessor.types.Validator;
25
26 import org.apache.poi.hssf.util.HSSFColor;
27 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
28
29 import java.io.IOException JavaDoc;
30 import java.util.Hashtable JavaDoc;
31
32 /**
33  * No-op implementation of ElementProcessor to handle the "Right" tag
34  *
35  * This element has two attributes and no content.
36  *
37  * This element is not used in HSSFSerializer 1.0
38  *
39  * @author Marc Johnson (marc_johnson27591@hotmail.com)
40  * @author Andrew C. Oliver (acoliver2@users.sourceforge.net)
41  * @version CVS $Id: EPRight.java 30932 2004-07-29 17:35:38Z vgritsenko $
42  */

43 public class EPRight extends BaseElementProcessor {
44     private NumericResult _style;
45     private ColorCode _color;
46     private boolean _color_fetched;
47     private static final String JavaDoc _style_attribute = "Style";
48     private static final String JavaDoc _color_attribute = "Color";
49     private static final Validator _style_validator = new Validator() {
50         public IOException JavaDoc validate(final Number JavaDoc number) {
51             return BorderStyle.isValid(number.intValue()) ? null
52                 : new IOException JavaDoc("\"" + number + "\" is not a legal value");
53         }
54     };
55
56     /**
57      * constructor
58      */

59     public EPRight() {
60         super(null);
61         _style = null;
62         _color = null;
63         _color_fetched = false;
64     }
65
66     /**
67      * Override of Initialize() implementation
68      * @param attributes the array of Attribute instances; may be empty, will
69      * never be null
70      * @param parent the parent ElementProcessor; may be null
71      * @exception IOException if anything is wrong
72      */

73     public void initialize(final Attribute[] attributes,
74                 final ElementProcessor parent) throws IOException JavaDoc {
75         super.initialize(attributes, parent);
76         EPStyle pstyle = (EPStyle)getAncestor(EPStyle.class);
77         if (pstyle != null && pstyle.isValid()) {
78             Hashtable JavaDoc colorhash = pstyle.getColorHash();
79             HSSFColor color = null;
80
81             HSSFCellStyle style = pstyle.getStyle(); //oops
82
// a
83
// little
84
// confusing
85
//below is the style attribute
86
//this is an HSSFCellStyle
87
//associated with EPStyle
88
style.setBorderRight((short)getStyle());
89
90             ColorCode colorCode = getColor();
91             if (colorCode != null) {
92                 color = (HSSFColor)colorhash.get(colorCode.toString());
93             }
94             if (color == null) {
95                 color = new HSSFColor.BLACK();
96             }
97             style.setRightBorderColor(color.getIndex());
98         }
99
100     }
101
102     /**
103      * @return style as an int from BorderStyle
104      * @exception IOException
105      */

106     public int getStyle() throws IOException JavaDoc {
107         if (_style == null) {
108             _style = NumericConverter.extractInteger(
109                     getValue(_style_attribute), _style_validator);
110         }
111         return _style.intValue();
112     }
113
114     /**
115      * @return color
116      * @exception IOException
117      */

118     public ColorCode getColor() throws IOException JavaDoc {
119         if (!_color_fetched) {
120             String JavaDoc colorString = getValue(_color_attribute);
121             if (colorString != null) {
122                 _color = new ColorCode(colorString);
123             }
124             _color_fetched = true;
125         }
126         return _color;
127     }
128 } // end public class EPRight
129
Popular Tags