1 17 package org.columba.core.gui.util; 18 19 import java.awt.BorderLayout ; 20 21 import javax.swing.JPanel ; 22 23 import org.columba.core.command.TaskManager; 24 import org.columba.core.command.TaskManagerEvent; 25 import org.columba.core.command.TaskManagerListener; 26 import org.columba.core.gui.base.AnimatedGIFComponent; 27 import org.columba.core.resourceloader.ImageLoader; 28 29 39 public class ThrobberIcon extends JPanel implements TaskManagerListener { 40 41 private TaskManager taskManager; 42 43 private AnimatedGIFComponent comp; 44 45 public ThrobberIcon() { 46 super(); 47 48 setLayout(new BorderLayout ()); 49 50 comp = new AnimatedGIFComponent(ImageLoader 51 .getMiscIcon("Throbber.gif").getImage(), ImageLoader 52 .getMiscIcon("Throbber.png").getImage()); 53 add(comp, BorderLayout.CENTER); 54 55 taskManager = TaskManager.getInstance(); 57 taskManager.addTaskManagerListener(this); 58 } 59 60 63 public boolean isFocusTraversable() { 64 return isRequestFocusEnabled(); 65 } 66 67 public void start() { 68 comp.go(); 69 } 70 71 public void stop() { 72 comp.stop(); 73 74 } 75 76 public void workerAdded(TaskManagerEvent e) { 77 update(); 78 } 79 80 public void workerRemoved(TaskManagerEvent e) { 81 update(); 82 } 83 84 protected void update() { 85 if (taskManager.count() > 0) { 88 start(); 89 } else { 90 stop(); 91 } 92 } 93 } 94 | Popular Tags |