jsky.image.gui
Class ImageSaveDialog

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JFileChooser
                  extended by jsky.image.gui.ImageSaveDialog
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class ImageSaveDialog
extends JFileChooser

A Dialog box for saving wither the original image file, or the image view, with graphics.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFileChooser
JFileChooser.AccessibleJFileChooser
 
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
protected static String BMP_TYPE
          The BMP file type.
protected static String FITS_TYPE
          The FITS file type.
protected static String GIF_TYPE
          The GIF file type.
protected  MainImageDisplay imageDisplay
          The target image display
protected static String JPEG_TYPE
          The JPEG file type.
protected static String PNG_TYPE
          The PNG file type.
protected static String PNM_TYPE
          The PNM file type.
protected static int SAVE_CURRENT_VIEW
          "Save Image File" option to save only the image area currently in the viewer.
protected static int SAVE_ENTIRE_IMAGE
          "Save Image File" option to save the entire image area at normal magnification.
protected static String[] SAVE_FILE_TYPES
          The set of possible file types for saving the image to a file.
protected static String TIFF_TYPE
          The TIFF file type.
protected static String[] VIEW_FILE_TYPES
          The set of possible file types for saving the current view.
 
Fields inherited from class javax.swing.JFileChooser
ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY, accessibleContext, ACCESSORY_CHANGED_PROPERTY, APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY, APPROVE_BUTTON_TEXT_CHANGED_PROPERTY, APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY, APPROVE_OPTION, APPROVE_SELECTION, CANCEL_OPTION, CANCEL_SELECTION, CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY, CUSTOM_DIALOG, DIALOG_TITLE_CHANGED_PROPERTY, DIALOG_TYPE_CHANGED_PROPERTY, DIRECTORIES_ONLY, DIRECTORY_CHANGED_PROPERTY, ERROR_OPTION, FILE_FILTER_CHANGED_PROPERTY, FILE_HIDING_CHANGED_PROPERTY, FILE_SELECTION_MODE_CHANGED_PROPERTY, FILE_SYSTEM_VIEW_CHANGED_PROPERTY, FILE_VIEW_CHANGED_PROPERTY, FILES_AND_DIRECTORIES, FILES_ONLY, MULTI_SELECTION_ENABLED_CHANGED_PROPERTY, OPEN_DIALOG, SAVE_DIALOG, SELECTED_FILE_CHANGED_PROPERTY, SELECTED_FILES_CHANGED_PROPERTY
 
Fields inherited from class javax.swing.JComponent
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
ImageSaveDialog(MainImageDisplay imageDisplay)
          Initialize with the target image display object.
 
Method Summary
protected  String addSuffix(String filename, String suffix)
          Replace the current suffix, if any, with the given one, and return the result.
protected  void createAccessoryPanel()
          Create the accessory panel.
protected  Image createOutputImage()
          Creates an Image for output to a file or some other output device (printer).
protected  String getTypeSuffix(String type)
          Returns the standard filename suffix for the specified file type.
protected  String promptUserForSaveLocation(String initialFilename)
          Prompts the user for the location of a file for saving.
 void save()
          Display the dialog
protected  void saveGifImage(String filename)
          Saves the current canvas image as a local GIF image file.
 void saveJpegImage(String filename)
          Saves the current canvas image as a local JPEG image file.
protected  void updateFileSuffix()
          Update the suffix of the displayed filename based on the selected file format.
protected  void updateFormatBox(boolean useView)
          Update the list of supported output image formats based on the option chosen
 
