1 /* 2 * Copyright (c) 2016, Oracle and/or its affiliates. 3 * All rights reserved. Use is subject to license terms. 4 * 5 * This file is available and licensed under the following license: 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * - Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * - Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in 15 * the documentation and/or other materials provided with the distribution. 16 * - Neither the name of Oracle Corporation nor the names of its 17 * contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 package minesweeperfx; 33 34 35 import java.util.HashMap; 36 import java.util.Map; 37 import javafx.scene.image.Image; 38 39 40 public class Resources { 41 42 public enum ImageType { Blank, 43 Over, 44 ExposedTile, 45 Flag, 46 FlagOver, 47 HitMine, 48 Mine, 49 WrongMine, 50 Number1, 51 Number2, 52 Number3, 53 Number4, 54 Number5, 55 Number6, 56 Number7, 57 Number8 } 58 59 private Map<ImageType, Image> images; 60 61 private static Resources resources = null; 62 63 public static Resources getInstance() { 64 if (resources == null) { 65 resources = new Resources(); 66 } 67 68 return resources; 69 } 70 71 private Resources() { 72 images = new HashMap<ImageType, Image>(); 73 loadImages(); 74 } 75 76 private void loadImages() { 77 loadImage("resources/blank.png", ImageType.Blank); 78 loadImage("resources/blankover.png", ImageType.Over); 79 loadImage("resources/exposed.png", ImageType.ExposedTile); 80 loadImage("resources/flag.png", ImageType.Flag); 81 loadImage("resources/flag.png", ImageType.FlagOver); // TODO create image 82 loadImage("resources/hitmine.png", ImageType.HitMine); 83 loadImage("resources/mine.png", ImageType.Mine); 84 loadImage("resources/wrongmine.png", ImageType.WrongMine); 85 loadImage("resources/number1.png", ImageType.Number1); 86 loadImage("resources/number2.png", ImageType.Number2); 87 loadImage("resources/number3.png", ImageType.Number3); 88 loadImage("resources/number4.png", ImageType.Number4); 89 loadImage("resources/number5.png", ImageType.Number5); 90 loadImage("resources/number6.png", ImageType.Number6); 91 loadImage("resources/number7.png", ImageType.Number7); 92 loadImage("resources/number8.png", ImageType.Number8); 93 } 94 95 private void loadImage(String imageName, ImageType type) { 96 String url = Resources.class.getResource(imageName).toExternalForm(); 97 Image image = new Image(url); 98 images.put(type, image); 99 } 100 101 public Image getImage(ImageType value) { 102 return images.get(value); 103 } 104 }