f9b86534b770aea1db2e207aabe9d6d0fbee50e3
[sixth-3d-demos.git] / src / main / java / eu / svjatoslav / sixth / e3d / examples / launcher / MenuPanel.java
1 /*
2  * Sixth - System for data storage, computation, exploration and interaction.
3  * Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
4  * 
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of version 3 of the GNU Lesser General Public License
7  * or later as published by the Free Software Foundation.
8  */
9
10 package eu.svjatoslav.sixth.e3d.examples.launcher;
11
12 import eu.svjatoslav.sixth.e3d.examples.*;
13
14 import javax.swing.*;
15 import javax.swing.GroupLayout.Alignment;
16 import javax.swing.LayoutStyle.ComponentPlacement;
17 import java.awt.event.ActionEvent;
18 import java.io.IOException;
19
20 class MenuPanel extends JPanel {
21     private static final long serialVersionUID = 2012721856427052560L;
22
23     public MenuPanel() {
24
25         final JLabel lblNewLabel = new JLabel("Choose an example to launch.");
26
27         final JButton btnNewButton = new JButton("Demo 1");
28         btnNewButton.addActionListener(e -> {
29         });
30         Action action = new SwingAction();
31         btnNewButton.setAction(action);
32
33         final JButton btnNewButton_1 = new JButton("Demo 2");
34         Action action_1 = new SwingAction_1();
35         btnNewButton_1.setAction(action_1);
36
37         final JButton button = new JButton("New button");
38         Action action_2 = new SwingAction_2();
39         button.setAction(action_2);
40
41         final JButton btnNewButton_2 = new JButton("New button");
42         Action action_3 = new SwingAction_3();
43         btnNewButton_2.setAction(action_3);
44
45         final JButton btnNewButton_3 = new JButton("New button");
46         Action action_4 = new SwingAction_4();
47         btnNewButton_3.setAction(action_4);
48
49         final JButton btnNewButton_4 = new JButton("New button");
50         Action action_5 = new SwingAction_5();
51         btnNewButton_4.setAction(action_5);
52         final GroupLayout groupLayout = new GroupLayout(this);
53         groupLayout
54                 .setHorizontalGroup(groupLayout
55                         .createParallelGroup(Alignment.LEADING)
56                         .addGroup(
57                                 groupLayout
58                                         .createSequentialGroup()
59                                         .addContainerGap()
60                                         .addGroup(
61                                                 groupLayout
62                                                         .createParallelGroup(
63                                                                 Alignment.LEADING)
64                                                         .addGroup(
65                                                                 Alignment.TRAILING,
66                                                                 groupLayout
67                                                                         .createSequentialGroup()
68                                                                         .addComponent(
69                                                                                 lblNewLabel,
70                                                                                 GroupLayout.PREFERRED_SIZE,
71                                                                                 426,
72                                                                                 GroupLayout.PREFERRED_SIZE)
73                                                                         .addContainerGap(
74                                                                                 GroupLayout.DEFAULT_SIZE,
75                                                                                 Short.MAX_VALUE))
76                                                         .addGroup(
77                                                                 Alignment.TRAILING,
78                                                                 groupLayout
79                                                                         .createSequentialGroup()
80                                                                         .addGroup(
81                                                                                 groupLayout
82                                                                                         .createParallelGroup(
83                                                                                                 Alignment.TRAILING)
84                                                                                         .addComponent(
85                                                                                                 btnNewButton_4,
86                                                                                                 Alignment.LEADING,
87                                                                                                 GroupLayout.DEFAULT_SIZE,
88                                                                                                 331,
89                                                                                                 Short.MAX_VALUE)
90                                                                                         .addComponent(
91                                                                                                 btnNewButton_3,
92                                                                                                 Alignment.LEADING,
93                                                                                                 GroupLayout.DEFAULT_SIZE,
94                                                                                                 331,
95                                                                                                 Short.MAX_VALUE)
96                                                                                         .addComponent(
97                                                                                                 btnNewButton_2,
98                                                                                                 Alignment.LEADING,
99                                                                                                 GroupLayout.DEFAULT_SIZE,
100                                                                                                 331,
101                                                                                                 Short.MAX_VALUE)
102                                                                                         .addComponent(
103                                                                                                 button,
104                                                                                                 Alignment.LEADING,
105                                                                                                 GroupLayout.DEFAULT_SIZE,
106                                                                                                 331,
107                                                                                                 Short.MAX_VALUE)
108                                                                                         .addComponent(
109                                                                                                 btnNewButton_1,
110                                                                                                 Alignment.LEADING,
111                                                                                                 GroupLayout.DEFAULT_SIZE,
112                                                                                                 GroupLayout.DEFAULT_SIZE,
113                                                                                                 Short.MAX_VALUE)
114                                                                                         .addComponent(
115                                                                                                 btnNewButton,
116                                                                                                 GroupLayout.DEFAULT_SIZE,
117                                                                                                 331,
118                                                                                                 Short.MAX_VALUE))
119                                                                         .addGap(107)))));
120         groupLayout.setVerticalGroup(groupLayout.createParallelGroup(
121                 Alignment.LEADING).addGroup(
122                 groupLayout
123                         .createSequentialGroup()
124                         .addGap(7)
125                         .addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE,
126                                 58, GroupLayout.PREFERRED_SIZE)
127                         .addPreferredGap(ComponentPlacement.RELATED)
128                         .addComponent(btnNewButton)
129                         .addPreferredGap(ComponentPlacement.RELATED)
130                         .addComponent(btnNewButton_1)
131                         .addPreferredGap(ComponentPlacement.RELATED)
132                         .addComponent(button)
133                         .addPreferredGap(ComponentPlacement.RELATED)
134                         .addComponent(btnNewButton_2)
135                         .addPreferredGap(ComponentPlacement.RELATED)
136                         .addComponent(btnNewButton_3)
137                         .addPreferredGap(ComponentPlacement.RELATED)
138                         .addComponent(btnNewButton_4)
139                         .addContainerGap(137, Short.MAX_VALUE)));
140         setLayout(groupLayout);
141
142     }
143
144     private class SwingAction extends AbstractAction {
145         private static final long serialVersionUID = 5197962166765841015L;
146
147         public SwingAction() {
148             putValue(NAME, "Text editors");
149             putValue(SHORT_DESCRIPTION, "Some short description");
150         }
151
152         @Override
153         public void actionPerformed(final ActionEvent e) {
154             TextEditorDemo.main(null);
155         }
156     }
157
158     private class SwingAction_1 extends AbstractAction {
159         private static final long serialVersionUID = -896479509963403828L;
160
161         public SwingAction_1() {
162             putValue(NAME, "Wireframe sphere and ploygon landscape");
163             putValue(SHORT_DESCRIPTION, "Some short description");
164         }
165
166         @Override
167         public void actionPerformed(final ActionEvent e) {
168             SphereDemo.main(null);
169
170         }
171     }
172
173     private class SwingAction_2 extends AbstractAction {
174         private static final long serialVersionUID = 8566009849873897321L;
175
176         public SwingAction_2() {
177             putValue(NAME, "Raining numbers");
178             putValue(SHORT_DESCRIPTION, "Some short description");
179         }
180
181         @Override
182         public void actionPerformed(final ActionEvent e) {
183             try {
184                 RainingNumbersDemo.main(null);
185             } catch (final IOException e1) {
186                 e1.printStackTrace();
187             }
188         }
189     }
190
191     private class SwingAction_3 extends AbstractAction {
192         private static final long serialVersionUID = -5369105936409884389L;
193
194         public SwingAction_3() {
195             putValue(NAME, "Pointcloud galaxy");
196             putValue(SHORT_DESCRIPTION, "Some short description");
197         }
198
199         @Override
200         public void actionPerformed(final ActionEvent e) {
201             PointCloudDemo.main(null);
202         }
203     }
204
205     private class SwingAction_4 extends AbstractAction {
206         private static final long serialVersionUID = -8486796142555764460L;
207
208         public SwingAction_4() {
209             putValue(NAME, "Mathematical graphs");
210             putValue(SHORT_DESCRIPTION, "Some short description");
211         }
212
213         @Override
214         public void actionPerformed(final ActionEvent e) {
215             try {
216                 GraphDemo.main(null);
217             } catch (final IOException e1) {
218                 e1.printStackTrace();
219             }
220         }
221     }
222
223     private class SwingAction_5 extends AbstractAction {
224         private static final long serialVersionUID = -6210703594848004946L;
225
226         public SwingAction_5() {
227             putValue(NAME, "Volumetric Octree");
228             putValue(SHORT_DESCRIPTION, "Some short description");
229         }
230
231         @Override
232         public void actionPerformed(final ActionEvent e) {
233             try {
234                 OctreeDemo.main(null);
235             } catch (final IOException e1) {
236                 e1.printStackTrace();
237             }
238         }
239     }
240 }