use of org.apache.wicket.model.PropertyModel in project midpoint by Evolveum.
the class ColumnUtils method createPropertyColumn.
private static <T> PropertyColumn<T, String> createPropertyColumn(String name, String sortableProperty, final String expression, final boolean multivalue) {
return new PropertyColumn<T, String>(createStringResource(name), sortableProperty, expression) {
private static final long serialVersionUID = 1L;
@Override
public void populateItem(Item item, String componentId, IModel rowModel) {
if (multivalue) {
IModel<List> values = new PropertyModel<List>(rowModel, expression);
RepeatingView repeater = new RepeatingView(componentId);
for (final Object task : values.getObject()) {
repeater.add(new Label(repeater.newChildId(), task.toString()));
}
item.add(repeater);
return;
}
super.populateItem(item, componentId, rowModel);
}
};
}
use of org.apache.wicket.model.PropertyModel in project midpoint by Evolveum.
the class PageAuditLogDetails method initEventPanel.
private void initEventPanel(WebMarkupContainer eventPanel) {
WebMarkupContainer eventDetailsPanel = new WebMarkupContainer(ID_EVENT_DETAILS_PANEL);
eventDetailsPanel.setOutputMarkupId(true);
eventPanel.addOrReplace(eventDetailsPanel);
final Label identifier = new Label(ID_PARAMETERS_EVENT_IDENTIFIER, new PropertyModel(recordModel, ID_PARAMETERS_EVENT_IDENTIFIER));
identifier.setOutputMarkupId(true);
eventDetailsPanel.add(identifier);
final Label timestamp = new Label(ID_PARAMETERS_TIMESTAMP, new PropertyModel(recordModel, ID_PARAMETERS_TIMESTAMP));
timestamp.setOutputMarkupId(true);
eventDetailsPanel.add(timestamp);
final Label sessionIdentifier = new Label(ID_PARAMETERS_SESSION_IDENTIFIER, new PropertyModel(recordModel, ID_PARAMETERS_SESSION_IDENTIFIER));
sessionIdentifier.setOutputMarkupId(true);
eventDetailsPanel.add(sessionIdentifier);
final Label taskIdentifier = new Label(ID_PARAMETERS_TASK_IDENTIFIER, new PropertyModel(recordModel, ID_PARAMETERS_TASK_IDENTIFIER));
taskIdentifier.setOutputMarkupId(true);
eventDetailsPanel.add(taskIdentifier);
final Label taskOID = new Label(ID_PARAMETERS_TASK_OID, new PropertyModel(recordModel, ID_PARAMETERS_TASK_OID));
taskOID.setOutputMarkupId(true);
eventDetailsPanel.add(taskOID);
final Label hostIdentifier = new Label(ID_PARAMETERS_HOST_IDENTIFIER, new PropertyModel(recordModel, ID_PARAMETERS_HOST_IDENTIFIER));
hostIdentifier.setOutputMarkupId(true);
eventDetailsPanel.add(hostIdentifier);
final Label nodeIdentifier = new Label(ID_PARAMETERS_NODE_IDENTIFIER, new PropertyModel(recordModel, ID_PARAMETERS_NODE_IDENTIFIER));
nodeIdentifier.setOutputMarkupId(true);
eventDetailsPanel.add(nodeIdentifier);
final Label remoteHostAddress = new Label(ID_PARAMETERS_REMOTE_HOST_ADDRESS, new PropertyModel(recordModel, ID_PARAMETERS_REMOTE_HOST_ADDRESS));
remoteHostAddress.setOutputMarkupId(true);
eventDetailsPanel.add(remoteHostAddress);
final Label initiatorRef = new Label(ID_PARAMETERS_EVENT_INITIATOR, new Model<>(WebModelServiceUtils.resolveReferenceName(recordModel.getObject().getInitiatorRef(), this, createSimpleTask(ID_PARAMETERS_EVENT_INITIATOR), new OperationResult(ID_PARAMETERS_EVENT_INITIATOR))));
initiatorRef.setOutputMarkupId(true);
eventDetailsPanel.add(initiatorRef);
final Label targetRef = new Label(ID_PARAMETERS_EVENT_TARGET, new Model<>(WebModelServiceUtils.resolveReferenceName(recordModel.getObject().getTargetRef(), this, createSimpleTask(ID_PARAMETERS_EVENT_TARGET), new OperationResult(ID_PARAMETERS_EVENT_TARGET))));
targetRef.setOutputMarkupId(true);
eventDetailsPanel.add(targetRef);
IModel<String> targetOwnerRefModel = new IModel<String>() {
@Override
public String getObject() {
return WebModelServiceUtils.resolveReferenceName(recordModel.getObject().getTargetOwnerRef(), PageAuditLogDetails.this, createSimpleTask(OPERATION_RESOLVE_REFERENCE_NAME), new OperationResult(OPERATION_RESOLVE_REFERENCE_NAME));
}
@Override
public void setObject(String s) {
}
@Override
public void detach() {
}
};
final Label targetOwnerRef = new Label(ID_PARAMETERS_EVENT_TARGET_OWNER, targetOwnerRefModel);
targetOwnerRef.setOutputMarkupId(true);
eventDetailsPanel.add(targetOwnerRef);
final Label eventType = new Label(ID_PARAMETERS_EVENT_TYPE, new PropertyModel(recordModel, ID_PARAMETERS_EVENT_TYPE));
eventType.setOutputMarkupId(true);
eventDetailsPanel.add(eventType);
final Label eventStage = new Label(ID_PARAMETERS_EVENT_STAGE, new PropertyModel(recordModel, ID_PARAMETERS_EVENT_STAGE));
eventStage.setOutputMarkupId(true);
eventDetailsPanel.add(eventStage);
final Label channel = new Label(ID_PARAMETERS_CHANNEL, new PropertyModel(recordModel, ID_PARAMETERS_CHANNEL));
channel.setOutputMarkupId(true);
eventDetailsPanel.add(channel);
final Label eventOutcome = new Label(ID_PARAMETERS_EVENT_OUTCOME, new PropertyModel(recordModel, ID_PARAMETERS_EVENT_OUTCOME));
eventOutcome.setOutputMarkupId(true);
eventDetailsPanel.add(eventOutcome);
final Label eventResult = new Label(ID_PARAMETERS_EVENT_RESULT, new PropertyModel(recordModel, ID_PARAMETERS_EVENT_RESULT));
eventResult.setOutputMarkupId(true);
eventDetailsPanel.add(eventResult);
final Label parameter = new Label(ID_PARAMETERS_PARAMETER, new PropertyModel(recordModel, ID_PARAMETERS_PARAMETER));
parameter.setOutputMarkupId(true);
eventDetailsPanel.add(parameter);
final Label message = new Label(ID_PARAMETERS_MESSAGE, new PropertyModel(recordModel, ID_PARAMETERS_MESSAGE));
message.setOutputMarkupId(true);
eventDetailsPanel.add(message);
ListView<AuditEventRecordItemValueDto> additionalItemsList = new ListView<AuditEventRecordItemValueDto>(ID_ADDITIONAL_ITEM_LINE, new AbstractReadOnlyModel<List<AuditEventRecordItemValueDto>>() {
@Override
public List<AuditEventRecordItemValueDto> getObject() {
List<AuditEventRecordItemValueDto> rv = new ArrayList<>();
for (AuditEventRecordItemType item : getSortedItems()) {
String currentName = getDisplayName(item.getName());
if (item instanceof AuditEventRecordPropertyType) {
for (String value : ((AuditEventRecordPropertyType) item).getValue()) {
rv.add(new AuditEventRecordItemValueDto(currentName, value));
currentName = null;
}
} else if (item instanceof AuditEventRecordReferenceType) {
for (AuditEventRecordReferenceValueType value : ((AuditEventRecordReferenceType) item).getValue()) {
rv.add(new AuditEventRecordItemValueDto(currentName, value.getTargetName() != null ? value.getTargetName().getOrig() : value.getOid()));
currentName = null;
}
} else {
// should not occur
}
}
return rv;
}
// TODO take locale into account when sorting
private List<AuditEventRecordItemType> getSortedItems() {
AuditEventRecordType record = recordModel.getObject();
List<AuditEventRecordItemType> rv = new ArrayList<>();
rv.addAll(record.getProperty());
rv.addAll(record.getReference());
rv.sort((a, b) -> {
// explicitly enumerated are shown first; others are sorted by display name
int index_a = EXTENSION_ITEMS_ORDER.indexOf(a.getName());
int index_b = EXTENSION_ITEMS_ORDER.indexOf(b.getName());
if (index_a != -1 && index_b != -1) {
return Integer.compare(index_a, index_b);
} else if (index_a != -1) {
return -1;
} else if (index_b != -1) {
return 1;
}
String name_a = getDisplayName(a.getName());
String name_b = getDisplayName(b.getName());
return String.CASE_INSENSITIVE_ORDER.compare(name_a, name_b);
});
return rv;
}
private String getDisplayName(String nameKey) {
// null should not occur so we don't try to be nice when displaying it
return nameKey != null ? createStringResource(nameKey).getString() : "(null)";
}
}) {
@Override
protected void populateItem(ListItem<AuditEventRecordItemValueDto> item) {
item.add(new Label(ID_ITEM_NAME, new PropertyModel<String>(item.getModel(), AuditEventRecordItemValueDto.F_NAME)));
item.add(new Label(ID_ITEM_VALUE, new PropertyModel<String>(item.getModel(), AuditEventRecordItemValueDto.F_VALUE)));
}
};
WebMarkupContainer additionalItemsContainer = new WebMarkupContainer(ID_ADDITIONAL_ITEMS);
additionalItemsContainer.add(additionalItemsList);
additionalItemsContainer.add(new VisibleBehaviour(() -> !additionalItemsList.getModelObject().isEmpty()));
eventDetailsPanel.add(additionalItemsContainer);
}
use of org.apache.wicket.model.PropertyModel in project midpoint by Evolveum.
the class ObjectDeltaOperationPanel method initLayout.
private void initLayout() {
// ObjectDeltaType od = getModel().getObjectDelta();
WebMarkupContainer objectDeltaOperationMarkup = new WebMarkupContainer(ID_OBJECT_DELTA_OPERATION_MARKUP);
objectDeltaOperationMarkup.setOutputMarkupId(true);
objectDeltaOperationMarkup.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
return getBoxCssClass();
}
}));
add(objectDeltaOperationMarkup);
Label executionResult = new Label(ID_PARAMETERS_EXECUTION_RESULT, new PropertyModel(getModel(), "executionResult.status"));
executionResult.setOutputMarkupId(true);
objectDeltaOperationMarkup.add(executionResult);
Label resourceName = new Label(ID_PARAMETERS_RESOURCE_NAME, new PropertyModel(getModel(), ObjectDeltaOperationType.F_RESOURCE_NAME.getLocalPart()));
resourceName.setOutputMarkupId(true);
objectDeltaOperationMarkup.add(resourceName);
Label objectName = new Label(ID_PARAMETERS_OBJECT_NAME, new PropertyModel(getModel(), ObjectDeltaOperationType.F_OBJECT_NAME.getLocalPart()));
objectName.setOutputMarkupId(true);
objectDeltaOperationMarkup.add(objectName);
final SceneDto sceneDto;
try {
sceneDto = loadSceneForDelta();
} catch (SchemaException | ExpressionEvaluationException e) {
OperationResult result = new OperationResult(ObjectDeltaOperationPanel.class.getName() + ".loadSceneForDelta");
result.recordFatalError("Couldn't fetch or visualize the delta: " + e.getMessage(), e);
parentPage.showResult(result);
throw parentPage.redirectBackViaRestartResponseException();
}
IModel<SceneDto> deltaModel = new AbstractReadOnlyModel<SceneDto>() {
private static final long serialVersionUID = 1L;
public SceneDto getObject() {
return sceneDto;
}
};
ScenePanel deltaPanel = new ScenePanel(ID_DELTA_PANEL, deltaModel) {
@Override
public void headerOnClickPerformed(AjaxRequestTarget target, IModel<SceneDto> model) {
super.headerOnClickPerformed(target, model);
// model.getObject().setMinimized(!model.getObject().isMinimized());
target.add(ObjectDeltaOperationPanel.this);
}
};
deltaPanel.setOutputMarkupId(true);
objectDeltaOperationMarkup.add(deltaPanel);
}
use of org.apache.wicket.model.PropertyModel in project midpoint by Evolveum.
the class OperationResultPanel method initParams.
private void initParams(WebMarkupContainer operationContent, final IModel<OpResult> model, Page parentPage) {
Label paramsLabel = new Label("paramsLabel", parentPage.getString("FeedbackAlertMessageDetails.params"));
paramsLabel.setOutputMarkupId(true);
paramsLabel.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return CollectionUtils.isNotEmpty(model.getObject().getParams());
}
});
operationContent.add(paramsLabel);
ListView<Param> params = new ListView<Param>(ID_PARAMS, createParamsModel(model)) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<Param> item) {
item.add(new Label("paramName", new PropertyModel<Object>(item.getModel(), "name")));
item.add(new Label("paramValue", new PropertyModel<Object>(item.getModel(), "value")));
}
};
params.setOutputMarkupId(true);
params.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return CollectionUtils.isNotEmpty(model.getObject().getParams());
}
});
operationContent.add(params);
ListView<OpResult> subresults = new ListView<OpResult>("subresults", createSubresultsModel(model)) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(final ListItem<OpResult> item) {
Panel subresult = new OperationResultPanel("subresult", item.getModel(), getPage());
subresult.setOutputMarkupId(true);
item.add(subresult);
}
};
subresults.setOutputMarkupId(true);
subresults.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return CollectionUtils.isNotEmpty(model.getObject().getSubresults());
}
});
operationContent.add(subresults);
}
use of org.apache.wicket.model.PropertyModel in project midpoint by Evolveum.
the class OperationResultPanel method initContexts.
private void initContexts(WebMarkupContainer operationContent, final IModel<OpResult> model, Page parentPage) {
Label contextsLabel = new Label("contextsLabel", parentPage.getString("FeedbackAlertMessageDetails.contexts"));
contextsLabel.setOutputMarkupId(true);
contextsLabel.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return CollectionUtils.isNotEmpty(model.getObject().getContexts());
}
});
operationContent.add(contextsLabel);
ListView<Context> contexts = new ListView<Context>("contexts", createContextsModel(model)) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<Context> item) {
item.add(new Label("contextName", new PropertyModel<Object>(item.getModel(), "name")));
item.add(new Label("contextValue", new PropertyModel<Object>(item.getModel(), "value")));
}
};
contexts.setOutputMarkupId(true);
contexts.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return CollectionUtils.isNotEmpty(model.getObject().getContexts());
}
});
operationContent.add(contexts);
}
Aggregations