package gui.create;
import gui.Gui;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.border.EmptyBorder;
import controller.Controller;
@SuppressWarnings("serial")
public class NoWalletFrame extends JFrame {
private JRadioButton createButton;
private JRadioButton recoverButton;
private Gui parent;
public NoWalletFrame(Gui parent) throws Exception
{
super("Qora - No Wallet");
//ICON
List<Image> icons = new ArrayList<Image>();
icons.add(Toolkit.getDefaultToolkit().getImage("images/icons/icon16.png"));
icons.add(Toolkit.getDefaultToolkit().getImage("images/icons/icon32.png"));
icons.add(Toolkit.getDefaultToolkit().getImage("images/icons/icon64.png"));
icons.add(Toolkit.getDefaultToolkit().getImage("images/icons/icon128.png"));
this.setIconImages(icons);
//PARENT
this.parent = parent;
//LAYOUT
this.setLayout(new GridBagLayout());
//PADDING
((JComponent) this.getContentPane()).setBorder(new EmptyBorder(5, 5, 5, 5));
//LABEL GBC
GridBagConstraints labelGBC = new GridBagConstraints();
labelGBC.insets = new Insets(5,5,5,5);
labelGBC.fill = GridBagConstraints.HORIZONTAL;
labelGBC.anchor = GridBagConstraints.NORTHWEST;
labelGBC.weightx = 1;
labelGBC.gridwidth = 2;
labelGBC.gridx = 0;
//OPTIONS GBC
GridBagConstraints optionsGBC = new GridBagConstraints();
//optionsGBC.insets = new Insets(5,5,5,5);
optionsGBC.fill = GridBagConstraints.NONE;
optionsGBC.anchor = GridBagConstraints.NORTHWEST;
optionsGBC.weightx = 1;
optionsGBC.gridwidth = 2;
optionsGBC.gridx = 0;
optionsGBC.gridy = 2;
//BUTTON GBC
GridBagConstraints buttonGBC = new GridBagConstraints();
buttonGBC.insets = new Insets(5,5,0,5);
buttonGBC.fill = GridBagConstraints.NONE;
buttonGBC.anchor = GridBagConstraints.NORTHWEST;
buttonGBC.gridwidth = 1;
buttonGBC.gridx = 0;
//LABEL
labelGBC.gridy = 0;
JLabel label1 = new JLabel("No existing wallet was found.");
this.add(label1, labelGBC);
//LABEL
labelGBC.gridy = 1;
JLabel label2 = new JLabel("What would you like to do?");
this.add(label2, labelGBC);
//ADD OPTIONS
this.createButton = new JRadioButton("Create a new wallet.");
this.add(this.createButton, optionsGBC);
optionsGBC.gridy = 3;
this.recoverButton = new JRadioButton("Recover a wallet using an existing seed");
this.add(this.recoverButton, optionsGBC);
ButtonGroup group = new ButtonGroup();
group.add(this.createButton);
group.add(this.recoverButton);
//BUTTON NEXT
buttonGBC.gridy = 4;
JButton nextButton = new JButton("Next");
nextButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
onNextClick();
}
});
nextButton.setPreferredSize(new Dimension(80, 25));
this.add(nextButton, buttonGBC);
//BUTTON CANCEL
buttonGBC.gridx = 1;
buttonGBC.gridy = 4;
JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
onCancelClick();
}
});
cancelButton.setPreferredSize(new Dimension(80, 25));
this.add(cancelButton, buttonGBC);
//CLOSE NICELY
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
Controller.getInstance().stopAll();
System.exit(0);
}
});
//CALCULATE HEIGHT WIDTH
this.pack();
this.setSize(500, this.getHeight());
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public void onNextClick()
{
if(createButton.isSelected())
{
//OPEN CREATE WALLET FRAME
this.setVisible(false);
new CreateWalletFrame(this);
}
if(recoverButton.isSelected())
{
//OPEN RECOVER WALLET FRAME
this.setVisible(false);
new RecoverWalletFrame(this);
}
}
public void onCancelClick()
{
this.parent.onCancelCreateWallet();
this.dispose();
}
public void onWalletCreated()
{
this.parent.onWalletCreated();
this.dispose();
}
}