View Javadoc
1 package net.mlw.fball.gui.listeners; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import java.util.List; 6 7 import net.mlw.fball.event.Event; 8 import net.mlw.fball.event.EventListener; 9 import net.mlw.fball.gui.AppContext; 10 import net.mlw.fball.gui.events.ErrorEvent; 11 import net.mlw.fball.gui.events.RunLoadersEvent; 12 import net.mlw.fball.gui.events.StateChangedEvent; 13 import net.mlw.fball.loader.Loader; 14 import net.mlw.fball.loader.LoaderGroup; 15 import net.mlw.util.swing.CheckTreeNode; 16 17 /*** 18 * net.mlw.fball.gui.listeners.RunLoadersEventListener 19 * 20 * @author Matthew L. Wilson 21 * @version $Revision: 1.1 $ $Date: 2004/03/01 15:31:43 $ 22 */ 23 public class RunLoadersEventListener implements EventListener, Runnable 24 { 25 private Thread thread; 26 27 private List selectedLoaders = new ArrayList(); 28 29 /*** @see net.mlw.fball.event.EventListener#onEvent(net.mlw.fball.event.Event) 30 */ 31 public void onEvent(Event event) 32 { 33 if (event instanceof StateChangedEvent) 34 { 35 StateChangedEvent stateChangedEvent = (StateChangedEvent) event; 36 CheckTreeNode node = (CheckTreeNode) stateChangedEvent.getSource(); 37 if (node.isSelected()) 38 { 39 selectedLoaders.add(node.getName()); 40 } 41 else 42 { 43 selectedLoaders.remove(node.getName()); 44 } 45 } 46 else if (event instanceof RunLoadersEvent) 47 { 48 synchronized (this) 49 { 50 if (thread == null) 51 { 52 thread = new Thread(this); 53 thread.start(); 54 } 55 else 56 { 57 AppContext.getEventListenerGroup().onEvent(new ErrorEvent("error.loaderRunning")); 58 } 59 } 60 } 61 } 62 63 private void execute(LoaderGroup loaders) throws Exception 64 { 65 for (Iterator iter = loaders.getLoaders().iterator(); iter.hasNext();) 66 { 67 Loader loader = (Loader) iter.next(); 68 if (loader instanceof LoaderGroup) 69 { 70 execute((LoaderGroup) loader); 71 } 72 else 73 { 74 if (selectedLoaders.contains(loader.getName())) 75 { 76 loader.doLoad(); 77 } 78 } 79 } 80 } 81 /*** @see java.lang.Runnable#run() 82 */ 83 public void run() 84 { 85 try 86 { 87 execute(AppContext.getRootLoader()); 88 thread = null; 89 } 90 catch (Exception e) 91 { 92 e.printStackTrace(); 93 } 94 } 95 96 }

This page was automatically generated by Maven