001: /*
002: *
003: *
004: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
005: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
006: *
007: * This program is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License version
009: * 2 only, as published by the Free Software Foundation.
010: *
011: * This program is distributed in the hope that it will be useful, but
012: * WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * General Public License version 2 for more details (a copy is
015: * included at /legal/license.txt).
016: *
017: * You should have received a copy of the GNU General Public License
018: * version 2 along with this work; if not, write to the Free Software
019: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA
021: *
022: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
023: * Clara, CA 95054 or visit www.sun.com if you need additional
024: * information or have any questions.
025: */
026:
027: package com.sun.midp.lcdui;
028:
029: import javax.microedition.lcdui.Displayable;
030:
031: /**
032: * This interface provides a set of methods to handle
033: * display-related events: user input, drawing,
034: * callbacks that are assosiated with displays.
035: *
036: * Implementor of this I/F shall be instance specific
037: * i.e. associated with a Display object instance
038: * (ex. Display.DisplayEventConsumerImpl class).
039: *
040: * Therefore it is assumed that target identification
041: * (displayId -> Display/DisplayAccess/DisplayEventConsumerImpl)
042: * is done before calling I/F methods in EventListener.
043: *
044: */
045: public interface DisplayEventConsumer {
046:
047: /*
048: * LOCAL USER INPUT EVENTS - produced by Native code
049: *
050: * KEY/non-IME
051: * KEY/IME
052: * PEN or POINTER (what name is better?)
053: * CMD
054: * PEER_CHANGED
055: *
056: */
057:
058: /**
059: * Called by event delivery when a key press,release or repeate event
060: * needs to be processed.
061: *
062: * @param keyType key press, release or repeate
063: * is one of EventConstants.PRESSED, EventConstants.RELEASED,
064: * EventConstants.REPEATED.
065: * @param keyCode key code to process
066: */
067: public void handleKeyEvent(int keyType, int keyCode);
068:
069: /**
070: * Called by event delivery when an input method event is processed.
071: *
072: * @param inputText string to process
073: */
074: public void handleInputMethodEvent(String inputText);
075:
076: /**
077: * Called by event delivery when a pointer press,release or drag event
078: * needs to be processed.
079: *
080: * @param pointerType pointer press, release or drag
081: * is one of EventConstants.PRESSED, EventConstants.RELEASED,
082: * or EventConstants.DRAGGED.
083: * @param x x-coordinate of the pointer event
084: * @param y y-coordinate of the pointer event
085: */
086: public void handlePointerEvent(int pointerType, int x, int y);
087:
088: /**
089: * Called by event delivery when an abstract Command is fired.
090: * The parameter is an index into the list of Commands that are
091: * current, i.e. those associated with the visible Screen.
092: *
093: * TBD: param screenId Id of the command target (Displayable)
094: * @param cmdId command Id
095: */
096: public void handleCommandEvent(/* int screenId, */int cmdId);
097:
098: /**
099: * Called by event delivery to notify an ItemLF in current DisplayableLF
100: * of a change in its native peer state.
101: *
102: * @param modelVersion the version of the peer's data model
103: * @param itemPeerId the id of the ItemLF's peer whose state has changed
104: * @param hint some value that is interpreted only between the peers
105: */
106: public void handlePeerStateChangeEvent(int modelVersion,
107: int itemPeerId, int hint);
108:
109: /*
110: * LOCAL DISPLAY MANAGEMENT EVENTS
111: *
112: * REPAINT - invoked through RepaintEventListener
113: * SCREEN_CHANGE
114: * INVALIDATE
115: */
116:
117: /**
118: * Called by event delivery when a repaint should occur.
119: *
120: * @param x1 The origin x coordinate of the repaint region
121: * @param y1 The origin y coordinate of the repaint region
122: * @param x2 The bounding x coordinate of the repaint region
123: * @param y2 The bounding y coordinate of the repaint region
124: * @param target The optional paint target
125: */
126: public void handleRepaintEvent(int x1, int y1, int x2, int y2,
127: Object target);
128:
129: /**
130: * Called by event delivery when a screen change needs to occur.
131: *
132: * @param screen The Displayable to make current in the Display
133: */
134: public void handleScreenChangeEvent(Displayable screen);
135:
136: /**
137: * Called by event delivery to process a Form invalidation.
138: */
139: public void handleInvalidateEvent();
140:
141: /*
142: * LOCAL CALLBACK MANAGEMEMT EVENTS
143: *
144: * CALL_SERIALLLY
145: */
146:
147: /**
148: * Called by event delivery to batch process
149: * all pending serial callbacks.
150: */
151: public void handleCallSeriallyEvent();
152:
153: /*
154: * ITEM EVENTS - not associated with a particular Display.
155: *
156: * ITEM_CHANGED/STATE_CHANGE
157: * ITEM_CHANGED/SIZE_REFRESH
158: * ITEM_CHANGED/MAKE_VISIBLE
159: *
160: * Now processed by ItemEventConsumer.
161: */
162:
163: /*
164: * Called by event delivery when size of screen was changed.
165: */
166: public void handleRotationEvent();
167:
168: /*
169: * Called by event delivery when full screen repaint is requested.
170: */
171: public void handleScreenRepaintEvent();
172: }
|