1 package org.columba.mail.gui.message.viewer; 17 18 import java.util.Observable ; 19 import java.util.Observer ; 20 import java.util.Timer ; 21 import java.util.logging.Logger ; 22 23 import org.columba.core.xml.XmlElement; 24 import org.columba.mail.command.IMailFolderCommandReference; 25 import org.columba.mail.config.MailConfig; 26 import org.columba.mail.gui.message.IMessageController; 27 28 29 40 public class MarkAsReadTimer implements Observer { 41 42 43 private static final Logger LOG = Logger.getLogger("org.columba.mail.gui.table.util"); 44 45 private static final int ONE_SECOND = 1000; 47 48 private int delay; 50 private boolean enabled; 51 52 private Timer timer; 53 54 private static MarkAsReadTimer myInstance = new MarkAsReadTimer(); 56 57 61 protected MarkAsReadTimer() { 62 getConfigurationValues(); 63 64 timer = new Timer (); 65 } 66 67 70 private void getConfigurationValues() { 71 XmlElement markasread = MailConfig.getInstance().get("options").getElement("/options/markasread"); 72 73 markasread.addObserver(this); 75 76 String delayString = markasread.getAttribute("delay", "2"); 78 delay = Integer.parseInt(delayString); 79 80 String enabledString = markasread.getAttribute("enabled", "true"); 82 enabled = enabledString.equals("true") ? true : false; 83 } 84 85 public static MarkAsReadTimer getInstance() { 86 return myInstance; 87 } 88 89 94 public void start(IMessageController controller, IMailFolderCommandReference reference) { 95 if(enabled) { 96 timer.schedule( new MarkAsReadTimerTask(controller, reference), ONE_SECOND * delay); 97 } 98 } 99 100 103 public void update(Observable arg0, Object arg1) { 104 LOG.info("/options/markasread#delay has changed"); 105 106 getConfigurationValues(); 107 } 108 } 109 | Popular Tags |