1 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 ; 30 import java.util.Hashtable ; 31 32 43 public class EPLeft extends BaseElementProcessor { 44 private NumericResult _style; 45 private ColorCode _color; 46 private boolean _color_fetched; 47 private static final String _style_attribute = "Style"; 48 private static final String _color_attribute = "Color"; 49 private static final Validator _style_validator = new Validator() { 50 public IOException validate(final Number number) { 51 return BorderStyle.isValid(number.intValue()) ? null 52 : new IOException ("\"" + number + "\" is not a legal value"); 53 } 54 }; 55 56 59 public EPLeft() { 60 super(null); 61 _style = null; 62 _color = null; 63 _color_fetched = false; 64 } 65 66 73 public void initialize( 74 final Attribute[] attributes, 75 final ElementProcessor parent) 76 throws IOException { 77 super.initialize(attributes, parent); 78 EPStyle pstyle = (EPStyle)getAncestor(EPStyle.class); 79 if ((pstyle != null) && pstyle.isValid()) { 80 Hashtable colorhash = pstyle.getColorHash(); 81 HSSFColor color = null; 82 83 HSSFCellStyle style = pstyle.getStyle(); 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 108 public int getStyle() throws IOException { 109 if (_style == null) { 110 _style = 111 NumericConverter.extractInteger( 112 getValue(_style_attribute), 113 _style_validator); 114 } 115 return _style.intValue(); 116 } 117 118 122 public ColorCode getColor() throws IOException { 123 if (!_color_fetched) { 124 String colorString = getValue(_color_attribute); 125 if (colorString != null) { 126 _color = new ColorCode(colorString); 127 } 128 _color_fetched = true; 129 } 130 return _color; 131 } 132 } | Popular Tags |