Skip to content

Commit

Permalink
fixing inducement creation - small clean up included :)
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Oct 24, 2017
1 parent bbdff10 commit d96da27
Show file tree
Hide file tree
Showing 14 changed files with 101 additions and 63 deletions.
Expand Up @@ -86,26 +86,30 @@ public class TypedAssignablePanel<T extends ObjectType> extends BasePanel<T> imp
private static final String OPERATION_LOAD_ASSIGNABLE_ROLES = DOT_CLASS + "loadAssignableRoles";

protected IModel<QName> typeModel;
private PageBase parentPage;

// private boolean multiselect = true;


public TypedAssignablePanel(String id, final Class<T> type, boolean multiselect, PageBase parentPage) {
public TypedAssignablePanel(String id, final Class<T> type) {
super(id);
this.parentPage = parentPage;
setParent(parentPage);
typeModel = new LoadableModel<QName>(false) {
typeModel = new LoadableModel<QName>(false) {

private static final long serialVersionUID = 1L;

@Override
protected QName load() {
return compileTimeClassToQName(type);
}

};

// this.multiselect = multiselect;

initLayout(type, multiselect);
}

private void initLayout(Class<T> type, final boolean multiselect) {
@Override
protected void onInitialize() {
super.onInitialize();
initAssignmentParametersPanel();

WebMarkupContainer tablesContainer = new WebMarkupContainer(ID_TABLES_CONTAINER);
Expand Down Expand Up @@ -146,10 +150,10 @@ public void onClick(AjaxRequestTarget target) {

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible() {
return multiselect;
}
// @Override
// public boolean isVisible() {
// return multiselect;
// }
});

add(addButton);
Expand Down Expand Up @@ -248,11 +252,11 @@ protected void onUpdateCheckbox(AjaxRequestTarget target) {
protected ObjectQuery addFilterToContentQuery(ObjectQuery query) {
if (type.equals(RoleType.COMPLEX_TYPE)) {
LOGGER.debug("Loading roles which the current user has right to assign");
Task task = getPageBase().createSimpleTask(OPERATION_LOAD_ASSIGNABLE_ROLES);
Task task = TypedAssignablePanel.this.getPageBase().createSimpleTask(OPERATION_LOAD_ASSIGNABLE_ROLES);
OperationResult result = task.getResult();
ObjectFilter filter = null;
try {
ModelInteractionService mis = parentPage.getModelInteractionService();
ModelInteractionService mis = TypedAssignablePanel.this.getPageBase().getModelInteractionService();
RoleSelectionSpecification roleSpec =
mis.getAssignableRoleSpecification(SecurityUtils.getPrincipalUser().getUser().asPrismObject(), task, result);
filter = roleSpec.getFilter();
Expand All @@ -263,7 +267,7 @@ protected ObjectQuery addFilterToContentQuery(ObjectQuery query) {
result.recomputeStatus();
}
if (!result.isSuccess() && !result.isHandledError()) {
parentPage.showResult(result);
TypedAssignablePanel.this.getPageBase().showResult(result);
}
if (query == null){
query = new ObjectQuery();
Expand Down Expand Up @@ -321,7 +325,7 @@ public int getHeight() {

@Override
public StringResourceModel getTitle() {
return getPageBase().createStringResource("TypedAssignablePanel.selectObjects");
return PageBase.createStringResourceStatic(TypedAssignablePanel.this, "TypedAssignablePanel.selectObjects");
}

@Override
Expand Down
Expand Up @@ -47,11 +47,8 @@ public abstract class AbstractAssignmentListPanel extends BasePanel<List<Assignm

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

protected PageBase pageBase;

public AbstractAssignmentListPanel(String id, IModel<List<AssignmentEditorDto>> assignmentsModel, PageBase pageBase){
public AbstractAssignmentListPanel(String id, IModel<List<AssignmentEditorDto>> assignmentsModel){
super(id, assignmentsModel);
this.pageBase = pageBase;
}

protected void deleteAssignmentPerformed(AjaxRequestTarget target, AssignmentEditorDto dto) {
Expand All @@ -68,7 +65,7 @@ protected void deleteAssignmentPerformed(AjaxRequestTarget target, AssignmentEdi
}

public Popupable getDeleteAssignmentPopupContent(AssignmentEditorDto dto) {
return new ConfirmationPanel(pageBase.getMainPopupBodyId(), new AbstractReadOnlyModel<String>() {
return new ConfirmationPanel(getPageBase().getMainPopupBodyId(), new AbstractReadOnlyModel<String>() {

private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -147,11 +144,11 @@ protected AssignmentEditorDto createAssignmentFromSelectedObjects(ObjectType obj
}
if (object instanceof UserType) {
AssignmentEditorDto dto = AssignmentEditorDto.createDtoAddFromSelectedObject(object,
SchemaConstants.ORG_DEPUTY, pageBase);
SchemaConstants.ORG_DEPUTY, getPageBase());
dto.getTargetRef().setRelation(relation);
return dto;
} else {
AssignmentEditorDto dto = AssignmentEditorDto.createDtoAddFromSelectedObject(object, pageBase);
AssignmentEditorDto dto = AssignmentEditorDto.createDtoAddFromSelectedObject(object, getPageBase());
dto.getTargetRef().setRelation(relation);
return dto;
}
Expand Down Expand Up @@ -200,7 +197,7 @@ protected List<AssignmentEditorDto> getSelectedAssignments() {

return selected;
}

protected String getNoAssignmentsSelectedMessage(){
return getString("AssignmentTablePanel.message.noAssignmentSelected");
}
Expand Down
Expand Up @@ -131,7 +131,7 @@ protected void showAllAssignments(AjaxRequestTarget target) {
@Override
protected void newAssignmentClickPerformed(AjaxRequestTarget target) {
TypedAssignablePanel<RoleType> panel = new TypedAssignablePanel<RoleType>(
getPageBase().getMainPopupBodyId(), RoleType.class, true, getPageBase()) {
getPageBase().getMainPopupBodyId(), RoleType.class) {

private static final long serialVersionUID = 1L;

Expand Down
Expand Up @@ -82,13 +82,16 @@ public class AssignmentDataTablePanel extends AbstractAssignmentListPanel {
private IModel<RelationTypes> relationModel = Model.of(RelationTypes.MEMBER);

public AssignmentDataTablePanel(String id, IModel<List<AssignmentEditorDto>> assignmentsModel, PageBase pageBase){
super(id, assignmentsModel, pageBase);
super(id, assignmentsModel);
initPaging();
initLayout();

}

private void initLayout(){
WebMarkupContainer assignmentsContainer = new WebMarkupContainer(ID_ASSIGNMENTS);
@Override
protected void onInitialize() {
super.onInitialize();

WebMarkupContainer assignmentsContainer = new WebMarkupContainer(ID_ASSIGNMENTS);
assignmentsContainer.setOutputMarkupId(true);
add(assignmentsContainer);

Expand All @@ -102,7 +105,7 @@ private void initLayout(){
@Override
public void onClick(AjaxRequestTarget target) {
TypedAssignablePanel panel = new TypedAssignablePanel(
getPageBase().getMainPopupBodyId(), RoleType.class, true, getPageBase()) {
getPageBase().getMainPopupBodyId(), RoleType.class) {
private static final long serialVersionUID = 1L;

@Override
Expand Down Expand Up @@ -133,7 +136,7 @@ protected void showAllAssignments(AjaxRequestTarget target) {

private void addSelectedAssignmentsPerformed(AjaxRequestTarget target, List<ObjectType> assignmentsList, QName relation){
if (assignmentsList == null || assignmentsList.isEmpty()){
warn(pageBase.getString("AssignmentTablePanel.message.noAssignmentSelected"));
warn(getPageBase().getString("AssignmentTablePanel.message.noAssignmentSelected"));
target.add(getPageBase().getFeedbackPanel());
return;
}
Expand Down Expand Up @@ -187,7 +190,7 @@ protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) {
};
BoxedTablePanel<AssignmentEditorDto> assignmentTable = new BoxedTablePanel<AssignmentEditorDto>(ID_ASSIGNMENTS_TABLE,
assignmentsProvider, initColumns(), UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE,
(int) pageBase.getItemsPerPage(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE)){
(int) getPageBase().getItemsPerPage(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE)){
private static final long serialVersionUID = 1L;

// @Override
Expand All @@ -198,7 +201,7 @@ assignmentsProvider, initColumns(), UserProfileStorage.TableId.ASSIGNMENTS_TAB_T

@Override
public int getItemsPerPage() {
return pageBase.getSessionStorage().getUserProfile().getTables().get(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE);
return getPageBase().getSessionStorage().getUserProfile().getTables().get(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE);
}

};
Expand Down Expand Up @@ -344,7 +347,7 @@ public void populateItem(Item<ICellPopulator<AssignmentEditorDto>> cellItem, Str
});

if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_ACTION_URI)) {
columns.add(new InlineMenuButtonColumn<AssignmentEditorDto>(getAssignmentMenuActions(), 1, pageBase));
columns.add(new InlineMenuButtonColumn<AssignmentEditorDto>(getAssignmentMenuActions(), 1, getPageBase()));
}
return columns;
}
Expand Down Expand Up @@ -442,10 +445,10 @@ protected void reloadMainAssignmentsComponent(AjaxRequestTarget target){
}

private AssignmentsTabStorage getAssignmentsStorage(){
return pageBase.getSessionStorage().getAssignmentsTabStorage();
return getPageBase().getSessionStorage().getAssignmentsTabStorage();
}

private void initPaging(){
getAssignmentsStorage().setPaging(ObjectPaging.createPaging(0, (int) pageBase.getItemsPerPage(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE)));
getAssignmentsStorage().setPaging(ObjectPaging.createPaging(0, (int) getPageBase().getItemsPerPage(UserProfileStorage.TableId.ASSIGNMENTS_TAB_TABLE)));
}
}
Expand Up @@ -94,15 +94,9 @@ public class AssignmentTablePanel<T extends ObjectType> extends AbstractAssignme
private static final String ID_LIST = "assignmentList";
protected static final String ID_ROW = "assignmentEditor";

public AssignmentTablePanel(String id, IModel<String> label,
IModel<List<AssignmentEditorDto>> assignmentModel) {
this(id, label, assignmentModel, null);
}

public AssignmentTablePanel(String id, IModel<String> label,
IModel<List<AssignmentEditorDto>> assignmentModel, PageBase pageBase) {
super(id, assignmentModel, pageBase);
initLayout(label);

public AssignmentTablePanel(String id, IModel<List<AssignmentEditorDto>> assignmentModel) {
super(id, assignmentModel);
}

public List<AssignmentType> getAssignmentTypeList() {
Expand All @@ -112,15 +106,22 @@ public List<AssignmentType> getAssignmentTypeList() {
public String getExcludeOid() {
return null;
}

public IModel<String> getLabel() {
return new Model<String>("label");
}



private void initLayout(IModel<String> labelText) {
@Override
protected void onInitialize() {
super.onInitialize();

final WebMarkupContainer assignments = new WebMarkupContainer(ID_ASSIGNMENTS);
assignments.setOutputMarkupId(true);
add(assignments);

Label label = new Label(ID_HEADER, labelText);
Label label = new Label(ID_HEADER, getLabel());
assignments.add(label);

InlineMenu assignmentMenu = new InlineMenu(ID_MENU, new Model((Serializable) createAssignmentMenu()));
Expand Down Expand Up @@ -172,7 +173,7 @@ public boolean isVisible(){
}

protected void populateAssignmentDetailsPanel(ListItem<AssignmentEditorDto> item){
AssignmentEditorPanel editor = new AssignmentEditorPanel(ID_ROW, item.getModel(), pageBase){
AssignmentEditorPanel editor = new AssignmentEditorPanel(ID_ROW, item.getModel()){
@Override
protected boolean ignoreMandatoryAttributes(){
return AssignmentTablePanel.this.ignoreMandatoryAttributes();
Expand Down Expand Up @@ -212,7 +213,7 @@ protected List<InlineMenuItem> createAssignmentMenu() {
@Override
public void onClick(AjaxRequestTarget target) {
TypedAssignablePanel panel = new TypedAssignablePanel(
getPageBase().getMainPopupBodyId(), RoleType.class, true, getPageBase()) {
getPageBase().getMainPopupBodyId(), RoleType.class) {
private static final long serialVersionUID = 1L;

@Override
Expand Down
Expand Up @@ -36,8 +36,12 @@ public class MainPopupDialog extends ModalWindow {

public MainPopupDialog(String id) {
super(id);

setCssClassName(ModalWindow.CSS_CLASS_GRAY);
}

@Override
protected void onInitialize() {
super.onInitialize();
setCssClassName(ModalWindow.CSS_CLASS_GRAY);
showUnloadConfirmation(false);
setResizable(false);
setInitialWidth(350);
Expand Down
Expand Up @@ -47,6 +47,7 @@
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import com.evolveum.midpoint.gui.api.component.MainObjectListPanel;
Expand Down Expand Up @@ -210,7 +211,7 @@ protected List<ITab> createTabs(final PageAdminObjectDetails<R> parentPage) {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new AssignmentTablePanel<R>(panelId, parentPage.createStringResource("FocusType.inducement"), inducementsModel, parentPage) {
return new AssignmentTablePanel<R>(panelId, inducementsModel) {
private static final long serialVersionUID = 1L;

@Override
Expand All @@ -222,6 +223,11 @@ public List<AssignmentType> getAssignmentTypeList() {
public String getExcludeOid() {
return getObject().getOid();
}

@Override
public IModel<String> getLabel() {
return parentPage.createStringResource("FocusType.inducement");
}

@Override
protected boolean ignoreMandatoryAttributes(){
Expand Down
Expand Up @@ -45,6 +45,7 @@
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.model.IModel;

import javax.xml.namespace.QName;
import java.util.ArrayList;
Expand Down Expand Up @@ -79,8 +80,7 @@ private void initLayout() {
delegations.setOutputMarkupId(true);
add(delegations);

AssignmentTablePanel panel = new AssignmentTablePanel<UserType>(ID_DELEGATIONS_PANEL, createStringResource("FocusType.delegations"),
delegationsModel, pageBase) {
AssignmentTablePanel panel = new AssignmentTablePanel<UserType>(ID_DELEGATIONS_PANEL, delegationsModel) {
private static final long serialVersionUID = 1L;

@Override
Expand All @@ -94,6 +94,10 @@ public void populateAssignmentDetailsPanel(ListItem<AssignmentEditorDto> item) {
public String getExcludeOid() {
return getObjectWrapper().getOid();
}

public IModel<String> getLabel() {
return createStringResource("FocusType.delegations");
};

@Override
protected List<InlineMenuItem> createAssignmentMenu() {
Expand Down
Expand Up @@ -23,6 +23,7 @@
import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.gui.api.util.ModelServiceLocator;
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.delta.builder.DeltaBuilder;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.query.AndFilter;
import com.evolveum.midpoint.prism.query.ObjectFilter;
Expand Down Expand Up @@ -152,8 +153,7 @@ public AssociationWrapper createAssociationWrapper(PrismObject<ResourceType> res

if (itemPath == null) {
itemPath = new ItemPath(ShadowType.F_ASSOCIATION);
}

}

ReferenceWrapper associationValueWrapper = new ReferenceWrapper(shadowValueWrapper, shadowAss, false, shadowAss.isEmpty() ? ValueStatus.ADDED : ValueStatus.NOT_CHANGED, itemPath);
associationValueWrapper.setDisplayName(refinedAssocationDefinition.getDisplayName());
Expand Down

0 comments on commit d96da27

Please sign in to comment.