Changed license to CC0
[instantlauncher.git] / src / main / java / eu / svjatoslav / instantlauncher / MainFrame.java
1 /*
2  * Instantlauncher. Author: Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
3  * This project is released under Creative Commons Zero (CC0) license.
4  */
5 package eu.svjatoslav.instantlauncher;
6
7 import eu.svjatoslav.instantlauncher.menu.MultiLevelMenu;
8
9 import javax.swing.*;
10 import java.awt.*;
11 import java.awt.event.WindowEvent;
12 import java.awt.event.WindowListener;
13
14 class MainFrame {
15
16     private final InstantLauncher instantLauncher;
17     private JFrame frame;
18     private boolean isShowing;
19
20     public MainFrame(final InstantLauncher instantLauncher) {
21         this.instantLauncher = instantLauncher;
22     }
23
24     private void buildContentPane() {
25
26         final MultiLevelMenu multiLevelMenu = new MultiLevelMenu(instantLauncher);
27         frame.getContentPane().add(multiLevelMenu.buildContentPanel(), BorderLayout.CENTER);
28
29     }
30
31     public void show() {
32
33         if (!isShowing) {
34             // initialize frame
35             frame = new JFrame("InstantLauncher");
36
37             buildContentPane();
38
39             // registor window listener
40             final FrameWindowListener windowListener = new FrameWindowListener();
41             frame.addWindowListener(windowListener);
42
43             // maximize window
44             frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
45             frame.setVisible(true);
46
47             isShowing = true;
48         }
49
50     }
51
52     private static class FrameWindowListener implements WindowListener {
53
54         @Override
55         public void windowActivated(final WindowEvent e) {
56         }
57
58         @Override
59         public void windowClosed(final WindowEvent e) {
60         }
61
62         @Override
63         public void windowClosing(final WindowEvent e) {
64             InstantLauncher.exitProgram();
65         }
66
67         @Override
68         public void windowDeactivated(final WindowEvent e) {
69         }
70
71         @Override
72         public void windowDeiconified(final WindowEvent e) {
73         }
74
75         @Override
76         public void windowIconified(final WindowEvent e) {
77         }
78
79         @Override
80         public void windowOpened(final WindowEvent e) {
81         }
82
83     }
84
85 }