[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [udig-devel] A developer moment on Glyphs | 
This should eventually go up on the wiki - but since I finally broke 
down and made a state machine I thought I should share.
From LayerGenerateLabelDecorator.decorateImage
    * We are not allowed to block, test if generation is needed and 
start up the queue.
    * <p>
    * State Table of Image \ Image Descriptor:
    * <pre><code>
    *          | null         | icon               
    * ---------+--------------+---------------------+
    * disposed | queue        | image =             |
    *  or null |   layer      |  icon.createImage() |
    * ---------+--------------+---------------------+
    * image    | both         | image               |
    *          +--------------+---------------------+
    * </code></pre>
    * This attempts to reduce the amount of flicker
    * experienced as the layer figures out its glyph
    * in the face of *many* events.
    * </p>
    * <p>
    * Everyone gives us events - who gives us icons?
    * <ul>
    * <li>If the user has given the layer an icon we don't need to 
generate anything.
    * <li>piccaso will wait on the queue and generate icons, and 
refresh the decorator.
    * <li>We will get the refresh and generate an Image from the Icon,
    *     we can use this image when we are nexted refreshed.
    * <li>A random eclipse code will dispose our Images, and refrsh us
    *    (We can still generate our images from the saved icon).
    * <li>The listener *hack* will watch for changes to layer,if any 
look interesting
    *     the icon will be cleared and we will be refreshed. We still have
    *     our image so their will be no downtime while waiting for piccaso
    *     to make us a new Icon. 
    * </ul>
    * So what happens for a layer that we cannot generate a icon for? 
We will
    * place it in the queue *every* time. Who knows maybe style or 
something will
    * change and we can do better then the default.
    * </p>
Any mistakes with this plan will be obvious next time I run, but if you 
see anything
obvious let me know.
Cheers,
Jody