appFrame

masukomi <[email protected]>
Newsgroups gmane.comp.embedded.carlsbad-cubes
Message-ID <[email protected]>
There's a little piece of code in SwingEngine that either I'm not 
understanding right or is flawed.

just before render(Document) completes it does this

if (Frame.class.isAssignableFrom(root.getClass())) {
       SwingEngine.setAppFrame((Frame) root);
     }

Now, this piece of code raises two issues for me.

I *think* what it's trying to do is find the ultimate parent frame of 
your app and set appFrame to be that. I think this because of this

/** main frame */
   private static Frame appFrame;

and

/**
    * @return <code>Frame</code> a parent for all dialogs.
    */
   public static Frame getAppFrame() {
     return SwingEngine.appFrame;
   }


The thing is I don't see how  class.isAssignableFrom(Class) can 
possibly make that decision. Every time you call the render method in 
your SwingEngine instance and the root element is a JFrame it's going 
to say "ooh that's assignable...I'll make that the new appFrame" But 
what if the one in your original call to render was the one you 
actually wanted?  I could see a List of root frames or something like 
that but making it a single one doesn't make any sense to me.

Next up. Why is it static? Isn't  this going to cause issues when you 
have multiple instances of SwingEngine running around?

Given, I've never actually had to call getAppFrame() but if I did I 
think I'd be unhappy with the results. Wouldn't it make more sense to 
test if the root that was just rendered was higher up in the window 
hierarchy than the current root? Or, just set appFrame to whatever the 
root window was. I know there's a way to get that fairly directly I 
just can't remember it at the moment. If we did that then the static 
thing wouldn't be an issue I don't think.

-Kate

_______________________________________________
Forum mailing list
[email protected]
http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.