Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Mar 22, 2016
2 parents 5c64d2d + e3d2a5a commit 1d3d697
Show file tree
Hide file tree
Showing 8 changed files with 120 additions and 48 deletions.
Expand Up @@ -27,6 +27,7 @@
import javax.management.ObjectName;

import com.evolveum.midpoint.web.application.DescriptorLoader;
import com.evolveum.midpoint.web.component.breadcrumbs.BreadcrumbPageInstance;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AdminGuiConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RichHyperlinkType;
import org.apache.commons.lang.StringUtils;
Expand Down Expand Up @@ -283,6 +284,18 @@ public String getObject() {
getSessionStorage().pushBreadcrumb(bc);
}

protected void createInstanceBreadcrumb() {
BreadcrumbPageInstance bc = new BreadcrumbPageInstance(new AbstractReadOnlyModel() {

@Override
public String getObject() {
return getPageTitleModel().getObject();
}
}, this);

getSessionStorage().pushBreadcrumb(bc);
}

public PageBase() {
this(null);
}
Expand Down
Expand Up @@ -49,7 +49,12 @@
import com.evolveum.midpoint.web.page.PageDialog;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior;
import com.evolveum.midpoint.web.page.admin.resources.PageResource;
import com.evolveum.midpoint.web.page.admin.roles.PageRole;
import com.evolveum.midpoint.web.page.admin.users.PageOrgUnit;
import com.evolveum.midpoint.web.page.admin.users.PageUser;
import com.evolveum.midpoint.web.security.MidPointApplication;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;
import com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType;
Expand All @@ -69,6 +74,7 @@
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.visit.IVisit;
import org.apache.wicket.util.visit.IVisitor;

Expand Down Expand Up @@ -976,5 +982,25 @@ public static <T extends ObjectType> T getObjectFromReference(ObjectReferenceTyp
return (T) object;
}

