/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package feuille.drawing.renderer;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.SystemColor;
import javax.swing.JList;
import javax.swing.SwingConstants;
import feuille.drawing.lib.Point;
import feuille.drawing.lib.Remember;
/**
*
* @author The Wingate 2940
*/
public class RememberRenderer extends javax.swing.JLabel
implements javax.swing.ListCellRenderer {
public RememberRenderer(){
setPreferredSize(new Dimension(getWidth(), 28));
setOpaque(true);
}
@Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
if(value instanceof Remember){
Remember re = (Remember)value;
if(re.isActive()){
setText("<html><b><i>"+re.getName());
}else{
setText("<html><i>"+re.getName());
}
setHorizontalAlignment(SwingConstants.CENTER);
if(isSelected==true){
setBackground(SystemColor.controlHighlight);
}else{
//On sait que :
// Line = Point + Line
// Bézier = Point + Bézier + Control point + Control point
// BSpline = Point + BSpline
// ReStart = ReStart
// Move = Move
if(re.getShape() instanceof Point){
try{
Remember nr = (Remember)list.getModel().getElementAt(index+1);
setBackground(re.getColorShape(nr.getShape()));
}catch(ArrayIndexOutOfBoundsException e){
setBackground(re.getColorShape());
}
}else{
setBackground(re.getColorShape());
}
}
}
return this;
}
}