bibliothek.gui.dock
Class PredefinedDockSituation

java.lang.Object
  extended by bibliothek.gui.dock.DockSituation
      extended by bibliothek.gui.dock.PredefinedDockSituation

public class PredefinedDockSituation
extends DockSituation

A DockSituation that does not load or store all DockElements. All elements which are registered by put(DockElement) are stored in an internal list. On writing, just a unique id is written to the stream. A DockFactory is still necessary for these elements, but the factory may just do nothing.

Author:
Benjamin Sigg

Nested Class Summary
private  class PredefinedDockSituation.PreloadFactory
          A factory which uses other factories as delegate.
 
Field Summary
private  java.util.Map<DockElement,java.lang.String> elementToString
          A mapping from a list of elements to their ids
private  PredefinedDockSituation.PreloadFactory factory
           
private static java.lang.String KNOWN
           
private  java.util.Map<java.lang.String,DockElement> stringToElement
          A mapping from ids to a list of elements which must not be created by a factory
private static java.lang.String UNKNOWN
           
 
Constructor Summary
PredefinedDockSituation()
           
 
Method Summary
protected  DockFactory<? extends DockElement> getFactory(java.lang.String id)
          Gets the factory which has the given id.
protected  java.lang.String getID(DockElement dockable)
          Gets the id of the factory which is needed to write (and later read) the element dockable.
protected  java.lang.String getID(DockFactory<?> factory)
          Gets the id of factory.
 void put(DockElement element)
          Registers an element at this situation.
 void put(java.lang.String key, DockElement element)
          Registers an element at this situation.
 
Methods inherited from class bibliothek.gui.dock.DockSituation
add, getIgnore, ignoreChildren, ignoreElement, read, read, setIgnore, write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

stringToElement

private java.util.Map<java.lang.String,DockElement> stringToElement
A mapping from ids to a list of elements which must not be created by a factory


elementToString

private java.util.Map<DockElement,java.lang.String> elementToString
A mapping from a list of elements to their ids


KNOWN

private static final java.lang.String KNOWN
See Also:
Constant Field Values

UNKNOWN

private static final java.lang.String UNKNOWN
See Also:
Constant Field Values

factory

private final PredefinedDockSituation.PreloadFactory factory
Constructor Detail

PredefinedDockSituation

public PredefinedDockSituation()
Method Detail

put

public void put(DockElement element)
Registers an element at this situation. When a stream is read, this element will be returned instead a newly created element (assuming that the element was written into the stream). The key for the element is generated automatically

Parameters:
element - the element

put

public void put(java.lang.String key,
                DockElement element)
Registers an element at this situation. When a stream is read, this element will be returned instead a newly created element (assuming that the element was written into the stream).

Parameters:
key - the key of the element
element - the element
Throws:
java.lang.IllegalArgumentException - if the key is already used

getID

protected java.lang.String getID(DockElement dockable)
Description copied from class: DockSituation
Gets the id of the factory which is needed to write (and later read) the element dockable.

Overrides:
getID in class DockSituation
Parameters:
dockable - the dockable to write
Returns:
the id of the factory
See Also:
DockSituation.getID(DockFactory), DockSituation.getFactory(String)

getID

protected java.lang.String getID(DockFactory<?> factory)
Description copied from class: DockSituation
Gets the id of factory. The default behavior is just to return DockFactory.getID(). Note that this method should be a bijection to DockSituation.getFactory(String).

Overrides:
getID in class DockSituation
Parameters:
factory - the factory whose id is needed
Returns:
the id of the factory

getFactory

protected DockFactory<? extends DockElement> getFactory(java.lang.String id)
Description copied from class: DockSituation
Gets the factory which has the given id. Note that this method should be a bijection to DockSituation.getID(DockFactory). The default behavior compares id with the DockSituation.getID(DockFactory).

Overrides:
getFactory in class DockSituation
Parameters:
id - the name of the factory
Returns:
the factory or null if no factory has this id