/*
* Copyright (c) 2017-2021 XMLmind Software. All rights reserved.
*
* Author: Hussein Shafie
*
* This file is part of the XMLmind XML Editor project.
* For conditions of distribution and use, see the accompanying legal.txt file.
*/
import java.util.ResourceBundle;
import java.util.MissingResourceException;
import java.util.Enumeration;
import java.util.ArrayList;
import javax.swing.Icon;
import com.xmlmind.guiutil.IconResource;
public class SmileyInfo {
private String emotion;
private Icon icon;
private String asciiArt;
public SmileyInfo(String emotion, Icon icon, String asciiArt) {
this.emotion = emotion;
this.icon = icon;
this.asciiArt = asciiArt;
}
public String getEmotion() {
return emotion;
}
public Icon getIcon() {
return icon;
}
public String getASCIIArt() {
return asciiArt;
}
@Override
public String toString() {
StringBuilder buffer = new StringBuilder();
buffer.append("");
buffer.append(emotion);
buffer.append(" ");
buffer.append(asciiArt);
buffer.append(" ");
return buffer.toString();
}
// -----------------------------------------------------------------------
private static SmileyInfo[] knownSmileys = null;
public static SmileyInfo[] getKnownSmileys() {
if (knownSmileys == null) {
ResourceBundle bundle = null;
try {
bundle = ResourceBundle.getBundle("smileys/smileys");
} catch (MissingResourceException ignored) {}
if (bundle == null) {
knownSmileys = new SmileyInfo[0];
} else {
ArrayList list = new ArrayList();
Enumeration iter = bundle.getKeys();
while (iter.hasMoreElements()) {
String emotion = iter.nextElement();
String asciiArt = "???";
try {
asciiArt = bundle.getString(emotion);
} catch (Exception ignored) {}
IconResource icon =
new IconResource(SmileyInfo.class,
"smileys/" + emotion + ".png");
list.add(new SmileyInfo(emotion, icon, asciiArt));
}
knownSmileys = new SmileyInfo[list.size()];
list.toArray(knownSmileys);
}
}
return knownSmileys;
}
}