package uk.co.patrickhaston.mars;
import javax.swing.JPanel;
import javax.swing.JList;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JComboBox;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JScrollPane;
import java.awt.Dimension;

public class MarsInfoPanel extends JPanel 
{
  // Contents
  MarsFrame theFrame = null;
  
  JComboBox listCategory = new JComboBox();
  JButton displayButton = new JButton();
  JScrollPane listScrollPanel = new JScrollPane();
  MList infoList = new MList();

  public MarsInfoPanel(MarsFrame frame)
  {
    try
    {
      theFrame = frame;
      jbInit();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

  }

  private void jbInit() throws Exception
  {
    this.setLayout(null);
    this.setPreferredSize(new Dimension(400, 250));
    listCategory.setBounds(new Rectangle(20, 10, 250, 20));
    displayButton.setText("Display");
    displayButton.setBounds(new Rectangle(290, 10, 80, 25));
    displayButton.addActionListener(new ActionListener()
      {
        public void actionPerformed(ActionEvent e)
        {
          displayButton_actionPerformed(e);
        }
      });
    listScrollPanel.setBounds(new Rectangle(20, 40, 355, 215));
    listScrollPanel.getViewport().add(infoList, null);
    this.add(listScrollPanel, null);
    this.add(displayButton, null);
    this.add(listCategory, null);

    listCategory.addItem("Settlements");
    listCategory.addItem("People");
    listCategory.addItem("Activities");
    listCategory.addItem("Constructions");
    listCategory.addItem("ConstructionTypes");
    listCategory.addItem("Messages");
    listCategory.addItem("Roles");
    listCategory.addItem("Goals");
    listCategory.addItem("My Statements");
    listCategory.addItem("Activity Types");
    listCategory.addItem("Waypoints");
    listCategory.addItem("Game Resources");
    listCategory.addItem("Plan Types");
    listCategory.addItem("Plans");
    listCategory.addItem("Researchable Technologies");    
  }

  void displayButton_actionPerformed(ActionEvent e)
  {
    if(listCategory.getSelectedItem() == "Settlements")
    {
      infoList.setListData(theFrame.mars.Settlements);    
    }
    if(listCategory.getSelectedItem() == "People")
    {
      infoList.setListData(theFrame.mars.People);    
    }
    if(listCategory.getSelectedItem() == "Activities")
    {
      infoList.setListData(theFrame.mars.Activities);    
    }
    if(listCategory.getSelectedItem() == "Constructions")
    {
      infoList.setListData(theFrame.mars.Constructions);    
    }
    if(listCategory.getSelectedItem() == "ConstructionTypes")
    {
      infoList.setListData(theFrame.mars.ConstructionTypes);    
    }
    if(listCategory.getSelectedItem() == "Messages")
    {
      infoList.setListData(theFrame.mars.Messages);    
    }
    if(listCategory.getSelectedItem() == "Roles")
    {
      infoList.setListData(theFrame.mars.Roles);    
    }
    if(listCategory.getSelectedItem() == "Goals")
    {
      infoList.setListData(theFrame.mars.Goals);    
    }
    if(listCategory.getSelectedItem() == "My Statements")
    {
      infoList.setListData(theFrame.mars.MyStatements);    
    }
    if(listCategory.getSelectedItem() == "Activity Types")
    {
      infoList.setListData(theFrame.mars.ActivityTypes);    
    }
    if(listCategory.getSelectedItem() == "Waypoints")
    {
      infoList.setListData(theFrame.mars.Waypoints);    
    }
    if(listCategory.getSelectedItem() == "Game Resources")
    {
      infoList.setListData(theFrame.mars.gameResources);    
    }
    if(listCategory.getSelectedItem() == "Plan Types")
    {
      infoList.setListData(theFrame.mars.PlanTypes);    
    }
    if(listCategory.getSelectedItem() == "Plans")
    {
      infoList.setListData(theFrame.mars.Plans);    
    }
    if(listCategory.getSelectedItem() == "Researchable Technologies")
    {
      infoList.setListData(theFrame.mars.Technologies.researchableTechnologies());    
    }
  }


}
