/*
* @(#)MediaPlayerBeanInfo.java 1.5 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
// @version 1.0
// Last Updated: 01/28/99
// Notes: N/A
package javax.media.bean.playerbean;
import java.beans.*;
/**
* Provides explicit bean information for the
* <CODE>MediaPlayer</CODE>. It provides descriptions of each property and
* indicates which <CODE>MediaPlayer</CODE> properties are bound.
* Invoked by JavaBeans<sup><font size=-2>TM</sup></font> application builders.
*/
public class MediaPlayerBeanInfo extends SimpleBeanInfo
{
private final static Class beanClass = MediaPlayer.class;
/**
* Gets a list of bean <CODE>PropertyDescriptor</CODE> objects, one for
* each public property in the <CODE>MediaPlayer</CODE>.
*
* @return A <CODE>PropertyDescriptor</CODE> array that contains all of the bean property
* descriptors for this <CODE>MediaPlayer</CODE>.
*/
public PropertyDescriptor [] getPropertyDescriptors()
{
try
{
/* general UI properties */
PropertyDescriptor background = new
PropertyDescriptor("background", beanClass);
PropertyDescriptor foreground = new
PropertyDescriptor("foreground", beanClass);
PropertyDescriptor font = new
PropertyDescriptor("font", beanClass);
/* Behavior & appearance properties for the bean */
PropertyDescriptor Url =
new PropertyDescriptor("mediaLocation", beanClass);
Url.setDisplayName(MediaPlayerResource.getString("MEDIA_LOCATION"));
Url.setBound(true);
Url.setPropertyEditorClass(MediaPlayerMediaLocationEditor.class);
PropertyDescriptor PanelVisible =
new PropertyDescriptor("controlPanelVisible", beanClass);
PanelVisible.setDisplayName(
MediaPlayerResource.getString("CONTROL_PANEL_VISIBLE"));
PanelVisible.setBound(true);
PropertyDescriptor CacheVisible =
new PropertyDescriptor("cachingControlVisible", beanClass);
CacheVisible.setDisplayName(
MediaPlayerResource.getString("CACHING_CONTROL_VISIBLE"));
CacheVisible.setBound(true);
PropertyDescriptor FixedAspectRatio =
new PropertyDescriptor("fixedAspectRatio", beanClass);
FixedAspectRatio.setDisplayName(
MediaPlayerResource.getString("FIXED_ASPECT_RATIO"));
FixedAspectRatio.setBound(true);
PropertyDescriptor loop =
new PropertyDescriptor("playbackLoop", beanClass);
loop.setBound(true);
loop.setDisplayName(MediaPlayerResource.getString("LOOP"));
PropertyDescriptor volume =
new PropertyDescriptor("volumeLevel", beanClass);
volume.setBound(true);
volume.setDisplayName(MediaPlayerResource.getString("VOLUME"));
volume.setPropertyEditorClass(MediaPlayerVolumePropertyEditor.class);
/* build an array of property descriptors */
PropertyDescriptor rv[] = { Url, PanelVisible, CacheVisible,
FixedAspectRatio,loop, volume,
background, foreground, font};
return rv;
}
catch (IntrospectionException e)
{
throw new Error(e.toString());
}
}
/**
* Gets the default property index for this bean.
* The "mediaLocation" property is the default property
* for the <CODE>MediaPlayer</CODE>.
*
* @return The default property index for the bean.
*/
public int getDefaultPropertyIndex()
{
return 1;
}
/**
* Gets the bean descriptor for this bean, which defines information
* about <CODE>MediaPlayer</CODE> such as its <CODE>displayName</CODE>.
*
* @return The <CODE>BeanDescriptor</CODE> for <CODE>MediaPlayer</CODE>.
*
*/
public BeanDescriptor getBeanDescriptor()
{
BeanDescriptor bd = new BeanDescriptor(MediaPlayer.class);
bd.setDisplayName(MediaPlayerResource.getString("MEDIA_PLAYER")+
" " + MediaPlayerResource.getString("BEAN"));
//"MediaPlayer Bean");
return bd;
}
/**
* Gets a list of the events fired by this bean.
*
* @return An array of <CODE>EventSetDescriptor</CODE> objects that describes the kinds
* of events fired by this bean.
*/
public EventSetDescriptor[] getEventSetDescriptors()
{
try
{
EventSetDescriptor cl = new EventSetDescriptor(beanClass,
"controllerUpdate",
javax.media.ControllerListener.class,
"controllerUpdate");
EventSetDescriptor pc = new EventSetDescriptor(beanClass,
"propertyChange",
java.beans.PropertyChangeListener.class,
"propertyChange");
cl.setDisplayName("Controller Events");
EventSetDescriptor[] rv = {cl, pc};
return rv;
}
catch (IntrospectionException e)
{
throw new Error(e.toString());
}
}
/**
*
* Gets the icon to be used in the bean tool for this bean.
*
* @param ic Indicates the format for the icon image. The valid format constants are defined
* in <CODE>SimpleBeanInfo</CODE>: <CODE>ICON_COLOR_16x16</CODE>, <CODE>ICON_COLOR_32x32</CODE>,
* <CODE>ICON_MONO_16x16</CODE>, and <CODE>ICON_MONO_16x16</CODE>.
*
* @return The icon to be used as an AWT <CODE>Image</CODE>.
*/
public java.awt.Image getIcon(int ic) {
switch (ic) {
case BeanInfo.ICON_COLOR_16x16:
return loadImage("MediaPlayerColor16.gif");
case BeanInfo.ICON_COLOR_32x32:
return loadImage("MediaPlayerColor32.gif");
case BeanInfo.ICON_MONO_16x16:
return loadImage("MediaPlayerMono16.gif");
case BeanInfo.ICON_MONO_32x32:
return loadImage("MediaPlayerMono32.gif");
default:
return null;
}
}
}
|