LifeCycleImpl.jcs Sample

This topic inludes the source code for the LifeCycleImpl.jcs Sample.

Sample Location

This sample is located in the following directory in your WebLogic Workshop installation:

BEA_HOME/weblogic81/samples/workshop/ExtensionDevKit/ControlDevKit/ControlFeatures/controlEvents/

Sample Source Code


001 package controlEvents; 
002 
003 import com.bea.control.*;
004 import java.util.Date;
005 import java.util.Calendar;
006 
007 /**
008  * The LifeCycle control simply illustrates the events that occur
009  * in the life of a Java control. As the client uses this control --
010  * acquiring it, calling its method, releasing it -- each of these
011  * events is reported to the WebLogic Server console window.
012  
013  * @jcs:jc-jar palette-priority="7" label="LifeCycle"
014  *          version="1.0" 
015  *          icon-16="/images/buffer_16.gif" 
016  *          icon-32="/images/buffer_32.gif" 
017  *          group-name="Feature Sample Controls" 
018  *          description="Illustrates Context life cycle events"
019  *          @editor-info:code-gen control-interface="true"
020  */
021 public class LifeCycleImpl implements LifeCycle, com.bea.control.ControlSource
022 
023     /**
024      * @jc:timer timeout="5 seconds"
025      * @common:control
026      */
027     private TimerControl delayTimer;
028 
029     public Callback callback;
030 
031     long m_currentTime;
032     StringBuffer m_cycleMessages = new StringBuffer();
033     Calendar m_calendar;
034 
035     /**
036      * @common:context
037      */
038     com.bea.control.ControlContext context;
039 
040     /**
041      * The startMeUp method provides a place for clients to start using this
042      * control.
043      
044      * @common:operation
045      */
046     public void startMeUp()
047     {
048         String message = "LifeCycle: context.startMeUp method is called. \n";
049         System.out.println(message);
050         m_cycleMessages.append(message);
051     }
052 
053     /*
054      * The onCreate callback is received when the control is created by 
055      * the container. onCreate is a good place to acquire resources that
056      * may be needed by the control.
057      */
058     public void context_onCreate() {
059         delayTimer.start();
060         String message = "LifeCycle: context_onCreate received. Timer started. \n";
061 
062         System.out.println(message);
063         m_cycleMessages.append(message);
064     }
065     
066     /*
067      * onAcquire is received when a control operation is about to start.
068      */
069     public void context_onAcquire() {
070         String message = "LifeCycle: context_onAcquire received. \n";
071         System.out.println(message);
072         m_cycleMessages.append(message);
073     }
074     
075     /*
076      * onReset is implemented to let the container know that this 
077      * instance can be re-used after a call to onReset().
078      */
079     public void context_onReset() {
080         String message = "LifeCycle: context_onReset received. \n";
081         System.out.println(message);
082         m_cycleMessages.append(message);
083     }
084     
085     /*
086      * onRelease is received with a control operation has finished.
087      */
088     public void context_onRelease() {
089         String message = "LifeCycle: context_onRelease received. \n";
090         System.out.println(message);
091         m_cycleMessages.append(message);
092     }
093 
094     
095     /*
096      * onException is received in the event of an unhandled exception.
097      * It provides a place to do clean up and notify the client
098      * of the error.
099      */
100     public void context_onException(Exception e, String methodName, 
101         Object[] methodArgs
102     {
103         throw new ControlException("Exception at: " + methodName, e);
104     }
105 
106   
107     public void delayTimer_onTimeout(long arg0)
108     {
109         String message = "LifeCycle: delayTimer_onTimeout received. " +
110             "onDone about to be invoked. \n";
111         System.out.println(message);
112         callback.onDone(m_cycleMessages.toString());        
113     }
114