Component componentAnnotation = (Component) componentClass.getAnnotation(Component.class);
if (componentAnnotation == null) {
throw new InvalidComponentClassException("Class provided is not property annotated");
}
EditConfigParameters parameters = new EditConfigParameters();
String title = getTitleForEditConfig(componentClass, componentAnnotation);
parameters.setActions(getActionsForEditConfig(componentAnnotation, title));
parameters.setDialogMode(getDialogModeForEditConfig(componentAnnotation));
parameters.setLayout(getLayoutForEditConfig(componentAnnotation));
parameters.setEmptyText(getEmptyTextForEditConfig(componentAnnotation));
parameters.setInherit(getInheritForEditConfig(componentAnnotation));
parameters.setDisableTargeting(getDisableTargingForEditConfig(componentAnnotation));
List<XmlElement> editConfigChildren = new ArrayList<XmlElement>();
EditConfigListeners ecl = getListenersForEditConfig(componentAnnotation);
if (ecl != null) {
editConfigChildren.add(ecl);
}
EditConfigActionConfigs ecac = getActionConfigsForEditConfig(componentAnnotation);
if (ecac != null) {
editConfigChildren.add(ecac);
}
EditConfigInPlaceEditing ecipe = getInPlaceEditingForEditConfig(componentAnnotation);
if (ecipe != null) {
editConfigChildren.add(ecipe);
}
EditConfigFormParameters ecfp = getFormParametersForEditConfig(componentAnnotation);
if (ecfp != null) {
editConfigChildren.add(ecfp);
}
EditConfigDropTargets ecdt = getDropTargetsForEditConfig(componentAnnotation);
if (ecdt != null) {
editConfigChildren.add(ecdt);
}
parameters.setContainedElements(editConfigChildren);
return new EditConfig(parameters);
}