Skip to content

Commit

Permalink
fix for empty association container
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed May 27, 2019
1 parent 80bc6aa commit b2f31a2
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 6 deletions.
Expand Up @@ -216,13 +216,22 @@ protected PrismContainerWrapper<C> createWrapper(PrismContainerValueWrapper<?> p
List<PrismReferenceValueWrapperImpl> refValues = new ArrayList<PrismReferenceValueWrapperImpl>();
for(PrismReferenceValue prismValue : shadowAss.getValues()) {
PrismReferenceValueWrapperImpl refValue = new PrismReferenceValueWrapperImpl(item, prismValue,
prismValue.isEmpty() ? ValueStatus.ADDED : ValueStatus.NOT_CHANGED);
refValue.setEditEnabled(isEmpty(prismValue));
refValues.add(refValue);
}
if (shadowAss.getValues().isEmpty()) {
PrismReferenceValue prismReferenceValue = getPrismContext().itemFactory().createReferenceValue();
shadowAss.add(prismReferenceValue);
PrismReferenceValueWrapperImpl refValue = new PrismReferenceValueWrapperImpl(item, prismReferenceValue,
shadowAss.getValue().isEmpty() ? ValueStatus.ADDED : ValueStatus.NOT_CHANGED);
refValue.setEditEnabled(true);
refValues.add(refValue);
}
item.getValues().addAll((Collection)refValues);
item.setFilter(WebComponentUtil.createAssociationShadowRefFilter(refinedAssocationDefinition,
prismContext, resource.getOid()));
item.setReadOnly(true);
// item.setReadOnly(true);

items.add(item);
}
Expand All @@ -236,6 +245,15 @@ protected PrismContainerWrapper<C> createWrapper(PrismContainerValueWrapper<?> p
return null;
}

private boolean isEmpty(PrismReferenceValue prismValue) {
if (prismValue == null) {
return true;
}

return prismValue.isEmpty();

}

private <C extends Containerable> boolean isItemReadOnly(ItemDefinition def, PrismContainerValueWrapper<C> cWrapper) {
if (cWrapper == null || cWrapper.getStatus() == ValueStatus.NOT_CHANGED) {

Expand Down
Expand Up @@ -202,7 +202,7 @@ protected String getItemCssClass() {
return " col-md-offset-2 prism-value ";
}

private void addValue(AjaxRequestTarget target) {
protected void addValue(AjaxRequestTarget target) {
IW propertyWrapper = getModel().getObject();
PrismPropertyValue<?> newValue = getPrismContext().itemFactory().createPropertyValue();

Expand Down
Expand Up @@ -20,6 +20,7 @@

import javax.xml.namespace.QName;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
Expand All @@ -28,8 +29,11 @@

import com.evolveum.midpoint.gui.api.factory.GuiComponentFactory;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebPrismUtil;
import com.evolveum.midpoint.gui.impl.factory.ItemRealValueModel;
import com.evolveum.midpoint.gui.impl.factory.PrismReferencePanelContext;
import com.evolveum.midpoint.prism.PrismPropertyValue;
import com.evolveum.midpoint.prism.PrismReferenceValue;
import com.evolveum.midpoint.prism.Referencable;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.web.component.form.ValueChoosePanel;
Expand Down Expand Up @@ -81,16 +85,20 @@ protected ObjectFilter createCustomFilter() {
return PrismReferencePanel.this.getModelObject().getFilter();
}

// @Override
// protected boolean isEditButtonEnabled() {
@Override
protected boolean isEditButtonEnabled() {
// if (getModel() == null) {
// return true;
// }
//
// //TODO only is association
// return getModelObject() == null;
//
// }
if (item.getModel() == null || item.getModelObject() == null) {
return true;
}
return item.getModelObject().isEditEnabled();

}

@Override
public List<QName> getSupportedTypes() {
Expand All @@ -116,5 +124,14 @@ protected <O extends ObjectType> Class<O> getDefaultType(List<QName> supportedTy
item.add(panel);
}
}

protected void addValue(AjaxRequestTarget target) {
PrismReferenceWrapper<R> referenceWrapper = getModel().getObject();
PrismReferenceValue newValue = getPrismContext().itemFactory().createReferenceValue();

WebPrismUtil.createNewValueWrapper(referenceWrapper, newValue, getPageBase(), target);

target.add(PrismReferencePanel.this);
}

}
Expand Up @@ -35,12 +35,20 @@ public class PrismReferenceValueWrapperImpl<T extends Referencable> extends Pris
public PrismReferenceValueWrapperImpl(ItemWrapper<?, ?, ?, ?> parent, PrismReferenceValue value, ValueStatus status) {
super(parent, value, status);
}

private boolean editEnabled = true;

@Override
public void setRealValue(T realValue) {
LOGGER.info("#####$$$$$Nothing to do");
}

public boolean isEditEnabled() {
return editEnabled;
}

public void setEditEnabled(boolean editEnabled) {
this.editEnabled = editEnabled;
}

}

0 comments on commit b2f31a2

Please sign in to comment.