package com.Bit4Tat;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
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.Hashtable;
import java.util.StringTokenizer;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
static final String version = "1.0";
static Hashtable<String, String[]> userpass;
public static void main(String[] args)
{
SchedulerGateway simpleScheduler = new DefaultScheduler();
WalletFileIO f = new WalletFileIO("wallet.csv");
f.openReader();
StringTokenizer tokenizer = f.getTokenizer(",");
userpass = new Hashtable<String, String[]>();
String service = "";
String[] account = new String[2];
try {
if (tokenizer.countTokens() == 0) throw (new Exception("empty"));
while (tokenizer.hasMoreTokens())
{
service = tokenizer.nextToken();
if ((service.equals("mtgox")) && (service.equals("tradehill"))) throw (new Exception("unknown service"));
account[0] = tokenizer.nextToken();
account[1] = tokenizer.nextToken();
userpass.put(service,account);
}
}
catch (Exception e) {
if (e.getMessage().equals("empty")) System.err.println("Wallet file is empty!");
else if (e.getMessage().equals("unknown service")) {
System.err.println("Unknown service!");
System.err.println(service);
}
else {
System.err.println(e.getMessage());
System.err.println(e);
}
}
Wallet coinPurse = new Wallet(userpass);
BitFrame frame = new BitFrame(coinPurse);
frame.setTitle("Bit4Tat " + version);
frame.setVisible(true);
}
}
private static final long serialVersionUID = 1L;
private JButton fileMenu;
private JButton optionMenu;
private JButton exchangesMenu;
private JButton helpMenu;
private JButton walletMenu;
private JButton currentButton;
private JPanel currentPanel;
private Container contentPane;
private Hashtable<String, BitPanel> panelList;
panelList = new Hashtable<String, BitPanel>();
panelList.put("File", new FilePanel(w));
panelList.put("Options", new OptionsPanel(w));
panelList.put("Exchanges", new ExchangesPanel(w));
panelList.put("Help", new HelpPanel(w));
panelList.put("Wallet", new WalletPanel(w));
final double FRAME_HEIGHT = 600.0;
final double FRAME_WIDTH = 800.0;
setSize((int)FRAME_WIDTH, (int)FRAME_HEIGHT);
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension screenSize = tk.getScreenSize();
setLocation((int)((screenSize.width - FRAME_WIDTH) / 2),
(int)((screenSize.height - FRAME_HEIGHT) / 2));
setLayout(new BorderLayout());
pack();
currentPanel = panelList.get("File");
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
MenuListener menuListener = new MenuListener();
fileMenu = new JButton("File");
fileMenu.setContentAreaFilled(false);
fileMenu.setBorderPainted(false);
fileMenu.setFocusPainted(false);
menuBar.add(fileMenu);
fileMenu.addActionListener(menuListener);
currentButton = fileMenu;
optionMenu = new JButton("Options");
optionMenu.setContentAreaFilled(false);
optionMenu.setBorderPainted(false);
optionMenu.setFocusPainted(false);
menuBar.add(optionMenu);
optionMenu.addActionListener(menuListener);
exchangesMenu = new JButton("Exchanges");
exchangesMenu.setContentAreaFilled(false);
exchangesMenu.setBorderPainted(false);
exchangesMenu.setFocusPainted(false);
menuBar.add(exchangesMenu);
exchangesMenu.addActionListener(menuListener);
helpMenu = new JButton("Help");
helpMenu.setContentAreaFilled(false);
helpMenu.setBorderPainted(false);
helpMenu.setFocusPainted(false);
menuBar.add(helpMenu);
helpMenu.addActionListener(menuListener);
menuBar.add(Box.createHorizontalGlue());
walletMenu = new JButton("Wallet");
walletMenu.setContentAreaFilled(false);
walletMenu.setBorderPainted(false);
walletMenu.setFocusPainted(false);
menuBar.add(walletMenu);
walletMenu.addActionListener(menuListener);
this.setJMenuBar(menuBar);
contentPane = getContentPane();
contentPane.add(currentPanel);
WindowListener windowListener = new WindowListener();
addWindowListener(windowListener);
}
System.exit(0);
}
}
private class implements ActionListener {
currentButton.setContentAreaFilled(false);
JButton clickedButton = (JButton)event.getSource();
clickedButton.setBackground(Color.LIGHT_GRAY);
clickedButton.setContentAreaFilled(true);
currentButton = clickedButton;
contentPane = getContentPane();
contentPane.remove(currentPanel);
currentPanel = panelList.get(event.getActionCommand());
contentPane.add(currentPanel);
contentPane.validate();
repaint();
}
}
}