Copyright 2012-02-25 Werner Randelshofer

ch.randelshofer.view
Class ANIMVideoView

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
                          extended by ch.randelshofer.view.ANIMVideoView
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

public class ANIMVideoView
extends AbstractVideoView

This viewer displays videos of type IFF ANIM, IFF ANIM+SLA and IFF ANIM+ANFI.

Version:
1.7.1 2010-11-24 Don't swap speakers by default.
1.7 2009-12-24 Added support for color cycling. Fixed merging of pixel aspect sub-menu.
1.6 2005-09-16 "Swap Speakers" option added.
1.5.1 2005-06-19 Player sometimes waited forever for target state.
1.5 2005-01-22 Checkbox menu item "Play Wrapup Frames" added.
1.4 2004-12-30 Report the number of palettes in the movie track.
1.3 2003-04-27 Support for IFF ANIM+SLA and IFF ANIM+ANFI added.
1.2.2 2003-04-02 ANIMPlayer has moved in package org.monte.media.anim from package org.monte.media.
1.2 2003-03-30 Made toString more verbose.
1.1.1 2002-02-12 Updated for JDD 1.3.
1.1 2000-09-28 New superclass: AbstractVideoView.
1.0.1 2000-06-11 Text constants are read from a ResourceBundle.
1.0 1999-10-19
Author:
Werner Randelshofer, Hausmatt 10, CH-6405 Immensee, Switzerland
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class ch.randelshofer.view.AbstractVideoView
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.JCheckBoxMenuItem blendColorCyclesItem
          Menu items.
protected  javax.swing.JCheckBoxMenuItem colorCyclingItem
          Menu items.
protected  javax.swing.JCheckBoxMenuItem debugItem
           
protected  javax.swing.JRadioButtonMenuItem[] fpsItems
           
protected  javax.swing.JRadioButtonMenuItem fpsOriginalItem
           
protected  javax.swing.JCheckBoxMenuItem pingPongItem
          Menu items.
protected  javax.swing.JCheckBoxMenuItem playWrapupFramesItem
           
protected  javax.swing.JCheckBoxMenuItem swapSpeakersItem
           
 
Fields inherited from class ch.randelshofer.view.AbstractVideoView
anamorphPixelAspectItem, audioEnabledItem, autoPlayItem, backgroundBlackItem, backgroundCheckerboardItem, backgroundWhiteItem, bicubicItem, bilinearItem, checkerboardTexture, DOUBLE_SIZE, exactImageAspectItem, exactPixelAspectItem, HALF_SIZE, ignoreImageAspectItem, ignorePixelAspectItem, loopItem, multipliedPixelAspectItem, nearestNeighborItem, NORMAL_SIZE, playEveryFrameItem, RENDER_BICUBIC, RENDER_BILINEAR, RENDER_NEAREST_NEIGHBOR, SCREEN_SIZE, scrollPane, showScrollbarsItem, 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
ANIMVideoView()
          Initializes the Form
 
Method Summary
 void addNotify()
           
 void dispose()
          This method should be abstract but the form editor in NetBeans 3.4 does not suport abstract classes.
 java.lang.String getViewName()
           
 void init()
          This method is called after the view has been added to the parent component.
 void itemStateChanged(java.awt.event.ItemEvent event)
           
 void mergeViewMenuItems(javax.swing.JMenu m)
          Adds menu items to the "View" menu.
 void propertyChange(java.beans.PropertyChangeEvent event)
           
 void setCommandContext(java.lang.String verb, javax.activation.DataHandler dh)
          This method should be abstract but the form editor in NetBeans 3.4 does not suport abstract classes.
 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.
 java.lang.String toString()
           
protected  void updateAudioEnabled()
           
protected  void updateColorCycling()
           
protected  void updateDebug()
           
protected  void updateFPS()
           
protected  void updateInterpolation()
           
protected  void updateLoop()
           
protected  void updatePixelAspect()
           
protected  void updatePlayEveryFrame()
           
protected  void updatePlayPingPong()
           
protected  void updatePlayWrapupFrames()
           
protected  void updateSwapSpeakers()
           
