001 /* PAVLOV -- Multiple Choice Study System 002 * Copyright (C) 2000 - 2004 T.J. Willis 003 * 004 * This program is free software; you can redistribute it and/or 005 * modify it under the terms of the GNU General Public License 006 * as published by the Free Software Foundation; either version 2 007 * of the License, or (at your option) any later version. 008 * 009 * This program is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 * GNU General Public License for more details. 013 * 014 * You should have received a copy of the GNU General Public License 015 * along with this program; if not, write to the Free Software 016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. 017 * 018 * $Header: /cvsroot/pavlov/net/sourceforge/pavlov/main/standalone/SkinSystem.java,v 1.3 2004/06/11 06:17:34 tj_willis Exp $ 019 */ 020 package net.sourceforge.pavlov.main.standalone; 021 022 023 import java.net.URL; 024 import org.apache.log4j.*; 025 import net.sourceforge.pavlov.main.*; 026 import java.awt.event.*; 027 import java.util.*; 028 import javax.swing.*; 029 import java.io.File; 030 031 /** 032 033 * @author <a href="mailto:tj_willis@users.sourceforge.net"></a> 034 * @version 1.0 035 */ 036 public class SkinSystem 037 implements ActionListener { 038 039 Hashtable<String,Skin> skins = new Hashtable<String,Skin>(); 040 SwingUIFactory uif; 041 042 public SkinSystem(SwingUIFactory uif, JMenu men) { 043 this.uif = uif; 044 JMenu skinsMenu = new JMenu("Skins"); 045 File f = new File("resources/skins"); 046 File files[] = f.listFiles(); 047 ArrayList<File> dirs = new ArrayList<File>(); 048 049 for( File g : files ){ 050 if(g.isDirectory()){ 051 File g2 = new File(g,"QuizPanel.vm"); 052 if(g2.exists()){ 053 dirs.add(g); 054 } 055 } 056 } 057 058 for( File g : dirs){ 059 JMenuItem m = new JMenuItem(g.getName()); 060 m.setActionCommand(g.getName()); 061 m.addActionListener(this); 062 Skin k = new Skin(g); 063 skins.put(g.getName(),k); 064 skinsMenu.add(m); 065 } 066 men.add(skinsMenu); 067 068 } 069 070 071 /** 072 * Describe <code>actionPerformed</code> method here. 073 * 074 * @param e a <code>java.awt.event.ActionEvent</code> value 075 */ 076 public void actionPerformed(java.awt.event.ActionEvent e) { 077 if(e==null) 078 return; 079 Object o = e.getSource(); 080 081 if (o instanceof JMenuItem) { 082 uif.setTemplateToolkit(skins.get(e.getActionCommand())); 083 } 084 } 085 086 087 088 089 }