package paintgui;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JToolBar;

public class PaintGUI extends JFrame {

	int width = 500;
	int height = 500;
	JToolBar toolbar;
	JButton rectBtn;
	JButton lineBtn;
	PaintPanel panel;
	Tool activeTool = null;

	public PaintGUI() {
		setPreferredSize(new Dimension(width, height));
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		addControls();
		center();
		pack();
	}

	private void addControls() {
		toolbar = new JToolBar();
		lineBtn = new JButton("line");
		lineBtn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				if (activeTool != null)
					panel.removeMouseListener(activeTool);
				activeTool = new ToolLine(panel);
				panel.addMouseListener(activeTool);
			}
		});
		rectBtn = new JButton("rect");
		rectBtn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				if (activeTool != null)
					panel.removeMouseListener(activeTool);
				activeTool = new ToolRect(panel);
				panel.addMouseListener(activeTool);
			}
		});
		toolbar.add(lineBtn);
		toolbar.add(rectBtn);
		setLayout(new BorderLayout());
		add(toolbar, BorderLayout.NORTH);
		panel = new PaintPanel();
		add(panel, BorderLayout.CENTER);
	}

	private void center() {
		Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
		setLocation(new Point((int) (dim.getWidth() - width) / 2,
				(int) (dim.getHeight() - height) / 2));
	}

	public static void main(String[] args) {
		PaintGUI gui = new PaintGUI();
		// loadFS(new File("/"));
	}
}
