11.16 Accessing Components through Id Attributes

<..topxml.xml..>
 <?xml version="1.0" encoding="UTF-8" ?>
 <frame size="300,200" title="id map"
                       DefaultCloseOperation="JFrame.EXIT_ON_CLOSE">
   <panel constraints="BorderLayout.CENTER">
      <textfield id="a" text="top" columns="20" />
      <panel include="xml/includedxml.xml#b" />
      <panel import="xml/importedxml.xml" />
      <panel load="xml/loadedxml.xml" />
   </panel>
 </frame>
-_-_-

<..includedxml.xml..>
 <?xml version="1.0" encoding="UTF-8" ?>
 <panel id="b">
     <textfield id="b.1" text="included" columns="20" />
 </panel>
-_-_-

<..importedxml.xml..>
 <?xml version="1.0" encoding="UTF-8" ?>
 <panel id="c">
     <textfield id="c.1" text="imported" columns="20" />
 </panel>
-_-_-

<..loadedxml.xml..>
 <?xml version="1.0" encoding="UTF-8" ?>
 <panel id="d">
     <textfield id="d.1" text="loaded" columns="20" />
 </panel>
-_-_-

[Picture]

<..access map ids..>
 Map map = swix.getIdMap();
 Set set = map.keySet();
 Iterator  it = set.iterator();
 while( it.hasNext() ){
    String key = (String) it.next();
    JTextField tf = (JTextField) map.get(key);
    System.out.println( key + "  " + tf.getText() );
    tf.setText( key + ": " + tf.getText() );
 }
-_-_-

<..ExternalPanels..>
 import javax.swing.*;
 import javax.swing.text.AttributeSet;
 import org.swixml.SwingEngine;
 import java.awt.Container;
 import java.io.File;
 
 public class ExternalPanels extends JPanel {
    String name=null;
    private SwingEngine swix = new SwingEngine (this);
    public void setImport (String name)  {
      this.name=name;
      try {
         Container jc = swix.render( new File(name) );
         add ( jc );
      } catch ( Exception e ){ System.out.println( e); }
    }
    public void setLoad(String filename) {
      try {
        swix.insert( filename, this );
      } catch (Exception e) {
        System.err.println( e.getMessage() );
 }  } }
-_-_-

<..IdList..>
 import javax.swing.*;
 import org.swixml.*;
 import java.util.*;
 
 public class IdList {
   public static void main( String[] args ) throws Exception {
     Object obj  = new Object();
     SwingEngine swix = new SwingEngine( obj );
     TagLibrary tl = swix.getTaglib();
     tl.unregisterTag("panel");
     tl.registerTag("panel", ExternalPanels.class);
     swix.render( "xml/topxml.xml" ).setVisible( true );
     <.access map ids.>
 } }
-_-_-

[gui seperation]