Code refactoring
[sixth-3d-demos.git] / src / main / java / eu / svjatoslav / sixth / e3d / examples / launcher / MenuPanel.java
index 1f868b9..0a60798 100644 (file)
 /*
- * Sixth 3D engine demos. Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ * Sixth 3D engine demos. Author: Svjatoslav Agejenko. 
+ * This project is released under Creative Commons Zero (CC0) license.
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 3 of the GNU Lesser General Public License
- * or later as published by the Free Software Foundation.
- */
+*/
 
 package eu.svjatoslav.sixth.e3d.examples.launcher;
 
 import eu.svjatoslav.sixth.e3d.examples.*;
 
 import javax.swing.*;
-import javax.swing.GroupLayout.Alignment;
-import javax.swing.LayoutStyle.ComponentPlacement;
 import java.awt.event.ActionEvent;
-import java.io.IOException;
 
 class MenuPanel extends JPanel {
     private static final long serialVersionUID = 2012721856427052560L;
 
-    public MenuPanel() {
-
-        final JLabel chooseExample = new JLabel("Choose an example to launch.");
-
-        final JButton showTextEditors = new JButton(new ShowTextEditors());
-        final JButton showSinusMap = new JButton(new ShowSinusMap());
-        final JButton showRain = new JButton(new ShowRain());
-        final JButton showPointCloud = new JButton(new ShowPointcloud());
-        final JButton showMathGraphs = new JButton(new ShowMathGraphs());
-        final JButton showOctree = new JButton(new ShowOctree());
-
+    MenuPanel() {
         final GroupLayout groupLayout = new GroupLayout(this);
-        groupLayout
-                .setHorizontalGroup(groupLayout
-                        .createParallelGroup(Alignment.LEADING)
-                        .addGroup(
-                                groupLayout
-                                        .createSequentialGroup()
-                                        .addContainerGap()
-                                        .addGroup(
-                                                groupLayout
-                                                        .createParallelGroup(
-                                                                Alignment.LEADING)
-                                                        .addGroup(
-                                                                Alignment.TRAILING,
-                                                                groupLayout
-                                                                        .createSequentialGroup()
-                                                                        .addComponent(
-                                                                                chooseExample,
-                                                                                GroupLayout.PREFERRED_SIZE,
-                                                                                426,
-                                                                                GroupLayout.PREFERRED_SIZE)
-                                                                        .addContainerGap(
-                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                Short.MAX_VALUE))
-                                                        .addGroup(
-                                                                Alignment.TRAILING,
-                                                                groupLayout
-                                                                        .createSequentialGroup()
-                                                                        .addGroup(
-                                                                                groupLayout
-                                                                                        .createParallelGroup(
-                                                                                                Alignment.TRAILING)
-                                                                                        .addComponent(
-                                                                                                showOctree,
-                                                                                                Alignment.LEADING,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                331,
-                                                                                                Short.MAX_VALUE)
-                                                                                        .addComponent(
-                                                                                                showMathGraphs,
-                                                                                                Alignment.LEADING,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                331,
-                                                                                                Short.MAX_VALUE)
-                                                                                        .addComponent(
-                                                                                                showPointCloud,
-                                                                                                Alignment.LEADING,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                331,
-                                                                                                Short.MAX_VALUE)
-                                                                                        .addComponent(
-                                                                                                showRain,
-                                                                                                Alignment.LEADING,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                331,
-                                                                                                Short.MAX_VALUE)
-                                                                                        .addComponent(
-                                                                                                showSinusMap,
-                                                                                                Alignment.LEADING,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                Short.MAX_VALUE)
-                                                                                        .addComponent(
-                                                                                                showTextEditors,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                331,
-                                                                                                Short.MAX_VALUE))
-                                                                        .addGap(107)))));
-        groupLayout.setVerticalGroup(groupLayout.createParallelGroup(
-                Alignment.LEADING).addGroup(
-                groupLayout
-                        .createSequentialGroup()
-                        .addGap(7)
-                        .addComponent(chooseExample, GroupLayout.PREFERRED_SIZE,
-                                58, GroupLayout.PREFERRED_SIZE)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(showTextEditors)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(showSinusMap)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(showRain)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(showPointCloud)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(showMathGraphs)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(showOctree)
-                        .addContainerGap(137, Short.MAX_VALUE)));
-        setLayout(groupLayout);
-
+        GroupLayout.SequentialGroup sequentialGroup = groupLayout.createSequentialGroup();
+        sequentialGroup.addComponent(new JLabel("Choose an example to launch:"));
+        sequentialGroup.addComponent(new JButton(new ShowOctree()));
+        sequentialGroup.addComponent(new JButton(new ShowMathGraphs()));
+        sequentialGroup.addComponent(new JButton(new ShowPointCloud()));
+        sequentialGroup.addComponent(new JButton(new ShowRain()));
+        sequentialGroup.addComponent(new JButton(new ShowTextEditors()));
+        sequentialGroup.addComponent(new JButton(new ShowGameOfLife()));
+        sequentialGroup.addComponent(new JButton(new ShowRandomPolygons()));
     }
 
-    private class ShowTextEditors extends AbstractAction {
-        private static final long serialVersionUID = 5197962166765841015L;
-
-        public ShowTextEditors() {
+    private static class ShowTextEditors extends AbstractAction {
+        ShowTextEditors() {
             putValue(NAME, "Text editors");
         }
 
@@ -135,80 +38,71 @@ class MenuPanel extends JPanel {
         }
     }
 
-    private class ShowSinusMap extends AbstractAction {
-        private static final long serialVersionUID = -896479509963403828L;
 
-        public ShowSinusMap() {
-            putValue(NAME, "Wireframe sphere and ploygon landscape");
+    private static class ShowRain extends AbstractAction {
+        ShowRain() {
+            putValue(NAME, "Raining numbers");
         }
 
         @Override
         public void actionPerformed(final ActionEvent e) {
-            SphereDemo.main(null);
+            RainingNumbersDemo.main(null);
         }
     }
 
-    private class ShowRain extends AbstractAction {
-        private static final long serialVersionUID = 8566009849873897321L;
-
-        public ShowRain() {
-            putValue(NAME, "Raining numbers");
+    private static class ShowPointCloud extends AbstractAction {
+        ShowPointCloud() {
+            putValue(NAME, "Pointcloud galaxy");
         }
 
         @Override
         public void actionPerformed(final ActionEvent e) {
-            try {
-                RainingNumbersDemo.main(null);
-            } catch (final IOException e1) {
-                e1.printStackTrace();
-            }
+            PointCloudDemo.main(null);
         }
     }
 
-    private class ShowPointcloud extends AbstractAction {
-        private static final long serialVersionUID = -5369105936409884389L;
-
-        public ShowPointcloud() {
-            putValue(NAME, "Pointcloud galaxy");
+    private static class ShowMathGraphs extends AbstractAction {
+        ShowMathGraphs() {
+            putValue(NAME, "Mathematical graphs");
         }
 
         @Override
         public void actionPerformed(final ActionEvent e) {
-            PointCloudDemo.main(null);
+            GraphDemo.main(null);
         }
     }
 
-    private class ShowMathGraphs extends AbstractAction {
-        private static final long serialVersionUID = -8486796142555764460L;
-
-        public ShowMathGraphs() {
-            putValue(NAME, "Mathematical graphs");
+    private static class ShowRandomPolygons extends AbstractAction {
+        ShowRandomPolygons() {
+            putValue(NAME, "Random polygons");
         }
 
         @Override
         public void actionPerformed(final ActionEvent e) {
-            try {
-                GraphDemo.main(null);
-            } catch (final IOException e1) {
-                e1.printStackTrace();
-            }
+            RandomPolygonsDemo.main(null);
         }
     }
 
-    private class ShowOctree extends AbstractAction {
-        private static final long serialVersionUID = -6210703594848004946L;
-
-        public ShowOctree() {
+    private static class ShowOctree extends AbstractAction {
+        ShowOctree() {
             putValue(NAME, "Volumetric Octree");
         }
 
         @Override
         public void actionPerformed(final ActionEvent e) {
-            try {
-                OctreeDemo.main(null);
-            } catch (final IOException e1) {
-                e1.printStackTrace();
-            }
+            OctreeDemo.main(null);
+        }
+    }
+
+    private static class ShowGameOfLife extends AbstractAction {
+        ShowGameOfLife() {
+            putValue(NAME, "Game of Life");
+        }
+
+        @Override
+        public void actionPerformed(final ActionEvent e) {
+            eu.svjatoslav.sixth.e3d.examples.life.Main.main(null);
         }
     }
+
 }