zinger.wcollage
Class CollageManager

java.lang.Object
  extended by zinger.wcollage.CollageManager
All Implemented Interfaces:
java.awt.event.ActionListener, java.lang.Runnable, java.util.EventListener

public class CollageManager
extends java.lang.Object
implements java.awt.event.ActionListener, java.lang.Runnable

Manages image search requests, collage generation, and canvas output asynchronously.


Field Summary
protected  javax.swing.JLabel collageCanvas
           
protected  CollageMaker collageMaker
           
protected  javax.swing.JFileChooser fileChooser
           
protected  java.util.List imageQueue
           
protected  ImageSearch imageSearch
           
protected  java.awt.MediaTracker mediaTracker
           
protected  QueryProducer queryProducer
           
protected  java.lang.Runnable saveRunnable
           
 
Constructor Summary
CollageManager(javax.swing.JTextField queryInput, javax.swing.JLabel collageCanvas)
          Creates an instance using query input text field and collage canvas output.
CollageManager(QueryProducer queryProducer, javax.swing.JLabel collageCanvas)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent ev)
           
protected  void processQueue()
          Processes the image search results queue in an infinite loop.
protected  void refreshCanvas()
          Refreshes canvas label with the newest collage.
 void run()
          Wakes up threads waiting on this object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

queryProducer

protected final QueryProducer queryProducer

collageCanvas

protected final javax.swing.JLabel collageCanvas

collageMaker

protected CollageMaker collageMaker

imageSearch

protected ImageSearch imageSearch

mediaTracker

protected java.awt.MediaTracker mediaTracker

imageQueue

protected java.util.List imageQueue

fileChooser

protected javax.swing.JFileChooser fileChooser

saveRunnable

protected final java.lang.Runnable saveRunnable
Constructor Detail

CollageManager

public CollageManager(javax.swing.JTextField queryInput,
                      javax.swing.JLabel collageCanvas)
Creates an instance using query input text field and collage canvas output. This constructor spawns a thread that manages collage creation.

See Also:
processQueue()

CollageManager

public CollageManager(QueryProducer queryProducer,
                      javax.swing.JLabel collageCanvas)
Method Detail

run

public void run()
Wakes up threads waiting on this object. The intended effect of this method is to awaken the queue processing thread.

Specified by:
run in interface java.lang.Runnable
See Also:
processQueue()

processQueue

protected void processQueue()
Processes the image search results queue in an infinite loop. When the method reaches the end of the queue, its thread waits on this.

See Also:
run()

refreshCanvas

protected void refreshCanvas()
Refreshes canvas label with the newest collage.


actionPerformed

public void actionPerformed(java.awt.event.ActionEvent ev)
Specified by:
actionPerformed in interface java.awt.event.ActionListener