org.jhotdraw.draw
Interface InputFormat

All Known Implementing Classes:
DOMStorableInputOutputFormat, ImageInputFormat, ODGInputFormat, PictImageInputFormat, SerializationInputOutputFormat, SVGInputFormat, SVGZInputFormat, TextInputFormat

public interface InputFormat

Interface to define an input format for a Drawing. An InputFormat is a strategy that knows how to restore a Drawing according to a specific encoding. Typically it can be recognized by a Mime type or by a file extension. To identify a valid file format for a Drawing an appropriate FileFilter for a javax.swing.JFileChooser component can be requested.

This interface intentionally contains many identical operations like OutputFormat to make it easy, to write classes that implement both interfaces.

Version:
3.0 2008-05-24 Added parameter isReplaceDrawing.
2.0 2007-12-07 Method readFigures(Transferable) replaced by read(Transferable, Drawing).
1.0 December 12, 2006 Created.
Author:
Werner Randelshofer

Method Summary
 javax.swing.filechooser.FileFilter getFileFilter()
          Return a FileFilter that can be used to identify files which can be restored with this Storage Format.
 javax.swing.JComponent getInputFormatAccessory()
          Return a JFileChooser accessory that can be used to customize the input format.
 boolean isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
          Returns true, if this InputFormat can readFigures TransferData using the specified DataFlavor.
 void read(java.io.File file, Drawing drawing)
          Reads figures from a file and replaces the children of the drawing with them.
 void read(java.io.File file, Drawing drawing, boolean replace)
          Reads figures from a file and adds them to the specified drawing.
 void read(java.io.InputStream in, Drawing drawing, boolean replace)
          Reads figures from a file and adds them to the specified drawing.
 void read(java.awt.datatransfer.Transferable t, Drawing drawing, boolean replace)
          Reads figures from the specified Transferable and adds them to the specified drawing.
 

Method Detail

getFileFilter

javax.swing.filechooser.FileFilter getFileFilter()
Return a FileFilter that can be used to identify files which can be restored with this Storage Format. Typically, each input format has its own recognizable file naming convention.

Returns:
FileFilter to be used with a javax.swing.JFileChooser

getInputFormatAccessory

javax.swing.JComponent getInputFormatAccessory()
Return a JFileChooser accessory that can be used to customize the input format.

Returns:
A JFileChooser accessory to be used with a javax.swing.JFileChooser Returns null, if no accessory is provided for this format.

read

void read(java.io.File file,
          Drawing drawing)
          throws java.io.IOException
Reads figures from a file and replaces the children of the drawing with them.

This is a convenience method for calling read(File,Drawing,true).

Parameters:
file - The file.
drawing - The drawing.
Throws:
java.io.IOException

read

void read(java.io.File file,
          Drawing drawing,
          boolean replace)
          throws java.io.IOException
Reads figures from a file and adds them to the specified drawing.

Parameters:
file - The file.
drawing - The drawing.
replace - Set this to true, if the contents of the file replaces the contents of the drawing (for example, when loading a drawing from a file). Set this to false, to add the contents of the file to the drawing (for example, when the file has been dropped into the drawing view).
Throws:
java.io.IOException

read

void read(java.io.InputStream in,
          Drawing drawing,
          boolean replace)
          throws java.io.IOException
Reads figures from a file and adds them to the specified drawing.

Parameters:
in - The input stream.
drawing - The drawing.
replace - Set this to true, if the contents of the stream replaces the contents of the drawing (for example, when loading a drawing from a stream). Set this to false, to add the contents of the file to the drawing (for example, when the stream has been dropped into the drawing view).
Throws:
java.io.IOException

isDataFlavorSupported

boolean isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
Returns true, if this InputFormat can readFigures TransferData using the specified DataFlavor.

Parameters:
flavor - A DataFlavor.

read

void read(java.awt.datatransfer.Transferable t,
          Drawing drawing,
          boolean replace)
          throws java.awt.datatransfer.UnsupportedFlavorException,
                 java.io.IOException
Reads figures from the specified Transferable and adds them to the specified drawing.

Parameters:
t - The Transferable.
drawing - The drawing.
replace - Set this to true, if the contents of the transferable replaces the contents of the drawing (for example, when loading a drawing from a transferable). Set this to false, to add the contents of the transferable to the drawing (for example, when the transferable has been dropped or pasted into the drawing view).
Throws:
java.awt.datatransfer.UnsupportedFlavorException
java.io.IOException