Copyright 2002 Sun Microsystems, Inc.; Nokia Corporation. See the Copyright Notice and Specification License for more details.

javax.microedition.media.control
Interface GUIControl

All Superinterfaces:
Control
All Known Subinterfaces:
VideoControl

public interface GUIControl
extends Control

GUIControl extends Control and is defined for controls that provide GUI functionalities.

Controls that support a GUI component should implement this interface.


Field Summary
static int USE_GUI_PRIMITIVE
          This defines a mode on how the GUI is displayed.
 
Method Summary
 java.lang.Object initDisplayMode(int mode, java.lang.Object arg)
          Initialize the mode on how the GUI is displayed.
 

Field Detail

USE_GUI_PRIMITIVE

public static final int USE_GUI_PRIMITIVE
This defines a mode on how the GUI is displayed. It is used in conjunction with initDisplayMode.

When USE_GUI_PRIMITIVE is specified for initDisplayMode, a GUI primitive will be returned. This object is where the GUI of this control will be displayed. It can be used in conjunction with other GUI objects, and conforms to the GUI behaviors as specified by the platform.

For a given platform, the object returned must implement or extend from the appropriate GUI primitive of the platform. For platforms that support only AWT such as some CDC implementations, the object must extend from java.awt.Component; for MIDP implementations with only LCDUI support, it must extend from javax.microedition.lcdui.Item.

In these cases, the arg argument must be null or a String that specifies the fully-qualified classname of the GUI primitive.

On some platforms that support multiple types of GUI primitives, the arg argument must be used to arbitrate among the options. The arg argument must be a String that specifies the fully-qualified classname of the GUI primitive to be returned by the method.

For example, a platform that supports both AWT and LCDUI must use either "java.awt.Component" or "javax.microedition.lcdui.Item" as the arg argument. The object returned will be of either type according to what's specified.

Here are some sample usage scenarios:

For CDC implementations with only AWT support:

 
   try {
       Player p = Manager.createPlayer("http://abc.mpg");
       p.realize();
       GUIControl gc;
       if ((gc = (GUIControl)p.getControl("GUIControl")) != null)
           add((Component)gc.initDisplayMode(GUIControl.USE_GUI_PRIMITIVE, null));
       p.start();
   } catch (MediaException pe) {
   } catch (IOException ioe) {
   }
 
 

For MIDP implementations with only LCDUI support:

 
   try {
       Player p = Manager.createPlayer("http://abc.mpg");
       p.realize();
       GUIControl gc;
       if ((gc = (GUIControl)p.getControl("GUIControl")) != null) {
           Form form = new Form("My GUI");
           form.append((Item)gc.initDisplayMode(GUIControl.USE_GUI_PRIMITIVE, null));
           Display.getDisplay(midlet).setCurrent(form);
       }
       p.start();
   } catch (MediaException pe) {
   } catch (IOException ioe) {
   }
 
 

For implementations with both AWT and LCDUI support:

 
   try {
       Player p = Manager.createPlayer("http://abc.mpg");
       p.realize();
       GUIControl gc;
       if ((gc = (GUIControl)p.getControl("GUIControl")) != null)
           add((Component)gc.initDisplayMode(GUIControl.USE_GUI_PRIMITIVE,
                                   new String("java.awt.Component"));
       p.start();
   } catch (MediaException pe) {
   } catch (IOException ioe) {
   }
 
 

Value 0 is assigned to USE_GUI_PRIMITIVE.

Method Detail

initDisplayMode

public java.lang.Object initDisplayMode(int mode,
                                        java.lang.Object arg)
Initialize the mode on how the GUI is displayed.
Parameters:
mode - The mode that determines how the GUI is displayed. GUIControl defines only one mode: USE_GUI_PRIMITIVE. Subclasses of this may introduce more modes.
arg - The exact semantics of this argument is specified in the respective mode definitions.
Returns:
The exact semantics and type of the object returned are specified in the respective mode definitions.
Throws:
IllegalStateException - Thrown if initDisplayMode is called again after it has previously been called successfully.
IllegalArgumentException - Thrown if the mode or arg argument is invalid. mode must be defined by GUIControl or its subclasses; or a custom mode supported by this implementation. arg must conform to the constraints defined by the respective mode definitions.


Copyright 2002 Sun Microsystems, Inc.; Nokia Corporation. See the Copyright Notice and Specification License for more details.