use of org.apache.wicket.model.ResourceModel in project syncope by apache.
the class JobWidget method buildTabList.
private List<ITab> buildTabList(final PageReference pageRef) {
final List<ITab> tabs = new ArrayList<>();
tabs.add(new AbstractTab(new ResourceModel("available")) {
private static final long serialVersionUID = -6815067322125799251L;
@Override
public Panel getPanel(final String panelId) {
availableJobsPanel = new AvailableJobsPanel(panelId, pageRef);
availableJobsPanel.setOutputMarkupId(true);
return availableJobsPanel;
}
});
tabs.add(new AbstractTab(new ResourceModel("recent")) {
private static final long serialVersionUID = -6815067322125799251L;
@Override
public Panel getPanel(final String panelId) {
recentExecPanel = new RecentExecPanel(panelId, pageRef);
recentExecPanel.setOutputMarkupId(true);
return recentExecPanel;
}
});
return tabs;
}
use of org.apache.wicket.model.ResourceModel in project syncope by apache.
the class IndicatingOnConfirmAjaxLink method renderHead.
@Override
public void renderHead(final IHeaderResponse response) {
super.renderHead(response);
if (enabled) {
response.render(JavaScriptHeaderItem.forScript("proceed = false;", null));
response.render($(this).on("click", new JavaScriptInlineFunction("" + "var element = $(this);" + "evt.preventDefault();" + "if (proceed == false) {" + " evt.stopImmediatePropagation();" + " bootbox.confirm('" + new ResourceModel(msg).getObject() + "', function(result) {" + " if (result == true) {" + " proceed = true;" + " element.click();" + " } else {" + " proceed = false;" + " }" + " return true;" + " })" + "} else {" + " proceed = false;" + "};", new ArrayList<>())).asDomReadyScript());
}
}
use of org.apache.wicket.model.ResourceModel in project midpoint by Evolveum.
the class ResourceAttributeEditor method initLayout.
protected void initLayout(final NonEmptyModel<Boolean> readOnlyModel) {
Label label = new Label(ID_LABEL, new ResourceModel("ResourceAttributeEditor.label.edit"));
label.add(WebComponentUtil.enabledIfFalse(readOnlyModel));
add(label);
WebMarkupContainer schemaRefPanel = new WebMarkupContainer(ID_SCHEMA_REF_PANEL);
schemaRefPanel.setOutputMarkupId(true);
schemaRefPanel.setOutputMarkupPlaceholderTag(true);
schemaRefPanel.add(new VisibleEnableBehaviour() {
@Override
public boolean isEnabled() {
return !readOnlyModel.getObject();
}
});
add(schemaRefPanel);
Label refTooltip = new Label(ID_T_REF);
refTooltip.add(new InfoTooltipBehavior());
refTooltip.setOutputMarkupId(true);
refTooltip.setOutputMarkupId(true);
schemaRefPanel.add(refTooltip);
IChoiceRenderer<ItemPathType> choiceRenderer = new IChoiceRenderer<ItemPathType>() {
@Override
public ItemPathType getObject(String id, IModel<? extends List<? extends ItemPathType>> choices) {
return StringUtils.isNotBlank(id) ? choices.getObject().get(Integer.parseInt(id)) : null;
}
@Override
public Object getDisplayValue(ItemPathType object) {
return prepareReferenceDisplayValue(object);
}
@Override
public String getIdValue(ItemPathType object, int index) {
return Integer.toString(index);
}
};
DropDownChoice<?> refSelect = new DropDownChoice<ItemPathType>(ID_REFERENCE_SELECT, new PropertyModel<>(getModel(), "ref"), (IModel<List<ItemPathType>>) () -> loadObjectReferences(), choiceRenderer) {
@Override
protected boolean isSelected(ItemPathType object, int index, String selected) {
if (getModelObject() == null || getModelObject().equals(new ItemPathType())) {
return false;
}
QName referenceQName = ItemPathTypeUtil.asSingleName(getModelObject());
QName optionQName = ItemPathTypeUtil.asSingleName(object);
return Objects.equals(referenceQName, optionQName);
}
};
refSelect.setNullValid(false);
refSelect.setOutputMarkupId(true);
refSelect.setOutputMarkupPlaceholderTag(true);
refSelect.add(new EmptyOnChangeAjaxFormUpdatingBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(parentStep.getAttributeList());
((PageResourceWizard) getPageBase()).refreshIssues(target);
}
});
refSelect.add(WebComponentUtil.enabledIfFalse(readOnlyModel));
schemaRefPanel.add(refSelect);
TextField<?> displayName = new TextField<>(ID_DISPLAY_NAME, new PropertyModel<String>(getModel(), "displayName"));
displayName.add(new EmptyOnChangeAjaxFormUpdatingBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(parentStep.getAttributeList());
}
});
displayName.add(WebComponentUtil.enabledIfFalse(readOnlyModel));
add(displayName);
TextArea<?> description = new TextArea<>(ID_DESCRIPTION, new PropertyModel<String>(getModel(), "description"));
description.add(WebComponentUtil.enabledIfFalse(readOnlyModel));
add(description);
AjaxLink<Void> limitations = new AjaxLink<Void>(ID_BUTTON_LIMITATIONS) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
limitationsEditPerformed(target);
}
};
add(limitations);
CheckBox exclusiveStrong = new CheckBox(ID_EXCLUSIVE_STRONG, new PropertyModel<>(getModel(), "exclusiveStrong"));
exclusiveStrong.add(WebComponentUtil.enabledIfFalse(readOnlyModel));
add(exclusiveStrong);
CheckBox tolerant = new CheckBox(ID_TOLERANT, new PropertyModel<>(getModel(), "tolerant"));
tolerant.add(WebComponentUtil.enabledIfFalse(readOnlyModel));
add(tolerant);
MultiValueTextPanel<?> tolerantVP = new MultiValueTextPanel<>(ID_TOLERANT_VP, new PropertyModel<List<String>>(getModel(), "tolerantValuePattern"), readOnlyModel, true);
tolerantVP.add(WebComponentUtil.enabledIfFalse(readOnlyModel));
add(tolerantVP);
MultiValueTextPanel<?> intolerantVP = new MultiValueTextPanel<>(ID_INTOLERANT_VP, new PropertyModel<List<String>>(getModel(), "intolerantValuePattern"), readOnlyModel, true);
intolerantVP.add(WebComponentUtil.enabledIfFalse(readOnlyModel));
add(intolerantVP);
DropDownChoice<?> fetchStrategy = new DropDownChoice<>(ID_FETCH_STRATEGY, new PropertyModel<>(getModel(), "fetchStrategy"), WebComponentUtil.createReadonlyModelFromEnum(AttributeFetchStrategyType.class), new EnumChoiceRenderer<>(this));
fetchStrategy.setNullValid(true);
fetchStrategy.add(WebComponentUtil.enabledIfFalse(readOnlyModel));
add(fetchStrategy);
AttributeEditorUtils.addMatchingRuleFields(this, readOnlyModel);
TextField<String> outboundLabel = new TextField<>(ID_OUTBOUND_LABEL, (IModel<String>) () -> {
ResourceAttributeDefinitionType attributeDefinition = getModel().getObject();
if (attributeDefinition == null) {
return null;
}
return MappingTypeDto.createMappingLabel(attributeDefinition.getOutbound(), LOGGER, getPageBase().getPrismContext(), getString("MappingType.label.placeholder"), getString("MultiValueField.nameNotSpecified"));
});
outboundLabel.setEnabled(false);
outboundLabel.setOutputMarkupId(true);
VisibleEnableBehaviour showIfEditingOrOutboundExists = AttributeEditorUtils.createShowIfEditingOrOutboundExists(getModel(), readOnlyModel);
outboundLabel.add(showIfEditingOrOutboundExists);
add(outboundLabel);
AjaxSubmitLink outbound = new AjaxSubmitLink(ID_BUTTON_OUTBOUND) {
@Override
protected void onSubmit(AjaxRequestTarget target) {
outboundEditPerformed(target);
}
@Override
protected void onError(AjaxRequestTarget target) {
target.add(parentStep.getPageBase().getFeedbackPanel());
}
};
outbound.setOutputMarkupId(true);
outbound.add(showIfEditingOrOutboundExists);
add(outbound);
AjaxSubmitLink deleteOutbound = new AjaxSubmitLink(ID_DELETE_OUTBOUND) {
@Override
protected void onSubmit(AjaxRequestTarget target) {
deleteOutboundPerformed(target);
}
@Override
protected void onError(AjaxRequestTarget target) {
target.add(parentStep.getPageBase().getFeedbackPanel());
}
};
deleteOutbound.setOutputMarkupId(true);
deleteOutbound.add(WebComponentUtil.visibleIfFalse(readOnlyModel));
add(deleteOutbound);
MultiValueTextEditPanel<?> inbound = new MultiValueTextEditPanel<MappingType>(ID_INBOUND, new PropertyModel<>(getModel(), "inbound"), null, false, true, readOnlyModel) {
@Override
protected IModel<String> createTextModel(final IModel<MappingType> model) {
return new Model<String>() {
@Override
public String getObject() {
return MappingTypeDto.createMappingLabel(model.getObject(), LOGGER, getPageBase().getPrismContext(), getString("MappingType.label.placeholder"), getString("MultiValueField.nameNotSpecified"));
}
};
}
@Override
protected MappingType createNewEmptyItem() {
return WizardUtil.createEmptyMapping();
}
@Override
protected void performAddValueHook(AjaxRequestTarget target, MappingType added) {
target.add(parentStep.getAttributeList());
target.add(parentStep.getAssociationList());
((PageResourceWizard) getPageBase()).refreshIssues(target);
}
@Override
protected void performRemoveValueHook(AjaxRequestTarget target, ListItem<MappingType> item) {
target.add(parentStep.getAttributeList());
target.add(parentStep.getAssociationList());
((PageResourceWizard) getPageBase()).refreshIssues(target);
}
@Override
protected void editPerformed(AjaxRequestTarget target, MappingType object) {
inboundEditPerformed(target, object);
}
};
inbound.setOutputMarkupId(true);
add(inbound);
Label allowTooltip = new Label(ID_T_ALLOW);
allowTooltip.add(new InfoTooltipBehavior());
add(allowTooltip);
Label limitationsTooltip = new Label(ID_T_LIMITATIONS);
limitationsTooltip.add(new InfoTooltipBehavior());
add(limitationsTooltip);
Label exclusiveStrongTooltip = new Label(ID_T_EXCLUSIVE_STRONG);
exclusiveStrongTooltip.add(new InfoTooltipBehavior());
add(exclusiveStrongTooltip);
Label tolerantTooltip = new Label(ID_T_TOLERANT);
tolerantTooltip.add(new InfoTooltipBehavior());
add(tolerantTooltip);
Label tolerantVPTooltip = new Label(ID_T_TOLERANT_VP);
tolerantVPTooltip.add(new InfoTooltipBehavior());
add(tolerantVPTooltip);
Label intolerantVPTooltip = new Label(ID_T_INTOLERANT_VP);
intolerantVPTooltip.add(new InfoTooltipBehavior());
add(intolerantVPTooltip);
Label fetchTooltip = new Label(ID_T_FETCH);
fetchTooltip.add(new InfoTooltipBehavior());
add(fetchTooltip);
Label matchingRuleTooltip = new Label(ID_T_MATCHING_RULE);
matchingRuleTooltip.add(new InfoTooltipBehavior());
add(matchingRuleTooltip);
Label outboundTooltip = new Label(ID_T_OUTBOUND);
outboundTooltip.add(new InfoTooltipBehavior());
add(outboundTooltip);
Label inboundTooltip = new Label(ID_T_INBOUND);
inboundTooltip.add(new InfoTooltipBehavior());
add(inboundTooltip);
initModals(readOnlyModel);
}
use of org.apache.wicket.model.ResourceModel in project midpoint by Evolveum.
the class PasswordPanel method initLayout.
private <F extends FocusType> void initLayout(final boolean isReadOnly, PrismObject<F> object) {
setOutputMarkupId(true);
final WebMarkupContainer inputContainer = new WebMarkupContainer(ID_INPUT_CONTAINER) {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return passwordInputVisible;
}
};
inputContainer.setOutputMarkupId(true);
add(inputContainer);
ValuePolicyType valuePolicy = getValuePolicy(object);
LoadableModel<List<StringLimitationResult>> limitationsModel = new LoadableModel<>() {
@Override
protected List<StringLimitationResult> load() {
return getLimitationsForActualPassword(valuePolicy, object);
}
};
final PasswordLimitationsPanel validationPanel = new PasswordLimitationsPanel(ID_VALIDATION_PANEL, limitationsModel);
validationPanel.setOutputMarkupId(true);
inputContainer.add(validationPanel);
final PasswordTextField password1 = new SecureModelPasswordTextField(ID_PASSWORD_ONE, new PasswordModel(model)) {
private static final long serialVersionUID = 1L;
@Override
protected void onComponentTag(ComponentTag tag) {
super.onComponentTag(tag);
if (clearPasswordInput) {
tag.remove("value");
}
}
};
password1.add(AttributeAppender.append("onfocus", "initPasswordValidation({\n" + "container: $('#progress-bar-container'),\n" + "hierarchy: {\n" + " '0': ['progress-bar-danger', '" + PageBase.createStringResourceStatic(null, "PasswordPanel.strength.veryWeak").getString() + "'],\n" + " '25': ['progress-bar-danger', '" + PageBase.createStringResourceStatic(null, "PasswordPanel.strength.weak").getString() + "'],\n" + " '50': ['progress-bar-warning', '" + PageBase.createStringResourceStatic(null, "PasswordPanel.strength.good").getString() + "'],\n" + " '75': ['progress-bar-success', '" + PageBase.createStringResourceStatic(null, "PasswordPanel.strength.strong").getString() + "'],\n" + " '100': ['progress-bar-success', '" + PageBase.createStringResourceStatic(null, "PasswordPanel.strength.veryStrong").getString() + "']\n" + "}\n" + "})"));
password1.setRequired(false);
password1.setOutputMarkupId(true);
password1.add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
inputContainer.add(password1);
final PasswordTextField password2 = new SecureModelPasswordTextField(ID_PASSWORD_TWO, new PasswordModel(Model.of(new ProtectedStringType())));
password2.setRequired(false);
password2.setOutputMarkupId(true);
inputContainer.add(password2);
password1.add(new AjaxFormComponentUpdatingBehavior("change") {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
boolean required = !StringUtils.isEmpty(password1.getModelObject());
password2.setRequired(required);
changePasswordPerformed();
}
});
IModel<String> password2ValidationModel = (IModel<String>) () -> {
String s1 = password1.getModelObject();
String s2 = password2.getValue();
if (StringUtils.isEmpty(s1) || StringUtils.isEmpty(s2)) {
return "";
}
if (!Objects.equals(s1, s2)) {
return PageBase.createStringResourceStatic(null, "passwordPanel.error").getString();
}
return "";
};
Label password2ValidationMessage = new Label(ID_PASSWORD_TWO_VALIDATION_MESSAGE, password2ValidationModel);
password2ValidationMessage.setOutputMarkupId(true);
inputContainer.add(password2ValidationMessage);
password1.add(new AjaxFormComponentUpdatingBehavior("keyup input") {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
limitationsModel.reset();
validationPanel.refreshItems(target);
updatePasswordValidation(target);
target.add(password2ValidationMessage);
}
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.setThrottlingSettings(new ThrottlingSettings(Duration.ofMillis(500), true));
attributes.setChannel(new AjaxChannel("Drop", AjaxChannel.Type.DROP));
}
});
PasswordValidator pass2Validator = new PasswordValidator(password1);
password2.add(pass2Validator);
password2.add(new AjaxFormComponentUpdatingBehavior("keyup input") {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(password2ValidationMessage);
}
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.setThrottlingSettings(new ThrottlingSettings(Duration.ofMillis(500), true));
attributes.setChannel(new AjaxChannel("Drop", AjaxChannel.Type.DROP));
}
});
final WebMarkupContainer linkContainer = new WebMarkupContainer(ID_LINK_CONTAINER) {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return !passwordInputVisible;
}
};
inputContainer.setOutputMarkupId(true);
linkContainer.setOutputMarkupId(true);
add(linkContainer);
final Label passwordSetLabel = new Label(ID_PASSWORD_SET, new ResourceModel("passwordPanel.passwordSet"));
linkContainer.add(passwordSetLabel);
final Label passwordRemoveLabel = new Label(ID_PASSWORD_REMOVE, new ResourceModel("passwordPanel.passwordRemoveLabel"));
passwordRemoveLabel.setVisible(false);
linkContainer.add(passwordRemoveLabel);
AjaxLink<Void> link = new AjaxLink<Void>(ID_CHANGE_PASSWORD_LINK) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
clearPasswordInput = true;
setPasswordInput = false;
onLinkClick(target);
}
@Override
public boolean isVisible() {
return !passwordInputVisible && model != null && model.getObject() != null;
}
};
link.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return !isReadOnly;
}
});
link.setBody(new ResourceModel("passwordPanel.passwordChange"));
link.setOutputMarkupId(true);
linkContainer.add(link);
final WebMarkupContainer removeButtonContainer = new WebMarkupContainer(ID_REMOVE_BUTTON_CONTAINER);
AjaxLink<Void> removePassword = new AjaxLink<Void>(ID_REMOVE_PASSWORD_LINK) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
onRemovePassword(model, target);
}
};
removePassword.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
PageBase pageBase = getPageBase();
if (pageBase == null) {
return false;
}
if (pageBase instanceof PageUserSelfProfile || pageBase instanceof PageOrgSelfProfile || pageBase instanceof PageRoleSelfProfile || pageBase instanceof PageServiceSelfProfile) {
return false;
}
if (pageBase instanceof PageAdminFocus && !((PageAdminFocus) pageBase).isLoggedInFocusPage() && model.getObject() != null) {
return true;
}
return false;
}
});
removePassword.setBody(new ResourceModel("passwordPanel.passwordRemove"));
removePassword.setOutputMarkupId(true);
removeButtonContainer.add(removePassword);
add(removeButtonContainer);
}
use of org.apache.wicket.model.ResourceModel in project midpoint by Evolveum.
the class CapabilitiesPanel method createCapabilityButton.
private void createCapabilityButton(String id) {
AjaxLink<Boolean> button = new AjaxLink<Boolean>(id, new PropertyModel<>(getModel(), id)) {
@Override
public void onClick(AjaxRequestTarget target) {
// TODO:
}
};
button.add(new AttributeModifier("class", button.getModelObject() ? "btn btn-app btn-resource-capability bg-light-blue" : "btn btn-app btn-resource-capability bg-gray text-light-blue"));
button.add(new Label("label", new ResourceModel("CapabilitiesType." + id)));
add(button);
}
Aggregations