package uk.co.patrickhaston.mars;

import uk.co.patrickhaston.pdhsprites.PdhBitmapSprite;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class MarsViewPanel
  extends MPanel
{
  public MarsFrame theFrame = null;
  public MarsView theView = null;
  private MarsNavigator navigator = null;
  private MarsZoomControl zoom = null;
  private MPanel navBar = null;
  
  public MarsViewPanel(MarsFrame frame, int waypointId)
  {
    try
    {
      theFrame = frame;
      theView = new MarsView(frame, waypointId);
      navigator = new MarsNavigator(this, theFrame);
      zoom = new MarsZoomControl(this, theFrame);
      
      this.setLayout(new BorderLayout());
      navBar = new MPanel();
      navBar.setLayout(new GridLayout(2,1));
      navBar.add(zoom);
      navBar.add(navigator);
      this.add(theView, BorderLayout.CENTER);
      this.add(navBar, BorderLayout.EAST);
      setPanelSize(200,200);
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

  public void zoomIn()
  {
    theView.zoomIn();
    theFrame.repaint();
  }

  public void zoomOut()
  {
    theView.zoomOut();
    theFrame.repaint();
  }
  
  public void pan(int direction)
  {
    if(direction == 1) {theView.pan_NorthWest();}
    if(direction == 2) theView.pan_North();
    if(direction == 3) {theView.pan_NorthEast();}
    if(direction == 4) theView.pan_West();
    if(direction == 6) theView.pan_East();   
    if(direction == 7) {theView.pan_SouthWest();}
    if(direction == 8) theView.pan_South();
    if(direction == 9) {theView.pan_SouthEast();}
    theFrame.repaint();
  }

  public void setPanelSize(int w, int h)
  {
    super.setPanelSize(w,h);
    theView.setPreferredSize(new Dimension(w-48,h));
  }
}

