use of com.evolveum.midpoint.web.component.util.EnableBehaviour in project midpoint by Evolveum.
the class ExpressionTypeSelectPopup method initLayout.
private void initLayout() {
setOutputMarkupId(true);
IModel<Boolean> shadowSelectModel = Model.of(false);
IModel<Boolean> assocTargetSearchSelectModel = Model.of(false);
AjaxCheckBox shadowRefCheckbox = new AjaxCheckBox(ID_SHADOW_REF_CHECKBOX, shadowSelectModel) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(ExpressionTypeSelectPopup.this);
}
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.setEventPropagation(AjaxRequestAttributes.EventPropagation.BUBBLE);
}
};
shadowRefCheckbox.setOutputMarkupId(true);
shadowRefCheckbox.add(new EnableBehaviour(() -> !assocTargetSearchSelectModel.getObject()));
add(shadowRefCheckbox);
AjaxCheckBox associationTargetSearchCheckbox = new AjaxCheckBox(ID_ASSOCIATION_TARGET_SEARCH_CHECKBOX, assocTargetSearchSelectModel) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(ExpressionTypeSelectPopup.this);
}
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.setEventPropagation(AjaxRequestAttributes.EventPropagation.BUBBLE);
}
};
associationTargetSearchCheckbox.setOutputMarkupId(true);
associationTargetSearchCheckbox.add(new EnableBehaviour(() -> !shadowSelectModel.getObject()));
add(associationTargetSearchCheckbox);
AjaxButton select = new AjaxButton(ID_ADD_BUTTON, new StringResourceModel("ExpressionTypeSelectPopup.addButton")) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
ExpressionValueTypes expressionType = getShadowRefCheckbox().getModelObject() ? ExpressionValueTypes.SHADOW_REF_EXPRESSION : (getAssociationTargetSearchCheckbox().getModelObject() ? ExpressionValueTypes.ASSOCIATION_TARGET_SEARCH_EXPRESSION : null);
addExpressionPerformed(target, expressionType);
}
};
add(select);
}
use of com.evolveum.midpoint.web.component.util.EnableBehaviour in project midpoint by Evolveum.
the class RelationSearchItem method createSpecialSearchPanel.
@Override
public SearchSpecialItemPanel createSpecialSearchPanel(String id) {
return new SearchSpecialItemPanel(id, new PropertyModel<>(searchBoxConfiguration, SearchBoxConfigurationHelper.F_RELATION_ITEM)) {
@Override
protected WebMarkupContainer initSearchItemField(String id) {
ReadOnlyModel<List<QName>> availableRelations = new ReadOnlyModel<>(() -> {
List<QName> choices = new ArrayList();
IModel<RelationSearchItemConfigurationType> relationItem = getModelValue();
List<QName> relations = relationItem.getObject().getSupportedRelations();
if (relations != null && relations.size() > 1) {
choices.add(PrismConstants.Q_ANY);
}
choices.addAll(relations);
return choices;
});
DropDownChoicePanel inputPanel = new DropDownChoicePanel(id, new PropertyModel(getModelValue(), RelationSearchItemConfigurationType.F_DEFAULT_VALUE.getLocalPart()), availableRelations, new QNameIChoiceRenderer() {
private static final long serialVersionUID = 1L;
@Override
public Object getDisplayValue(QName relation) {
RelationDefinitionType relationDef = WebComponentUtil.getRelationDefinition(relation);
if (relationDef != null) {
DisplayType display = relationDef.getDisplay();
if (display != null) {
PolyStringType label = display.getLabel();
if (PolyStringUtils.isNotEmpty(label)) {
return WebComponentUtil.getTranslatedPolyString(label);
}
}
}
if (QNameUtil.match(PrismConstants.Q_ANY, relation)) {
return new ResourceModel("RelationTypes.ANY", relation.getLocalPart()).getObject();
}
return super.getDisplayValue(relation);
}
}, false);
inputPanel.getBaseFormComponent().add(WebComponentUtil.getSubmitOnEnterKeyDownBehavior("searchSimple"));
inputPanel.getBaseFormComponent().add(AttributeAppender.append("style", "width: 100px; max-width: 400px !important;"));
inputPanel.getBaseFormComponent().add(new EnableBehaviour(() -> availableRelations.getObject().size() > 1));
inputPanel.setOutputMarkupId(true);
return inputPanel;
}
@Override
protected IModel<String> createLabelModel() {
return Model.of(WebComponentUtil.getTranslatedPolyString(getReltaionConfig().getDisplay().getLabel()));
}
@Override
protected IModel<String> createHelpModel() {
return Model.of(WebComponentUtil.getTranslatedPolyString(getReltaionConfig().getDisplay().getHelp()));
}
};
}
Aggregations