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 EPRight 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 EPRight() { 60 super(null); 61 _style = null; 62 _color = null; 63 _color_fetched = false; 64 } 65 66 73 public void initialize(final Attribute[] attributes, 74 final ElementProcessor parent) throws IOException { 75 super.initialize(attributes, parent); 76 EPStyle pstyle = (EPStyle)getAncestor(EPStyle.class); 77 if (pstyle != null && pstyle.isValid()) { 78 Hashtable colorhash = pstyle.getColorHash(); 79 HSSFColor color = null; 80 81 HSSFCellStyle style = pstyle.getStyle(); 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 106 public int getStyle() throws IOException { 107 if (_style == null) { 108 _style = NumericConverter.extractInteger( 109 getValue(_style_attribute), _style_validator); 110 } 111 return _style.intValue(); 112 } 113 114 118 public ColorCode getColor() throws IOException { 119 if (!_color_fetched) { 120 String colorString = getValue(_color_attribute); 121 if (colorString != null) { 122 _color = new ColorCode(colorString); 123 } 124 _color_fetched = true; 125 } 126 return _color; 127 } 128 } | Popular Tags |