On Sat, 20 Mar 2010 08:11:49 -0700 (PDT)
strattonbrazil <[email protected]> wrote:

> I'd like to separate my ui Swing/JOGL from the content, so my code is
> relatively unaware of the UI around it.  For example, I create a
> global context that holds on my content.  I then make a UI that when
> the user does some interaction like a mouse click or drag, the UI
> creates a new context.  My OO instincts would be to create a context
> and pass it to all my UI objects that receive events and mutate them,
> but if I'm dealing with an immutable class if I pass it to each UI
> object, when one UI object makes a new context, it isn't reflected in
> the other UIs.  Basically I want all UIs pointing to the same context
> and each UI being able to create a new context that each UI points
> to.  It seems that when one UI updates the global context reference
> with a 'def', the others are still using the old one.

You need to update shared data, and that doesn't seem avoidable. In
clojure, you do that with either a ref or an atom holding the data,
depending on how you need to update it. This will make it thread safe
if/when you start running your UI objects in different threads.

     <mike

-- 
Mike Meyer <[email protected]>             http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.

O< ascii ribbon campaign - stop html mail - www.asciiribbon.org

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

To unsubscribe from this group, send email to 
clojure+unsubscribegooglegroups.com or reply to this email with the words 
"REMOVE ME" as the subject.

Reply via email to