package com.blubi.branchmaster;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URISyntaxException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingConstants;
import external.com.centerkey.utils.BareBonesBrowserLaunch;
public abstract class GUI {
public static void main(String[] args) throws URISyntaxException {
GUI gui = new GUI() {public void stopButtonEvent() {System.out.println("STOP!");};};
JFrame frame = gui.drawAll();
frame.setVisible(true);
}
public JFrame drawAll() {
JFrame frame = new JFrame("BranchMaster Server");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 300);
Container container = frame.getContentPane();
container.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.insets = new Insets(2, 2, 2, 2);
container.add(linkButton(),gbc);
gbc.gridy++;
gbc.gridy++;
gbc.gridy++;
container.add(stopButton(),gbc);
return frame;
}
private JButton linkButton() {
final String url = "http://localhost:"+CustomHTTPD.port+"/BranchMaster.html";
class OpenUrlAction implements ActionListener {
@Override public void actionPerformed(ActionEvent e) {
BareBonesBrowserLaunch.openURL(url);
}
}
JButton button = new JButton();
button.setText("<HTML>Launching browser for: <FONT color=\"#000099\"><U>"+url+"</U></FONT>"
+ "</HTML>");
button.setHorizontalAlignment(SwingConstants.LEFT);
button.setBorderPainted(false);
button.setOpaque(false);
button.setBackground(Color.WHITE);
button.setToolTipText(url);
button.addActionListener(new OpenUrlAction());
return button;
}
private JButton stopButton() {
class StopAction implements ActionListener {
@Override public void actionPerformed(ActionEvent e) {
stopButtonEvent();
}
}
JButton button = new JButton("Stop Server");
button.addActionListener(new StopAction());
return button;
}
public abstract void stopButtonEvent();
}