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

Last change on this file since 102 was 102, checked in by psniegowski, 11 years ago

HIGHLIGHTS:

for Joinables running

CHANGELOG:
Add WorkPackageLogic? and classes representing prime experiment state.

Add classes for PrimeExperiment? state.

Extract single netload routine in Simulator.

Working netload with dummy content in PrimeExperiment?.

More development with NetLoadSaveLogic? and PrimeExperiment?.

Improvement around prime.

Improve BufferedDispatcher?.isActive logic.

Add prime-all.xml configuration.

Manual connecting to existing simulators from GUI.

Guard in SimulatorConnector? against expdef mismatch.

Guard against empty target dispatcher in BufferedDispatcher?.

Make BufferedDispatcher? a Dispatcher (and Joinable).

Minor improvements.

Done StackedJoinable?, improve Experiment.

Develop StackedJoinable?.

Add StackedJoinable? utility joinables controller.

Add dependency on apache-commons-lang.

Add ready ListChange? on Simulators.

Improve hints in ListChange?.

Several improvements.

Found bug with dispatching in Experiment.

Minor improvements.

Fix bug with early finishing Server.

Many changes in Dispatching.

Fix bug with connection.

Do not obfuscate log with socket related exceptions.

Add SocketClosedException?.

Add SimulatorConnector?.

Work out conception of experiment composing of logics building blocks.

Rename SinkInterface? to Sink.

Move saving of Accesses into AccessOperations?.

Some improvements to Experiment.

Improve joinables.

Fix issue with joinables closing.

Add direct and managed consoles to popup menu.

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.