76cca43c35fc692fe0461e0404787424e0a5c96a
[scilab.git] / scilab / modules / commons / src / java / org / scilab / modules / commons / gui / ScilabGUIUtilities.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2011 - Calixte DENIZET
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 package org.scilab.modules.commons.gui;
17
18 import java.awt.event.WindowEvent;
19 import java.awt.event.WindowFocusListener;
20
21 import javax.swing.JFrame;
22 import javax.swing.SwingUtilities;
23
24 /**
25  * GUI utilities
26  * @author Calixte DENIZET
27  */
28 public class ScilabGUIUtilities {
29
30     /**
31      * Bring a window to the front
32      * @param window the window to bring to the front
33      */
34     public static void toFront(final JFrame window) {
35         WindowFocusListener listener = new WindowFocusListener() {
36
37             public void windowGainedFocus(WindowEvent e) {
38                 window.setAlwaysOnTop(true);
39             }
40
41             public void windowLostFocus(WindowEvent e) {
42                 window.setAlwaysOnTop(false);
43                 window.removeWindowFocusListener(this);
44             }
45         };
46         window.addWindowFocusListener(listener);
47         window.toFront();
48         SwingUtilities.invokeLater(new Runnable() {
49             public void run() {
50                 window.requestFocus();
51             }
52         });
53     }
54 }