
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JTextPane;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JTabbedPane;
import java.awt.Panel;
import java.awt.Dimension;
import java.awt.Color;
import javax.swing.JLabel;
import javax.swing.JList;
import java.awt.ScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.JButton;
import java.awt.Button;
import java.awt.GridLayout;
import java.awt.Container;
public class Jcontact extends JPanel
{
	private JPanel jContentPanel;//All
	private JSplitPane jSplit,leftJspilt;
	private JPanel JPanelcontacts,jpanelinfo;//left panel
	private JPanel upjPanel;//up panel in left side
	private Panel Jpanelsession; //downpanel in left side
	private JPanel rightJpanel;
	private JScrollPane jScrollcontact,Jscrollinfo;//in left panel
	private ScrollPane jScrollsession;//in right panel
	private JList jlistcontact,jlistinfo;// in Scroll of left panel
	private JTabbedPane tabs,tabinfo;
	private JLabel labelname,labelcontact;
	
	
	public Jcontact()
{
String labelscon[] = { "A", "B", "C", "D","E", "F", "G", "H","I", "J" ,"k","L","M","N","O","P","Q","R","S","T","V","U","W","X","Y","Z"};
jlistcontact = new JList(labelscon);
jlistinfo= new JList();
setJContentPanel();
setJPanelcontacts();
setJpanelinfo();
setJpanelsession();
setjScrollcontact();
setJscrollinfo();
setJScrollsession();
setJSplit();
setlabelcon();
setlabelname();
setleftJspilt();
setrightJpanel();
settab();
settabinfo();
setupJPanel();

//setModel(Tablesession);
add(getJContentPanel());
        	//setBorder(BorderFactory.createTitledBorder("online"));
        	//add(panelall);

  //panelall.setPreferredSize(new Dimension(200, 400));
    // panelall.setBorder(BorderFactory.createLineBorder (Color.blue, 2));
setSize(500,500);
//setLocationRelativeTo(null);
//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//setResizable(true);
setVisible(true);
}
public void setJContentPanel()// bet3 kola
	{
		if(jContentPanel == null)

		{	jContentPanel = new JPanel();
			jContentPanel.setLayout(new BorderLayout());
			jContentPanel.add(getJSplit(), BorderLayout.CENTER);
		}
	
	}
public JPanel getJContentPanel()
{
	return jContentPanel;
}
public void  setJSplit()
	{
			if(jSplit == null)

		{

			jSplit = new JSplitPane();
			jSplit.setOneTouchExpandable(true);// arrows 4 left & right
			jSplit.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
			jSplit.setLeftComponent(getleftJspilt());
			jSplit.setRightComponent(getrightJpanel());
			jSplit.setDividerSize(10);// da thickness
			jSplit.setDividerLocation(getSize().width/3);
			jSplit.setResizeWeight(1);
	}
		
	}
public	JSplitPane getJSplit()
{
	return jSplit;
}

public void  setleftJspilt()
	{
			if(leftJspilt== null)

		{
		leftJspilt=new JSplitPane();
		leftJspilt.setOneTouchExpandable(true);
		leftJspilt.setOrientation(JSplitPane.VERTICAL_SPLIT);
		leftJspilt.setTopComponent(gettabinfo());
		leftJspilt.setBottomComponent(gettab());
		leftJspilt.setDividerSize(10);// da thickness
	    leftJspilt.setDividerLocation(getSize().width/3);
		leftJspilt.setResizeWeight(1);
		}	

	}
public JSplitPane getleftJspilt()
{
	return leftJspilt;
}
	public void setJPanelcontacts()
	{
		if(JPanelcontacts== null)

		{
			JPanelcontacts = new JPanel();
			JPanelcontacts.setLayout(new BorderLayout());
	        JPanelcontacts.add(jlistcontact);
		}
	
	}
	public JPanel getJPanelcontacts()
	{	
		return JPanelcontacts;
	}
	
	
		public void  setJpanelsession()
		{
				if(Jpanelsession== null)

		{
			Jpanelsession =new Panel(new GridLayout (1, 1));
			Jpanelsession.setBackground(Color.gray);
			Jpanelsession.add(getJScrollsession(),BorderLayout.CENTER);
			for (int j=0;j<5;j++)
            Jpanelsession.add (new Button ("Button-" + j));
		}
		}
		public Panel getJpanelsession()
		{
			
		   return Jpanelsession;	
		}
	public  void  setrightJpanel()
		{
	if(rightJpanel== null)
		{
		rightJpanel=new JPanel();
		rightJpanel.setLayout(new BorderLayout());
		rightJpanel.add(getupJPanel(),BorderLayout.NORTH);
		rightJpanel.add(getJScrollsession(),BorderLayout.CENTER);
		}
		}
	public 	JPanel getrightJpanel()
	{
		return rightJpanel;
	}
	
public void  setupJPanel()
	{

					if(upjPanel == null)

		{
			upjPanel = new JPanel();
			upjPanel.setLayout(new BorderLayout());
            upjPanel.add(getlabelcon(),BorderLayout.EAST);
		    upjPanel.add(getlabelname(),BorderLayout.WEST);

		}
	
	}
public 	JPanel getupJPanel()
{
		return upjPanel;
}
public void  setJpanelinfo()
	{
						if(jpanelinfo== null)

		{
		jpanelinfo= new JPanel();
		jpanelinfo.setLayout(new BorderLayout());
		jpanelinfo.add(jlistinfo);
		}
	
	}
	public JPanel getJpanelinfo()
	{
			return jpanelinfo;
	}
	
public void   setjScrollcontact()
	{

					if(jScrollcontact== null)

		{
			jScrollcontact = new JScrollPane();
			jScrollcontact.setViewportView(getJPanelcontacts());
		}
	
	}
	public JScrollPane getjScrollcontact()
	{
			return jScrollcontact;
	}
public void  setJscrollinfo()
	{
						if(Jscrollinfo== null)

		{
		Jscrollinfo =new JScrollPane();
	    Jscrollinfo.setViewportView(getJpanelinfo());
		}
	}
public 	JScrollPane getJscrollinfo()
{
	    return Jscrollinfo;
}

public void  setJScrollsession()

{
	if( jScrollsession == null)

		{
     jScrollsession = new ScrollPane();
     jScrollsession.add (getJpanelsession());
     //jScrollsession.setPreferredSize(new Dimension(315,500));

 //jScrollsession.setLayout(null);
		}

	}
public 	ScrollPane getJScrollsession()
{
     return jScrollsession;	
}
public void  setlabelname()
	{
	if( labelname == null)

		{
		labelname=new JLabel("                        Name");

		labelname.setForeground(Color.blue);
		}
	}
	
public 	JLabel getlabelname()
{
	return labelname;
}
public void  setlabelcon()
	{
		if( labelcontact == null)

		{
		labelcontact=new JLabel("User                    ");

		labelcontact.setForeground(Color.blue);
		}
	}
	public JLabel getlabelcon()
	{
	 return labelcontact;	
	}
	
public  void  settab()
{
	if( tabs  == null)

		{	
tabs = new JTabbedPane();
tabs.addTab("Contacts",getjScrollcontact());
		}
}
public  JTabbedPane gettab()
{
return tabs;	
}
public void  settabinfo()
{
	if(tabinfo  == null)

		{
	tabinfo=new JTabbedPane();
	tabinfo.addTab("User info",getJscrollinfo());
		}
	}
public	JTabbedPane gettabinfo()
{
		return tabinfo;
}

public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
 Jcontact f=new Jcontact();
 f.setJContentPanel();



//f.setLocation(700,600);
JFrame ff=new JFrame();
ff.add(f.getJContentPanel());
ff.setSize(600,600);
ff.setLocationRelativeTo(null);
ff.setResizable(true);
ff.setVisible(true);

//ff.setLocation(100, 100);
ff.pack();
//ff.getContentPane().setLayout(new BorderLayout());
//ff.getContentPane().add(f, BorderLayout.CENTER);



}
}