X-Git-Url: https://git.hedgecode.org/?p=chesshog.git;a=blobdiff_plain;f=chesshog-graphics%2Fsrc%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fimg%2Fpiece%2FPieceSetLoader.java;fp=chesshog-format%2Fsrc%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fimg%2Fpiece%2FPieceSetLoader.java;h=4cd68c05512605ca30aea21ae708328e6807d0bb;hp=f069ba924675a339fbe503e7c51eebc3449fbde3;hb=e185f00e2252021d946f23f4871ae9721f7e65fa;hpb=612dc701d600159c094ab201c6de6136ae38dba9 diff --git a/chesshog-format/src/main/java/org/hedgecode/chess/img/piece/PieceSetLoader.java b/chesshog-graphics/src/main/java/org/hedgecode/chess/img/piece/PieceSetLoader.java similarity index 61% rename from chesshog-format/src/main/java/org/hedgecode/chess/img/piece/PieceSetLoader.java rename to chesshog-graphics/src/main/java/org/hedgecode/chess/img/piece/PieceSetLoader.java index f069ba9..4cd68c0 100644 --- a/chesshog-format/src/main/java/org/hedgecode/chess/img/piece/PieceSetLoader.java +++ b/chesshog-graphics/src/main/java/org/hedgecode/chess/img/piece/PieceSetLoader.java @@ -16,14 +16,12 @@ package org.hedgecode.chess.img.piece; -import java.io.File; -import java.io.IOException; +import java.awt.image.BufferedImage; import java.util.HashMap; import java.util.Map; -import javax.imageio.ImageIO; - import org.hedgecode.chess.img.AbstractImageLoader; +import org.hedgecode.chess.img.FilenameUtils; import org.hedgecode.chess.img.ImageConstants; import org.hedgecode.chess.img.ImageException; import org.hedgecode.chess.img.ImageFilter; @@ -35,7 +33,7 @@ import org.hedgecode.chess.img.ImageFilter; */ public class PieceSetLoader extends AbstractImageLoader { - private static final File PIECES_PATH = new File(IMAGES_PATH, ImageConstants.RESOURCE_PIECES_DIR); + private static final String PIECES_DIR = ImageConstants.RESOURCE_PIECES_DIR; private static final String[] PIECES_NAMES = PieceSet.getAllPieceNames(); @@ -43,12 +41,10 @@ public class PieceSetLoader extends AbstractImageLoader { @Override public PieceSet load(String name) throws ImageException { - PieceSet pieceSet = null; + PieceSet pieceSet; if (Type.STATELESS.equals(loadType()) || !pieceSetMap.containsKey(name)) { - File piecePath = new File(PIECES_PATH, name); - if (piecePath.exists() && piecePath.isDirectory()) { - pieceSet = loadPieces(piecePath); - } + String piecePath = FilenameUtils.getFullPath(PIECES_DIR, name); + pieceSet = loadPieces(piecePath); if (Type.STATEFUL.equals(loadType()) && pieceSet != null) { pieceSetMap.put(name, pieceSet); } @@ -70,25 +66,22 @@ public class PieceSetLoader extends AbstractImageLoader { pieceSetMap.clear(); } - private PieceSet loadPieces(File piecePath) throws ImageException { + private PieceSet loadPieces(String piecePath) throws ImageException { PieceSet pieceSet = PieceSet.create(); - File[] images = piecePath.listFiles(new ImageFilter(PIECES_NAMES)); - if (images != null) { - for (File image : images) { - if (image.isFile()) { - String filename = image.getName(); - try { - pieceSet.add( - filename.substring(0, filename.lastIndexOf('.')), - ImageIO.read(image) - ); - } catch (IOException e) { - throw new ImageException(e.getMessage()); // todo: locale - } - } - } + Map images = + loadImages( + piecePath, + new ImageFilter(PIECES_NAMES) + ); + for (String name : PIECES_NAMES) { + pieceSet.add( + name, + images.get(name) + ); } - return pieceSet.isFull() ? pieceSet : null; + return pieceSet.isFull() + ? pieceSet + : null; // todo: ImageException } }