Skip to content

Commit

Permalink
assignment panel icon column fix
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Apr 8, 2019
1 parent d5c4a80 commit 2b52ea0
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 23 deletions.
Expand Up @@ -20,7 +20,9 @@

import javax.xml.namespace.QName;

import com.evolveum.midpoint.prism.polystring.PolyString;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.ajax.markup.html.AjaxLink;
Expand Down Expand Up @@ -61,6 +63,8 @@ public class ValueChoosePanel<T, O extends ObjectType> extends BasePanel<T> {
private static final long serialVersionUID = 1L;

private static final Trace LOGGER = TraceManager.getTrace(ValueChoosePanel.class);
private static final String DOT_CLASS = ValueChoosePanel.class.getName() + ".";
protected static final String OPERATION_LOAD_REFERENCE_OBJECT_DISPLAY_NAME = DOT_CLASS + "loadReferenceObjectDisplayName";

private static final String ID_TEXT_WRAPPER = "textWrapper";
private static final String ID_TEXT = "text";
Expand Down Expand Up @@ -182,20 +186,27 @@ protected IModel<String> createTextModel() {
@Override
public String getObject() {
T ort = (T) model.getObject();
if (ort == null){
return createStringResource("ValueChoosePanel.undefined").getString();
}

if (ort instanceof PrismReferenceValue) {
PrismReferenceValue prv = (PrismReferenceValue) ort;
return prv == null ? null
: (prv.getTargetName() != null
? (prv.getTargetName().getOrig() + (prv.getTargetType() != null
? ": " + prv.getTargetType().getLocalPart() : ""))
: prv.getOid());
ObjectReferenceType objectReferenceType = new ObjectReferenceType();
objectReferenceType.setupReferenceValue((PrismReferenceValue) ort);
String targetObjectName = WebComponentUtil.getName(objectReferenceType,
ValueChoosePanel.this.getPageBase(), OPERATION_LOAD_REFERENCE_OBJECT_DISPLAY_NAME);
return StringUtils.isNotEmpty(targetObjectName)
? (targetObjectName + (prv.getTargetType() != null ? ": " + prv.getTargetType().getLocalPart() : ""))
: prv.getOid();
} else if (ort instanceof ObjectReferenceType) {
ObjectReferenceType prv = (ObjectReferenceType) ort;
return prv == null ? null
: (prv.getTargetName() != null ? (prv.getTargetName().getOrig()
+ (prv.getType() != null ? ": " + prv.getType().getLocalPart() : ""))
: prv.getOid());
String targetObjectName = WebComponentUtil.getName(prv,
ValueChoosePanel.this.getPageBase(), OPERATION_LOAD_REFERENCE_OBJECT_DISPLAY_NAME);

return StringUtils.isNotEmpty(targetObjectName) ?
(targetObjectName + (prv.getType() != null ? ": " + prv.getType().getLocalPart() : ""))
: prv.getOid();
} else if (ort instanceof ObjectViewDto) {
return ((ObjectViewDto) ort).getName();
}
Expand Down
Expand Up @@ -256,18 +256,7 @@ private void initAccessBehaviour(InputPanel panel) {

@Override
public boolean isEnabled() {
ValueWrapper wrapper = getModel().getObject();
ItemWrapper itemWrapper = wrapper.getItem();
if (wrapper.isReadonly()) {
return false;
}
// if (itemWrapper.getParent() == null) {
// return true; // TODO
// }
ContainerWrapper object = itemWrapper.getParent();
ItemDefinition def = itemWrapper.getItem().getDefinition();

return object == null || isAccessible(def, object.getStatus());
return isValueEditable();
}

@Override
Expand All @@ -282,6 +271,21 @@ public void onComponentTag(Component component, ComponentTag tag) {
}
}

private boolean isValueEditable(){
ValueWrapper wrapper = getModel().getObject();
ItemWrapper itemWrapper = wrapper.getItem();
if (wrapper.isReadonly()) {
return false;
}
// if (itemWrapper.getParent() == null) {
// return true; // TODO
// }
ContainerWrapper object = itemWrapper.getParent();
ItemDefinition def = itemWrapper.getItem().getDefinition();

return object == null || isAccessible(def, object.getStatus());
}

private int countUsableValues(PropertyOrReferenceWrapper<? extends Item, ? extends ItemDefinition> property) {
int count = 0;
for (ValueWrapper value : property.getValues()) {
Expand Down Expand Up @@ -940,7 +944,7 @@ protected ObjectFilter createCustomFilter() {

@Override
protected boolean isEditButtonEnabled() {
return PrismValuePanel.this.getModel().getObject().isEditEnabled();
return PrismValuePanel.this.getModel().getObject().isEditEnabled() && isValueEditable();
}

@Override
Expand Down
Expand Up @@ -4388,4 +4388,5 @@ PolyStringEditorPanel.defaultLabel=default
PolyStringEditorPanel.keyLabel=key
PolyStringEditorPanel.showLanguages=Show languages
PolyStringEditorPanel.hideLanguages=Hide languages
PolyStringEditorPanel.addLanguage=Add language
PolyStringEditorPanel.addLanguage=Add language
ValueChoosePanel.undefined=Undefined

0 comments on commit 2b52ea0

Please sign in to comment.