package open.dolphin.impl.lbtest; import java.awt.Color; import java.awt.Component; import javax.swing.JTable; import open.dolphin.infomodel.LabTestRowObject; import open.dolphin.infomodel.LabTestValueObject; import open.dolphin.table.StripeTableCellRenderer; /** * * @author Kazushi Minagawa, Digital Globe, Inc * @author modified by masuda, Masuda Naika */ public class LabTestRenderer extends StripeTableCellRenderer { private Color penCol; public LabTestRenderer() { setOpaque(true); setBackground(Color.white); setHorizontalAlignment(LEFT); setVerticalAlignment(CENTER); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); //------------------------------------------------------- if (value != null) { LabTestRowObject rowObj = (LabTestRowObject) value; ////masuda^ 検体名の場合 // String specimenName = rowObj.getSpecimenName(); // if (specimenName != null) { // setText(specimenName); // setBackground(specimenColor); // setForeground(Color.BLACK); // return this; // } ////masuda$ // if (column == 0) { // テスト項目名(単位)を表示する penCol = Color.black; //masuda^ 項目名は選択すると白抜きにする if (!isSelected) { setForeground(penCol); } //masuda$ setText(rowObj.nameWithUnit()); String toolTip = rowObj.getNormalValue() != null ? rowObj.getNormalValue() : ""; setToolTipText(toolTip); } else { // column-1番目の値オブジェクトwp取り出す LabTestValueObject valueObj = rowObj.getLabTestValueObjectAt(column -1); String text = valueObj != null ? valueObj.getValue() : ""; String flag = valueObj != null ? valueObj.getOut() : null; String toolTip = valueObj != null ? valueObj.concatComment() : ""; if (flag != null && flag.startsWith("H")) { penCol = Color.RED; } else if (flag != null && flag.startsWith("L")) { penCol = Color.BLUE; } else if (toolTip!= null && (!toolTip.equals(""))) { penCol = Color.MAGENTA; } else { penCol = Color.black; } setForeground(penCol); setText(text); setToolTipText(toolTip); } } else { penCol = Color.black; setForeground(penCol); setText(""); setToolTipText(""); } //------------------------------------------------------- return this; } }