Methods inherited from class javax.swing.JFileChooser
accept, addActionListener, addChoosableFileFilter, approveSelection, cancelSelection, changeToParentDirectory, createDialog, ensureFileIsVisible, fireActionPerformed, getAcceptAllFileFilter, getAccessibleContext, getAccessory, getActionListeners, getApproveButtonMnemonic, getApproveButtonText, getApproveButtonToolTipText, getChoosableFileFilters, getControlButtonsAreShown, getCurrentDirectory, getDescription, getDialogTitle, getDialogType, getDragEnabled, getFileFilter, getFileSelectionMode, getFileSystemView, getFileView, getIcon, getName, getSelectedFile, getSelectedFiles, getTypeDescription, getUI, getUIClassID, isAcceptAllFileFilterUsed, isDirectorySelectionEnabled, isFileHidingEnabled, isFileSelectionEnabled, isMultiSelectionEnabled, isTraversable, paramString, removeActionListener, removeChoosableFileFilter, rescanCurrentDirectory, resetChoosableFileFilters, setAcceptAllFileFilterUsed, setAccessory, setApproveButtonMnemonic, setApproveButtonMnemonic, setApproveButtonText, setApproveButtonToolTipText, setControlButtonsAreShown, setCurrentDirectory, setDialogTitle, setDialogType, setDragEnabled, setFileFilter, setFileHidingEnabled, setFileSelectionMode, setFileSystemView, setFileView, setMultiSelectionEnabled, setSelectedFile, setSelectedFiles, setup, showDialog, showOpenDialog, showSaveDialog, 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

imageDisplay

protected MainImageDisplay imageDisplay
The target image display


JPEG_TYPE

protected static final String JPEG_TYPE
The JPEG file type.

See Also:
Constant Field Values

GIF_TYPE

protected static final String GIF_TYPE
The GIF file type.

See Also:
Constant Field Values

FITS_TYPE

protected static final String FITS_TYPE
The FITS file type.

See Also:
Constant Field Values

TIFF_TYPE

protected static final String TIFF_TYPE
The TIFF file type.

See Also:
Constant Field Values

PNG_TYPE

protected static final String PNG_TYPE
The PNG file type.

See Also:
Constant Field Values

PNM_TYPE

protected static final String PNM_TYPE
The PNM file type.

See Also:
Constant Field Values

BMP_TYPE

protected static final String BMP_TYPE
The BMP file type.

See Also:
Constant Field Values

VIEW_FILE_TYPES

protected static final String[] VIEW_FILE_TYPES
The set of possible file types for saving the current view.


SAVE_FILE_TYPES

protected static final String[] SAVE_FILE_TYPES
The set of possible file types for saving the image to a file.


SAVE_CURRENT_VIEW

protected static final int SAVE_CURRENT_VIEW
"Save Image File" option to save only the image area currently in the viewer.

See Also:
Constant Field Values

SAVE_ENTIRE_IMAGE

protected static final int SAVE_ENTIRE_IMAGE
"Save Image File" option to save the entire image area at normal magnification.

See Also:
Constant Field Values
Constructor Detail

ImageSaveDialog

public ImageSaveDialog(MainImageDisplay imageDisplay)
Initialize with the target image display object.

Method Detail

createAccessoryPanel

protected void createAccessoryPanel()
Create the accessory panel.


updateFileSuffix

protected void updateFileSuffix()
Update the suffix of the displayed filename based on the selected file format.


updateFormatBox

protected void updateFormatBox(boolean useView)
Update the list of supported output image formats based on the option chosen

Parameters:
useView - if true, save the current view, with graphics, otherwise just the image without graphics.

save

public void save()
Display the dialog


addSuffix

protected String addSuffix(String filename,
                           String suffix)
Replace the current suffix, if any, with the given one, and return the result.


saveGifImage

protected void saveGifImage(String filename)
                     throws IOException,
                            OutOfMemoryError
Saves the current canvas image as a local GIF image file. The saved image contains the current canvas image, including all overlayed objects and any filters applied to the image.

Parameters:
filename - name of new image file on local disk
Throws:
IOException
OutOfMemoryError

saveJpegImage

public void saveJpegImage(String filename)
                   throws IOException,
                          OutOfMemoryError
Saves the current canvas image as a local JPEG image file. The saved image contains the current canvas image, including all overlayed objects and any filters applied to the image.

Parameters:
filename - name of new image file on local disk
Throws:
IOException
OutOfMemoryError

getTypeSuffix

protected String getTypeSuffix(String type)
Returns the standard filename suffix for the specified file type.


createOutputImage

protected Image createOutputImage()
Creates an Image for output to a file or some other output device (printer).


promptUserForSaveLocation

protected String promptUserForSaveLocation(String initialFilename)
Prompts the user for the location of a file for saving.

Parameters:
initialFilename - default name of the file to save
acceptableExtensions - array of acceptable file extensions for when newExtension is not null
newExtension - required file extension to append to filename if not acceptable, or null
Returns:
the full file path chosen, or null if user cancelled.