PageRenderTime 35ms CodeModel.GetById 27ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 1ms

/hudson-remoting/src/main/java/hudson/remoting/jnlp/MainMenu.java

http://github.com/hudson/hudson
Java | 68 lines | 27 code | 5 blank | 36 comment | 3 complexity | 121c0591c0b6fad87cabca34e7a860ff MD5 | raw file
 1/*
 2 * The MIT License
 3 * 
 4 * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi
 5 * 
 6 * Permission is hereby granted, free of charge, to any person obtaining a copy
 7 * of this software and associated documentation files (the "Software"), to deal
 8 * in the Software without restriction, including without limitation the rights
 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 * 
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 * 
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 * THE SOFTWARE.
23 */
24package hudson.remoting.jnlp;
25
26import javax.swing.*;
27import java.awt.event.KeyEvent;
28
29/**
30 * Main menu of {@link MainDialog}.
31 *
32 * @author Kohsuke Kawaguchi
33 */
34public final class MainMenu extends JMenuBar {
35    private final MainDialog owner;
36    private JMenu fileMenu;
37
38    MainMenu(MainDialog owner) {
39        this.owner = owner;
40    }
41
42    /**
43     * Obtains the file menu (and creates it if necessary),
44     * so that the caller can add items in this menu.
45     */
46    public JMenu getFileMenu() {
47        if(fileMenu==null) {
48            fileMenu = new JMenu("File");
49            fileMenu.setMnemonic(KeyEvent.VK_F);
50            add(fileMenu,0);
51        }
52        return fileMenu;
53    }
54
55    /**
56     * Reflects the changes made in the menu objects to GUI.
57     */
58    public void commit() {
59        invalidate();
60        repaint();
61        if(getComponentCount()>0) {
62            owner.setJMenuBar(this);
63            // work around for paint problem. see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4949810
64            if(owner.isVisible())
65                owner.setVisible(true);
66        }
67    }
68}