FileDocCategorySizeDatePackage
ForegroundEventListener.javaAPI DocphoneME MR2 API (J2ME)4232Wed May 02 18:00:24 BST 2007com.sun.midp.lcdui

ForegroundEventListener

public class ForegroundEventListener extends Object implements com.sun.midp.events.EventListener
Listener for LCDUI events (user inputs, etc).

Fields Summary
private DisplayContainer
displayContainer
Active displays.
private com.sun.midp.events.EventQueue
eventQueue
Cached reference to the MIDP event queue.
Constructors Summary
public ForegroundEventListener(com.sun.midp.events.EventQueue theEventQueue, DisplayContainer theDisplayContainer)
The constructor for the foreground event handler for LCDUI.

param
theEventQueue the event queue
param
theDisplayContainer container for display objects

            
        eventQueue = theEventQueue;
        displayContainer = theDisplayContainer;

        /*
         * All events handled by this object are of NativeEventClass
         * and are instance specific events assosiated with some display Id.
         * So this listener is able to find an appropriate DisplayEventConsumer
         * associated with the displayId field of NativeEvent and 
         * to call methods of found consumer.
         */
        eventQueue.registerEventListener(EventTypes.FOREGROUND_NOTIFY_EVENT, 
					 this);
        eventQueue.registerEventListener(EventTypes.BACKGROUND_NOTIFY_EVENT, 
					 this);
    
Methods Summary
public booleanpreprocess(com.sun.midp.events.Event event, com.sun.midp.events.Event waitingEvent)
Preprocess an event that is being posted to the event queue.

param
event event being posted
param
waitingEvent previous event of this type waiting in the queue to be processed
return
true to allow the post to continue, false to not post the event to the queue

        return true;
    
public voidprocess(com.sun.midp.events.Event event)
Process an event.

param
event event to process

        NativeEvent nativeEvent = (NativeEvent)event;

        /*
         * Find ForegroundEventConsumer instance by nativeEvent.intParam4
         * and (if not null) call ForegroundEventConsumer methods ...
         */
        ForegroundEventConsumer fc =
            displayContainer.findForegroundEventConsumer(
                nativeEvent.intParam4);

        if (fc != null) {
            switch (event.getType()) {
            case EventTypes.FOREGROUND_NOTIFY_EVENT:
                fc.handleDisplayForegroundNotifyEvent();
                return;

            case EventTypes.BACKGROUND_NOTIFY_EVENT:
                fc.handleDisplayBackgroundNotifyEvent();
                return;
            default:
                if (Logging.REPORT_LEVEL <= Logging.WARNING) {
                    Logging.report(Logging.WARNING, LogChannels.LC_CORE,
                                   "unknown system event (" +
                                   event.getType() + ")");
                }
            }
        }