2 * Sixth 3D engine demos. Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of version 3 of the GNU Lesser General Public License
6 * or later as published by the Free Software Foundation.
9 package eu.svjatoslav.sixth.e3d.examples.launcher;
11 import eu.svjatoslav.sixth.e3d.examples.*;
14 import javax.swing.GroupLayout.Alignment;
15 import javax.swing.LayoutStyle.ComponentPlacement;
16 import java.awt.event.ActionEvent;
17 import java.io.IOException;
19 class MenuPanel extends JPanel {
20 private static final long serialVersionUID = 2012721856427052560L;
24 final JLabel chooseExample = new JLabel("Choose an example to launch.");
26 final JButton showTextEditors = new JButton(new ShowTextEditors());
27 final JButton showSinusMap = new JButton(new ShowSinusMap());
28 final JButton showRain = new JButton(new ShowRain());
29 final JButton showPointCloud = new JButton(new ShowPointcloud());
30 final JButton showMathGraphs = new JButton(new ShowMathGraphs());
31 final JButton showOctree = new JButton(new ShowOctree());
33 final GroupLayout groupLayout = new GroupLayout(this);
35 .setHorizontalGroup(groupLayout
36 .createParallelGroup(Alignment.LEADING)
39 .createSequentialGroup()
48 .createSequentialGroup()
51 GroupLayout.PREFERRED_SIZE,
53 GroupLayout.PREFERRED_SIZE)
55 GroupLayout.DEFAULT_SIZE,
60 .createSequentialGroup()
68 GroupLayout.DEFAULT_SIZE,
74 GroupLayout.DEFAULT_SIZE,
80 GroupLayout.DEFAULT_SIZE,
86 GroupLayout.DEFAULT_SIZE,
92 GroupLayout.DEFAULT_SIZE,
93 GroupLayout.DEFAULT_SIZE,
97 GroupLayout.DEFAULT_SIZE,
101 groupLayout.setVerticalGroup(groupLayout.createParallelGroup(
102 Alignment.LEADING).addGroup(
104 .createSequentialGroup()
106 .addComponent(chooseExample, GroupLayout.PREFERRED_SIZE,
107 58, GroupLayout.PREFERRED_SIZE)
108 .addPreferredGap(ComponentPlacement.RELATED)
109 .addComponent(showTextEditors)
110 .addPreferredGap(ComponentPlacement.RELATED)
111 .addComponent(showSinusMap)
112 .addPreferredGap(ComponentPlacement.RELATED)
113 .addComponent(showRain)
114 .addPreferredGap(ComponentPlacement.RELATED)
115 .addComponent(showPointCloud)
116 .addPreferredGap(ComponentPlacement.RELATED)
117 .addComponent(showMathGraphs)
118 .addPreferredGap(ComponentPlacement.RELATED)
119 .addComponent(showOctree)
120 .addContainerGap(137, Short.MAX_VALUE)));
121 setLayout(groupLayout);
125 private class ShowTextEditors extends AbstractAction {
126 private static final long serialVersionUID = 5197962166765841015L;
128 public ShowTextEditors() {
129 putValue(NAME, "Text editors");
133 public void actionPerformed(final ActionEvent e) {
134 TextEditorDemo.main(null);
138 private class ShowSinusMap extends AbstractAction {
139 private static final long serialVersionUID = -896479509963403828L;
141 public ShowSinusMap() {
142 putValue(NAME, "Wireframe sphere and ploygon landscape");
146 public void actionPerformed(final ActionEvent e) {
147 SphereDemo.main(null);
151 private class ShowRain extends AbstractAction {
152 private static final long serialVersionUID = 8566009849873897321L;
155 putValue(NAME, "Raining numbers");
159 public void actionPerformed(final ActionEvent e) {
161 RainingNumbersDemo.main(null);
162 } catch (final IOException e1) {
163 e1.printStackTrace();
168 private class ShowPointcloud extends AbstractAction {
169 private static final long serialVersionUID = -5369105936409884389L;
171 public ShowPointcloud() {
172 putValue(NAME, "Pointcloud galaxy");
176 public void actionPerformed(final ActionEvent e) {
177 PointCloudDemo.main(null);
181 private class ShowMathGraphs extends AbstractAction {
182 private static final long serialVersionUID = -8486796142555764460L;
184 public ShowMathGraphs() {
185 putValue(NAME, "Mathematical graphs");
189 public void actionPerformed(final ActionEvent e) {
191 GraphDemo.main(null);
192 } catch (final IOException e1) {
193 e1.printStackTrace();
198 private class ShowOctree extends AbstractAction {
199 private static final long serialVersionUID = -6210703594848004946L;
201 public ShowOctree() {
202 putValue(NAME, "Volumetric Octree");
206 public void actionPerformed(final ActionEvent e) {
208 OctreeDemo.main(null);
209 } catch (final IOException e1) {
210 e1.printStackTrace();