Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

How to omit component's coordinates in xml serialisation

 
Martin Motovsky
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi colleagues,
my application uses XMLEncoder for serialisation. I would like to told to XMLEncoder not to save coordinates of my JPanel.
I found out an excellent article at http://access1.sun.com/SRDs/srd_repository/1.4_javabeans.pdf.
I followed up its idea and I was able to set up transient some properties of the standard awt or swing classes. E.g "name" property of the JPanel. But some properties I was not successful to set up transient . E.g. width, height of the JPanel.
Any ideas, how to proceed?
Thank for help.
 
Stefan Wagner
Ranch Hand
Posts: 1923
Linux Postgres Database Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I guess you have to
a) either extend JPanel
b) or create a class which uses a JPanel.
Then you may set JPanel transient.
Of course you have to store the values you like to be serializable on your own with extra membervariables (panelName).
 
Martin Motovsky
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I receive an advice, which help me to solve the problem:
"There is a skeleton (or two) in the closet of the XMLEncoder - one of them is on bounds of a Component. All of the internal trickery is in a file called MetaData.java in the beans package. If you look in that file you'll see the hardcoded hacks for the bounds, size and location properties in the persistence delegate for a component. You can subvert this by replacing this delegate with one of your own."
I.e. something like this:
XMLEncoder e = new XMLEncoder(...);
e.setPersistenceDelegate(Component.class,new Myjava_awt_Component_PersistenceDelegate());
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic