com.guiseframework.prototype
Class FrameMenuToolPrototypeProvisionStrategy

java.lang.Object
  extended by java.util.concurrent.locks.ReentrantReadWriteLock
      extended by com.guiseframework.prototype.AbstractPrototypeProvisionStrategy
          extended by com.guiseframework.prototype.AbstractCompositeComponentPrototypeProvisionStrategy
              extended by com.guiseframework.prototype.AbstractMenuToolCompositeComponentPrototypeProvisionStrategy
                  extended by com.guiseframework.prototype.FrameMenuToolPrototypeProvisionStrategy
All Implemented Interfaces:
java.io.Serializable, java.util.concurrent.locks.ReadWriteLock

public class FrameMenuToolPrototypeProvisionStrategy
extends AbstractMenuToolCompositeComponentPrototypeProvisionStrategy

The default strategy for keeping track of prototype providers and working with provisioned prototypes, merging them into the current menu and/or a toolbar of a frame. When the prototype providers change provided prototypes, those provided prototypes are processed. This version monitors the parent composite component children and automatically uses top-level prototype providers added to or removed from the hierarchy. Prototype provisions are not processed initially; this strategy should be initialized after construction by calling AbstractPrototypeProvisionStrategy.processPrototypeProvisions(). This class is thread safe based upon its exposed read and write locks.

Author:
Garret Wilson
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.concurrent.locks.ReentrantReadWriteLock
java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock, java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock
 
Constructor Summary
FrameMenuToolPrototypeProvisionStrategy(Frame frame, PrototypeProvider... defaultPrototypeProviders)
          Frame prototype providers constructor.
 
Method Summary
protected  Menu getMenu()
           
protected  Frame getParentComponent()
           
protected  Toolbar getToolbar()
           
 
Methods inherited from class com.guiseframework.prototype.AbstractMenuToolCompositeComponentPrototypeProvisionStrategy
add, getLastComponents, processPrototypeProvisions, synchronizePrototypeProvisionMap
 
Methods inherited from class com.guiseframework.prototype.AbstractPrototypeProvisionStrategy
addPrototypeProvider, gatherPrototypeProvisions, getPrototypeProviders, processPrototypeProvisions, removePrototypeProvider
 
Methods inherited from class java.util.concurrent.locks.ReentrantReadWriteLock
getOwner, getQueuedReaderThreads, getQueuedThreads, getQueuedWriterThreads, getQueueLength, getReadHoldCount, getReadLockCount, getWaitingThreads, getWaitQueueLength, getWriteHoldCount, hasQueuedThread, hasQueuedThreads, hasWaiters, isFair, isWriteLocked, isWriteLockedByCurrentThread, readLock, toString, writeLock
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FrameMenuToolPrototypeProvisionStrategy

public FrameMenuToolPrototypeProvisionStrategy(Frame frame,
                                               PrototypeProvider... defaultPrototypeProviders)
Frame prototype providers constructor.

Parameters:
frame - The composite component the top-level prototype provider children of which will be monitored.
defaultPrototypeProviders - The default prototype providers that will provide prototypes for processing, outside the children of the composite component parent.
Throws:
java.lang.NullPointerException - if the given parent component, prototype providers, and/or one or more prototype provider is null.
Method Detail

getParentComponent

protected final Frame getParentComponent()
Overrides:
getParentComponent in class AbstractCompositeComponentPrototypeProvisionStrategy
Returns:
The frame the top-level prototype provider children of which will be monitored.

getMenu

protected Menu getMenu()
Specified by:
getMenu in class AbstractMenuToolCompositeComponentPrototypeProvisionStrategy
Returns:
The menu being managed, or null if no menu is being managed.

getToolbar

protected Toolbar getToolbar()
Specified by:
getToolbar in class AbstractMenuToolCompositeComponentPrototypeProvisionStrategy
Returns:
The toolbar being managed, or null if no toolbar is being managed.


Copyright © 2005-2010 GlobalMentor, Inc. All Rights Reserved.