[
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