use of org.apache.wicket.markup.html.WebMarkupContainer in project midpoint by Evolveum.
the class DelegationEditorPanel method initBodyLayout.
protected void initBodyLayout(WebMarkupContainer body) {
DateInput validFrom = new DateInput(ID_DELEGATION_VALID_FROM, createDateModel(new PropertyModel<XMLGregorianCalendar>(getModel(), AssignmentEditorDto.F_ACTIVATION + ".validFrom")));
validFrom.setEnabled(getModel().getObject().isEditable());
body.add(validFrom);
DateInput validTo = new DateInput(ID_DELEGATION_VALID_TO, createDateModel(new PropertyModel<XMLGregorianCalendar>(getModel(), AssignmentEditorDto.F_ACTIVATION + ".validTo")));
validTo.setEnabled(getModel().getObject().isEditable());
body.add(validTo);
TextArea<String> description = new TextArea<>(ID_DESCRIPTION, new PropertyModel<String>(getModel(), AssignmentEditorDto.F_DESCRIPTION));
description.setEnabled(getModel().getObject().isEditable());
body.add(description);
WebMarkupContainer assignmentPrivilegesContainer = new WebMarkupContainer(ID_ASSIGNMENT_PRIVILEGES_CONTAINER);
assignmentPrivilegesContainer.setOutputMarkupId(true);
assignmentPrivilegesContainer.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
if (!UserDtoStatus.ADD.equals(getModelObject().getStatus())) {
return true;
}
List<AssignmentsPreviewDto> privilegesList = privilegesListModel.getObject();
return privilegesList != null && privilegesList.size() > 0;
}
});
body.add(assignmentPrivilegesContainer);
AjaxCheckBox assignmentPrivilegesCheckbox = new AjaxCheckBox(ID_ASSIGNMENT_PRIVILEGES_CHECKBOX, new IModel<Boolean>() {
private static final long serialVersionUID = 1L;
@Override
public Boolean getObject() {
return getModelObject().getPrivilegeLimitationList() != null && getModelObject().getPrivilegeLimitationList().size() > 0;
}
@Override
public void setObject(Boolean value) {
if (value) {
getModelObject().setPrivilegeLimitationList(privilegesListModel.getObject());
} else {
getModelObject().setPrivilegeLimitationList(new ArrayList<>());
}
}
@Override
public void detach() {
}
}) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(DelegationEditorPanel.this.get(ID_BODY).get(ID_ASSIGNMENT_PRIVILEGES_CONTAINER));
}
};
assignmentPrivilegesCheckbox.setOutputMarkupId(true);
assignmentPrivilegesCheckbox.add(new AjaxFormComponentUpdatingBehavior("blur") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
}
});
assignmentPrivilegesCheckbox.add(new VisibleEnableBehaviour() {
@Override
public boolean isEnabled() {
return UserDtoStatus.ADD.equals(getModelObject().getStatus());
}
});
assignmentPrivilegesContainer.add(assignmentPrivilegesCheckbox);
WebMarkupContainer labelContainer = new WebMarkupContainer(ID_ASSIGNMENT_PRIVILEGES_LABEL_CONTAINER);
labelContainer.setOutputMarkupId(true);
assignmentPrivilegesContainer.add(labelContainer);
Label assignmentPrivilegesLabel = new Label(ID_ASSIGNMENT_PRIVILEGES_LABEL, createStringResource("DelegationEditorPanel.allPrivilegesLabel"));
assignmentPrivilegesLabel.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return true;
}
});
assignmentPrivilegesLabel.setOutputMarkupId(true);
labelContainer.add(assignmentPrivilegesLabel);
addPrivilegesPanel(assignmentPrivilegesContainer);
AjaxButton limitPrivilegesButton = new AjaxButton(ID_LIMIT_PRIVILEGES_BUTTON, pageBase.createStringResource("DelegationEditorPanel.limitPrivilegesButton")) {
@Override
public void onClick(AjaxRequestTarget target) {
AssignmentPreviewDialog assignmentPreviewDialog = new AssignmentPreviewDialog(pageBase.getMainPopupBodyId(), selectExistingPrivileges(privilegesListModel.getObject()), null, pageBase, true) {
@Override
protected boolean isDelegationPreview() {
return true;
}
@Override
public StringResourceModel getTitle() {
return new StringResourceModel("AssignmentPreviewDialog.delegationPreviewLabel");
}
@Override
protected void addButtonClicked(AjaxRequestTarget target, List<AssignmentsPreviewDto> dtoList) {
DelegationEditorPanel.this.getModelObject().setPrivilegeLimitationList(dtoList);
pageBase.hideMainPopup(target);
}
};
pageBase.showMainPopup(assignmentPreviewDialog, target);
}
};
limitPrivilegesButton.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return UserDtoStatus.ADD.equals(getModelObject().getStatus()) && assignmentPrivilegesCheckbox.getModelObject();
}
});
labelContainer.add(limitPrivilegesButton);
AjaxCheckBox approvalRights = new AjaxCheckBox(ID_DELEGATE_APPROVAL_WI, new IModel<Boolean>() {
private static final long serialVersionUID = 1L;
@Override
public Boolean getObject() {
AssignmentEditorDto dto = getModelObject();
if (dto.getPrivilegesLimitation() == null || dto.getPrivilegesLimitation().getApprovalWorkItems() == null || dto.getPrivilegesLimitation().getApprovalWorkItems().isAll() == null) {
return false;
}
return dto.getPrivilegesLimitation().getApprovalWorkItems().isAll();
}
@Override
public void setObject(Boolean value) {
AssignmentEditorDto dto = getModelObject();
OtherPrivilegesLimitationType limitations = dto.getPrivilegesLimitation();
if (limitations == null) {
limitations = new OtherPrivilegesLimitationType();
dto.setPrivilegesLimitation(limitations);
}
WorkItemSelectorType workItemSelector = new WorkItemSelectorType();
workItemSelector.all(value);
limitations.setApprovalWorkItems(workItemSelector);
}
@Override
public void detach() {
}
}) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
}
};
approvalRights.setOutputMarkupId(true);
approvalRights.add(new AjaxFormComponentUpdatingBehavior("blur") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
}
});
approvalRights.add(new VisibleEnableBehaviour() {
@Override
public boolean isEnabled() {
return getModel().getObject().isEditable();
}
});
body.add(approvalRights);
AjaxCheckBox certificationRights = new AjaxCheckBox(ID_DELEGATE_CERTIFICATION_WI, new IModel<Boolean>() {
private static final long serialVersionUID = 1L;
@Override
public Boolean getObject() {
AssignmentEditorDto dto = getModelObject();
if (dto.getPrivilegesLimitation() == null || dto.getPrivilegesLimitation().getCertificationWorkItems() == null || dto.getPrivilegesLimitation().getCertificationWorkItems().isAll() == null) {
return false;
}
return dto.getPrivilegesLimitation().getCertificationWorkItems().isAll();
}
@Override
public void setObject(Boolean value) {
AssignmentEditorDto dto = getModelObject();
OtherPrivilegesLimitationType limitations = dto.getPrivilegesLimitation();
if (limitations == null) {
limitations = new OtherPrivilegesLimitationType();
dto.setPrivilegesLimitation(limitations);
}
WorkItemSelectorType workItemSelector = new WorkItemSelectorType();
workItemSelector.all(value);
limitations.setCertificationWorkItems(workItemSelector);
}
@Override
public void detach() {
}
}) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
}
};
certificationRights.add(new AjaxFormComponentUpdatingBehavior("blur") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
}
});
certificationRights.add(new VisibleEnableBehaviour() {
@Override
public boolean isEnabled() {
return getModel().getObject().isEditable();
}
});
certificationRights.setOutputMarkupId(true);
body.add(certificationRights);
AjaxCheckBox managementWorkItems = new AjaxCheckBox(ID_DELEGATE_MANAGEMENT_WI, new Model<Boolean>(false)) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
}
};
managementWorkItems.setOutputMarkupId(true);
managementWorkItems.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
//TODO not implemented yet
return false;
}
});
body.add(managementWorkItems);
addAjaxOnUpdateBehavior(body);
}
use of org.apache.wicket.markup.html.WebMarkupContainer in project midpoint by Evolveum.
the class DelegationEditorPanel method initHeaderRow.
@Override
protected void initHeaderRow() {
if (delegatedToMe) {
privilegesListModel = new LoadableModel<List<AssignmentsPreviewDto>>(false) {
@Override
protected List<AssignmentsPreviewDto> load() {
return DelegationEditorPanel.this.getModelObject().getPrivilegeLimitationList();
}
};
}
AjaxCheckBox selected = new AjaxCheckBox(ID_SELECTED, new PropertyModel<>(getModel(), AssignmentEditorDto.F_SELECTED)) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
}
};
selected.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return !getModel().getObject().isSimpleView();
}
});
headerRow.add(selected);
Label arrowIcon = new Label(ID_ARROW_ICON);
headerRow.add(arrowIcon);
WebMarkupContainer typeImage = new WebMarkupContainer(ID_TYPE_IMAGE);
typeImage.add(AttributeModifier.append("class", createImageTypeModel(getModel())));
headerRow.add(typeImage);
AjaxLink name = new AjaxLink(ID_NAME) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
nameClickPerformed(target);
}
};
headerRow.add(name);
Label nameLabel;
if (delegatedToMe) {
OperationResult result = new OperationResult(OPERATION_GET_TARGET_REF_NAME);
Task task = pageBase.createSimpleTask(OPERATION_GET_TARGET_REF_NAME);
nameLabel = new Label(ID_NAME_LABEL, WebModelServiceUtils.resolveReferenceName(getModelObject().getTargetRef(), pageBase, task, result));
} else {
nameLabel = new Label(ID_NAME_LABEL, pageBase.createStringResource("DelegationEditorPanel.meLabel"));
}
nameLabel.setOutputMarkupId(true);
name.add(nameLabel);
AssignmentEditorDto dto = getModelObject();
dto.getTargetRef();
WebMarkupContainer delegatedToTypeImage = new WebMarkupContainer(ID_DELEGATED_TO_IMAGE);
if (delegatedToMe) {
delegatedToTypeImage.add(AttributeModifier.append("class", WebComponentUtil.createDefaultIcon(((PageUser) pageBase).getObjectWrapper().getObject())));
} else {
if (getModelObject().getDelegationOwner() != null) {
delegatedToTypeImage.add(AttributeModifier.append("class", WebComponentUtil.createDefaultIcon(getModelObject().getDelegationOwner().asPrismObject())));
}
}
headerRow.add(delegatedToTypeImage);
AjaxLink delegatedToName = new AjaxLink(ID_DELEGATED_TO) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
nameClickPerformed(target);
}
};
headerRow.add(delegatedToName);
Label delegatedToNameLabel;
if (delegatedToMe) {
delegatedToNameLabel = new Label(ID_DELEGATED_TO_LABEL, pageBase.createStringResource("DelegationEditorPanel.meLabel"));
} else {
delegatedToNameLabel = new Label(ID_DELEGATED_TO_LABEL, getUserDisplayName());
}
delegatedToNameLabel.setOutputMarkupId(true);
delegatedToName.add(delegatedToNameLabel);
ToggleIconButton expandButton = new ToggleIconButton(ID_EXPAND, GuiStyleConstants.CLASS_ICON_EXPAND, GuiStyleConstants.CLASS_ICON_COLLAPSE) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
nameClickPerformed(target);
}
@Override
public boolean isOn() {
return !DelegationEditorPanel.this.getModelObject().isMinimized();
}
};
headerRow.add(expandButton);
}
use of org.apache.wicket.markup.html.WebMarkupContainer in project midpoint by Evolveum.
the class MultiButtonTable method populateCell.
protected void populateCell(WebMarkupContainer cellContainer, final AssignmentEditorDto assignment) {
AjaxLink inner = new AjaxLink(ID_INNER) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {
targetObjectDetailsPerformed(assignment, ajaxRequestTarget);
}
};
inner.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isEnabled() {
return isMultiUserRequest() || canAssign(assignment);
}
});
cellContainer.add(inner);
Label nameLabel = new Label(ID_INNER_LABEL, assignment.getName());
inner.add(nameLabel);
Label descriptionLabel = new Label(ID_INNER_DESCRIPTION, assignment.getTargetRef() != null ? assignment.getTargetRef().getDescription() : "");
descriptionLabel.setOutputMarkupId(true);
inner.add(descriptionLabel);
AjaxLink detailsLink = new AjaxLink(ID_DETAILS_LINK) {
@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {
assignmentDetailsPerformed(assignment, ajaxRequestTarget);
}
};
detailsLink.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isEnabled() {
return isMultiUserRequest() || canAssign(assignment);
}
});
cellContainer.add(detailsLink);
Label detailsLinkLabel = new Label(ID_DETAILS_LINK_LABEL, pageBase.createStringResource("MultiButtonPanel.detailsLink"));
detailsLinkLabel.setRenderBodyOnly(true);
detailsLink.add(detailsLinkLabel);
AjaxLink detailsLinkIcon = new AjaxLink(ID_DETAILS_LINK_ICON) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
}
};
detailsLinkIcon.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isEnabled() {
return isMultiUserRequest() || canAssign(assignment);
}
});
detailsLink.add(detailsLinkIcon);
AjaxLink addToCartLink = new AjaxLink(ID_ADD_TO_CART_LINK) {
@Override
public void onClick(AjaxRequestTarget ajaxRequestTarget) {
addAssignmentPerformed(assignment, ajaxRequestTarget);
}
};
addToCartLink.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isEnabled() {
return isMultiUserRequest() || canAssign(assignment);
}
});
cellContainer.add(addToCartLink);
AjaxLink addToCartLinkIcon = new AjaxLink(ID_ADD_TO_CART_LINK_ICON) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
}
};
addToCartLinkIcon.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isEnabled() {
return isMultiUserRequest() || canAssign(assignment);
}
});
addToCartLink.add(addToCartLinkIcon);
WebMarkupContainer icon = new WebMarkupContainer(ID_TYPE_ICON);
icon.add(new AttributeAppender("class", getIconClass(assignment.getType())));
cellContainer.add(icon);
WebMarkupContainer alreadyAssignedIcon = new WebMarkupContainer(ID_ALREADY_ASSIGNED_ICON);
alreadyAssignedIcon.add(new AttributeAppender("title", getAlreadyAssignedIconTitleModel(assignment)));
alreadyAssignedIcon.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return !isMultiUserRequest() && assignment.isAlreadyAssigned();
}
});
cellContainer.add(alreadyAssignedIcon);
}
use of org.apache.wicket.markup.html.WebMarkupContainer in project midpoint by Evolveum.
the class MultiButtonTable method initLayout.
private void initLayout() {
itemsCount = getModel() != null ? (getModel().getObject() != null ? getModel().getObject().size() : 0) : 0;
RepeatingView rows = new RepeatingView(ID_ROW);
rows.setOutputMarkupId(true);
if (itemsCount > 0 && itemsPerRow > 0) {
int index = 0;
List<AssignmentEditorDto> assignmentsList = getModelObject();
long rowCount = itemsCount % itemsPerRow == 0 ? (itemsCount / itemsPerRow) : (itemsCount / itemsPerRow + 1);
for (int rowNumber = 0; rowNumber < rowCount; rowNumber++) {
WebMarkupContainer rowContainer = new WebMarkupContainer(rows.newChildId());
rows.add(rowContainer);
RepeatingView columns = new RepeatingView(ID_CELL);
columns.setOutputMarkupId(true);
rowContainer.add(columns);
for (int colNumber = 0; colNumber < itemsPerRow; colNumber++) {
WebMarkupContainer colContainer = new WebMarkupContainer(columns.newChildId());
columns.add(colContainer);
WebMarkupContainer itemButtonContainer = new WebMarkupContainer(ID_ITEM_BUTTON_CONTAINER);
itemButtonContainer.setOutputMarkupId(true);
itemButtonContainer.add(new AttributeAppender("class", getBackgroundClass(assignmentsList.get(index))));
colContainer.add(itemButtonContainer);
populateCell(itemButtonContainer, assignmentsList.get(index));
index++;
if (index >= assignmentsList.size()) {
break;
}
}
}
}
add(rows);
}
use of org.apache.wicket.markup.html.WebMarkupContainer in project midpoint by Evolveum.
the class PageSizePopover method initLayout.
protected void initLayout() {
Button popButton = new Button(ID_POP_BUTTON);
popButton.setOutputMarkupId(true);
add(popButton);
WebMarkupContainer popover = new WebMarkupContainer(ID_POPOVER);
popover.setOutputMarkupId(true);
add(popover);
Form form = new Form(ID_FORM);
popover.add(form);
AjaxSubmitButton button = new AjaxSubmitButton(ID_BUTTON) {
@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
super.onError(target, form);
target.add(getPageBase().getFeedbackPanel());
}
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
super.onSubmit(target, form);
pageSizeChanged(target);
}
};
form.add(button);
TextField input = new TextField(ID_INPUT, createInputModel());
input.add(new RangeValidator(5, 100));
input.setLabel(createStringResource("PageSizePopover.title"));
input.add(new SearchFormEnterBehavior(button));
input.setType(Integer.class);
form.add(input);
}
Aggregations