}
}
private void deleteOpenMapMemberProperty(AbstractConfigurationComponent configurationComponent) {
String mapName = FacesContextUtility.getRequiredRequestParameter(RequestParameterNameConstants.MAP_NAME_PARAM);
PropertyMap propertyMap = configurationComponent.getConfiguration().getMap(mapName);
if (propertyMap == null) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Configuration does not contain a map named '"
+ mapName + "'.");
return;
}
String memberName = FacesContextUtility
.getRequiredRequestParameter(RequestParameterNameConstants.MEMBER_NAME_PARAM);
if (!propertyMap.getMap().containsKey(memberName)) {
FacesContextUtility.addMessage(FacesMessage.SEVERITY_ERROR, "Map '" + mapName
+ "' does not contain a member property named '" + memberName + "'.");
return;
}
Property memberProperty = propertyMap.getMap().get(memberName);
String memberComponentId = PropertyIdGeneratorUtility.getIdentifier(memberProperty, null,
AbstractPropertyBagUIComponentTreeFactory.PANEL_ID_SUFFIX);
UIComponent mapMemberComponent = configurationComponent.findComponent(memberComponentId);
if (mapMemberComponent == null) {
throw new IllegalStateException("JSF component with id '" + memberComponentId + "' not found for map '"
+ mapName + "' member property '" + memberName + "'.");
}
FacesComponentUtility.detachComponent(mapMemberComponent);
// Now delete the property from the actual Configuration.
propertyMap.getMap().remove(memberName);
// ...and from member Configurations if this is a group config.
if (configurationComponent instanceof ConfigurationSetComponent) {
ConfigurationSetComponent configurationSetComponent = ((ConfigurationSetComponent) configurationComponent);
configurationSetComponent.getConfigurationSet().applyGroupConfiguration();