package toritools.leveleditor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* This frame lets teh user control what depths are visible and what the current
* depth is.
*
* @author toriscope
*
*/
@SuppressWarnings("serial")
public class LayerEditor extends JPanel {
private JCheckBox[] layerBoxes;
private int currentLayer = 0;
private final int MAXLAYER = 5;
public LayerEditor(final LevelEditor editor) {
setBorder(BorderFactory.createRaisedBevelBorder());
ActionListener action = new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
editor.repaint();
}
};
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
Integer[] layers = new Integer[MAXLAYER];
for (int i = 0; i < MAXLAYER; i++)
layers[i] = i;
JComboBox combo = new JComboBox(layers);
combo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
currentLayer = (Integer) ((JComboBox) e.getSource())
.getSelectedItem();
}
});
combo.setToolTipText("Editing Layer");
add(combo);
add(new JLabel("Visible Layers"));
layerBoxes = new JCheckBox[MAXLAYER];
for (int i = 0; i < MAXLAYER; i++) {
layerBoxes[i] = new JCheckBox("Layer " + i, i == 0);
layerBoxes[i].addActionListener(action);
add(layerBoxes[i]);
}
}
public boolean isLayerVisible(final int layer) {
if (layer < 0 || layer >= MAXLAYER)
return false;
else
return layerBoxes[layer].isSelected();
}
public void setLayerVisibility(final int layer, final boolean visibility) {
if (layer < 0 || layer >= MAXLAYER)
return;
else
layerBoxes[layer].setSelected(visibility);
}
public int getCurrentLayer() {
return currentLayer;
}
public void clear() {
for (int i = 0; i < MAXLAYER; i++) {
layerBoxes[i].setSelected(i == 0);
}
}
}