From c69a9ab56f6a08db216afcbee8da58da1d94aa18 Mon Sep 17 00:00:00 2001 From: Thibaud Date: Sun, 30 Sep 2018 16:08:54 +0200 Subject: [PATCH] [Pathfinding] Replace findLoc with get(JLabel) --- .../java/fr/uha/gasser/pathfinding/model/Grid.java | 13 ++++++++----- .../main/java/fr/uha/gasser/pathfinding/ui/App.java | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/simple-pathfinding/src/main/java/fr/uha/gasser/pathfinding/model/Grid.java b/simple-pathfinding/src/main/java/fr/uha/gasser/pathfinding/model/Grid.java index 1e57abd..cfe2eb9 100644 --- a/simple-pathfinding/src/main/java/fr/uha/gasser/pathfinding/model/Grid.java +++ b/simple-pathfinding/src/main/java/fr/uha/gasser/pathfinding/model/Grid.java @@ -10,6 +10,7 @@ import java.util.List; public class Grid implements Iterable { private final static Border lineBorder = BorderFactory.createLineBorder(Color.BLACK, 1); + private static final Point INVALID = new Point(-256, -256); private final List cells; private final Dimension size; @@ -36,14 +37,16 @@ public class Grid implements Iterable { } } - public Point findLoc(JLabel content) { - int index = 0; + public Cell get(Point loc) { + return cells.get(loc.x + size.width * loc.y); + } + + public Cell get(JLabel content) { for (Cell c : cells) { - if (c.getContent() == content) return new Point(index % size.width, index / size.height); - index++; + if (c.getContent() == content) return c; } // Not found - return new Point(-1, -1); + return new Cell(INVALID, null); } public void setColor(Point loc, Color color) { diff --git a/simple-pathfinding/src/main/java/fr/uha/gasser/pathfinding/ui/App.java b/simple-pathfinding/src/main/java/fr/uha/gasser/pathfinding/ui/App.java index 16a454e..9d40c78 100644 --- a/simple-pathfinding/src/main/java/fr/uha/gasser/pathfinding/ui/App.java +++ b/simple-pathfinding/src/main/java/fr/uha/gasser/pathfinding/ui/App.java @@ -44,7 +44,7 @@ public class App extends JFrame { @Override public void mousePressed(MouseEvent e) { final JLabel at = (JLabel) gridPane.getComponentAt(e.getPoint()); - final Point loc = grid.findLoc(at); + final Point loc = grid.get(at).getPos(); if (startNode == null) { grid.setColor(loc, Color.RED); startNode = new Node(loc);