protected  void updateViewProperties()
           
 
Methods inherited from class ch.randelshofer.view.AbstractVideoView
actionPerformed, addDropTargetListener, getControllerComponent, getVideoComponent, hasScrollPane, isAutoPlay, packParent, setControllerComponent, setVideoComponent, setViewSize, updateApplicationProperties, updateAutoPlay, updateImageAspect, updateInitialScaleFactor, updateScaleFactor, updateShowScrollbars
 
Methods inherited from class ch.randelshofer.view.AbstractView
getApplicationProperties, getViewProperties, mergeSettingsMenuItems, setApplicationProperties, setViewProperties
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

pingPongItem

protected javax.swing.JCheckBoxMenuItem pingPongItem
Menu items.


playWrapupFramesItem

protected javax.swing.JCheckBoxMenuItem playWrapupFramesItem

swapSpeakersItem

protected javax.swing.JCheckBoxMenuItem swapSpeakersItem

debugItem

protected javax.swing.JCheckBoxMenuItem debugItem

fpsOriginalItem

protected javax.swing.JRadioButtonMenuItem fpsOriginalItem

fpsItems

protected javax.swing.JRadioButtonMenuItem[] fpsItems

colorCyclingItem

protected javax.swing.JCheckBoxMenuItem colorCyclingItem
Menu items.


blendColorCyclesItem

protected javax.swing.JCheckBoxMenuItem blendColorCyclesItem
Menu items.

Constructor Detail

ANIMVideoView

public ANIMVideoView()
Initializes the Form

Method Detail

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 AbstractVideoView

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 AbstractVideoView

itemStateChanged

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

propertyChange

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

updateViewProperties

protected void updateViewProperties()
Overrides:
updateViewProperties in class AbstractVideoView

updateInterpolation

protected void updateInterpolation()
Overrides:
updateInterpolation in class AbstractVideoView

updatePlayEveryFrame

protected void updatePlayEveryFrame()
Overrides:
updatePlayEveryFrame in class AbstractVideoView

updatePlayWrapupFrames

protected void updatePlayWrapupFrames()

updateDebug

protected void updateDebug()

updatePlayPingPong

protected void updatePlayPingPong()

updateColorCycling

protected void updateColorCycling()

updateLoop

protected void updateLoop()
Overrides:
updateLoop in class AbstractVideoView

updateAudioEnabled

protected void updateAudioEnabled()
Overrides:
updateAudioEnabled in class AbstractVideoView

updateSwapSpeakers

protected void updateSwapSpeakers()

updateFPS

protected void updateFPS()

setCommandContext

public void setCommandContext(java.lang.String verb,
                              javax.activation.DataHandler dh)
                       throws java.io.IOException
Description copied from class: AbstractView
This method should be abstract but the form editor in NetBeans 3.4 does not suport abstract classes.

Specified by:
setCommandContext in interface javax.activation.CommandObject
Overrides:
setCommandContext in class AbstractView
Throws:
java.io.IOException

addNotify

public void addNotify()
Overrides:
addNotify in class javax.swing.JComponent

updatePixelAspect

protected void updatePixelAspect()
Overrides:
updatePixelAspect in class AbstractVideoView

startPlayer

public void startPlayer()
Description copied from class: AbstractVideoView
This method should be abstract but the form editor in NetBeans 3.4 does not suport abstract classes.

Overrides:
startPlayer in class AbstractVideoView

stopPlayer

public void stopPlayer()
Description copied from class: AbstractVideoView
This method should be abstract but the form editor in NetBeans 3.4 does not suport abstract classes.

Overrides:
stopPlayer in class AbstractVideoView

dispose

public void dispose()
Description copied from class: AbstractView
This method should be abstract but the form editor in NetBeans 3.4 does not suport abstract classes.

Specified by:
dispose in interface View
Specified by:
dispose in interface org.jhotdraw.app.Disposable
Overrides:
dispose in class AbstractView

getViewName

public java.lang.String getViewName()

toString

public java.lang.String toString()
Overrides:
toString in class java.awt.Component

Copyright 2012-02-25 Werner Randelshofer