package osa;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
 * Класс используется для создания окна, в который помещается панель со
 * вкладками в случае, если пользователь активизировал нижний компонент и
 * хочет задействовать все главное окно для работы с ним, однако информация на
 * вкладках должна быть под рукой.
*/
public class TopFrame extends JFrame
{ private MainFrame tfMainFrame;
  public  JPanel contentPane;
  /**
   * Конструктор класса.
   * @param pMainFrame указатель на родительское окно. Из родительского окна
   * используется иконка приложения, указатель нужен также и потому что окно
   * - модальное.
  */
  public TopFrame(MainFrame pMainFrame)
  { tfMainFrame = pMainFrame;
    try {
      enableEvents(AWTEvent.WINDOW_EVENT_MASK);
      super.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

      Dimension sSize = Toolkit.getDefaultToolkit().getScreenSize();
      setLocation(sSize.width>>>4,sSize.height>>>4);
      setSize((sSize.width*14)>>>4,(sSize.height*14)>>>4);
      setIconImage(Toolkit.getDefaultToolkit().createImage(TopFrame.class.getResource("osa.gif")));
      setTitle("Info Window - New Project");
      contentPane = (JPanel)getContentPane();
      contentPane.setLayout(new BorderLayout());
      validate(); hide();
    } catch(Exception e) {}
  }
  /**
   * Функция обрабатывает события, происходящие с окном. Точнее интерес
   * представляет только закрытие окна, когда освобождаются некоторые ресурсы с
   * проверяется корректность введенного ключевого слова.
   * @param e объект, в котором хранятся данные о событии.
  */
  protected void processWindowEvent(WindowEvent e)
  { if(e.getID()==WindowEvent.WINDOW_CLOSING)
    { if(tfMainFrame.isBottomComponentActive)
      { tfMainFrame.ShowTop=false; tfMainFrame.TopHide(); }
      super.processWindowEvent(e);
    } else super.processWindowEvent(e); }
}