public static void dispatchToObjectDetailsPage(ObjectReferenceType objectRef, PageBase page) {
if (objectRef == null) {
return; // should not occur
}
QName type = objectRef.getType();
PageParameters parameters = new PageParameters();
parameters.add(OnePageParameterEncoder.PARAMETER, objectRef.getOid());
if (RoleType.COMPLEX_TYPE.equals(type)) {
page.setResponsePage(new PageRole(parameters, page));
} else if (OrgType.COMPLEX_TYPE.equals(type)) {
page.setResponsePage(new PageOrgUnit(parameters, page));
} else if (UserType.COMPLEX_TYPE.equals(type)) {
page.setResponsePage(new PageUser(parameters, page));
} else if (ResourceType.COMPLEX_TYPE.equals(type)) {
page.setResponsePage(new PageResource(parameters, page));
} else {
// nothing to do
}
}


}
Expand Up @@ -17,13 +17,15 @@
package com.evolveum.midpoint.web.component.prism.show;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.model.api.visualizer.SceneItemValue;
import com.evolveum.midpoint.prism.PrismReferenceValue;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.web.component.data.column.ImagePanel;
import com.evolveum.midpoint.web.component.data.column.LinkPanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.util.ObjectTypeGuiDescriptor;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.AbstractReadOnlyModel;
Expand Down Expand Up @@ -74,8 +76,13 @@ public boolean isVisible() {
final LinkPanel<String> link = new LinkPanel<String>(ID_LINK, new LabelModel()) {
@Override
public void onClick(AjaxRequestTarget target) {
System.out.println("Clicked on " + getModelObject().getSourceValue());
super.onClick(target);
if (!(getModelObject().getSourceValue() instanceof PrismReferenceValue)) {
return;
}
PrismReferenceValue refValue = (PrismReferenceValue) getModelObject().getSourceValue();
ObjectReferenceType ort = new ObjectReferenceType();
ort.setupReferenceValue(refValue);
WebComponentUtil.dispatchToObjectDetailsPage(ort, getPageBase());
}
};
link.add(visibleIfReference);
Expand Down
Expand Up @@ -24,7 +24,7 @@ <h3 class="box-title" style="margin-right: 35px;">
<span wicket:id="changeType"/>
<span wicket:id="objectType"/>
<small>
<span wicket:id="name"/> <span wicket:id="description"/>
<span wicket:id="nameLabel"/><span wicket:id="nameLink"/> <span wicket:id="description"/>
<span wicket:id="wrapperDisplayName"/>
</small>
</h3>
Expand Down
Expand Up @@ -21,11 +21,16 @@
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.model.api.visualizer.Scene;
import com.evolveum.midpoint.prism.PrismContainerDefinition;
import com.evolveum.midpoint.prism.PrismContainerValue;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismObjectDefinition;
import com.evolveum.midpoint.prism.delta.ChangeType;
import com.evolveum.midpoint.schema.util.ObjectTypeUtil;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.data.column.LinkPanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand Down Expand Up @@ -56,7 +61,8 @@ public class ScenePanel extends BasePanel<SceneDto> {
public static final String ID_HEADER_PANEL = "headerPanel";
public static final String ID_HEADER_DESCRIPTION = "description";
public static final String ID_HEADER_WRAPPER_DISPLAY_NAME = "wrapperDisplayName";
public static final String ID_HEADER_NAME = "name";
public static final String ID_HEADER_NAME_LABEL = "nameLabel";
public static final String ID_HEADER_NAME_LINK = "nameLink";
public static final String ID_HEADER_CHANGE_TYPE = "changeType";
public static final String ID_HEADER_OBJECT_TYPE = "objectType";
public static final String ID_BODY = "body";
Expand Down Expand Up @@ -99,7 +105,19 @@ public void minimizeOnClick(AjaxRequestTarget target) {
headerChangeType.setRenderBodyOnly(true);
Label headerObjectType = new Label(ID_HEADER_OBJECT_TYPE, new ObjectTypeModel());
headerObjectType.setRenderBodyOnly(true);
Label headerName = new Label(ID_HEADER_NAME, new PropertyModel<String>(model, SceneDto.F_NAME));

PropertyModel<String> nameModel = new PropertyModel<>(model, SceneDto.F_NAME);
Label headerNameLabel = new Label(ID_HEADER_NAME_LABEL, nameModel);
LinkPanel<String> headerNameLink = new LinkPanel<String>(ID_HEADER_NAME_LINK, nameModel) {
@Override
public void onClick(AjaxRequestTarget target) {
PrismContainerValue<?> value = getModelObject().getScene().getSourceValue();
if (value != null && value.getParent() instanceof PrismObject) {
PrismObject<? extends ObjectType> object = (PrismObject<? extends ObjectType>) value.getParent();
WebComponentUtil.dispatchToObjectDetailsPage(ObjectTypeUtil.createObjectRef(object), getPageBase());
}
}
};
Label headerDescription = new Label(ID_HEADER_DESCRIPTION, new PropertyModel<String>(model, SceneDto.F_DESCRIPTION));
Label headerWrapperDisplayName = new Label(ID_HEADER_WRAPPER_DISPLAY_NAME,
new AbstractReadOnlyModel<String>() {
Expand All @@ -115,13 +133,14 @@ public String getObject() {

headerPanel.add(headerChangeType);
headerPanel.add(headerObjectType);
headerPanel.add(headerName);
headerPanel.add(headerNameLabel);
headerPanel.add(headerNameLink);
headerPanel.add(headerDescription);
headerPanel.add(headerWrapperDisplayName);

headerChangeType.add(createHeaderOnClickBehaviour(model));
headerObjectType.add(createHeaderOnClickBehaviour(model));
headerName.add(createHeaderOnClickBehaviour(model));
headerNameLabel.add(createHeaderOnClickBehaviour(model));
headerDescription.add(createHeaderOnClickBehaviour(model));
headerWrapperDisplayName.add(createHeaderOnClickBehaviour(model));

Expand All @@ -137,9 +156,28 @@ public boolean isVisible() {
return getModelObject().isWrapper();
}
};
VisibleEnableBehaviour visibleIfExistingObject = new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
if (getModelObject().isWrapper()) {
return false;
}
return isExistingObject();
}
};
VisibleEnableBehaviour visibleIfNotWrapperAndNotExistingObject = new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
if (getModelObject().isWrapper()) {
return false;
}
return !isExistingObject();
}
};
headerChangeType.add(visibleIfNotWrapper);
headerObjectType.add(visibleIfNotWrapper);
headerName.add(visibleIfNotWrapper);
headerNameLabel.add(visibleIfNotWrapperAndNotExistingObject);
headerNameLink.add(visibleIfExistingObject);
headerDescription.add(visibleIfNotWrapper);
headerWrapperDisplayName.add(visibleIfWrapper);

Expand Down Expand Up @@ -209,7 +247,16 @@ protected void populateItem(ListItem<SceneDto> item) {
body.add(partialScenes);
}

public void headerOnClickPerformed(AjaxRequestTarget target, IModel<SceneDto> model) {
protected boolean isExistingObject() {
final Scene scene = getModelObject().getScene();
final PrismContainerValue<?> value = scene.getSourceValue();
return value != null &&
value.getParent() instanceof PrismObject &&
((PrismObject) value.getParent()).getOid() != null &&
(scene.getSourceDelta() == null || !scene.getSourceDelta().isAdd());
}

public void headerOnClickPerformed(AjaxRequestTarget target, IModel<SceneDto> model) {
SceneDto dto = model.getObject();
dto.setMinimized(!dto.isMinimized());
target.add(this);
Expand Down
Expand Up @@ -24,7 +24,6 @@
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.web.page.admin.server.dto.OperationResultStatusIcon;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OperationResultStatusType;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Page;
import org.apache.wicket.ajax.AjaxRequestTarget;
Expand Down
Expand Up @@ -24,20 +24,9 @@
import com.evolveum.midpoint.web.page.admin.certification.dto.CertDecisionDto;
import com.evolveum.midpoint.web.page.admin.certification.handlers.CertGuiHandler;
import com.evolveum.midpoint.web.page.admin.certification.handlers.CertGuiHandlerRegistry;
import com.evolveum.midpoint.web.page.admin.resources.PageResource;
import com.evolveum.midpoint.web.page.admin.resources.PageResourceOld;
import com.evolveum.midpoint.web.page.admin.roles.PageRole;
import com.evolveum.midpoint.web.page.admin.users.PageOrgUnit;
import com.evolveum.midpoint.web.page.admin.users.PageUser;
import com.evolveum.midpoint.web.util.ObjectTypeGuiDescriptor;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.web.util.TooltipBehavior;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCaseType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
Expand All @@ -46,11 +35,12 @@
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;

import javax.xml.namespace.QName;
import java.io.Serializable;

import static com.evolveum.midpoint.gui.api.util.WebComponentUtil.dispatchToObjectDetailsPage;

/**
* Some common functionality used from PageCertCampaign and PageCertDecisions.
* TODO finish the refactoring
Expand Down Expand Up @@ -115,26 +105,6 @@ public void onClick(AjaxRequestTarget target, IModel<CertCaseOrDecisionDto> rowM
return column;
}

public void dispatchToObjectDetailsPage(ObjectReferenceType objectRef, PageBase page) {
if (objectRef == null) {
return; // should not occur
}
QName type = objectRef.getType();
PageParameters parameters = new PageParameters();
parameters.add(OnePageParameterEncoder.PARAMETER, objectRef.getOid());
if (RoleType.COMPLEX_TYPE.equals(type)) {
page.setResponsePage(new PageRole(parameters, page));
} else if (OrgType.COMPLEX_TYPE.equals(type)) {
page.setResponsePage(new PageOrgUnit(parameters, page));
} else if (UserType.COMPLEX_TYPE.equals(type)) {
page.setResponsePage(new PageUser(parameters, page));
} else if (ResourceType.COMPLEX_TYPE.equals(type)) {
page.setResponsePage(new PageResource(parameters, page));
} else {
// nothing to do
}
}

public IColumn createDetailedInfoColumn(final PageBase page) {
IColumn column;
column = new IconColumn<CertCaseOrDecisionDto>(page.createStringResource("")) {
Expand Down
Expand Up @@ -80,23 +80,25 @@ public class PageWorkItem extends PageAdminWorkItems {

private static final Trace LOGGER = TraceManager.getTrace(PageWorkItem.class);

private PageParameters parameters;

private LoadableModel<WorkItemDto> workItemDtoModel;

public PageWorkItem() {
this(new PageParameters(), null);
}

public PageWorkItem(PageParameters parameters) {
this(parameters, null);
}

public PageWorkItem(PageParameters parameters, PageBase previousPage) {
this(parameters, previousPage, false);
}

public PageWorkItem(PageParameters parameters, PageBase previousPage, boolean reinitializePreviousPage) {

this.parameters = parameters;
setPreviousPage(previousPage);
setReinitializePreviousPages(reinitializePreviousPage);
getPageParameters().overwriteWith(parameters); // TODO eliminate this hack

workItemDtoModel = new LoadableModel<WorkItemDto>(false) {
@Override
Expand All @@ -119,15 +121,23 @@ protected String load() {
};
}

private WorkItemDto loadWorkItemDtoIfNecessary() {
@Override
protected void createBreadcrumb() {
createInstanceBreadcrumb(); // to preserve page state (e.g. approver's comment)
}

private WorkItemDto loadWorkItemDtoIfNecessary() {
if (workItemDtoModel.isLoaded()) {
return workItemDtoModel.getObject();
}
Task task = createSimpleTask(OPERATION_LOAD_WORK_ITEM);
OperationResult result = task.getResult();
WorkItemDto workItemDto = null;
try {
String id = parameters.get(OnePageParameterEncoder.PARAMETER).toString();
String id = getPageParameters().get(OnePageParameterEncoder.PARAMETER).toString();
if (id == null) {
throw new IllegalStateException("Work item ID not specified.");
}
final ObjectQuery query = QueryBuilder.queryFor(WorkItemType.class, getPrismContext())
.item(F_WORK_ITEM_ID).eq(id)
.build();
Expand Down Expand Up @@ -342,7 +352,7 @@ private void releasePerformed(AjaxRequestTarget target) {

@Override
public PageBase reinitialize() {
return new PageWorkItem(parameters, getPreviousPage(), true);
return new PageWorkItem(getPageParameters(), getPreviousPage(), true);
}

}

0 comments on commit 1d3d697

Please sign in to comment.