package uk.co.patrickhaston.mars;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class MarsGlobePanel extends MPanel 
{
  private MarsFrame theFrame = null;
  private MarsMap theMap = null;

  public MarsGlobePanel(MarsMapPanel mapPanel, MarsFrame frame)
  {
    theFrame = frame;
    theMap = new MarsMap(mapPanel, theFrame);
    theMap.setPreferredSize(new Dimension(100, 100));
    theMap.showWaypointsFlag = false;
    theMap.setScale(200000);
    theMap.setName("Globe");

    addMouseListener();
    
    add(theMap);
  }
  
  private void addMouseListener()
  {
    // Add mouse listener for the map
    MouseListener mapMouseListener = new MouseAdapter() 
    {
      public void mouseClicked(MouseEvent e) 
      {
        if (e.getClickCount() == 1) 
        {
          LatLong loc = theMap.viewToWorld(e.getPoint());
          if (loc != null)
          {
            theFrame.map.goTo(loc);
            goTo(loc);
            theFrame.repaint();
          }
        }
      }
    };
    theMap.addMouseListener(mapMouseListener);
  }

  public void panNorth()
  {
    theMap.panNorth();
  }

  public void panSouth()
  {
    theMap.panSouth();
  }

  public void panEast()
  {
    theMap.panEast();
  }

  public void panWest()
  {
    theMap.panWest();
  }
  
  public void goTo(LatLong loc)
  {
    if(loc != null)
    {
      theMap.viewpoint = loc;
    }
  }
  
}
