/*
 * ConfigurationMenu.java
 *
 * Copyright 2013 John W Dawson
 *
 * This code is distributed under the terms of the GNU General Public License, version 3
 *
 * This class implements the configuration menu
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ConfigurationMenu extends JMenu implements ActionListener
{
  private AddressBookConfiguration configuration;
  private JMenuItem directoryItem = new JMenuItem ("Directory");
  private JMenuItem providersItem = new JMenuItem ("Providers");
  private JMenuItem extensionsItem = new JMenuItem ("Extensions");
  private LdapConnection connection;
  private ExtensionSelector extensionSelector;
  private JFrame mainWindow;
  
  public ConfigurationMenu ()
  {
    super ("Configure");
  }
  
  public void initialise (AddressBookConfiguration configuration, LdapConnection connection, 
                          JFrame mainWindow, ExtensionSelector extensionSelector)
  {
  
    this.configuration = configuration;
    this.connection = connection;
    this.mainWindow = mainWindow;
    this.extensionSelector = extensionSelector;

    // Add commands to menu    
    directoryItem.addActionListener (this);
    add (directoryItem);
    providersItem.addActionListener (this);
    add (providersItem);
    extensionsItem.addActionListener (this);
    add (extensionsItem);
    
  }
  
  public void actionPerformed (ActionEvent e)
  {
    
    if (e.getSource() == directoryItem)
    {
      // Display directory configuration form
      new DirectoryConfigurationForm (configuration, connection, mainWindow);
    }
    else if (e.getSource() == providersItem)
    {
      // Display providers list form
      new ProviderListForm (configuration, mainWindow, extensionSelector);
    }
    else if (e.getSource() == extensionsItem)
    {
      // Display extensions list form
      new ExtensionListForm (configuration, mainWindow, extensionSelector);
    }
  }
}	