KickJava   Java API By Example, From Geeks To Geeks.

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


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 "Left" 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: EPLeft.java 30932 2004-07-29 17:35:38Z vgritsenko $
42  */

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

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

122     public ColorCode getColor() throws IOException JavaDoc {
123         if (!_color_fetched) {
124             String JavaDoc colorString = getValue(_color_attribute);
125             if (colorString != null) {
126                 _color = new ColorCode(colorString);
127             }
128             _color_fetched = true;
129         }
130         return _color;
131     }
132 } // end public class EPLeft
133
Popular Tags