package fr.umlv.uidemo.pizza;

import java.awt.Component;
import java.net.URL;

import javax.swing.*;

/**
 * @author Remi Forax
 *
 */
public class Pizza {
  
  private Icon loadIcon(String name) {
    URL url=getClass().getResource(name);
    return (url==null)?null:new ImageIcon(url);
  }
  
  private Icon[] getPizzaIcons() {
    Icon[] icons=new ImageIcon[7];
    for(int i=0;i<icons.length;i++) {
      icons[i]=loadIcon("pizza"+(i+1)+".jpg");
    }
    return icons;
  }
 
  public JList createList() {
    JList list=new JList(new AbstractListModel() {
      public int getSize() {
        return icons.length;
      }
      
      public Object getElementAt(int index) {
        return "Pizza "+(index+1);
      }
    });
    list.setVisibleRowCount(5);
    list.setCellRenderer(new DefaultListCellRenderer() {
      public Component getListCellRendererComponent(JList list,Object value,int index,
        boolean isSelected,boolean cellHasFocus) {
      
        JLabel label=(JLabel)super.getListCellRendererComponent(list,value,index,
          isSelected,cellHasFocus);
        
        label.setIcon(icons[index]);
        return label;
      }
    });
    return list;
  }

  final Icon[] icons=getPizzaIcons();

  public static void main(String[] args) {
    JFrame frame=new JFrame("Pizza");
    JList list=new Pizza().createList();
    frame.setContentPane(new JScrollPane(list));
    frame.pack();
    frame.show();
  }
}
