public class ReplayViewer extends JFrame
{
private final String current_version = "0.2"; //Current version
private static final long serialVersionUID = -8625710221171276676L;
private final JButton jbLoadReplays =
new JButton("Load replays...");
private final JButton jbDownloadReplays =
new JButton("Download selected replays...");
private final JButton jbCheckUpdate =
new JButton("Check for updates");
private ReplayTableModel model;
private final JButton jbOpenWarcraftDir =
new JButton("Open Warcraft directory");
private DefaultListModel statusList = new DefaultListModel();
private ConfigWriter config = new ConfigWriter("settings.cfg");
private Version update;
/**
* @param args
*/
public static void main(String[] args) throws Exception
{
new ReplayViewer();
}
@SuppressWarnings("serial")
public ReplayViewer()
{
//Window settings
setSize(800, 600);
setTitle("Replay Viewer V." + current_version);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//// Tabs
JTabbedPane tabs = new JTabbedPane();
setContentPane(tabs);
JPanel replayView = new JPanel(new BorderLayout());
tabs.addTab("Replays", replayView);
tabs.addTab("Settings", new ConfigGUI(config));
//// Header buttons
JPanel header = new JPanel(new GridLayout(0, 2));
// Open replay directory, check for updates
//final JButton jbOpenWarcraftDir = new JButton("Open Warcraft directory");
header.add(jbOpenWarcraftDir);
header.add(jbCheckUpdate);
// Load and Download
header.add(jbLoadReplays);
header.add(jbDownloadReplays);
// Filter
final JButton jbFilter = new JButton("Filter replays");
final JTextField jtFilter = new JTextField();
KeyListener kl = new KeyListener()
{
@Override
public void keyPressed(KeyEvent e) {}
@Override
public void keyReleased(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_ENTER)
{
loadReplays(jtFilter.getText());
}
}
@Override
public void keyTyped(KeyEvent e)
{
}
};
jtFilter.addKeyListener(kl);
header.add(jtFilter);
header.add(jbFilter);
replayView.add(header, BorderLayout.NORTH);
//Actionlistener
ActionListener al = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("Load replays..."))
{
loadReplays();
}
else if(e.getActionCommand().equals("Download selected replays..."))
{
downloadReplays();
}
else if(e.getActionCommand().equals("Filter replays"))
{
loadReplays(jtFilter.getText());
}
else if(e.getActionCommand().equals("Open Warcraft directory"))
{
try
{
Desktop.getDesktop().open(new File(config.getValue("warcraft3_path")));
}
catch(Exception ex){};
}
else if(e.getActionCommand().equals("Check for updates"))
{
checkForUpdates();
}
else if(e.getActionCommand().equals("Download update"))
{
downloadUpdate();
}
}
};
//Add listeners to the buttons
jbLoadReplays.addActionListener(al);
jbDownloadReplays.addActionListener(al);
jbFilter.addActionListener(al);
jbCheckUpdate.addActionListener(al);
jbOpenWarcraftDir.addActionListener(al);