public void dump(Class bean) {
		results.setText("");
		BeanInfo bi = null;
		try {
			bi = Introspector.getBeanInfo(bean, Object.class);
		} catch (IntrospectionException e) {
			print("Couldn't introspect " + bean.getName());
			return;
		}
		PropertyDescriptor[] properties = bi.getPropertyDescriptors();
		for (int i = 0; i < properties.length; i++) {
			Class p = properties[i].getPropertyType();
			if (p == null)
				continue;
			print("Property type:\n " + p.getName() + "Property name:\n "
					+ properties[i].getName());
			Method readMethod = properties[i].getReadMethod();
			if (readMethod != null)
				print("Read method:\n " + readMethod);
			Method writeMethod = properties[i].getWriteMethod();
			if (writeMethod != null)
				print("Write method:\n " + writeMethod);
			print("====================");
		}
		print("Public methods:");
		MethodDescriptor[] methods = bi.getMethodDescriptors();
		for (int i = 0; i < methods.length; i++)
			print(methods[i].getMethod().toString());
		print("======================");
		print("Event support:");
		EventSetDescriptor[] events = bi.getEventSetDescriptors();
		for (int i = 0; i < events.length; i++) {
			print("Listener type:\n " + events[i].getListenerType().getName());
			Method[] lm = events[i].getListenerMethods();
			for (int j = 0; j < lm.length; j++)
				print("Listener method:\n " + lm[j].getName());
			MethodDescriptor[] lmd = events[i].getListenerMethodDescriptors();
			for (int j = 0; j < lmd.length; j++)
				print("Method descriptor:\n " + lmd[j].getMethod());
			Method addListener = events[i].getAddListenerMethod();
			print("Add Listener Method:\n " + addListener);
			Method removeListener = events[i].getRemoveListenerMethod();
			print("Remove Listener Method:\n " + removeListener);
			print("====================");
		}
	}