public static void onKeyDown_recursive(
			Container dialog,
			final String key,
			final P0 p0) {

		final P1<Component> p1 = new P1<Component>() {public void e(Component c) {
			onKeyDown(c, key, p0);
//			System.out.println(c);
		}};

		P1<Component> p2 = new P1<Component>() {public void e(Component c) {
			if (c instanceof Container) {
				Container cont = (Container) c;
				onComponentAdded(cont, new P1<Component>() {public void e(Component obj) {
					p1.e(obj);
					if (obj instanceof Container) {
						eachChild((Container) obj, this);
					}
				}});
				
			}
		}};
		
		// TODO change to each
		p1.e(dialog);
		eachChild(dialog, p1);
		p2.e(dialog);
		eachChild(dialog, p2);
	}