Copyright 2012-02-25 Werner Randelshofer

ch.randelshofer.view
Class AbstractVideoView

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 ch.randelshofer.view.AbstractView
                      extended by ch.randelshofer.view.AbstractVideoView
All Implemented Interfaces:
View, java.awt.event.ActionListener, java.awt.event.ItemListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.activation.CommandObject, org.jhotdraw.app.Disposable
Direct Known Subclasses:
ANIMVideoView, JMFVideoView, SEQVideoView

public class AbstractVideoView
extends AbstractView
implements java.awt.event.ActionListener, java.awt.event.ItemListener

This class provides the layout and common menu items for video media content.

Version:
1.4 2005-01-04 Fullscreen view takes now screen insets into account.
1.3 2003-04-07 Automatic start of the player when the 'autoPlay' feature is enabled delegated to subclasses.
1.2 2003-04-19 The form editor in NetBeans 3.4 does not support abstract classes. This class is now concrete.
1.1 2002-02-10 Support for scroll bars added. DnD support added.
1.0 2000-10-02
Author:
Werner Randelshofer, Hausmatt 10, CH-6405 Immensee, Switzerland
See Also:
Serialized Form

Nested Class Summary
protected static class AbstractVideoView.VideoPanel
           
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  javax.swing.JRadioButtonMenuItem anamorphPixelAspectItem
          Menu items.
protected  javax.swing.JCheckBoxMenuItem audioEnabledItem
           
protected  javax.swing.JCheckBoxMenuItem autoPlayItem
           
protected  javax.swing.JRadioButtonMenuItem backgroundBlackItem
           
protected  javax.swing.JRadioButtonMenuItem backgroundCheckerboardItem
           
protected  javax.swing.JRadioButtonMenuItem backgroundWhiteItem
           
protected  javax.swing.JRadioButtonMenuItem bicubicItem
           
protected  javax.swing.JRadioButtonMenuItem bilinearItem
           
protected static java.awt.image.BufferedImage checkerboardTexture
           
static int DOUBLE_SIZE
           
protected  javax.swing.JRadioButtonMenuItem exactImageAspectItem
           
protected  javax.swing.JRadioButtonMenuItem exactPixelAspectItem
          Menu items.
static int HALF_SIZE
           
protected  javax.swing.JRadioButtonMenuItem ignoreImageAspectItem
           
protected  javax.swing.JRadioButtonMenuItem ignorePixelAspectItem
          Menu items.
protected  javax.swing.JCheckBoxMenuItem loopItem
           
protected  javax.swing.JRadioButtonMenuItem multipliedPixelAspectItem
          Menu items.
protected  javax.swing.JRadioButtonMenuItem nearestNeighborItem
           
static int NORMAL_SIZE
           
protected  javax.swing.JCheckBoxMenuItem playEveryFrameItem
           
protected static java.awt.RenderingHints RENDER_BICUBIC
           
protected static java.awt.RenderingHints RENDER_BILINEAR
           
protected static java.awt.RenderingHints RENDER_NEAREST_NEIGHBOR
           
static int SCREEN_SIZE
           
protected  javax.swing.JScrollPane scrollPane
           
protected  javax.swing.JCheckBoxMenuItem showScrollbarsItem
           
protected  AbstractVideoView.VideoPanel videoPanel
           
 
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 ch.randelshofer.view.View
REQUEST_INFO_UPDATE_PROPERTY
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
AbstractVideoView()
          Initializes the Form
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
           
 void addDropTargetListener(java.awt.dnd.DropTargetListener listener)
          This method adds the given drop target listener to all components of the viewer.
protected  java.awt.Component getControllerComponent()
           
protected  java.awt.Component getVideoComponent()
           
 boolean hasScrollPane()
          Returns true if this viewer has a scrollpane of its own.
 void init()
          This method is called after the view has been added to the parent component.
protected  boolean isAutoPlay()
           
 void itemStateChanged(java.awt.event.ItemEvent event)
           
 void mergeViewMenuItems(javax.swing.JMenu m)
          Adds menu items to the "View" menu.
protected  void packParent()
           
 void propertyChange(java.beans.PropertyChangeEvent event)
           
protected  void setControllerComponent(java.awt.Component c)
           
protected  void setVideoComponent(java.awt.Component c)
           
 void setViewSize(int size)
           
 void startPlayer()
          This method should be abstract but the form editor in NetBeans 3.4 does not suport abstract classes.
 void stopPlayer()
          This method should be abstract but the form editor in NetBeans 3.4 does not suport abstract classes.
protected  void updateApplicationProperties()
           
protected  void updateAudioEnabled()
           
protected  void updateAutoPlay()
           
protected  void updateImageAspect()
           
protected  void updateInitialScaleFactor()
           
protected  void updateInterpolation()
           
protected  void updateLoop()
           
protected  void updatePixelAspect()
           
protected  void updatePlayEveryFrame()
           
protected  void updateScaleFactor()
           
protected  void updateShowScrollbars()
           
protected  void updateViewProperties()
           
 
Methods inherited from class ch.randelshofer.view.AbstractView
dispose, getApplicationProperties, getViewProperties, mergeSettingsMenuItems, setApplicationProperties, setCommandContext, setViewProperties
 
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, removeNotify, 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, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

videoPanel

protected AbstractVideoView.VideoPanel videoPanel

scrollPane

protected javax.swing.JScrollPane scrollPane

ignorePixelAspectItem

