FileDocCategorySizeDatePackage
ShowContext.javaAPI DocExample1923Sat Apr 23 22:35:42 BST 2005magicbeans

ShowContext.java

package magicbeans;

import javax.swing.*;
import java.beans.beancontext.*;
import java.util.*;

public class ShowContext extends JTabbedPane implements BeanContextProxy {
	BeanContext context;
	BeanContextServices services;
	JList servicesList = new JList(), beansList = new JList();

	public ShowContext() {
		addTab( "Beans", new JScrollPane( beansList ) );
		addTab( "Services", new JScrollPane( servicesList ) );
	}

    private BeanContextChildSupport beanContextChild = 
		new BeanContextChildSupport() {

		public void initializeBeanContextResources()	{
			context= getBeanContext();
			try	{
				services = (BeanContextServices)context;
			} catch (ClassCastException	ex) { /* No BeanContextServices */ } 

			updateBeanList();
			updateServicesList();

			context.addBeanContextMembershipListener( 
				new BeanContextMembershipListener() {
					public void childrenAdded( BeanContextMembershipEvent e ) { 
						updateBeanList();
					}
					public void childrenRemoved( BeanContextMembershipEvent e ){
						updateBeanList();
					}
				} );
			services.addBeanContextServicesListener( 
				new BeanContextServicesListener() {
					public void serviceAvailable( 
								BeanContextServiceAvailableEvent e ) {
						updateServicesList();
					}
					public void serviceRevoked( 
								BeanContextServiceRevokedEvent e ) {
						updateServicesList();
					}
				} );
		}
    };

	void updateServicesList() {
		if ( services == null )
			return;
		Iterator it = services.getCurrentServiceClasses();
		Vector<Object> v = new Vector<Object>();
		while( it.hasNext() )
			v.addElement( it.next() );
		servicesList.setListData( v );
	}
	void updateBeanList() {
		Iterator it = context.iterator();
		Vector<Object> v = new Vector<Object>();
		while( it.hasNext() )
			v.addElement( it.next() );
		beansList.setListData( v );
	}

    public BeanContextChild getBeanContextProxy() {
		return beanContextChild;
    }
}