Re: Re: JPanel used for graphics

Kate Rhodes <[email protected]>
Newsgroups gmane.comp.embedded.carlsbad-cubes
Message-ID <[email protected]>
The problem with that is that it's frequently useful to rerender the xml 
to reset the variables in a class or set them to something new from 
dynamically generated xml. Yes you Could create a new instance of a 
class and do it in there...but, at least in the cases I've encountered, 
I've already had the class loaded and didn't want to screw around with  
a new instance.

This is, of course, very much an edge case. You average user isn't going 
to do what I was doing.

-Kate

[email protected] wrote:

> Frank,
> Here's a clarification.
> I had proposed a simple way to use subclassed components by allowing 
> the user to intitialize them.  My original text was
>
>> The Swix engine could check to see if a variable to which a tag is 
>> bound already has a non-null value.  If it's null, then it should 
>> create a new instance as it does now.  If it's non-null and it's an 
>> instance of the appropriate type, then the xml attributes should be 
>> applied to the existing value.  I'm not sure whether it's an easy 
>> solution to any other problems, but it would be a simple solution to 
>> my subclassing problem.
>
>
> Here are some snippets of code to illustrate what I mean more concretely.
> === From XML file =======================
> <!-- I want a panel (xc_panel) in the frame, but really want it to be a
>    Diagram (subclass of JPanel).  See below. -->
> . . .
> <panel id="xc_panel" preferredSize="500,500" 
> constraints="BorderLayout.CENTER">
> </panel>
> . . .
> === From Diagram.java =============================
> // This is the subclass of JPanel that I want xc_panel to be.
> public class Diagram extends JPanel {
> . . .
>   public paintComponent(Graphics g) {
>      // Draw my diagram to repaint the panel.
>      . . .
>   }
> }
> === From my main class ===========================
> // A possible solution is the following.  Note that THIS DOES NOT WORK
> // because Swixml always creates a new JPanel from the xml file
> // and overwrites my assignment to xc_panel.
> public class MyController {
>   . . .
>   public Diagram xc_panel;   // This is initialized by swixml
>   . . .
>   public MyController() {
>       xc_panel = new Diagram();   // I WOULD LIKE THIS TO WORK.
>       SwingEngine swix = new SwingEngine( this );
>       swix.render( "XXX.xml" );
>       . . . // render() has assigned a new panel to xc_panel :-(
>   }
> . . .
> The Diagram/JPanel variable xc_panel is specified in the .xml and
> initialized by the swix.render call.  What I'd prefer the SwingEngine
> to do it take a look at the contents of xc_panel before it creates
> a new JPanel.  If xc_panel already contains a JPanel, as my example
> does, it should not create a new one, but use the existing one and
> simply apply any specifed attributes to it -- in my case a preferred
> size of 500x500 was specified.
> This appears to be a simple solution to my problem where I must subclass
> JPanel to override paintComponent().  I believe allowing user 
> initialization
> of components might also provide a solution to problems that initclass 
> can't
> easily solve.
> -- Fred
>
>
>
>
>
>
> [email protected] writes:
>
>> List for Users of Carlsbad Cubes' Technologies and Products schrieb 
>> am 27.03.04 18:16:58:
>>
>>>
>>> It appears that the way to do this is to register a new tag for this 
>>> subclass of JPanel that I've defined.  Is this the correct approach? 
>>
>>
>> At least this seems the most reasonable thing to me.
>> Easy, documented and IMHO well used.
>>
>>>
>>> This got me to thinking about other approaches.  The Swix engine 
>>> could check to see if a variable to which a tag is bound already has 
>>> a non-null value.  If it's null, then it should create a new 
>>> instance as it does now.  If it's non-null and it's an instance of 
>>> the appropriate type, then the xml attributes should be applied to 
>>> the existing value.  I'm not sure whether it's an easy solution to 
>>> any other problems, but it would be a simple solution to my 
>>> subclassing problem. 
>>
>>
>> Could you please explain this with some (pseudo) code? I do not
>> grab it...
>> Frank
>>  
>>
>>
>> _______________________________________________
>> Forum mailing list
>> [email protected]
>> http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com
>
>
>
>
> _______________________________________________
> 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.