Changes between Version 6 and Version 7 of JComponentEnvironment


Ignore:
Timestamp:
05/17/13 16:39:50 (6 years ago)
Author:
welberge
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • JComponentEnvironment

    v6 v7  
    4848<Loader id="textengine" loader="asap.textengine.loader.TextEngineLoader" requiredloaders="textembodiment"/> 
    4949}}} 
     50 
     51== Creating your own loadable UI components == 
     52{{{ 
     53public class YourUIComponent implements Loader 
     54{ 
     55  private JComponent yourComponent; 
     56  private JComponentEmbodiment jce = null; 
     57 
     58  public void readXML(XMLTokenizer tokenizer, String loaderId, String vhId, String vhName, Environment[] environments, 
     59            Loader... requiredLoaders) throws IOException 
     60  { 
     61      
     62     for (EmbodimentLoader e : ArrayUtils.getClassesOfType(requiredLoaders, EmbodimentLoader.class)) 
     63     { 
     64       if (e.getEmbodiment() instanceof JComponentEmbodiment) 
     65       { 
     66         jce = (JComponentEmbodiment) e.getEmbodiment(); 
     67       } 
     68     } 
     69     if (jce == null) 
     70     { 
     71       throw new RuntimeException("JLabelTextEmbodiment requires an Embodiment of type JComponentEmbodiment"); 
     72     } 
     73 
     74     yourComponent = ... 
     75     SwingUtilities.invokeLater(new Runnable() 
     76     { 
     77       public void run() 
     78       { 
     79         jce.addJComponent(yourComponent); 
     80       } 
     81     });      
     82  } 
     83  @Override 
     84  public void unload() 
     85  { 
     86        SwingUtilities.invokeLater(new Runnable() 
     87        { 
     88            public void run() 
     89            { 
     90                jce.removeJComponent(yourComponent); 
     91            } 
     92        }); 
     93  } 
     94  ... 
     95} 
     96}}}