1 /*
2 * Created on Jun 5, 2006 by scytacki
3 *
4 * Copyright (c) 2006 Regents of the University of California (Regents). Created
5 * by TELS, Graduate School of Education, University of California at Berkeley.
6 *
7 * This software is distributed under the GNU Lesser General Public License, v2.
8 *
9 * Permission is hereby granted, without written agreement and without license
10 * or royalty fees, to use, copy, modify, and distribute this software and its
11 * documentation for any purpose, provided that the above copyright notice and
12 * the following two paragraphs appear in all copies of this software.
13 *
14 * REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE. THE SOFTWAREAND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
17 * HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION TO PROVIDE
18 * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
19 *
20 * IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
21 * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
22 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
23 * REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26 package net.sf.sail.core.service.impl;
27
28 import javax.swing.ProgressMonitor;
29
30 import net.sf.sail.core.beans.SessionContext;
31 import net.sf.sail.core.bundle.Bundle;
32 import net.sf.sail.core.service.ServiceContext;
33 import net.sf.sail.core.service.SessionLifecycleListener;
34 import net.sf.sail.core.service.SessionManager;
35
36 /**
37 * It does not register any service, but consumes service
38 *
39 * @author scytacki
40 * AUDIT07-
41 */
42 public class SessionLoadMonitor implements Bundle, SessionLifecycleListener {
43 ProgressMonitor progressMonitor;
44
45 /**
46 * @see net.sf.sail.core.bundle.Bundle#registerServices(java.beans.beancontext.BeanContextServices)
47 */
48 public void registerServices(ServiceContext serviceContext) {
49 // no services to register
50 }
51
52 /**
53 * This actually show the progress bar. listens for session events. Intialized before curnit is downloaded.
54 *
55 * @param serviceContext - the service context
56 *
57 */
58 public void initializeBundle(ServiceContext serviceContext) {
59 // look up the SessionManager and add ourselves.
60 SessionManager manager = (SessionManager)
61 serviceContext.getService(SessionManager.class);
62 manager.addSessionLifecycleListener(this);
63 }
64
65 /**
66 * Creates progress monitor and shows it.
67 *
68 * @param SessionManager sessionManager - the session manager
69 */
70 public void sessionStart(SessionManager manager) {
71 progressMonitor = new ProgressMonitor(null,
72 "Launching Session", "", 0, 4);
73 progressMonitor.setNote("Loading curnit");
74
75 // we want this to popup immediately.
76 // the default is 2 seconds.
77 progressMonitor.setMillisToDecideToPopup(0);
78 progressMonitor.setMillisToPopup(0);
79
80 // This has to occur after the millis settings because
81 // calling this method is when the millis are decided
82 progressMonitor.setProgress(1);
83
84
85 }
86
87 /* (non-Javadoc)
88 * @see net.sf.sail.core.service.SessionLifecycleListener#sessionContextCreated(net.sf.sail.core.service.SessionManager, net.sf.sail.core.beans.SessionContext)
89 */
90 public void sessionContextCreated(SessionManager manager,
91 SessionContext context) {
92 progressMonitor.setProgress(2);
93 progressMonitor.setNote("Initiating session");
94 }
95
96 /* (non-Javadoc)
97 * @see net.sf.sail.core.service.SessionLifecycleListener#sessionContextIntiated(net.sf.sail.core.service.SessionManager, net.sf.sail.core.beans.SessionContext)
98 */
99 public void sessionContextIntiated(SessionManager manager,
100 SessionContext context) {
101 progressMonitor.setProgress(3);
102 progressMonitor.setNote("Starting session");
103 }
104
105 /* (non-Javadoc)
106 * @see net.sf.sail.core.service.SessionLifecycleListener#sessionContextStarted(net.sf.sail.core.service.SessionManager, net.sf.sail.core.beans.SessionContext)
107 */
108 public void sessionContextStarted(SessionManager manager,
109 SessionContext context) {
110 progressMonitor.setProgress(4);
111 }
112
113 /* (non-Javadoc)
114 * @see net.sf.sail.core.service.SessionLifecycleListener#sessionContextStopped(net.sf.sail.core.service.SessionManager, net.sf.sail.core.beans.SessionContext)
115 */
116 public void sessionContextStopped(SessionManager manager,
117 SessionContext context) {
118 // TODO Auto-generated method stub
119
120 }
121
122 }