diff --git a/src/main/java/com/syncleus/dann/examples/colormap/ColorMapDemo.java b/src/main/java/com/syncleus/dann/examples/colormap/ColorMapDemo.java index 8088f221e3c134e883d03fda84fcbb2b0f733e95..462eb3cb9bb71b37940d127f2c291848f39baa77 100644 --- a/src/main/java/com/syncleus/dann/examples/colormap/ColorMapDemo.java +++ b/src/main/java/com/syncleus/dann/examples/colormap/ColorMapDemo.java @@ -23,8 +23,9 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; +import javax.swing.JFrame; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -34,7 +35,7 @@ import javax.swing.Timer; import javax.swing.UIManager; import org.apache.log4j.Logger; -public class ColorMapDemo extends javax.swing.JFrame implements ActionListener, WindowListener +public class ColorMapDemo extends JFrame implements ActionListener { private static final Logger LOGGER = Logger.getLogger(ColorMapDemo.class); @@ -78,56 +79,16 @@ public class ColorMapDemo extends javax.swing.JFrame implements ActionListener, this.setResizable(false); this.setSize(550, 175); this.color1d = (new ColorMap1dCallable(INITIAL_ITERATIONS, INITIAL_LEARNING_RATE, 500)).call(); - } - - /** @inheritDoc */ - @Override - public void windowClosing(final WindowEvent evt) - { - this.executor.shutdown(); - } - - /** @inheritDoc */ - @Override - public void windowClosed(final WindowEvent evt) - { - // unused - } - - /** @inheritDoc */ - @Override - public void windowOpened(final WindowEvent evt) - { - // unused - } - - /** @inheritDoc */ - @Override - public void windowIconified(final WindowEvent evt) - { - // unused - } - /** @inheritDoc */ - @Override - public void windowDeiconified(final WindowEvent evt) - { - // unused - } - - /** @inheritDoc */ - @Override - public void windowActivated(final WindowEvent evt) - { - // unused - } - - /** @inheritDoc */ - @Override - public void windowDeactivated(final WindowEvent evt) - { - // unused - } + this.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent event) + { + executor.shutdown(); + } + }); + } @Override public void actionPerformed(final ActionEvent evt) @@ -145,7 +106,6 @@ public class ColorMapDemo extends javax.swing.JFrame implements ActionListener, this.progressBar.setValue(this.callable2d.getProgress()); } - if(this.future1d != null) { if(!this.future1d.isDone()) diff --git a/src/main/java/com/syncleus/dann/examples/hyperassociativemap/visualization/ViewMap.java b/src/main/java/com/syncleus/dann/examples/hyperassociativemap/visualization/ViewMap.java index 694697cb66d3cfb99b159bdc93630ed256c981ed..09b895b77c3740cd33cfde3f8f67264df97815a7 100644 --- a/src/main/java/com/syncleus/dann/examples/hyperassociativemap/visualization/ViewMap.java +++ b/src/main/java/com/syncleus/dann/examples/hyperassociativemap/visualization/ViewMap.java @@ -23,16 +23,16 @@ import com.syncleus.dann.graph.drawing.hyperassociativemap.visualization.Hyperas import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; +import java.awt.event.KeyAdapter; import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; +import java.awt.event.WindowAdapter; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.FutureTask; import javax.swing.JFrame; import javax.swing.Timer; -public class ViewMap extends JFrame implements ActionListener, WindowListener, KeyListener +public class ViewMap extends JFrame implements ActionListener { private static final float NODE_RADIUS = 0.07F; private final HyperassociativeMapCanvas mapVisual; @@ -55,9 +55,10 @@ public class ViewMap extends JFrame implements ActionListener, WindowListener, K this.executor.execute(this.lastRun); myMapVisual.setFocusTraversalKeysEnabled(false); - myMapVisual.addKeyListener(this); - myMapVisual.getCanvas3D().addKeyListener(this); - this.addKeyListener(this); + AssociativeMapKeyAdapter keyAdapter = new AssociativeMapKeyAdapter(associativeMap); + myMapVisual.addKeyListener(keyAdapter); + myMapVisual.getCanvas3D().addKeyListener(keyAdapter); + this.addKeyListener(keyAdapter); new Timer(100, this).start(); @@ -76,103 +77,66 @@ public class ViewMap extends JFrame implements ActionListener, WindowListener, K this.add(this.mapVisual); } - this.addWindowListener(this); + this.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent event) + { + executor.shutdown(); + } + }); this.setFocusTraversalKeysEnabled(false); this.setSize(800, 600); } - @Override - public void keyPressed(final KeyEvent evt) + private static class AssociativeMapKeyAdapter extends KeyAdapter { - if (evt.getKeyCode() == KeyEvent.VK_R) - { - this.associativeMap.reset(); - } - if (evt.getKeyCode() == KeyEvent.VK_L) + private final LayeredHyperassociativeMap associativeMap; + + public AssociativeMapKeyAdapter(final LayeredHyperassociativeMap associativeMap) { - this.associativeMap.resetLearning(); + this.associativeMap = associativeMap; } - else if (evt.getKeyCode() == KeyEvent.VK_UP) + + @Override + public void keyPressed(final KeyEvent evt) { - if (this.associativeMap.getEquilibriumDistance() < 1.0) + if (evt.getKeyCode() == KeyEvent.VK_R) { - this.associativeMap.setEquilibriumDistance(this.associativeMap.getEquilibriumDistance() * 1.1); + this.associativeMap.reset(); } - else + if (evt.getKeyCode() == KeyEvent.VK_L) { - this.associativeMap.setEquilibriumDistance(this.associativeMap.getEquilibriumDistance() + 1.0); + this.associativeMap.resetLearning(); } - this.associativeMap.resetLearning(); - } - else if (evt.getKeyCode() == KeyEvent.VK_DOWN) - { - if (this.associativeMap.getEquilibriumDistance() < 2.0) + else if (evt.getKeyCode() == KeyEvent.VK_UP) { - this.associativeMap.setEquilibriumDistance(this.associativeMap.getEquilibriumDistance() * 0.9); + if (this.associativeMap.getEquilibriumDistance() < 1.0) + { + this.associativeMap.setEquilibriumDistance(this.associativeMap.getEquilibriumDistance() * 1.1); + } + else + { + this.associativeMap.setEquilibriumDistance(this.associativeMap.getEquilibriumDistance() + 1.0); + } + this.associativeMap.resetLearning(); } - else + else if (evt.getKeyCode() == KeyEvent.VK_DOWN) { - this.associativeMap.setEquilibriumDistance(this.associativeMap.getEquilibriumDistance() - 1.0); + if (this.associativeMap.getEquilibriumDistance() < 2.0) + { + this.associativeMap.setEquilibriumDistance(this.associativeMap.getEquilibriumDistance() * 0.9); + } + else + { + this.associativeMap.setEquilibriumDistance(this.associativeMap.getEquilibriumDistance() - 1.0); + } + this.associativeMap.resetLearning(); } - this.associativeMap.resetLearning(); } } - @Override - public void keyReleased(final KeyEvent evt) - { - // unused - } - - @Override - public void keyTyped(final KeyEvent evt) - { - // unused - } - - @Override - public void windowClosing(final WindowEvent evt) - { - this.executor.shutdown(); - } - - @Override - public void windowClosed(final WindowEvent evt) - { - // unused - } - - @Override - public void windowOpened(final WindowEvent evt) - { - // unused - } - - @Override - public void windowIconified(final WindowEvent evt) - { - // unused - } - - @Override - public void windowDeiconified(final WindowEvent evt) - { - // unused - } - - @Override - public void windowActivated(final WindowEvent evt) - { - // unused - } - - @Override - public void windowDeactivated(final WindowEvent evt) - { - // unused - } - @Override public void actionPerformed(final ActionEvent evt) { @@ -220,7 +184,7 @@ public class ViewMap extends JFrame implements ActionListener, WindowListener, K System.out.println("controls:"); System.out.println("R: reset"); - System.out.println("L: reset learing curve"); + System.out.println("L: reset learning curve"); System.out.println("up arrow: increase Equilibrium"); System.out.println("down arrow: decrease Equilibrium"); diff --git a/src/test/java/com/syncleus/dann/examples/colormap/TestColorMapDemo.java b/src/test/java/com/syncleus/dann/examples/colormap/TestColorMapDemo.java index 7889f381b1e4c28d77136c6f3933a7376329c92c..267b622eb1befd3b904fcfb0739ae60b517bfab5 100644 --- a/src/test/java/com/syncleus/dann/examples/colormap/TestColorMapDemo.java +++ b/src/test/java/com/syncleus/dann/examples/colormap/TestColorMapDemo.java @@ -80,10 +80,10 @@ public class TestColorMapDemo colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("0.01"); colorMapDemoFixture.spinner("learningRateSpinner").increment(9); double currentValue = Double.valueOf(colorMapDemoFixture.spinner("learningRateSpinner").text()); - Assert.assertTrue("learning rate spinner did notincrement properly", (currentValue - 0.1) < 0.00001); + Assert.assertTrue("learning rate spinner did not increment properly", (currentValue - 0.1) < 0.00001); colorMapDemoFixture.spinner("learningRateSpinner").increment(100); currentValue = Double.valueOf(colorMapDemoFixture.spinner("learningRateSpinner").text()); - Assert.assertTrue("learning rate spinner did notincrement properly", (currentValue - 1.0) < 0.001); + Assert.assertTrue("learning rate spinner did not increment properly", (currentValue - 1.0) < 0.001); //lets try decrementing colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("10000"); colorMapDemoFixture.spinner("iterationsSpinner").requireValue(10000); @@ -94,10 +94,10 @@ public class TestColorMapDemo colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("1.0"); colorMapDemoFixture.spinner("learningRateSpinner").decrement(10); currentValue = Double.valueOf(colorMapDemoFixture.spinner("learningRateSpinner").text()); - Assert.assertTrue("learning rate spinner did notincrement properly", (currentValue - 0.9) < 0.00001); + Assert.assertTrue("learning rate spinner did not increment properly", (currentValue - 0.9) < 0.00001); colorMapDemoFixture.spinner("learningRateSpinner").decrement(100); currentValue = Double.valueOf(colorMapDemoFixture.spinner("learningRateSpinner").text()); - Assert.assertTrue("learning rate spinner did notincrement properly", (currentValue - 0.01) < 0.00001); + Assert.assertTrue("learning rate spinner did not increment properly", (currentValue - 0.01) < 0.00001); } @Test(expected=UnexpectedException.class)