@Override public void focusGained(FocusEvent e) { Game game = this.app.getGame(); if (game != null) { if (game.getRack().getTiles() != null && game.getRack().getTiles().size() > 0 && game.getRack().getTiles().get(0) != null) { this.app.getGame().setHighlightedTile(game.getRack().getTiles().get(0)); } else { Cell srcCell = new Cell(new BoardLocation(0, -1), CellColor.White); Cell nextCell = this.app.getGame().getBoard().getNextCell(srcCell, Board.RIGHT, true); if (nextCell != null) { this.app.getGame().setHighlightedTile(nextCell.getTile()); } } this.app.repaintBoardAndRack(); } }
/** Called when user presses the space bar or tile if force-dropped */ private void handleGrabOrReleaseTile() { Game game = this.app.getGame(); Tile tile = game.getHighlightedTile(); if (this.isHighlightedGrabbed) { ITileLocation srcLocation = game.getGrabbedTileSrcLocation(); ITileLocation destLocation; game.setGrabbedTileSrcLocation(null); if (game.getRack().getTiles().contains(tile)) { destLocation = new RackTileLocation(game.getRack().getTiles().indexOf(tile), game.getRack()); } else { destLocation = new BoardTileLocation(game.getBoard().getCellFromTile(tile)); } game.getUndoManager().pushMovement(new TileMovement(srcLocation, destLocation)); } else { if (game.getRack().getTiles().contains(tile)) { game.setGrabbedTileSrcLocation( new RackTileLocation(game.getRack().getTiles().indexOf(tile), game.getRack())); } else { game.setGrabbedTileSrcLocation( new BoardTileLocation(game.getBoard().getCellFromTile(tile))); } } // Toggle whether or not the tile is grabbed this.isHighlightedGrabbed = !this.isHighlightedGrabbed; }