/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.gui.model;
import net.codjo.model.TableRecordingMode;
import java.awt.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JTable;
import javax.swing.ListCellRenderer;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
/**
* Renderer permettant d'afficher le libell� du mode d'archivage d'une table au lieu de
* son ID
*
* @author $Author: acharif $
* @version $Revision: 1.3 $
*
*
*/
public class TableRecordingModeRenderer implements ListCellRenderer, TableCellRenderer {
private DefaultListCellRenderer listCellRenderer = new DefaultListCellRenderer();
private DefaultTableCellRenderer tableCellRenderer = new DefaultTableCellRenderer();
private Map traductTable;
/**
* Constructor for the TableRecordingModeRenderer object
*/
public TableRecordingModeRenderer() {
fillTraductTable();
tableCellRenderer.setHorizontalAlignment(JLabel.CENTER);
//listCellRenderer.setHorizontalAlignment(JLabel.CENTER);
}
/**
* Gets the ListCellRendererComponent attribute of the TableRecordingModeRenderer
* object
*
* @param list Description of Parameter
* @param value Description of Parameter
* @param index Description of Parameter
* @param isSelected Description of Parameter
* @param cellHasFocus Description of Parameter
*
* @return The ListCellRendererComponent value
*/
public Component getListCellRendererComponent(JList list, Object value, int index,
boolean isSelected, boolean cellHasFocus) {
return listCellRenderer.getListCellRendererComponent(list, translateValue(value),
index, isSelected, cellHasFocus);
}
/**
* Gets the TableCellRendererComponent attribute of the TableRecordingModeRenderer
* object
*
* @param table Description of Parameter
* @param value Description of Parameter
* @param isSelected Description of Parameter
* @param hasFocus Description of Parameter
* @param row Description of Parameter
* @param column Description of Parameter
*
* @return The TableCellRendererComponent value
*/
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
return tableCellRenderer.getTableCellRendererComponent(table,
translateValue(value), isSelected, hasFocus, row, column);
}
/**
* Gets the AllRecordingMode attribute of the TableRecordingModeRenderer object
*
* @return The AllRecordingMode value
*/
public List getAllRecordingMode() {
List theList = new ArrayList();
theList.add(new Integer(TableRecordingMode.NONE));
theList.add(new Integer(TableRecordingMode.BY_PERIOD));
theList.add(new Integer(TableRecordingMode.BY_PERIOD_AND_PORTFOLIOGROUP));
theList.add(new Integer(TableRecordingMode.BY_PORTFOLIOGROUP));
return theList;
}
/**
* Traduit la valeur
*
* @param value La nouvelle valeur choisie
*
* @return La valeur � afficher
*/
public String translateValue(Object value) {
if (value == null) {
return "";
}
else if (traductTable.containsKey(value)) {
return (String)traductTable.get(value);
}
else {
return "? " + value + " ?";
}
}
/**
* Remplissage de la table de traduction
*/
private void fillTraductTable() {
traductTable = new HashMap();
traductTable.put(new Integer(TableRecordingMode.NONE), "Aucune");
traductTable.put(new Integer(TableRecordingMode.BY_PERIOD), "P�riode");
traductTable.put(new Integer(TableRecordingMode.BY_PERIOD_AND_PORTFOLIOGROUP),
"P�riode et ptf");
traductTable.put(new Integer(TableRecordingMode.BY_PORTFOLIOGROUP), "Ptf");
}
}