Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Oct 3, 2017
2 parents 9d872c0 + 3bcf7cb commit 35c00d0
Show file tree
Hide file tree
Showing 37 changed files with 643 additions and 228 deletions.
2 changes: 1 addition & 1 deletion build-system/pom.xml
Expand Up @@ -1491,7 +1491,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<version>3.0.2</version>
<executions>
<execution>
<id>analyze</id>
Expand Down
2 changes: 1 addition & 1 deletion dist/pom.xml
Expand Up @@ -117,7 +117,7 @@
<descriptors>
<descriptor>src/main/assembly/dist.xml</descriptor>
</descriptors>
<finalName>midpoint-${version}</finalName>
<finalName>midpoint-${project.version}</finalName>
</configuration>
<executions>
<execution>
Expand Down
Expand Up @@ -20,6 +20,9 @@

import javax.xml.namespace.QName;

import com.evolveum.midpoint.prism.PrismContainer;
import com.evolveum.midpoint.prism.PrismContainerValue;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.web.component.prism.*;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.list.ListItem;
Expand Down Expand Up @@ -77,7 +80,7 @@ protected <C extends Containerable> void initLayout(){
@Override
public C getObject() {
AssignmentType assignment = getModelObject().getContainerValue().getValue();
if (AssignmentsUtil.isAssignableObject(assignment)) {
if (assignment.getTargetRef() != null) {
Task task = getPageBase().createSimpleTask("Load target");
com.evolveum.midpoint.schema.result.OperationResult result = task.getResult();
return (C) WebModelServiceUtils.loadObject(assignment.getTargetRef(), getPageBase(), task, result).asObjectable();
Expand All @@ -103,13 +106,17 @@ public C getObject() {

PageAdminObjectDetails<F> pageBase = (PageAdminObjectDetails<F>)getPageBase();

ItemPath assignmentPath = getAssignmentPath();
ItemPath assignmentPath = getModelObject().getPath();
// ContainerValueWrapperFromObjectWrapperModel<AssignmentType, F> assignmentModel =
// new ContainerValueWrapperFromObjectWrapperModel<AssignmentType, F>(pageBase.getObjectModel(), assignmentPath);

Form form = new Form<>("form");

ContainerValueWrapper<AssignmentType> containerWrapper = getModelObject();
if (containerWrapper == null){}

ContainerValuePanel<AssignmentType> assignmentPanel = new ContainerValuePanel("basic", getModel(), true, form, itemWrapper -> getAssignmentBasicTabVisibity(itemWrapper, assignmentPath), pageBase);
ContainerValuePanel<AssignmentType> assignmentPanel = new ContainerValuePanel("basic", getModel(), true, form,
itemWrapper -> getAssignmentBasicTabVisibity(itemWrapper, assignmentPath), pageBase);
add(assignmentPanel);


Expand Down Expand Up @@ -173,6 +180,4 @@ protected IModel<String> getAdditionalNameLabelStyleClass(){
return Model.of("");
}



}
Expand Up @@ -23,11 +23,10 @@
import javax.xml.namespace.QName;
import javax.xml.validation.Schema;

import com.evolveum.midpoint.prism.PrismContainerValue;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper;
import com.evolveum.midpoint.web.component.prism.ContainerWrapper;
import com.evolveum.midpoint.web.component.prism.ContainerWrapperFactory;
import com.evolveum.midpoint.web.component.prism.ValueStatus;
import com.evolveum.midpoint.web.component.prism.*;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
Expand Down Expand Up @@ -63,6 +62,7 @@
import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.web.session.UserProfileStorage.TableId;
import org.springframework.expression.spel.ast.Assign;

/**
* Created by honchar.
Expand All @@ -75,9 +75,8 @@ public class AbstractRoleAssignmentPanel extends AssignmentPanel {
private static final String ID_SHOW_ALL_ASSIGNMENTS_BUTTON = "showAllAssignmentsButton";


public AbstractRoleAssignmentPanel(String id, IModel<List<ContainerValueWrapper<AssignmentType>>> assignmentsModel,
ContainerWrapper assignmentContainerWrapper){
super(id, assignmentsModel, assignmentContainerWrapper);
public AbstractRoleAssignmentPanel(String id, IModel<ContainerWrapper<AssignmentType>> assignmentContainerWrapperModel){
super(id, assignmentContainerWrapperModel);
}

protected void initCustomLayout(WebMarkupContainer assignmentsContainer){
Expand Down Expand Up @@ -152,17 +151,28 @@ protected <T extends ObjectType> void addSelectedAssignmentsPerformed(AjaxReques
target.add(getPageBase().getFeedbackPanel());
return;
}
ContainerWrapperFactory factory = new ContainerWrapperFactory(getPageBase());
for (T object : assignmentsList){
try {
AssignmentType assignment = ObjectTypeUtil.createAssignmentTo(object.asPrismObject(), relation);
assignment.asPrismContainerValue().applyDefinition(assignmentContainerWrapper.getItem().getDefinition(), false);
ContainerValueWrapper<AssignmentType> newAssignmentContainerWrapper = assignmentContainerWrapper.createItem(false);
newAssignmentContainerWrapper.setStatus(ValueStatus.ADDED);
newAssignmentContainerWrapper.getContainerValue().getValue().setupContainerValue(assignment.asPrismContainerValue());
getModelObject().add(0, newAssignmentContainerWrapper);
} catch (SchemaException ex){
// ContainerWrapper<AssignmentType> newAssignmentContainer = factory.createContainerWrapper(object.asPrismContainerValue().getContainer(),
// ContainerStatus.ADDING, new ItemPath(FocusType.F_ASSIGNMENT));

}
ObjectReferenceType ort = new ObjectReferenceType();
ort.setOid(object.getOid());
ort.setRelation(SchemaConstants.ORG_DEFAULT);
ort.setType(WebComponentUtil.classToQName(getPageBase().getPrismContext(), object.getClass()));


PrismContainerValue<AssignmentType> newAssignment = getModelObject().getItem().createNewValue();
newAssignment.asContainerable().setTargetRef(ort);


// AssignmentType assignment = new AssignmentType();
// assignment.setTargetRef(ort);
// assignment.asPrismContainerValue().setParent(getModelObject().getItem());

ContainerValueWrapper<AssignmentType> valueWrapper = factory.createContainerValueWrapper(getModelObject(), newAssignment,
ValueStatus.ADDED, new ItemPath(FocusType.F_ASSIGNMENT));
getModelObject().getValues().add(valueWrapper);
}

refreshTable(target);
Expand Down
Expand Up @@ -337,7 +337,7 @@ public void onClick(AjaxRequestTarget target, IModel<AssignmentEditorDto> rowMod
@Override
public void populateItem(Item<ICellPopulator<AssignmentEditorDto>> cellItem, String componentId,
final IModel<AssignmentEditorDto> rowModel) {
IModel<String> activationLabelModel = AssignmentsUtil.createActivationTitleModel(rowModel,"", AssignmentDataTablePanel.this);
IModel<String> activationLabelModel = AssignmentsUtil.createActivationTitleModel(rowModel.getObject().getActivation(),"", AssignmentDataTablePanel.this);
cellItem.add(new Label(componentId, StringUtils.isEmpty(activationLabelModel.getObject()) ?
createStringResource("AssignmentEditorPanel.undefined") : activationLabelModel));
}
Expand Down
Expand Up @@ -267,7 +267,7 @@ public boolean isVisible() {
nameLabel.setOutputMarkupId(true);
name.add(nameLabel);

Label activation = new Label(ID_ACTIVATION, AssignmentsUtil.createActivationTitleModel(getModel(), "-", AssignmentEditorPanel.this));
Label activation = new Label(ID_ACTIVATION, AssignmentsUtil.createActivationTitleModel(getModel().getObject().getActivation(), "-", AssignmentEditorPanel.this));
headerRow.add(activation);

ToggleIconButton expandButton = new ToggleIconButton(ID_EXPAND, GuiStyleConstants.CLASS_ICON_EXPAND,
Expand Down
Expand Up @@ -24,11 +24,14 @@
import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper;
import com.evolveum.midpoint.web.component.prism.ContainerWrapper;
import com.evolveum.midpoint.web.component.prism.ValueStatus;
import com.evolveum.midpoint.web.component.util.Selectable;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.page.admin.workflow.dto.WorkItemDto;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand Down Expand Up @@ -72,7 +75,7 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TimeIntervalStatusType;

public abstract class AssignmentPanel extends BasePanel<List<ContainerValueWrapper<AssignmentType>>> {
public abstract class AssignmentPanel extends BasePanel<ContainerWrapper<AssignmentType>> {

private static final long serialVersionUID = 1L;

Expand All @@ -88,11 +91,9 @@ public abstract class AssignmentPanel extends BasePanel<List<ContainerValueWrapp
private final static String ID_CANCEL_BUTTON = "cancelButton";

protected boolean assignmentDetailsVisible;
protected ContainerWrapper assignmentContainerWrapper;

public AssignmentPanel(String id, IModel<List<ContainerValueWrapper<AssignmentType>>> assignmentsModel, ContainerWrapper assignmentContainerWrapper) {
super(id, assignmentsModel);
this.assignmentContainerWrapper = assignmentContainerWrapper;
public AssignmentPanel(String id, IModel<ContainerWrapper<AssignmentType>> assignmentContainerWrapperModel) {
super(id, assignmentContainerWrapperModel);
}

protected abstract void initPaging();
Expand Down Expand Up @@ -159,7 +160,7 @@ public boolean isVisible() {

private BoxedTablePanel<ContainerValueWrapper<AssignmentType>> initAssignmentTable() {

AssignmentListDataProvider assignmentsProvider = new AssignmentListDataProvider(this, getModel()) {
AssignmentListDataProvider assignmentsProvider = new AssignmentListDataProvider(this, new PropertyModel<>(getModel(), "values")) {
private static final long serialVersionUID = 1L;

@Override
Expand Down Expand Up @@ -192,8 +193,12 @@ public int getItemsPerPage() {
@Override
protected Item<ContainerValueWrapper<AssignmentType>> customizeNewRowItem(Item<ContainerValueWrapper<AssignmentType>> item,
IModel<ContainerValueWrapper<AssignmentType>> model) {
item.add(AttributeModifier.append("class",
AssignmentsUtil.createAssignmentStatusClassModel(Model.of(model.getObject().getContainerValue().asContainerable()))));
item.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
return AssignmentsUtil.createAssignmentStatusClassModel(model.getObject());
}
}));
return item;
}

Expand All @@ -216,6 +221,17 @@ protected List<IColumn<ContainerValueWrapper<AssignmentType>, String>> initBasic
columns.add(new CheckBoxHeaderColumn<ContainerValueWrapper<AssignmentType>>(){
private static final long serialVersionUID = 1L;

@Override
protected boolean isTableRowSelected(ContainerValueWrapper<AssignmentType> object){
return object.isSelected();
}

@Override
protected void onUpdateRow(AjaxRequestTarget target, DataTable table, IModel<ContainerValueWrapper<AssignmentType>> rowModel) {
super.onUpdateRow(target, table, rowModel);
rowModel.getObject().setSelected(!rowModel.getObject().isSelected());
};

@Override
protected IModel<Boolean> getCheckBoxValueModel(IModel<ContainerValueWrapper<AssignmentType>> rowModel) {
return Model.of(rowModel.getObject().isSelected());
Expand Down Expand Up @@ -247,11 +263,10 @@ public String getObject() {
@Override
protected IModel<String> createLinkModel(IModel<ContainerValueWrapper<AssignmentType>> rowModel) {
String name = AssignmentsUtil.getName(rowModel.getObject().getContainerValue().asContainerable(), getParentPage());
if (StringUtils.isBlank(name)) {
return createStringResource("AssignmentPanel.noName");
}
return Model.of(name);

if (StringUtils.isBlank(name)) {
return createStringResource("AssignmentPanel.noName");
}
return Model.of(name);
}

@Override
Expand All @@ -260,56 +275,16 @@ public void onClick(AjaxRequestTarget target, IModel<ContainerValueWrapper<Assig
}
});

columns.add(new LinkColumn<ContainerValueWrapper<AssignmentType>>(createStringResource("AssignmentType.activation")){
columns.add(new AbstractColumn<ContainerValueWrapper<AssignmentType>, String>(createStringResource("AssignmentType.activation")){
private static final long serialVersionUID = 1L;

@Override
protected IModel<String> createLinkModel(IModel<ContainerValueWrapper<AssignmentType>> rowModel) {
// return AssignmentsUtil.createActivationTitleModelExperimental(rowModel, AssignmentPanel.this);
return Model.of("");
}

@Override
public void onClick(AjaxRequestTarget target, IModel<ContainerValueWrapper<AssignmentType>> rowModel) {
// updateAssignmnetActivation(target, rowModel);
}
@Override
public void populateItem(Item<ICellPopulator<ContainerValueWrapper<AssignmentType>>> item, String componentId,
final IModel<ContainerValueWrapper<AssignmentType>> rowModel) {
item.add(new Label(componentId, AssignmentsUtil.createActivationTitleModel(rowModel.getObject().getContainerValue().getValue().getActivation(),
"", AssignmentPanel.this).getObject()));
}
});

// columns.add(new IconColumn<AssignmentDto>(Model.of("")){
// private static final long serialVersionUID = 1L;
//
// @Override
// protected IModel<String> createIconModel(IModel<AssignmentDto> rowModel) {
// if (AssignmentsUtil.getType(rowModel.getObject().getAssignment()) == null){
// return Model.of("");
// }
// return Model.of(AssignmentsUtil.getType(rowModel.getObject().getAssignment()).getIconCssClass());
// }
//
// @Override
// protected IModel<String> createTitleModel(IModel<AssignmentDto> rowModel) {
// return AssignmentsUtil.createAssignmentIconTitleModel(AbstractRoleAssignmentPanel.this, AssignmentsUtil.getType(rowModel.getObject().getAssignment()));
// }
//
// });
//
// columns.add(new IconColumn<AssignmentDto>(Model.of("")){
// private static final long serialVersionUID = 1L;
//
// @Override
// protected IModel<String> createIconModel(IModel<AssignmentDto> rowModel) {
// return Model.of(GuiStyleConstants.CLASS_POLICY_RULES);
// }
//
// @Override
// protected IModel<String> createTitleModel(IModel<AssignmentDto> rowModel) {
// return createStringResource("PolicyRulesPanel.imageTitle");
// }
//
// });



columns.addAll(initColumns());
return columns;
}
Expand Down Expand Up @@ -455,14 +430,14 @@ public void onClick(AjaxRequestTarget target) {

protected void assignmentDetailsPerformed(AjaxRequestTarget target, IModel<ContainerValueWrapper<AssignmentType>> rowModel) {
assignmentDetailsVisible = true;
getModelObject().forEach(a -> a.setSelected(false));
// getModelObject().forEach(a -> a.setSelected(false));
rowModel.getObject().setSelected(true);
target.add(AssignmentPanel.this);
}

protected void assignmentDetailsPerformed(AjaxRequestTarget target, List<ContainerValueWrapper<AssignmentType>> rowModel) {
assignmentDetailsVisible = true;
getModelObject().forEach(a -> a.setSelected(false));
// getModelObject().forEach(a -> a.setSelected(false));
rowModel.stream().forEach(a -> a.setSelected(true));
target.add(AssignmentPanel.this);
}
Expand All @@ -479,7 +454,7 @@ protected void deleteAssignmentPerformed(AjaxRequestTarget target, List<Containe
if (toDelete == null){
return;
}
for (ContainerValueWrapper<AssignmentType> assignmentContainerWrapper : getModelObject()){
for (ContainerValueWrapper<AssignmentType> assignmentContainerWrapper : getModelObject().getValues()){
if (toDelete.contains(assignmentContainerWrapper)){
assignmentContainerWrapper.setStatus(ValueStatus.DELETED);
}
Expand Down

0 comments on commit 35c00d0

Please sign in to comment.