public TrayInteract( Controller ctrl, MainWindow main )
    {
        if (!SystemTray.isSupported()) 
        {
            // Tray not supported !
        	Logger.error("FATAL : Tray system not supported !");
            System.exit(0);
        }
        
        this.ti_image = new ImageIcon("ressources/network.png");
        if( this.ti_image == null)
        {
        	// Cannot find tray image !
        	Logger.error("FATAL : Cannot retrieve Tray Icon !");
        	System.exit(0);
        }
        
    	this.ti_controller 			= ctrl;
    	this.ti_main 				= main;
    	this.ti_trayIcon 			= new TrayIcon( this.ti_image.getImage() );
    	this.ti_tray 				= SystemTray.getSystemTray();
    	
    	this.ti_popup				= new PopupMenu();
    	this.ti_aboutItem 			= new MenuItem("About");
    	this.ti_displayItem			= new MenuItem("Display");
    	this.ti_restartItem         = new MenuItem("Restart");
    	this.ti_exitItem            = new MenuItem("Exit");
    	
    	this.ti_popup.add( this.ti_aboutItem );
    	this.ti_popup.add( this.ti_displayItem );
    	this.ti_popup.add( this.ti_restartItem );
    	this.ti_popup.addSeparator();
    	this.ti_popup.add( this.ti_exitItem );
    	
    	this.ti_trayIcon.setPopupMenu( this.ti_popup );
    	try
    	{
			this.ti_tray.add( this.ti_trayIcon );
		} 
    	catch (AWTException e) 
    	{
			// TODO Auto-generated catch block
    		Logger.exception(e.toString());
			System.exit(0);
		}
    	
    	this.ti_trayIcon.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
            	SwingUtilities.invokeLater( new Runnable() {
            		
            		public void run()
            		{
            			ti_main.showWindow();
            		}
            		
            	});
            	
            }
        });
    	
        this.ti_aboutItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                UserInteract.about();
            }
        });
        
        this.ti_displayItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                
            	ti_main.showWindow();
            	
            }
        });
        
        this.ti_restartItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
            	SwingUtilities.invokeLater( new Runnable() {
            		
            		public void run()
            		{
            			// RESTART METHODS
            			ti_tray.remove( ti_trayIcon );
            			ti_controller.restartAll();
            		}
            		
            	});
            }
        });
        
        this.ti_exitItem.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
            	SwingUtilities.invokeLater( new Runnable() {
            		
            		public void run()
            		{
            			//EXIT METHODS
            			try 
            			{
            				ti_tray.remove( ti_trayIcon );
							ti_controller.turnOff();
							System.exit(0);
						} 
            			catch (InterruptedException e) 
            			{
							// TODO Auto-generated catch block
            				Logger.exception(e.toString());
						}
            		}
            		
            	});
            }
        });
    }