/*
 * Write by cocobear
 * cocobear.cn@gmail.com
 * http://cocobear.cn
 * 
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class OpenCD 
{
	public static void main(String[] args) {
		ButtonFrame frame = new ButtonFrame();
			}

}

class ButtonFrame extends JFrame
{
	public ButtonFrame() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setResizable(false);
		setLocationRelativeTo(null);
		setLayout(new BorderLayout());
		setTitle("OpenCD -- by cocobear.info);
		setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);

		ButtonPanel panel = new ButtonPanel();
		
		add(panel);
		setVisible(true);
	}
	public static final int DEFAULT_WIDTH = 300;
	public static final int DEFAULT_HEIGHT = 200;

}

class ButtonPanel extends JPanel
{
	public ButtonPanel() {
		int Open = 1;
		int Close = 0;
		int Auto = 2;

		setLayout(new GridBagLayout());
		GridBagConstraints gb = new GridBagConstraints();
		setBackground(Color.lightGray);
		JButton OpenButton = new JButton("OPEN");
		JButton CloseButton = new JButton("CLOSE");
		JButton AutoButton = new JButton("AUTO");
		

		gb.weightx = 3;
		add(OpenButton,gb);
		add(CloseButton,gb);
		add(AutoButton,gb);

		setVisible(true);
		ButtonAction CloseAction = new ButtonAction(Close);
		ButtonAction OpenAction = new ButtonAction(Open);
		ButtonAction AutoAction = new ButtonAction(Auto);

		CloseButton.addActionListener(CloseAction);
		OpenButton.addActionListener(OpenAction);
		AutoButton.addActionListener(AutoAction);

	}

	private class ButtonAction implements ActionListener {
		int ret;
		public ButtonAction(int i) {
			ret = i;	
		}
		
		public void actionPerformed(ActionEvent event) {
			Runtime rn = Runtime.getRuntime();
			if (ret == 1) {
				try {
					Process ps = rn.exec("eject");
					int exitVal = ps.waitFor();
					if (exitVal == 1) {
						System.out.println("What? eject failed!");
					}
				}catch(Exception e) {
					System.out.println("eject not found.\nTry add it into your PATH.");
				}
			}
			if (ret == 0) {
				try {
					Process ps = rn.exec("eject -t");
					int exitVal = ps.waitFor();
					if (exitVal == 1) {

						System.out.println("Oh,sorry,YOUR DEVICE is not supported!");
					}
				}catch(Exception e) {
					System.out.println("eject not found or your device is not support by eject");
				}
			}	
			if (ret == 2) {
				try {
					Process ps = rn.exec("eject -T");
					int exitVal = ps.waitFor();
					if (exitVal == 1) {

						System.out.println("Oh,sorry,YOUR DEVICE is not supported!");
					}
				}catch(Exception e) {
					System.out.println("eject not found.");
				}
			}
		}

	}
}

