FileDocCategorySizeDatePackage
MIDletEventProducer.javaAPI DocphoneME MR2 API (J2ME)5497Wed May 02 18:00:06 BST 2007com.sun.midp.midlet

MIDletEventProducer

public class MIDletEventProducer extends Object
This class provides methods to send events of types handled by MIDletEventConsumer I/F implementors. This class completely hide event construction & sending in its methods. The primary user of this class are MIDletProxyList & MIDletProxy in AMS isolate. Threrefore ve can use MIdletProxy object reference as sendXXXEvent() method parameter instead of currently used int IDs. Generic comments for all XXXEventProducers: For each supported event type there is a separate sendXXXEvent() method, that gets all needed parameters to construct an event of an approprate class. The method also performs event sending itself. If a given event type merges a set of logically different subtypes, this class shall provide separate methods for these subtypes. It is assumed that only one object instance of this class is initialized with the system event that is created at (isolate) startup. This class only operates on the event queue given to it during construction, the class does not obtain any restricted object itself, so it does not need protection. All MIDP stack subsystems that need to send events of supported types, must get a reference to an already created istance of this class. Typically, this instance should be passed as a constructor parameter. Class is NOT final to allow debug/profile/test/automation subsystems to change, substitute, complement default "event sending" functionality : Ex. class LogXXXEventProducer extends XXXEventProducer { ... void sendXXXEvent(parameters) { LOG("Event of type XXX is about to be sent ...") super.sendXXXEvent(parameters); LOG("Event of type XXX has been sent successfully !") } ... }

Fields Summary
protected com.sun.midp.events.EventQueue
eventQueue
Cached reference to the MIDP event queue.
Constructors Summary
public MIDletEventProducer(com.sun.midp.events.EventQueue theEventQueue)
Construct a new MIDletEventProducer.

param
theEventQueue An event queue where new events will be posted.

        eventQueue = theEventQueue;
    
Methods Summary
public voidsendMIDletActivateEvent(int isolateId, java.lang.String midletClassName)
Pause a MIDlet. Probably: need some form of MIDlet ID instead of displayId. use MIDletProxy instead of 2 int ID parameters.

param
isolateId ID of the target isolate (where to send event)
param
midletClassName class name of the MIDlet

        sendMIDletEvent(EventTypes.ACTIVATE_MIDLET_EVENT, isolateId,
                        midletClassName);
    
public voidsendMIDletDestroyEvent(int isolateId, java.lang.String midletClassName)
Destroy a MIDlet. Former: void MIDletProxy.destroyMidlet();

param
isolateId ID of the target isolate (where to send event)
param
midletClassName class name of the MIDlet

        sendMIDletEvent(EventTypes.DESTROY_MIDLET_EVENT, isolateId,
                        midletClassName);
    
private voidsendMIDletEvent(int eventType, int midletIsolateId, java.lang.String midletClassName)
Sends an event with the only integer parameter for display ID to a MIDlet .

param
eventType type of event to be sent
param
midletIsolateId ID of the target isolate
param
midletClassName class name of the MIDlet

        NativeEvent event = new NativeEvent(eventType);

        event.stringParam1 = midletClassName;

        eventQueue.sendNativeEventToIsolate(event, midletIsolateId);
    
public voidsendMIDletPauseEvent(int isolateId, java.lang.String midletClassName)
Activate a MIDlet. Former: void MIDletProxy.pauseMidlet();

param
isolateId ID of the target isolate (where to send event)
param
midletClassName class name of the MIDlet

        sendMIDletEvent(EventTypes.PAUSE_MIDLET_EVENT, isolateId,
                        midletClassName);