package org.pokenet.client.ui.base;
import mdes.slick.sui.Button;
import mdes.slick.sui.Container;
import mdes.slick.sui.Frame;
import mdes.slick.sui.Label;
import mdes.slick.sui.event.ActionListener;
import org.pokenet.client.GameClient;
/**
* Confirmation Dialog
* @author ZombieBear
*
*/
public class ConfirmationDialog extends Frame{
private Button m_yesBtn, m_noBtn;
/**
* Default Constructor
* @param text
*/
public ConfirmationDialog(String text){
super("Awaiting confirmation");
getContentPane().setX(getContentPane().getX() - 1);
getContentPane().setY(getContentPane().getY() + 1);
Container m_label = new Container();
String[] m_lines = text.split("\n");
int maxWidth = 0;
int maxHeight = 0;
for (String s : m_lines) {
Label line = new Label(s);
line.pack();
int lineWidth = (int)line.getWidth();
int lineHeight = (int)line.getHeight();
if (lineWidth > maxWidth)
maxWidth = lineWidth;
line.setY(maxHeight);
maxHeight += lineHeight;
m_label.add(line);
}
m_label.setSize(maxWidth, maxHeight);
m_yesBtn = new Button();
m_noBtn = new Button();
m_yesBtn.setText("Yes");
m_yesBtn.setSize(50, 25);
m_yesBtn.setY(m_label.getY() + m_label.getHeight() + 20);
m_noBtn.setText("No");
m_noBtn.setSize(50, 25);
m_noBtn.setY(m_yesBtn.getY());
getContentPane().add(m_label);
getContentPane().add(m_yesBtn);
getContentPane().add(m_noBtn);
m_label.setLocation(5, 15);
this.setResizable(false);
this.setSize(m_label.getWidth() + 10, m_label.getHeight() + 80);
m_yesBtn.setX((getWidth() / 2) - (105 / 2));
m_noBtn.setX(m_yesBtn.getX() + 55);
setCenter();
this.setVisible(true);
GameClient.getInstance().getDisplay().add(this);
this.setAlwaysOnTop(true);
}
/**
* Constructor
* @param text
* @param yes
* @param no
*/
public ConfirmationDialog(String text, ActionListener yes, ActionListener no){
this(text);
addYesListener(yes);
addNoListener(no);
}
/**
* Sets the Yes action
*/
public void addYesListener(ActionListener yes){
m_yesBtn.addActionListener(yes);
}
/**
* Sets the No action
*/
public void addNoListener(ActionListener no){
m_noBtn.addActionListener(no);
}
/**
* Centers the frame
*/
public void setCenter() {
int height = (int) GameClient.getInstance().getDisplay().getHeight();
int width = (int) GameClient.getInstance().getDisplay().getWidth();
int x = (width / 2) - ((int)this.getWidth() / 2);
int y = (height / 2) - ((int)this.getHeight() / 2);
this.setLocation(x, y);
}
}