package vooga.rts.leveleditor.gui;
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Vector;
import javax.swing.JList;
import javax.swing.JPanel;
/** This class create the layer panel for the level editor
* The layer panel shows how many layers are now on the map
* and the current player the editor are editting
*
* @author Ziqiang Huang
*
*/
@SuppressWarnings("serial")
public class LayerPanel extends JPanel {
private Canvas myCanvas;
private JList myLayers;
private Vector<String> myLayerVector;
public LayerPanel (Canvas canvas) {
myCanvas = canvas;
myLayerVector = new Vector<String>();
myLayers = new JList(myLayerVector);
myLayerVector.add("Layer 0");
myLayers.setListData(myLayerVector);
addListSelectionListener(myLayers);
add(myLayers,BorderLayout.WEST);
}
private void addListSelectionListener(JList list) {
list.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked (MouseEvent e) {
String s = (String) myLayers.getSelectedValue();
int n = Integer.parseInt(s.substring(s.length()-1));
myCanvas.getMapPanel().setCurrentLayer(n);
}
});
}
/** add layer to the map based on the number
*
* @param layerNum
*/
public void addLayer (int layerNum) {
myLayerVector.add("Layer " + layerNum);
myLayers.setListData(myLayerVector);
}
/**remove the layer from the map based on the number
*
* @param layerNum
*/
public void removeLayer (int layerNum) {
if(layerNum>0) {
myLayerVector.remove("Layer " + layerNum);
myLayers.setListData(myLayerVector);
}
}
/**
* clear all the layers
*/
public void clear() {
myLayerVector.clear();
myLayerVector.add("Layer 0");
myLayers.setListData(myLayerVector);
}
}