package com.drawbridge.utils;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Insets;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class BackgroundSelector extends JPanel
{
private static final long serialVersionUID = 2508763575828692733L;
private final static Dimension panelSize = new Dimension(200, 300);
private final static Dimension thumbSize = new Dimension(50, 50);
private final static int gridWidth = 3;
private final static int gridHeight = 4;
private JLabel [] [] images;
public BackgroundSelector(final BackgroundSelectorListener listener){
this.setSize(panelSize);
this.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
images = new JLabel[gridWidth][gridHeight];
c.insets = new Insets(2, 2, 2, 2);
//Load in 12 images from backgrounds folder
for(int i = 0; i < images.length; i++){
for(int j = 0; j < images[i].length; j++){
final int fileIndex = (gridHeight * i) + j + 1;
c.gridx = i;
c.gridy = j;
BufferedImage img = GraphicUtils.loadImageFromResource("/Backgrounds/" + fileIndex + ".jpg");
Image dimg = img.getScaledInstance(thumbSize.width, thumbSize.height, Image.SCALE_SMOOTH);
images[i][j] = new JLabel(new ImageIcon(dimg));
this.add(images[i][j], c);
Utils.out.println(getClass(), "doing image:" + fileIndex + " from:" + i + ", " + j);
images[i][j].addMouseListener(new MouseAdapter(){
@Override
public void mousePressed(MouseEvent e)
{
if(listener != null)
listener.onBackgroundChangeRequest("/Backgrounds/" + fileIndex + ".jpg");
}
});
}
}
}
public interface BackgroundSelectorListener{
public void onBackgroundChangeRequest(String relativeLocation);
}
}