package eu.dnetlib.dlms.swing;

import java.awt.Component;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;

import org.springframework.beans.factory.annotation.Required;

import eu.dnetlib.dlms.swing.menu.MenuBar;


public class DorotyMainFrame extends JFrame {

	private static final long serialVersionUID = -6694362214695058352L;
	private JSplitPane splitPane;
	private JScrollPane mainPanel;
	private JPanel iconPanel;

	
	
	public DorotyMainFrame() {
		super();
	}

	public void init() {
		java.awt.EventQueue.invokeLater(new Runnable() {
			public void run() {
				setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
				setSize(new Dimension(800, 600));
				setVisible(true);
			}
		});
		
		iconPanel = new JPanel();
		mainPanel = new JScrollPane();
		splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, iconPanel, mainPanel);
		splitPane.setOneTouchExpandable(true);
		splitPane.setDividerLocation(150);

		//Provide minimum sizes for the two components in the split pane
		Dimension minimumSize = new Dimension(100, 50);
		iconPanel.setMinimumSize(minimumSize);
		mainPanel.setMinimumSize(minimumSize);
		
		getContentPane().add(splitPane);
	}
		
	public void setContentPage(Component page) {
		if (mainPanel.getColumnHeader() != null) {
			mainPanel.getColumnHeader().removeAll();
		}
		mainPanel.getViewport().removeAll();
		mainPanel.getViewport().add(page);
		validate();
	}
	
	public DorotyMainFrame getFrame() {
		return this;
	}

	@Required
	public void setDorotyMenuBar(MenuBar bar) {
		super.setJMenuBar(bar);
		bar.setDorotyMainFrame(this);
	}

}
