Interface
Class SimFileRW

java.lang.Object
  extended byjava.awt.Component
      extended byInterface.SimFileRW
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class SimFileRW
extends java.awt.Component

SIM files reader and writer. The SIM is a special format used to store a simulation.

See Also:
Serialized Form

Nested Class Summary
static class SimFileRW.InvalidSIMfile
          Raised if the SIM file is not valid.
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
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
SimFileRW()
           
 
Method Summary
protected  Element addElement(java.lang.String line, World world)
          Add an element to the world, element corresponding to the string, following the ElementFormat specifications.
protected  void boxChanged(Box b)
          Used to notify that a box has changed since the last file opening, and so will have to be saved.
protected  Box changeBox(World world, int x, int y, java.lang.String boxCode)
          Changes the (x,y) box of the world, instanciating the new box from a string given in argument, and that follows the BoxFormat specifications.
protected  java.lang.String codeOf(Box b)
          Returns the string corresponding to the command line of the SIM file, line which was used to instanciate the given box.
protected  java.lang.String codeOf(Element e)
          Returns the string corresponding to the command line of the SIM file, line which was used to instanciate the given element.
 World edit(java.io.File f)
          Edit a SIM file.
protected  void elementChanged(Element e)
          Used to notify that an element has changed since the last file opening, and so will have to be saved.
 World open(java.io.File f)
          Open a SIM file.
 World open(java.io.File f, int boxFactor)
          Open a simulation file, with the specified box factor.
protected  java.awt.Image readImage(java.lang.String location)
          Lit une image (dans le répertoire du fichier SIM si pas de répertoire spécifié).
 void save(java.io.File f, World world)
          Save the current world in the specified file.
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paint, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SimFileRW

public SimFileRW()
Method Detail

open

public World open(java.io.File f)
           throws SimFileRW.InvalidSIMfile
Open a SIM file.

Throws:
SimFileRW.InvalidSIMfile

edit

public World edit(java.io.File f)
           throws SimFileRW.InvalidSIMfile
Edit a SIM file.

Throws:
SimFileRW.InvalidSIMfile

open

public World open(java.io.File f,
                  int boxFactor)
           throws SimFileRW.InvalidSIMfile
Open a simulation file, with the specified box factor. The box factor allows to modify the number of boxes in a simulation, from an existing map. The higher it is, the more the simulation wil be accurate. Usually in the range of [1-10].

Throws:
SimFileRW.InvalidSIMfile

save

public void save(java.io.File f,
                 World world)
          throws java.io.IOException,
                 java.io.FileNotFoundException
Save the current world in the specified file.

Parameters:
world - the world to save.
Throws:
java.io.IOException
java.io.FileNotFoundException

boxChanged

protected void boxChanged(Box b)
Used to notify that a box has changed since the last file opening, and so will have to be saved.

Parameters:
b - the box which has changed.

elementChanged

protected void elementChanged(Element e)
Used to notify that an element has changed since the last file opening, and so will have to be saved.

Parameters:
e - the element which has changed.

changeBox

protected Box changeBox(World world,
                        int x,
                        int y,
                        java.lang.String boxCode)
                 throws java.lang.Exception
Changes the (x,y) box of the world, instanciating the new box from a string given in argument, and that follows the BoxFormat specifications.

Throws:
java.lang.Exception

codeOf

protected java.lang.String codeOf(Box b)
Returns the string corresponding to the command line of the SIM file, line which was used to instanciate the given box.


codeOf

protected java.lang.String codeOf(Element e)
Returns the string corresponding to the command line of the SIM file, line which was used to instanciate the given element.


addElement

protected Element addElement(java.lang.String line,
                             World world)
                      throws SimFileRW.InvalidSIMfile
Add an element to the world, element corresponding to the string, following the ElementFormat specifications.

Throws:
SimFileRW.InvalidSIMfile

readImage

protected java.awt.Image readImage(java.lang.String location)
Lit une image (dans le répertoire du fichier SIM si pas de répertoire spécifié). Attend que l'image ait fini de se charger avant de repasser la main à l'interface graphique (utilisation d'un MediaTracker).