1 14 package org.compiere.report.core; 15 16 import java.awt.*; 17 import javax.swing.*; 18 import javax.swing.table.*; 19 20 import java.math.*; 21 import java.text.*; 22 import java.util.*; 23 24 import org.compiere.util.*; 25 import org.compiere.plaf.*; 26 27 33 class ResultTableCellRenderer extends DefaultTableCellRenderer implements TableCellRenderer 34 { 35 40 public ResultTableCellRenderer(RModel rm, RColumn rc) 41 { 42 m_rm = rm; 43 m_rc = rc; 44 int dt = m_rc.getDisplayType(); 45 if (DisplayType.isNumeric(dt)) 47 { 48 super.setHorizontalAlignment(JLabel.TRAILING); 49 m_nFormat = DisplayType.getNumberFormat(dt); 50 } 51 else if (DisplayType.isDate(m_rc.getDisplayType())) 53 { 54 super.setHorizontalAlignment(JLabel.TRAILING); 55 m_dFormat = DisplayType.getDateFormat(dt); 56 } 57 else if (dt == DisplayType.YesNo) 59 { 60 m_check = new JCheckBox(); 61 m_check.setMargin(new Insets(0,0,0,0)); 62 m_check.setHorizontalAlignment(JLabel.CENTER); 63 } 64 } 66 67 private RModel m_rm = null; 68 69 private RColumn m_rc = null; 70 71 private DecimalFormat m_nFormat = null; 72 73 private SimpleDateFormat m_dFormat = null; 74 75 private JCheckBox m_check; 76 77 78 88 public Component getTableCellRendererComponent(JTable table, Object value, 89 boolean isSelected, boolean hasFocus, int row, int col) 90 { 91 Component c = m_check; 93 if (c == null) c = super.getTableCellRendererComponent(table,value, isSelected,hasFocus, row,col); 95 if (m_rm.isCellEditable(row, col)) 97 c.setBackground(CompierePLAF.getFieldBackground_Normal()); 98 else 99 c.setBackground(CompierePLAF.getFieldBackground_Inactive()); 100 if (m_rm.isGroupRow(row)) 102 c.setFont(c.getFont().deriveFont(Font.BOLD)); 103 setValue (value); 105 return c; 106 } 108 112 protected void setValue (Object value) 113 { 114 if (m_check != null) 116 { 117 boolean sel = false; 118 if (value != null && ((Boolean )value).booleanValue()) 119 sel = true; 120 m_check.setSelected(sel); 121 return; 122 } 123 124 if (value == null) 126 setText(""); 127 else if (m_nFormat != null) 128 try 129 { 130 setText(m_nFormat.format(value)); 131 } 132 catch (Exception e) 133 { 134 setText(value.toString()); 135 } 136 else if (m_dFormat != null) 137 try 138 { 139 setText(m_dFormat.format(value)); 140 } 141 catch (Exception e) 142 { 143 setText(value.toString()); 144 } 145 else 146 setText(value.toString()); 147 } 149 } | Popular Tags |