Don, Bill
Thank you both for your help. I now have widget control over line properties
nearly functional. I am creating an instance of LineDrawing (derived from
DisplayableData) for each line that is added to the plot and then store that
instance in a Vector for later use. However, I am having a small problem.
Consider this scenario:
1) Add a line to the plot. Let's call this Data #1.
2) Add another line to the plot. Let's call this Data #2. Data #1 is rendered
above Data #2.
3) Increase the width of Data #2 (via a SpinButton). Each increase calls
LineDrawing.setLineWidth() for Data #2 from my listener. Data #2 remains being
rendered beneath Data #1.
4) Increase the width of Data #1 (via a SpinButton). Each increase calls
LineDrawing.setLineWidth() for Data #1 from my listener. Data #2 is now
rendered above Data #1!
I am not a big fan of this behavior because it can drastically change the look
of the plot. Data #1 should always be on top, followed by Data #2, Data #3,
etc. It appears to be a result of removing a reference and then re-adding it.
Is there any way around this? Perhaps I don't quite understand the listeners
in DisplayableData.
Any help would, again, be greatly appreciated!
-Jim C.
> -----Original Message-----
> From: Don Murray [mailto:dmurray@xxxxxxxxxxxxxxxx]
> Sent: Saturday, December 13, 2003 10:26 AM
> To: Bill Hibbard
> Cc: Jim Cookas; visad@xxxxxxxxxxxxxxxx
> Subject: Re: setting constant map properties
>
>
> Bill/Jim-
>
> Bill Hibbard wrote:
>
> > It will probably be easiest if you save your DataReferences
> > in your own arrays or Vectors. You can remove them from the
> > DisplayImpl by a call to removeReference(), then add again
> > with the new ConstantMap values.
>
> In our IDV, we have a wrapper class for a DataReference
> (DisplayableData) that allows us to control this. Each
> DisplayableData object can listen for changes to it's
> associated ConstantMaps and then the knows how to tell
> the display to remove the DataReference and re-add it with
> the new ConstantMaps.
>
> You could consider something like this, or as Bill says,
> keep your own tabs on the DataRefs in a List.
>
> > Some of the other folks on the list have written complex
> > applications that may do something like this - perhaps they
> > can add to this?
>
> There is one big performance hit in this. Changing ConstantMaps
> on a DataReference causes the entire display to be rebuilt.
> But, it's still the way to do it.
>
> Don
> *************************************************************
> Don Murray UCAR Unidata Program
> dmurray@xxxxxxxxxxxxxxxx P.O. Box 3000
> (303) 497-8628 Boulder, CO 80307
> http://www.unidata.ucar.edu/staff/donm
> "There's someone in my head, but it's not me" Roger Waters
> *************************************************************
>
>
>