Code refactoring.
[sixth-3d-demos.git] / src / main / java / eu / svjatoslav / sixth / e3d / examples / life / Main.java
index 527a6a2..afc0e1c 100644 (file)
@@ -2,11 +2,11 @@ package eu.svjatoslav.sixth.e3d.examples.life;
 
 import eu.svjatoslav.sixth.e3d.geometry.Point3D;
 import eu.svjatoslav.sixth.e3d.geometry.Rectangle;
-import eu.svjatoslav.sixth.e3d.geometry.Transform;
 import eu.svjatoslav.sixth.e3d.gui.Avatar;
-import eu.svjatoslav.sixth.e3d.gui.ViewContext;
 import eu.svjatoslav.sixth.e3d.gui.ViewFrame;
-import eu.svjatoslav.sixth.e3d.gui.humaninput.WorldNavigationTracker;
+import eu.svjatoslav.sixth.e3d.gui.ViewPanel;
+import eu.svjatoslav.sixth.e3d.gui.humaninput.WorldNavigationUserInputTracker;
+import eu.svjatoslav.sixth.e3d.math.Transform;
 import eu.svjatoslav.sixth.e3d.renderer.raster.Color;
 import eu.svjatoslav.sixth.e3d.renderer.raster.ShapeCollection;
 import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.basic.line.LineAppearance;
@@ -15,7 +15,7 @@ import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe.Grid2D
 import java.awt.event.KeyEvent;
 
 
-class Main extends WorldNavigationTracker {
+public class Main extends WorldNavigationUserInputTracker {
 
     private static final Matrix MATRIX = new Matrix(
             new Point3D() // position matrix in the center of the scene
@@ -29,7 +29,7 @@ class Main extends WorldNavigationTracker {
      * Handle keyboard input.
      */
     @Override
-    public void keyPressed(final KeyEvent event, final ViewContext viewContext) {
+    public boolean keyPressed(final KeyEvent event, final ViewPanel viewPanel) {
         switch (event.getKeyChar()) {
             case ' ': // space key
                 MATRIX.evolve(false);
@@ -41,8 +41,9 @@ class Main extends WorldNavigationTracker {
                 MATRIX.clear();
                 break;
             default:
-                super.keyPressed(event, viewContext);
+                return super.keyPressed(event, viewPanel);
         }
+        return true;
     }
 
     private void run() {
@@ -50,28 +51,28 @@ class Main extends WorldNavigationTracker {
         // create application frame visible to the user
         final ViewFrame viewFrame = new ViewFrame();
 
-        final ShapeCollection shapeCollection = viewFrame.getView()
-                .getContext().getRootShapeCollection();
+        final ShapeCollection shapeCollection = viewFrame.getViewPanel()
+                .getRootShapeCollection();
 
         // add matrix
         shapeCollection.addShape(MATRIX);
 
-        // add wireframe grid (optional)
+        // add wire-frame grid (optional)
         shapeCollection.addShape(createGrid());
 
-        final ViewContext context = viewFrame.getView().getContext();
+        final ViewPanel viewPanel = viewFrame.getViewPanel();
 
-        setAvatarOrientation(context.getAvatar());
+        setAvatarOrientation(viewPanel.getAvatar());
 
         // enable receiving of keyboard events
-        context.getKeyboardFocusTracker().setFocusOwner(this);
+        viewPanel.getKeyboardFocusStack().pushFocusOwner(this);
 
         // Done! World is built. So ensure screen is updated too.
-        context.getView().repaintDuringNextViewUpdate();
+        viewPanel.repaintDuringNextViewUpdate();
     }
 
     /**
-     * Create pink wireframe grid below (for decorative purposes).
+     * Create pink wire-frame grid below (for decorative purposes).
      */
     private Grid2D createGrid() {
         return new Grid2D(