⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eventsscheduler.java

📁 Memoranda( 从前以jNotes2而闻名) 是一个日志管理和个人项目管理工具
💻 JAVA
字号:
/** * EventsScheduler.java * Created on 10.03.2003, 20:20:08 Alex * Package: net.sf.memoranda * * @author Alex V. Alishevskikh, alex@openmechanics.net * Copyright (c) 2003 Memoranda Team. http://memoranda.sf.net */package net.sf.memoranda;import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask;import java.util.Vector;/** * *//*$Id: EventsScheduler.java,v 1.4 2004/01/30 12:17:41 alexeya Exp $*/public class EventsScheduler {    static Vector _timers = new Vector();    static Vector _listeners = new Vector();    static Timer changeDateTimer = new Timer();    static {        addListener(new DefaultEventNotifier());                }    public static void init() {        cancelAll();        //changeDateTimer.cancel();        Vector events = (Vector)EventsManager.getActiveEvents();        _timers = new Vector();        /*DEBUG*/System.out.println("----------");        for (int i = 0; i < events.size(); i++) {            Event ev = (Event)events.get(i);            Date evTime = ev.getTime();        /*DEBUG*/System.out.println((Calendar.getInstance()).getTime());          //  if (evTime.after(new Date())) {	      if (evTime.after((Calendar.getInstance()).getTime())) {	                EventTimer t = new EventTimer(ev);                t.schedule(new NotifyTask(t), ev.getTime());                                _timers.add(t);                /*DEBUG*/System.out.println(ev.getTimeString());            }        }        /*DEBUG*/System.out.println("----------");        Date midnight = getMidnight();        changeDateTimer.schedule(new TimerTask() {                public void run() {                    init();                    this.cancel();                }        }, midnight);        notifyChanged();    }    public static void cancelAll() {        for (int i = 0; i < _timers.size(); i++) {            EventTimer t = (EventTimer)_timers.get(i);            t.cancel();        }    }        public static Vector getScheduledEvents() {        Vector v = new Vector();        for (int i = 0; i < _timers.size(); i++)             v.add(((EventTimer)_timers.get(i)).getEvent());        return v;    }        public static Event getFirstScheduledEvent() {        if (!isEventScheduled()) return null;        Event e1 = ((EventTimer)_timers.get(0)).getEvent();        for (int i = 1; i < _timers.size(); i++) {             Event ev = ((EventTimer)_timers.get(i)).getEvent();            if (ev.getTime().before(e1.getTime()))                e1 = ev;        }        return e1;    }                public static void addListener(EventNotificationListener enl) {        _listeners.add(enl);    }    public static boolean isEventScheduled() {        return _timers.size() > 0;    }            private static void notifyListeners(Event ev) {        for (int i = 0; i < _listeners.size(); i++)            ((EventNotificationListener)_listeners.get(i)).eventIsOccured(ev);    }    private static void notifyChanged() {        for (int i = 0; i < _listeners.size(); i++)            ((EventNotificationListener)_listeners.get(i)).eventsChanged();    }    private static Date getMidnight() {       Calendar cal = Calendar.getInstance();       cal.set(Calendar.HOUR_OF_DAY, 0);       cal.set(Calendar.MINUTE, 0);       cal.set(Calendar.SECOND,0);       cal.set(Calendar.MILLISECOND,0);       cal.add(Calendar.DAY_OF_MONTH,1);       return cal.getTime();    }    static class NotifyTask extends TimerTask {                EventTimer _timer;        public NotifyTask(EventTimer t) {            super();                        _timer = t;        }                public void run() {                        _timer.cancel();            _timers.remove(_timer);            notifyListeners(_timer.getEvent());            notifyChanged();        }    }        static class EventTimer extends Timer {        Event _event;                public EventTimer(Event ev) {            super();            _event = ev;        }                public Event getEvent() {            return _event;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -