Commits

eryzhikov  committed 2ddde44

Inroduce AbstractIconFontPack to further simplify font pack creation

  • Participants
  • Parent commits 2026296

Comments (0)

Files changed (2)

File src/main/java/org/controlsfx/iconfont/AbstractIconFontPack.java

+/**
+ * Copyright (c) 2013, ControlsFX
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *     * Neither the name of ControlsFX, any associated website, nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL CONTROLSFX BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package org.controlsfx.iconfont;
+
+import java.io.InputStream;
+
+public abstract class AbstractIconFontPack implements IconFontPack {
+
+	private final String fontName;
+	private final IconFont font;
+	
+	public AbstractIconFontPack(String fontName, InputStream in) {
+		this.fontName = fontName;
+		this.font = new IconFont(fontName, in);
+	}
+
+	public AbstractIconFontPack( String fontName, String urlStr ) { 
+		this.fontName = fontName;
+		this.font = new IconFont(fontName, urlStr);
+	} 
+
+
+	@Override
+	public String getFontName() {
+		return fontName;
+	}
+
+	@Override
+	public IconFont getFont() {
+		return font;
+	}
+
+}

File src/main/java/org/controlsfx/iconfont/pack/FontAwesomePack.java

 import java.util.HashMap;
 import java.util.Map;
 
-import org.controlsfx.iconfont.IconFont;
-import org.controlsfx.iconfont.IconFontPack;
+import javafx.scene.Node;
+
+import org.controlsfx.iconfont.AbstractIconFontPack;
 import org.controlsfx.iconfont.IconFontRegistry;
 
-import javafx.scene.Node;
-
-public class FontAwesomePack implements IconFontPack {
+public class FontAwesomePack extends  AbstractIconFontPack {
 
 	private static String fontName = "FontAwesome";
-	private IconFont fontAwesome = new IconFont( fontName,
-	 	 "http://fontawesome.io/assets/font-awesome/font/fontawesome-webfont.ttf");
 	
 	private Map<String, Character> glyphs;
 	
 	// constructor shouldn't really be called multiple times...
 	public FontAwesomePack() {
 		
+		super(fontName, "http://fontawesome.io/assets/font-awesome/font/fontawesome-webfont.ttf");
+		
 		Map<String, Character> map = new HashMap<>();
-		
 		for (Glyph e:  Glyph.values()) {
 			map.put(e.name(), e.getChar());
 		}
-		
 		glyphs = Collections.unmodifiableMap(map);
 	}
-	
-	@Override public String getFontName() {
-		return fontName;
-	}
-
-	@Override public IconFont getFont() {
-		return fontAwesome;
-	}
 
 	@Override public Map<String, Character> getGlyphs() {
 		return glyphs;