use of org.apache.wicket.model.AbstractReadOnlyModel in project midpoint by Evolveum.
the class ChangePasswordPanel method initColumns.
private List<IColumn<PasswordAccountDto, String>> initColumns() {
List<IColumn<PasswordAccountDto, String>> columns = new ArrayList<IColumn<PasswordAccountDto, String>>();
IColumn column = new IconColumn<PasswordAccountDto>(new Model<String>()) {
private static final long serialVersionUID = 1L;
@Override
protected IModel<String> createIconModel(final IModel<PasswordAccountDto> rowModel) {
return new AbstractReadOnlyModel<String>() {
private static final long serialVersionUID = 1L;
@Override
public String getObject() {
PasswordAccountDto item = rowModel.getObject();
if (item.getCssClass() == null || item.getCssClass().trim().equals("")) {
if (item.isMidpoint()) {
item.setCssClass(SELECTED_ACCOUNT_ICON_CSS);
} else if (item.isPasswordOutbound()) {
item.setCssClass(PROPAGATED_ACCOUNT_ICON_CSS);
} else {
item.setCssClass(DESELECTED_ACCOUNT_ICON_CSS);
}
}
return item.getCssClass();
}
};
}
@Override
public void populateItem(Item<ICellPopulator<PasswordAccountDto>> item, String componentId, final IModel<PasswordAccountDto> rowModel) {
super.populateItem(item, componentId, rowModel);
final ImagePanel imagePanel = (ImagePanel) item.get(0);
final PasswordAccountDto passwordAccountDto = rowModel.getObject();
imagePanel.add(new AjaxEventBehavior("click") {
private static final long serialVersionUID = 1L;
protected void onEvent(final AjaxRequestTarget target) {
if (!passwordAccountDto.isMidpoint()) {
if (passwordAccountDto.getCssClass().equals(PROPAGATED_ACCOUNT_ICON_CSS)) {
passwordAccountDto.setCssClass(SELECTED_ACCOUNT_ICON_CSS);
} else if (passwordAccountDto.getCssClass().equals(SELECTED_ACCOUNT_ICON_CSS) && passwordAccountDto.isPasswordOutbound() && midpointAccountSelected) {
passwordAccountDto.setCssClass(PROPAGATED_ACCOUNT_ICON_CSS);
} else if (passwordAccountDto.getCssClass().equals(SELECTED_ACCOUNT_ICON_CSS)) {
passwordAccountDto.setCssClass(DESELECTED_ACCOUNT_ICON_CSS);
} else if (passwordAccountDto.getCssClass().equals(DESELECTED_ACCOUNT_ICON_CSS)) {
passwordAccountDto.setCssClass(SELECTED_ACCOUNT_ICON_CSS);
}
target.add(imagePanel);
} else {
midpointAccountSelected = !midpointAccountSelected;
if (passwordAccountDto.getCssClass().equals(SELECTED_ACCOUNT_ICON_CSS)) {
passwordAccountDto.setCssClass(DESELECTED_ACCOUNT_ICON_CSS);
updatePropagatedAccountIconsCssClass(DESELECTED_ACCOUNT_ICON_CSS);
target.add(imagePanel.findParent(SelectableDataTable.class));
} else if (passwordAccountDto.getCssClass().equals(DESELECTED_ACCOUNT_ICON_CSS)) {
passwordAccountDto.setCssClass(SELECTED_ACCOUNT_ICON_CSS);
updatePropagatedAccountIconsCssClass(PROPAGATED_ACCOUNT_ICON_CSS);
target.add(imagePanel.findParent(SelectableDataTable.class));
}
}
}
});
}
};
columns.add(column);
columns.add(new AbstractColumn<PasswordAccountDto, String>(createStringResource("ChangePasswordPanel.name")) {
private static final long serialVersionUID = 1L;
@Override
public void populateItem(Item<ICellPopulator<PasswordAccountDto>> item, String componentId, final IModel<PasswordAccountDto> rowModel) {
item.add(new Label(componentId, new AbstractReadOnlyModel<Object>() {
private static final long serialVersionUID = 1L;
@Override
public Object getObject() {
PasswordAccountDto dto = rowModel.getObject();
return dto.getDisplayName();
}
}));
}
});
column = new PropertyColumn(createStringResource("ChangePasswordPanel.resourceName"), PasswordAccountDto.F_RESOURCE_NAME);
columns.add(column);
CheckBoxColumn enabled = new CheckBoxColumn(createStringResource("ChangePasswordPanel.enabled"), PasswordAccountDto.F_ENABLED);
enabled.setEnabled(false);
columns.add(enabled);
return columns;
}
use of org.apache.wicket.model.AbstractReadOnlyModel in project midpoint by Evolveum.
the class NotificationConfigPanel method initLayout.
@Override
protected void initLayout() {
TextField<String> defaultFromField = WebComponentUtil.createAjaxTextField(ID_DEFAULT_FROM, new PropertyModel<String>(getModel(), "defaultFrom"));
CheckBox debugCheck = WebComponentUtil.createAjaxCheckBox(ID_DEBUG, new PropertyModel<Boolean>(getModel(), "debug"));
DropDownChoice mailServerConfigChooser = new DropDownChoice<>(ID_MAIL_SERVER, new PropertyModel<MailServerConfigurationTypeDto>(getModel(), NotificationConfigurationDto.F_SELECTED_SERVER), new AbstractReadOnlyModel<List<MailServerConfigurationTypeDto>>() {
@Override
public List<MailServerConfigurationTypeDto> getObject() {
return getModel().getObject().getServers();
}
}, new ChoiceableChoiceRenderer<MailServerConfigurationTypeDto>());
mailServerConfigChooser.setNullValid(true);
mailServerConfigChooser.add(new AjaxFormSubmitBehavior("click") {
@Override
protected void onEvent(AjaxRequestTarget target) {
getForm().onFormSubmitted();
}
});
mailServerConfigChooser.add(new OnChangeAjaxBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
preparePasswordFieldPlaceholder();
target.add(NotificationConfigPanel.this);
}
});
add(mailServerConfigChooser);
Label serverConfigTooltip = new Label(ID_MAIL_SERVER_TOOLTIP);
serverConfigTooltip.add(new InfoTooltipBehavior());
add(serverConfigTooltip);
WebMarkupContainer serverConfigContainer = new WebMarkupContainer(ID_MAIL_SERVER_CONFIG_CONTAINER);
serverConfigContainer.setOutputMarkupId(true);
serverConfigContainer.setOutputMarkupPlaceholderTag(true);
serverConfigContainer.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
if (getModelObject() != null) {
return getModelObject().getSelectedServer() != null;
}
return false;
}
});
add(serverConfigContainer);
TextField<String> hostField = WebComponentUtil.createAjaxTextField(ID_HOST, new PropertyModel<String>(getModel(), "selectedServer.host"));
TextField<Integer> portField = WebComponentUtil.createAjaxTextField(ID_PORT, new PropertyModel<Integer>(getModel(), "selectedServer.port"));
TextField<String> userNameField = WebComponentUtil.createAjaxTextField(ID_USERNAME, new PropertyModel<String>(getModel(), "selectedServer.username"));
PasswordTextField passwordField = new PasswordTextField(ID_PASSWORD, new PropertyModel<String>(getModel(), "selectedServer.password"));
passwordField.setRequired(false);
passwordField.add(new EmptyOnChangeAjaxFormUpdatingBehavior());
TextField<String> redirectToFileField = WebComponentUtil.createAjaxTextField(ID_REDIRECT_TO_FILE, new PropertyModel<String>(getModel(), "redirectToFile"));
DropDownFormGroup transportSecurity = new DropDownFormGroup<>(ID_TRANSPORT_SECURITY, new PropertyModel<MailTransportSecurityType>(getModel(), "selectedServer.mailTransportSecurityType"), WebComponentUtil.createReadonlyModelFromEnum(MailTransportSecurityType.class), new EnumChoiceRenderer<MailTransportSecurityType>(this), createStringResource("SystemConfigPanel.mail.transportSecurity"), ID_LABEL_SIZE, ID_INPUT_SIZE, false);
// transportSecurity.add(new EmptyOnChangeAjaxFormUpdatingBehavior());
serverConfigContainer.add(hostField);
serverConfigContainer.add(portField);
serverConfigContainer.add(userNameField);
serverConfigContainer.add(passwordField);
serverConfigContainer.add(transportSecurity);
add(defaultFromField);
add(debugCheck);
add(redirectToFileField);
AjaxSubmitLink buttonAddNewMailServerConfig = new AjaxSubmitLink(ID_BUTTON_ADD_NEW_MAIL_SERVER_CONFIG) {
@Override
protected void onSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
MailServerConfigurationTypeDto newConfig = new MailServerConfigurationTypeDto();
newConfig.setHost(getString("SystemConfigPanel.mail.config.placeholder"));
if (getModelObject() != null) {
getModelObject().getServers().add(newConfig);
getModelObject().setSelectedServer(newConfig);
}
preparePasswordFieldPlaceholder();
target.add(NotificationConfigPanel.this, getPageBase().getFeedbackPanel());
}
@Override
protected void onError(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
target.add(getPageBase().getFeedbackPanel());
}
};
add(buttonAddNewMailServerConfig);
AjaxSubmitLink removeMailServerConfig = new AjaxSubmitLink(ID_BUTTON_REMOVE_MAIL_SERVER_CONFIG) {
@Override
protected void onSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
if (getModelObject() != null) {
NotificationConfigurationDto notificationConfig = getModelObject();
MailServerConfigurationTypeDto selected = notificationConfig.getSelectedServer();
if (notificationConfig.getServers().contains(selected)) {
notificationConfig.getServers().remove(selected);
notificationConfig.setSelectedServer(null);
} else {
warn(getString("SystemConfigPanel.mail.server.remove.warn"));
}
target.add(NotificationConfigPanel.this, getPageBase().getFeedbackPanel());
}
}
@Override
protected void onError(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
target.add(getPageBase().getFeedbackPanel());
}
};
removeMailServerConfig.add(new AttributeAppender("class", new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
if (getModelObject() != null && getModelObject().getSelectedServer() != null) {
return null;
} else {
return " disabled";
}
}
}));
add(removeMailServerConfig);
}
use of org.apache.wicket.model.AbstractReadOnlyModel in project midpoint by Evolveum.
the class ObjectPolicyPanel method createObjectTemplateList.
protected IModel<List<ObjectTemplateConfigTypeReferenceDto>> createObjectTemplateList() {
return new AbstractReadOnlyModel<List<ObjectTemplateConfigTypeReferenceDto>>() {
@Override
public List<ObjectTemplateConfigTypeReferenceDto> getObject() {
List<PrismObject<ObjectTemplateType>> templateList = null;
List<ObjectTemplateConfigTypeReferenceDto> list = new ArrayList<>();
OperationResult result = new OperationResult(OPERATION_LOAD_ALL_OBJECT_TEMPLATES);
Task task = getPageBase().createSimpleTask(OPERATION_LOAD_ALL_OBJECT_TEMPLATES);
try {
templateList = getPageBase().getModelService().searchObjects(ObjectTemplateType.class, new ObjectQuery(), null, task, result);
result.recomputeStatus();
} catch (Exception e) {
result.recordFatalError("Could not get list of object templates", e);
LoggingUtils.logUnexpectedException(LOGGER, "Could not get list of object templates", e);
// TODO - show this error in GUI
}
if (templateList != null) {
ObjectTemplateType template;
for (PrismObject<ObjectTemplateType> obj : templateList) {
template = obj.asObjectable();
list.add(new ObjectTemplateConfigTypeReferenceDto(template.getOid(), WebComponentUtil.getName(template)));
}
}
return list;
}
};
}
use of org.apache.wicket.model.AbstractReadOnlyModel in project midpoint by Evolveum.
the class ProfilingConfigPanel method createAppendersListModel.
private IModel<List<String>> createAppendersListModel() {
return new AbstractReadOnlyModel<List<String>>() {
@Override
public List<String> getObject() {
List<String> list = new ArrayList<>();
ProfilingDto dto = getModel().getObject();
for (AppenderConfiguration appender : dto.getAppenders()) {
list.add(appender.getName());
}
return list;
}
};
}
use of org.apache.wicket.model.AbstractReadOnlyModel in project midpoint by Evolveum.
the class PageDebugList method initInlineMenu.
private List<InlineMenuItem> initInlineMenu() {
List<InlineMenuItem> headerMenuItems = new ArrayList<>();
headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportSelected"), true, new HeaderMenuAction(this) {
@Override
public void onSubmit(AjaxRequestTarget target, Form<?> form) {
exportSelected(target, null);
}
}));
headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportAllSelectedType"), true, new HeaderMenuAction(this) {
@Override
public void onSubmit(AjaxRequestTarget target, Form<?> form) {
exportAllType(target);
}
}));
headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportShadowsOnResource"), new Model(true), new AbstractReadOnlyModel<Boolean>() {
@Override
public Boolean getObject() {
DebugSearchDto dto = searchModel.getObject();
return ObjectTypes.SHADOW.equals(dto.getType());
}
}, false, new HeaderMenuAction(this) {
@Override
public void onClick(AjaxRequestTarget target) {
exportAllShadowsOnResource(target);
}
}));
headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportAll"), true, new HeaderMenuAction(this) {
@Override
public void onSubmit(AjaxRequestTarget target, Form<?> form) {
exportAll(target);
}
}));
headerMenuItems.add(new InlineMenuItem());
headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteSelected"), true, new HeaderMenuAction(this) {
@Override
public void onSubmit(AjaxRequestTarget target, Form<?> form) {
deleteSelected(target, null);
}
}));
headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteAllType"), true, new HeaderMenuAction(this) {
@Override
public void onSubmit(AjaxRequestTarget target, Form<?> form) {
deleteAllType(target);
}
}));
headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteShadowsOnResource"), new Model(true), new AbstractReadOnlyModel<Boolean>() {
@Override
public Boolean getObject() {
DebugSearchDto dto = searchModel.getObject();
return ObjectTypes.SHADOW.equals(dto.getType());
}
}, false, new HeaderMenuAction(this) {
@Override
public void onClick(AjaxRequestTarget target) {
deleteAllShadowsOnResource(target);
}
}));
headerMenuItems.add(new InlineMenuItem());
headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteAllIdentities"), true, new HeaderMenuAction(this) {
@Override
public void onSubmit(AjaxRequestTarget target, Form<?> form) {
deleteAllIdentities(target);
}
}));
return headerMenuItems;
}
Aggregations