Copyright 2012-02-25 Werner Randelshofer

ch.randelshofer.view
Class ImageView

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.ImageView
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:
ILBMView, ImageIOView, JAIView

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

View for Image files supported by the standard Java API (GIF and JPG for all JDK's up to 1.2).

Version:
1.2 2011-01-06 Adds information about color model to info panel.
1.1.1 2010-09-08 Fixes a memory leak.
1.1.0.1 2001-06-17 Converses class to JDK 1.3.
1.1 2000-09-28 Removes suffix '_' from instance variable names.
1.0.1 2000-06-11 Reads text constants from a ResourceBundle.
1.0 1999-10-19 Created.
Author:
Werner Randelshofer, Hausmatt 10, CH-6405 Immensee, Switzerland
See Also:
Serialized Form

Nested Class Summary
protected static class ImageView.ImageCellRenderer
          Image list cell renderer
protected static class ImageView.ImageListItem
          Items of the image list.
 
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
static int DOUBLE_SIZE
           
static int HALF_SIZE
           
protected  javax.swing.JList imageList
           
protected  org.monte.media.gui.ImagePanel imagePanel
           
protected  javax.swing.JScrollPane listScrollPane
           
static int NORMAL_SIZE
           
static int QUARTER_SIZE
           
static int SCREEN_SIZE
           
protected  javax.swing.JScrollPane scrollPane
           
 
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
ImageView()
           
 
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.
 void addNotify()
           
 void dispose()
          Frees any resources that have been allocated by this viewer.
 java.awt.Dimension getPreferredSize()
           
protected  java.lang.String getViewName()
           
 boolean hasScrollPane()
          Returns true if this viewer has a scrollpane of its own.
 void itemStateChanged(java.awt.event.ItemEvent event)
           
 void mergeSettingsMenuItems(javax.swing.JMenu m)
          Adds menu items to the "Settings" menu.
 void mergeViewMenuItems(javax.swing.JMenu m)
          Adds menu items to the "View" menu.
protected  void packParent()
           
 void propertyChange(java.beans.PropertyChangeEvent event)
           
 void setCommandContext(java.lang.String verb, javax.activation.DataHandler dh)
          Sets the command context for the bean.
 void setViewProperties(PropertyModel p)
          Sets the model object for shared properties.
 void setViewSize(int size)
           
 java.lang.String toString()
           
protected  void updateApplicationProperties()
           
protected  void updateViewProperties()
           
 
Methods inherited from class ch.randelshofer.view.AbstractView
getApplicationProperties, getViewProperties, init, setApplicationProperties
 
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, 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

imagePanel

protected org.monte.media.gui.ImagePanel imagePanel

scrollPane

protected javax.swing.JScrollPane scrollPane

QUARTER_SIZE

public static final int QUARTER_SIZE
See Also:
Constant Field Values

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

imageList

protected javax.swing.JList imageList

listScrollPane

protected javax.swing.JScrollPane listScrollPane
Constructor Detail

ImageView

public ImageView()
Method Detail

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

mergeSettingsMenuItems

public void mergeSettingsMenuItems(javax.swing.JMenu m)
Description copied from class: AbstractView
Adds menu items to the "Settings" 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 "Settings" menu of the container.

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

setCommandContext

public void setCommandContext(java.lang.String verb,
                              javax.activation.DataHandler dh)
                       throws java.io.IOException
Sets the command context for the bean. The receiver loads the image data provided by the data handler and displays it.

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

dispose

public void dispose()
Frees any resources that have been allocated by this viewer.

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

setViewProperties

public void setViewProperties(PropertyModel p)
Description copied from class: AbstractView
Sets the model object for shared properties.

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

addNotify

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

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()

updateViewProperties

protected void updateViewProperties()
Overrides:
updateViewProperties in class AbstractView

updateApplicationProperties

protected void updateApplicationProperties()
Overrides:
updateApplicationProperties in class AbstractView

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class javax.swing.JComponent

actionPerformed

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

setViewSize

public void setViewSize(int size)

itemStateChanged

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

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.

getViewName

protected java.lang.String getViewName()

toString

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

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