Author: vsalaun Date: 2011-05-13 11:03:39 +0200 (Fri, 13 May 2011) New Revision: 3115 Url: http://chorem.org/repositories/revision/lima/3115 Log: #286 ajout du renderer pour mettre en evidence les champs invalides de la ligne Added: trunk/lima-swing/src/main/java/org/chorem/lima/ui/celleditor/EmptyCellRenderer.java Added: trunk/lima-swing/src/main/java/org/chorem/lima/ui/celleditor/EmptyCellRenderer.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/celleditor/EmptyCellRenderer.java (rev 0) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/celleditor/EmptyCellRenderer.java 2011-05-13 09:03:39 UTC (rev 3115) @@ -0,0 +1,61 @@ +package org.chorem.lima.ui.celleditor; + +import java.awt.Color; +import java.awt.Component; + +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.border.Border; +import javax.swing.border.EmptyBorder; +import javax.swing.table.DefaultTableCellRenderer; + +import sun.swing.DefaultLookup; + +@SuppressWarnings("restriction") +public class EmptyCellRenderer extends DefaultTableCellRenderer { + + private static final long serialVersionUID = -7834417406160620726L; + + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) + { + //Create a new JLabel to avoid colouring only when row is selected + JLabel mycell = new JLabel(); + mycell.setOpaque(true); + setBorder(new EmptyBorder(1, 1, 1, 1)); + setName("Table.cellRenderer"); + mycell.setBackground(Color.WHITE); + mycell.setForeground(Color.BLACK); + //Setting default foreGround and backGround colours when isSelected + if (isSelected) { + mycell.setForeground(table.getSelectionForeground()); + mycell.setBackground(table.getSelectionBackground()); + } + //Setting default foreGround and backGround colours when hasFocus + if (hasFocus) { + Border border = null; + if (isSelected) { + border = DefaultLookup.getBorder(this, ui, "Table.focusSelectedCellHighlightBorder"); + } + if (border == null) { + border = DefaultLookup.getBorder(this, ui, "Table.focusCellHighlightBorder"); + } + mycell.setBorder(border); + } + // true for voucher and description + // false for Account Class + // if empty or null, colour background in red + // else setText + if (value instanceof String) { + if (String.valueOf(value).isEmpty() || (String.valueOf(value) == null)) { + mycell.setBackground(new Color(255, 198, 209)); + } else { + mycell.setText(value.toString()); + } + } else { + mycell.setBackground(new Color(255, 198, 209)); + } + return mycell; + } + +}