Added Game of Life demo to application launcher.
[sixth-3d-demos.git] / src / main / java / eu / svjatoslav / sixth / e3d / examples / launcher / MenuPanel.java
index f9b8653..10178e3 100644 (file)
@@ -1,7 +1,6 @@
 /*
- * Sixth - System for data storage, computation, exploration and interaction.
- * Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- * 
+ * Sixth 3D engine demos. Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ *
  * 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.
@@ -12,8 +11,6 @@ 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;
 
@@ -22,131 +19,21 @@ class MenuPanel extends JPanel {
 
     public MenuPanel() {
 
-        final JLabel lblNewLabel = new JLabel("Choose an example to launch.");
-
-        final JButton btnNewButton = new JButton("Demo 1");
-        btnNewButton.addActionListener(e -> {
-        });
-        Action action = new SwingAction();
-        btnNewButton.setAction(action);
-
-        final JButton btnNewButton_1 = new JButton("Demo 2");
-        Action action_1 = new SwingAction_1();
-        btnNewButton_1.setAction(action_1);
-
-        final JButton button = new JButton("New button");
-        Action action_2 = new SwingAction_2();
-        button.setAction(action_2);
-
-        final JButton btnNewButton_2 = new JButton("New button");
-        Action action_3 = new SwingAction_3();
-        btnNewButton_2.setAction(action_3);
-
-        final JButton btnNewButton_3 = new JButton("New button");
-        Action action_4 = new SwingAction_4();
-        btnNewButton_3.setAction(action_4);
-
-        final JButton btnNewButton_4 = new JButton("New button");
-        Action action_5 = new SwingAction_5();
-        btnNewButton_4.setAction(action_5);
         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(
-                                                                                lblNewLabel,
-                                                                                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(
-                                                                                                btnNewButton_4,
-                                                                                                Alignment.LEADING,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                331,
-                                                                                                Short.MAX_VALUE)
-                                                                                        .addComponent(
-                                                                                                btnNewButton_3,
-                                                                                                Alignment.LEADING,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                331,
-                                                                                                Short.MAX_VALUE)
-                                                                                        .addComponent(
-                                                                                                btnNewButton_2,
-                                                                                                Alignment.LEADING,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                331,
-                                                                                                Short.MAX_VALUE)
-                                                                                        .addComponent(
-                                                                                                button,
-                                                                                                Alignment.LEADING,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                331,
-                                                                                                Short.MAX_VALUE)
-                                                                                        .addComponent(
-                                                                                                btnNewButton_1,
-                                                                                                Alignment.LEADING,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                Short.MAX_VALUE)
-                                                                                        .addComponent(
-                                                                                                btnNewButton,
-                                                                                                GroupLayout.DEFAULT_SIZE,
-                                                                                                331,
-                                                                                                Short.MAX_VALUE))
-                                                                        .addGap(107)))));
-        groupLayout.setVerticalGroup(groupLayout.createParallelGroup(
-                Alignment.LEADING).addGroup(
-                groupLayout
-                        .createSequentialGroup()
-                        .addGap(7)
-                        .addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE,
-                                58, GroupLayout.PREFERRED_SIZE)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(btnNewButton)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(btnNewButton_1)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(button)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(btnNewButton_2)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(btnNewButton_3)
-                        .addPreferredGap(ComponentPlacement.RELATED)
-                        .addComponent(btnNewButton_4)
-                        .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 ShowSinusMap()));
+        sequentialGroup.addComponent(new JButton(new ShowTextEditors()));
+        sequentialGroup.addComponent(new JButton(new ShowGameOfLife()));
     }
 
-    private class SwingAction extends AbstractAction {
-        private static final long serialVersionUID = 5197962166765841015L;
-
-        public SwingAction() {
+    private class ShowTextEditors extends AbstractAction {
+        public ShowTextEditors() {
             putValue(NAME, "Text editors");
-            putValue(SHORT_DESCRIPTION, "Some short description");
         }
 
         @Override
@@ -155,27 +42,20 @@ class MenuPanel extends JPanel {
         }
     }
 
-    private class SwingAction_1 extends AbstractAction {
-        private static final long serialVersionUID = -896479509963403828L;
-
-        public SwingAction_1() {
+    private class ShowSinusMap extends AbstractAction {
+        public ShowSinusMap() {
             putValue(NAME, "Wireframe sphere and ploygon landscape");
-            putValue(SHORT_DESCRIPTION, "Some short description");
         }
 
         @Override
         public void actionPerformed(final ActionEvent e) {
             SphereDemo.main(null);
-
         }
     }
 
-    private class SwingAction_2 extends AbstractAction {
-        private static final long serialVersionUID = 8566009849873897321L;
-
-        public SwingAction_2() {
+    private class ShowRain extends AbstractAction {
+        public ShowRain() {
             putValue(NAME, "Raining numbers");
-            putValue(SHORT_DESCRIPTION, "Some short description");
         }
 
         @Override
@@ -188,12 +68,9 @@ class MenuPanel extends JPanel {
         }
     }
 
-    private class SwingAction_3 extends AbstractAction {
-        private static final long serialVersionUID = -5369105936409884389L;
-
-        public SwingAction_3() {
+    private class ShowPointcloud extends AbstractAction {
+        public ShowPointcloud() {
             putValue(NAME, "Pointcloud galaxy");
-            putValue(SHORT_DESCRIPTION, "Some short description");
         }
 
         @Override
@@ -202,12 +79,9 @@ class MenuPanel extends JPanel {
         }
     }
 
-    private class SwingAction_4 extends AbstractAction {
-        private static final long serialVersionUID = -8486796142555764460L;
-
-        public SwingAction_4() {
+    private class ShowMathGraphs extends AbstractAction {
+        public ShowMathGraphs() {
             putValue(NAME, "Mathematical graphs");
-            putValue(SHORT_DESCRIPTION, "Some short description");
         }
 
         @Override
@@ -220,12 +94,9 @@ class MenuPanel extends JPanel {
         }
     }
 
-    private class SwingAction_5 extends AbstractAction {
-        private static final long serialVersionUID = -6210703594848004946L;
-
-        public SwingAction_5() {
+    private class ShowOctree extends AbstractAction {
+        public ShowOctree() {
             putValue(NAME, "Volumetric Octree");
-            putValue(SHORT_DESCRIPTION, "Some short description");
         }
 
         @Override
@@ -237,4 +108,16 @@ class MenuPanel extends JPanel {
             }
         }
     }
+
+    private class ShowGameOfLife extends AbstractAction {
+        public ShowGameOfLife() {
+            putValue(NAME, "Game of Life");
+        }
+
+        @Override
+        public void actionPerformed(final ActionEvent e) {
+            eu.svjatoslav.sixth.e3d.examples.life.Main.main(null);
+        }
+    }
+
 }