public static Drawer createDrawer(DrawerSetting drawerSetting, Drawer parentDrawer)
		throws ClassNotFoundException,IllegalAccessException,InstantiationException,ClassCastException
	{
		Drawer result = null;
		Class<?> drawerClass = Class.forName(drawerSetting.getClassName());
		Object drawerObject = drawerClass.newInstance();
		Drawer drawer = (Drawer)drawerObject;
		drawer.setParentDrawer(parentDrawer);
		if (drawer.getMdSetting().setValues(drawerSetting.getValues())) {
			if (drawer.getChildrenList() != null) {
				for (DrawerSetting childSetting:drawerSetting.getDrawerSettingList()) {
					Drawer child;
					try {
						child = createDrawer(childSetting, drawer);
						if (child != null) {
							drawer.addChild(child);
						}
					} catch(ClassNotFoundException e) {
						ExceptionHandler.error(e);
					} catch(IllegalAccessException e) {
						ExceptionHandler.error(e);
					} catch(InstantiationException e) {
						ExceptionHandler.error(e);
					} catch(ClassCastException e) {
						ExceptionHandler.error(e);
					}
				}
			}
		}
		result = drawer;
		return result;
	}