import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class MainFrame extends JFrame implements ActionListener {

	//JDesktopPane desktop;

    public MainFrame() {
        //Do frame stuff.
        super("MainFrame");


        int inset = 0;
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds(inset, inset,
                  screenSize.width - inset*2,
                  screenSize.height-inset*2);

        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

		//JFrame jf = new JFrame();
		//desktop = new JDesktopPane(); //a specialized layered pane
		//desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
		//setContentPane(desktop);


        JPanel backPane = new JPanel();
        backPane.setLayout(new BorderLayout());

        Panel panelToolBar = new Panel(new GridLayout(1,1));
        JToolBar jt = new MToolBar(this);
        panelToolBar.add(jt);

        JPanel panelStatusBar = new JPanel(new GridLayout(1,1));
        panelStatusBar.add(new JLabel("Initialised"));

        backPane.add(panelToolBar, BorderLayout.NORTH);
        backPane.add(panelStatusBar, BorderLayout.SOUTH);
        //setContentPane(contentPane);

		JPanel panelCenter = new JPanel();
		//jp.setContentPane(desktop);


		MyInternalFrame frame = new MyInternalFrame();
		frame.setVisible(true);
		panelCenter.add(frame);
		backPane.add(panelCenter,BorderLayout.CENTER);



       //desktop.add(contentPane);

		getContentPane().add(backPane);


		//can be ignored
		JComponent c = (JComponent) frame.getContentPane();
		MNewButton mm = new MNewButton();
		c.add(mm, BorderLayout.NORTH);

		mm.addActionListener(this);
		c.add(new JButton(), BorderLayout.CENTER);

       // JToolBar jt = new MToolBar(this);
        //getContentPane().add(contentPane);
    }

	public void actionPerformed(ActionEvent e) {
		MCommandI cmd;

		cmd = (MCommandI) e.getSource();

		cmd.Execute();
	}

	public static void main(String[] args) {
        MainFrame frame = new MainFrame();
        //frame.pack();
        frame.setVisible(true);
    }
}
