package ge.edu.freeuni.sdp.snake.view.swing;
import ge.edu.freeuni.sdp.snake.presenter.LevelPresenter;
import ge.edu.freeuni.sdp.snake.view.LevelView;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
public class SwingLevelView extends JDialog implements LevelView{
private static final long serialVersionUID = -4256335333476990417L;
private LevelPresenter _presenter;
public SwingLevelView(LevelPresenter presenter, JFrame parent) {
super(parent);
_presenter = presenter;
init();
}
private void init() {
setModal(true);
setLayout(new GridLayout(8,8,8,8));
String[] names = _presenter.getLevelNames();
JButton okButton = new JButton();
okButton.setText("Start Game");
okButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
setVisible(false);
}
});
ButtonGroup group = new ButtonGroup();
ActionListener radioButtonListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg) {
int selection = Integer.parseInt(arg.getActionCommand());
_presenter.setSelection(selection);
}
};
for (int i = 0; i < names.length; i++) {
JRadioButton levelButton = new JRadioButton();
levelButton.setText(String.format("%d) %s", i+1,names[i]));
levelButton.addActionListener(radioButtonListener);
levelButton.setActionCommand(Integer.toString(i));
group.add(levelButton);
add(levelButton);
if (i==0) {
levelButton.setSelected(true);
_presenter.setSelection(0);
}
}
add(okButton);
this.pack();
center();
}
public void center() {
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
setLocation(
dim.width/2-getSize().width/2,
dim.height/2-getSize().height/2);
}
@Override
public void showDescription(String description) {
}
}