chrriis.dj.nativeswing.swtimpl.components
Class JFlashPlayer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by chrriis.dj.nativeswing.swtimpl.NSPanelComponent
                      extended by chrriis.dj.nativeswing.swtimpl.components.JFlashPlayer
All Implemented Interfaces:
NSComponent, ImageObserver, MenuContainer, Serializable, Accessible

public class JFlashPlayer
extends NSPanelComponent

A native Flash player. It is a browser-based component, which relies on the Flash plugin.
Methods execute when this component is initialized. If the component is not initialized, methods will be executed as soon as it gets initialized. If the initialization fails, the methods will not have any effect. The results from methods have relevant values only when the component is valid.

Author:
Christopher Deckers
See Also:
Serialized Form

Nested Class Summary
static interface JFlashPlayer.FlashPlayerDecoratorFactory
          A factory that creates the decorators for flash players.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JFlashPlayer(NSOption... options)
          Construct a flash player.
 
Method Summary
 void addFlashPlayerListener(FlashPlayerListener listener)
          Add a flash player listener.
protected  FlashPlayerDecorator createFlashPlayerDecorator(Component renderingComponent)
          Create a decorator for this flash player.
 void disposeNativePeer()
          Explicitely dispose the native resources.
protected  void finalize()
           
 FlashPlayerListener[] getFlashPlayerListeners()
          Get the flash player listeners.
 Object getVariable(String name)
          Get the value of a variable, or an object property if the web browser used is Internet Explorer.
 JWebBrowser getWebBrowser()
          Get the web browser that contains this component.
 void invokeFlashFunction(String functionName, Object... args)
          Invoke a function on the Flash object, with optional arguments (Strings, numbers, booleans).
 Object invokeFlashFunctionWithResult(String functionName, Object... args)
          Invoke a function on the Flash object and waits for a result, with optional arguments (Strings, numbers, booleans).
 boolean isControlBarVisible()
          Indicate whether the control bar is visible.
 void load(Class<?> clazz, String resourcePath)
          Load a file from the classpath.
 void load(Class<?> clazz, String resourcePath, FlashPluginOptions options)
          Load a file from the classpath.
 void load(String resourceLocation)
          Load a file.
 void load(String resourceLocation, FlashPluginOptions options)
          Load a file.
 void pause()
          Pause the execution of timeline-based flash applications.
 void play()
          Play a timeline-based flash applications.
 void removeFlashPlayerListener(FlashPlayerListener listener)
          Remove a flash player listener.
 void removeNotify()
           
 void setControlBarVisible(boolean isControlBarVisible)
          Set whether the control bar is visible.
static NSOption setCustomJavascriptDefinitions(String javascript)
          Create an option to set some custom Javascript definitions (functions) that are added to the HTML page that contains the plugin.
static void setFlashPlayerDecoratorFactory(JFlashPlayer.FlashPlayerDecoratorFactory flashPlayerDecoratorFactory)
          Set the decorator that will be used for future flash player instances.
 void setVariable(String name, String value)
          Set the value of a variable.
 void stop()
          Stop the execution of timeline-based flash applications.
 
Methods inherited from class chrriis.dj.nativeswing.swtimpl.NSPanelComponent
constrainVisibility, destroyOnFinalization, getNativeComponent, initialize, initializeNativePeer, isNativePeerDisposed, isNativePeerInitialized, isNativePeerValid, proxyComponentHierarchy, runInSequence
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JFlashPlayer

public JFlashPlayer(NSOption... options)
Construct a flash player.

Parameters:
options - the options to configure the behavior of this component.
Method Detail

setCustomJavascriptDefinitions

public static NSOption setCustomJavascriptDefinitions(String javascript)
Create an option to set some custom Javascript definitions (functions) that are added to the HTML page that contains the plugin.

Returns:
the option to set some custom Javascript definitions.

setFlashPlayerDecoratorFactory

public static void setFlashPlayerDecoratorFactory(JFlashPlayer.FlashPlayerDecoratorFactory flashPlayerDecoratorFactory)
Set the decorator that will be used for future flash player instances.

