source: java/main/src/main/java/com/framsticks/gui/MainFrame.java @ 193

Last change on this file since 193 was 193, checked in by Maciej Komosinski, 10 years ago

Set svn:eol-style native for all textual files

  • Property svn:eol-style set to native
File size: 2.9 KB
Line 
1package com.framsticks.gui;
2
3import java.awt.event.ActionEvent;
4import java.awt.event.KeyEvent;
5import java.awt.event.WindowAdapter;
6import java.awt.event.WindowEvent;
7
8import javax.swing.AbstractAction;
9import javax.swing.JButton;
10import javax.swing.KeyStroke;
11import javax.swing.WindowConstants;
12
13import org.apache.logging.log4j.Logger;
14import org.apache.logging.log4j.LogManager;
15
16import com.framsticks.util.swing.MenuConstructor;
17
18/**
19 * Application Main Frame.
20 */
21@SuppressWarnings("serial")
22public class MainFrame extends Frame {
23
24        private final static Logger log = LogManager.getLogger(MainFrame.class.getName());
25
26        JButton start, stop, step;
27
28        /**
29         * Builds main frame.
30         */
31        public MainFrame(final Browser browser) {
32                super(browser);
33                setTitle("framsticks");
34                log.debug("creating main frame");
35
36        }
37
38
39        @Override
40        protected void initializeGui() {
41                super.initializeGui();
42
43                new MenuConstructor(fileMenu)
44                        .add(null, new AbstractAction("Console") {
45                                @Override
46                                public void actionPerformed(ActionEvent actionEvent) {
47                                        // showConsoleFrame();
48                                }
49                        })
50                        .add(KeyStroke.getKeyStroke(KeyEvent.VK_G, ActionEvent.CTRL_MASK), new AbstractAction("Goto") {
51                                @Override
52                                public void actionPerformed(ActionEvent actionEvent) {
53                                        // browser.autoResolvePath("/simulator/genepools/groups/0", null);
54                                        // browser.autoResolvePath("/simulator/populations/groups/0", null;
55                                        // browser.autoResolvePath("/simulator/genepools/groups/0/genotypes", null);
56                                        // browser.autoResolvePath("/simulator/populations/groups", null);
57                                }
58                        })
59                        .add(null, new AbstractAction("Disconnect") {
60                                @Override
61                                public void actionPerformed(ActionEvent actionEvent) {
62                                        disconnect();
63                                }
64                        })
65                        .add(null, new AbstractAction("Quit") {
66                                @Override
67                                public void actionPerformed(ActionEvent actionEvent) {
68                                }
69                        })
70                        ;
71
72                setFrameProperties();
73        }
74
75
76        /**
77         * Sets frame properties.
78         */
79        private void setFrameProperties() {
80                assert isActive();
81                getSwing().setMinimumSize(getSwing().getPreferredSize());
82                getSwing().setSize(getSwing().getPreferredSize());
83                getSwing().setMaximumSize(screenDimension);
84                getSwing().setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
85
86                getSwing().setIconImage(ImageProvider.loadImage(ImageProvider.LOGO)
87                                .getImage());
88
89
90                getSwing().addWindowListener(new WindowAdapter() {
91                        public void windowClosing(WindowEvent e) {
92                                assert isActive();
93                                /*
94                                if (connection != null) {
95                                        connection.close();
96                                }
97                                */
98                                onWindowClosing();
99                                getSwing().dispose();
100                        }
101                });
102        }
103
104        /**
105         * Closes connection with manager.
106         */
107        private void disconnect() {
108                assert isActive();
109                browser.clear();
110                onWindowClosing();
111                // statusBar.setText("You are disconnected");
112        }
113
114        /**
115         * Method used while window is closing.
116         */
117        private void onWindowClosing() {
118                assert isActive();
119
120        }
121
122        public void setRunningButtons(boolean running) {
123                assert isActive();
124                step.setEnabled(!running);
125                stop.setEnabled(running);
126                start.setEnabled(!running);
127        }
128
129}
130
Note: See TracBrowser for help on using the repository browser.