package apes.views; import java.io.File; import java.util.Observable; import javax.swing.ImageIcon; import javax.swing.JMenu; import apes.interfaces.LanguageObserver; import apes.lib.Language; /** * This extends {@link javax.swing.JMenuItem JMenu} with locale functionality. * * @author Johan Andersson (johandy@student.chalmers.se) */ public class ApesMenu extends JMenu implements LanguageObserver { /** * The locale tag. */ private String tag; /** * A language object. */ private Language language; /** * Creates a new <code>ApesMenu</code> instance. * * @param tag The Language tag. */ public ApesMenu(String tag) { this.tag = tag; this.language = Language.getInstance(); setText(language.get(tag)); language.addObserver(this); // What should have been Arrays#join String[] split = tag.split("\\."); String button = split[split.length - 1]; // Set icon File file = new File("images/menu/" + button + ".png"); if(file.exists()) { ImageIcon icon = new ImageIcon(file.getAbsolutePath()); setIcon(icon); } } public void update(Observable o, Object arg) { setText(language.get(tag)); this.updateUI(); } }