protected javax.swing.JRadioButtonMenuItem ignorePixelAspectItem
Menu items.


multipliedPixelAspectItem

protected javax.swing.JRadioButtonMenuItem multipliedPixelAspectItem
Menu items.


exactPixelAspectItem

protected javax.swing.JRadioButtonMenuItem exactPixelAspectItem
Menu items.


anamorphPixelAspectItem

protected javax.swing.JRadioButtonMenuItem anamorphPixelAspectItem
Menu items.


ignoreImageAspectItem

protected javax.swing.JRadioButtonMenuItem ignoreImageAspectItem

exactImageAspectItem

protected javax.swing.JRadioButtonMenuItem exactImageAspectItem

backgroundWhiteItem

protected javax.swing.JRadioButtonMenuItem backgroundWhiteItem

backgroundBlackItem

protected javax.swing.JRadioButtonMenuItem backgroundBlackItem

backgroundCheckerboardItem

protected javax.swing.JRadioButtonMenuItem backgroundCheckerboardItem

nearestNeighborItem

protected javax.swing.JRadioButtonMenuItem nearestNeighborItem

bilinearItem

protected javax.swing.JRadioButtonMenuItem bilinearItem

bicubicItem

protected javax.swing.JRadioButtonMenuItem bicubicItem

autoPlayItem

protected javax.swing.JCheckBoxMenuItem autoPlayItem

showScrollbarsItem

protected javax.swing.JCheckBoxMenuItem showScrollbarsItem

playEveryFrameItem

protected javax.swing.JCheckBoxMenuItem playEveryFrameItem

loopItem

protected javax.swing.JCheckBoxMenuItem loopItem

audioEnabledItem

protected javax.swing.JCheckBoxMenuItem audioEnabledItem

checkerboardTexture

protected static final java.awt.image.BufferedImage checkerboardTexture

RENDER_NEAREST_NEIGHBOR

protected static final java.awt.RenderingHints RENDER_NEAREST_NEIGHBOR

RENDER_BILINEAR

protected static final java.awt.RenderingHints RENDER_BILINEAR

RENDER_BICUBIC

protected static final java.awt.RenderingHints RENDER_BICUBIC

HALF_SIZE

public static final int HALF_SIZE
See Also:
Constant Field Values

NORMAL_SIZE

public static final int NORMAL_SIZE
See Also:
Constant Field Values

DOUBLE_SIZE

public static final int DOUBLE_SIZE
See Also:
Constant Field Values

SCREEN_SIZE

public static final int SCREEN_SIZE
See Also:
Constant Field Values
Constructor Detail

AbstractVideoView

public AbstractVideoView()
Initializes the Form

Method Detail

setVideoComponent

protected void setVideoComponent(java.awt.Component c)

getVideoComponent

protected java.awt.Component getVideoComponent()

setControllerComponent

protected void setControllerComponent(java.awt.Component c)

getControllerComponent

protected java.awt.Component getControllerComponent()

mergeViewMenuItems

public void mergeViewMenuItems(javax.swing.JMenu m)
Description copied from class: AbstractView
Adds menu items to the "View" menu. When the viewer is added to a container with a JMenuBar. Then the container asks the viewer to add his menu items to the "View" menu of the container.

Specified by:
mergeViewMenuItems in interface View
Overrides:
mergeViewMenuItems in class AbstractView

updateViewProperties

protected void updateViewProperties()
Overrides:
updateViewProperties in class AbstractView

updateApplicationProperties

protected void updateApplicationProperties()
Overrides:
updateApplicationProperties in class AbstractView

updateInterpolation

protected void updateInterpolation()

updateImageAspect

protected void updateImageAspect()

updatePixelAspect

protected void updatePixelAspect()

updateInitialScaleFactor

protected void updateInitialScaleFactor()

updateAutoPlay

protected void updateAutoPlay()

isAutoPlay

protected boolean isAutoPlay()

updateShowScrollbars

protected void updateShowScrollbars()

hasScrollPane

public boolean hasScrollPane()
Description copied from interface: View
Returns true if this viewer has a scrollpane of its own. The container that contains this viewers uses this method to determine if it should wrap a scrollpane around the viewer or not.

Specified by:
hasScrollPane in interface View
Overrides:
hasScrollPane in class AbstractView
Returns:
true if this viewer has a scrollpane of its own.

setViewSize

public void setViewSize(int size)

updateScaleFactor

protected void updateScaleFactor()

updatePlayEveryFrame

protected void updatePlayEveryFrame()

updateLoop

protected void updateLoop()

updateAudioEnabled

protected void updateAudioEnabled()

startPlayer

public void startPlayer()
This method should be abstract but the form editor in NetBeans 3.4 does not suport abstract classes.


stopPlayer

public void stopPlayer()
This method should be abstract but the form editor in NetBeans 3.4 does not suport abstract classes.


actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent event)
Specified by:
itemStateChanged in interface java.awt.event.ItemListener

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent event)
Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Overrides:
propertyChange in class AbstractView

packParent

protected void packParent()

init

public void init()
Description copied from class: AbstractView
This method is called after the view has been added to the parent component.

Specified by:
init in interface View
Overrides:
init in class AbstractView

addDropTargetListener

public void addDropTargetListener(java.awt.dnd.DropTargetListener listener)
This method adds the given drop target listener to all components of the viewer.

Specified by:
addDropTargetListener in interface View
Overrides:
addDropTargetListener in class AbstractView

Copyright 2012-02-25 Werner Randelshofer