/**
 * Title:
 * @version:    $Id: CreateSearchAction.java,v 1.1 2004/11/15 13:47:50 rob Exp $
 * Copyright:   Copyright (C) 2003 Ian Ibbotson
 * @author:     Ian Ibbotson
 * Company:
 * Description:
 */

package com.k_int.AdminApp.gui;

import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import com.k_int.AdminApp.config.ConfigHolder;
import com.k_int.AdminApp.gui.SearchView.SearchController;
import com.k_int.AdminApp.gui.ExplorerView.AdminController;

import java.util.logging.*;

public class CreateSearchAction extends AbstractAction
{
    private static Logger cat = Logger.getLogger("com.k_int.AdminApp.gui.CreateSearchAction");
  private String repository_id = null;
  private String descriptor_id = null;
  private ConfigHolder config;
  private AdminController controller;
  private boolean is_closeable = true;

  public CreateSearchAction(ConfigHolder config, AdminController controller)
  {
    super();
    this.config = config;
    this.controller = controller;
  }

  public void setIsCloseable(boolean is_closeable)
  {
    this.is_closeable = is_closeable;
  }

  public void setName(String name)
  {
    // this.putValue(Action.NAME, AdminMainFrame.getResources().getString(name));
    cat.finest("CreateSearchAction::set name "+name);
    this.putValue(Action.NAME, name);
  }

  public void setShortDescription(String short_description)
  {
    cat.finest("Set short description "+short_description);
    // this.putValue(Action.SHORT_DESCRIPTION, AdminMainFrame.getResources().getString(short_description));
    this.putValue(Action.SHORT_DESCRIPTION, short_description);
  }

  public void setSmallIcon(String resource_id)
  {
    this.putValue(Action.SMALL_ICON, new ImageIcon(resource_id));
  }

  public void setHelp(String help)
  {
    cat.finest("Set help "+help);
    // this.putValue(Action.LONG_DESCRIPTION, AdminMainFrame.getResources().getString(help));
    this.putValue(Action.LONG_DESCRIPTION, help);
  }

  public String getDescriptor()
  {
    return descriptor_id;
  }

  public void setDescriptor(String descriptor_id)
  {
    this.descriptor_id = descriptor_id;
  }

  public String getRepository()
  {
    return repository_id;
  }

  public void setRepository(String repository_id)
  {
    this.repository_id = repository_id;
  }

  public void actionPerformed(ActionEvent evt)
  {
    try
    {
      cat.finest("CreateSearchAction performed");
      SearchController sc = new SearchController(descriptor_id, 
                                                 repository_id, 
                                                 config, 
                                                 this.getValue(AbstractAction.NAME).toString(),
                                                 null,
                                                 controller,
                                                 is_closeable);
      // SearchModel sm = new SearchModel(descriptor_id, repository_id);
      // AdminMainFrame.getTabbedPane().add(this.getValue(AbstractAction.NAME).toString(),new SearchPanel(sm, config));
      // AdminMainFrame.getTabbedPane().add(this.getValue(AbstractAction.NAME).toString(),sc.getView());
      // controller.addComponent(sc, this.getValue(AbstractAction.NAME).toString());
      controller.addComponent(sc);
    }
    catch ( Exception e )
    {
      e.printStackTrace();
    }
  }

}
