1 18 package org.apache.beehive.netui.databinding.datagrid.api.rendering; 19 20 import java.util.ArrayList ; 21 import java.util.Iterator ; 22 import javax.servlet.jsp.JspException ; 23 24 import org.apache.beehive.netui.tags.html.FormatTag.Formatter; 25 import org.apache.beehive.netui.util.logging.Logger; 26 import org.apache.beehive.netui.util.Bundle; 27 28 34 public class CellModel { 35 36 private static final Logger LOGGER = Logger.getInstance(CellModel.class); 37 38 private DataGridTagModel _dataGridTagModel; 39 private ArrayList _formatters; 40 41 48 public DataGridTagModel getDataGridTagModel() { 49 return _dataGridTagModel; 50 } 51 52 57 public void setDataGridTagModel(DataGridTagModel dataGridTagModel) { 58 _dataGridTagModel = dataGridTagModel; 59 } 60 61 69 public void addFormatter(Formatter formatter) { 70 if(_formatters == null) 71 _formatters = new ArrayList (); 72 73 _formatters.add(formatter); 74 } 75 76 85 public String formatText(Object value) { 86 if(value == null) 87 return null; 88 89 if(_formatters == null) 90 return value.toString(); 91 92 Object formatted = value; 93 for(int i = 0; i < _formatters.size(); i++) { 94 assert _formatters.get(i) instanceof Formatter : 95 "Found invalid formatter type \"" + 96 (_formatters.get(i) != null ? _formatters.get(i).getClass().getName() : "null") + "\""; 97 98 Formatter formatter = (Formatter)_formatters.get(i); 99 assert formatter != null; 100 try { 101 formatted = formatter.format(formatted); 102 } 103 catch(JspException e) { 104 105 LOGGER.error(Bundle.getErrorString("CellModel_FormatterThrewException", new Object []{formatter.getClass().getName(), e}), e); 106 } 107 } 108 109 assert formatted != null; 110 return formatted.toString(); 111 } 112 } 113 | Popular Tags |