Parameters:
flashPlayerDecoratorFactory - the factory that creates the decorators, or null for default decorators.

createFlashPlayerDecorator

protected FlashPlayerDecorator createFlashPlayerDecorator(Component renderingComponent)
Create a decorator for this flash player. This method can be overriden so that the flash player uses a different decorator.

Parameters:
renderingComponent - the component to add to the decorator's component hierarchy.
Returns:
the decorator that was created.

load

public void load(Class<?> clazz,
                 String resourcePath)
Load a file from the classpath.

Parameters:
clazz - the reference clazz of the file to load.
resourcePath - the path to the file.

load

public void load(Class<?> clazz,
                 String resourcePath,
                 FlashPluginOptions options)
Load a file from the classpath.

Parameters:
clazz - the reference clazz of the file to load.
resourcePath - the path to the file.
options - the options to better configure the initialization of the flash plugin.

load

public void load(String resourceLocation)
Load a file.

Parameters:
resourceLocation - the path or URL to the file.

load

public void load(String resourceLocation,
                 FlashPluginOptions options)
Load a file.

Parameters:
resourceLocation - the path or URL to the file.
options - the options to better configure the initialization of the flash plugin.

play

public void play()
Play a timeline-based flash applications.


pause

public void pause()
Pause the execution of timeline-based flash applications.


stop

public void stop()
Stop the execution of timeline-based flash applications.


setVariable

public void setVariable(String name,
                        String value)
Set the value of a variable. It is also possible to set object properties with that method, though it is recommended to create special accessor methods.

Parameters:
name - the name of the variable.
value - the new value of the variable.

getVariable

public Object getVariable(String name)
Get the value of a variable, or an object property if the web browser used is Internet Explorer. On Mozilla, it is not possible to access object properties with that method, an accessor method or a global variable in the Flash application should be used instead.

Returns:
the value, potentially a String, Number, Boolean.

invokeFlashFunction

public void invokeFlashFunction(String functionName,
                                Object... args)
Invoke a function on the Flash object, with optional arguments (Strings, numbers, booleans).

Parameters:
functionName - the name of the function to invoke.
args - optional arguments.

invokeFlashFunctionWithResult

public Object invokeFlashFunctionWithResult(String functionName,
                                            Object... args)
Invoke a function on the Flash object and waits for a result, with optional arguments (Strings, numbers, booleans).

Parameters:
functionName - the name of the function to invoke.
args - optional arguments.
Returns:
The value, potentially a String, Number, Boolean.

getWebBrowser

public JWebBrowser getWebBrowser()
Get the web browser that contains this component. The web browser should only be used to add listeners, for example to listen to window creation events.

Returns:
the web browser.

isControlBarVisible

public boolean isControlBarVisible()
Indicate whether the control bar is visible.

Returns:
true if the control bar is visible.

setControlBarVisible

public void setControlBarVisible(boolean isControlBarVisible)
Set whether the control bar is visible.

Parameters:
isControlBarVisible - true if the control bar should be visible, false otherwise.

addFlashPlayerListener

public void addFlashPlayerListener(FlashPlayerListener listener)
Add a flash player listener.

Parameters:
listener - The flash player listener to add.

removeFlashPlayerListener

public void removeFlashPlayerListener(FlashPlayerListener listener)
Remove a flash player listener.

Parameters:
listener - the flash player listener to remove.

getFlashPlayerListeners

public FlashPlayerListener[] getFlashPlayerListeners()
Get the flash player listeners.

Returns:
the flash player listeners.

finalize

protected void finalize()
                 throws Throwable
Overrides:
finalize in class Object
Throws:
Throwable

removeNotify

public void removeNotify()
Overrides:
removeNotify in class JComponent

disposeNativePeer

public void disposeNativePeer()
Description copied from interface: NSComponent
Explicitely dispose the native resources. This is particularly useful if deferred destruction is used (cf native component options) and the component is not going to be used anymore.

Specified by:
disposeNativePeer in interface NSComponent
Overrides:
disposeNativePeer in class NSPanelComponent