Example usage for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel

List of usage examples for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel

Introduction

In this page you can find the example usage for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel.

Prototype

AbstractReadOnlyModel

Source Link

Usage

From source file:com.evolveum.midpoint.web.page.admin.users.PageOrgUnit.java

License:Apache License

private void initLayout() {
    Form form = new Form(ID_FORM);
    add(form);//from  w  ww . ja va  2 s.  c  o  m

    TextFormGroup name = new TextFormGroup(ID_NAME, new PrismPropertyModel(orgModel, OrgType.F_NAME),
            createStringResource("ObjectType.name"), ID_LABEL_SIZE, ID_INPUT_SIZE, true);
    form.add(name);
    TextFormGroup displayName = new TextFormGroup(ID_DISPLAY_NAME,
            new PrismPropertyModel(orgModel, OrgType.F_DISPLAY_NAME),
            createStringResource("OrgType.displayName"), ID_LABEL_SIZE, ID_INPUT_SIZE, true);
    form.add(displayName);

    TextAreaFormGroup description = new TextAreaFormGroup(ID_DESCRIPTION,
            new PrismPropertyModel(orgModel, OrgType.F_DESCRIPTION),
            createStringResource("ObjectType.description"), ID_LABEL_SIZE, ID_INPUT_SIZE);
    form.add(description);

    CheckFormGroup requestable = new CheckFormGroup(ID_REQUESTABLE,
            new PrismPropertyModel(orgModel, OrgType.F_REQUESTABLE),
            createStringResource("OrgType.requestable"), ID_LABEL_SIZE, ID_INPUT_SIZE);
    form.add(requestable);

    TextFormGroup identifier = new TextFormGroup(ID_IDENTIFIER,
            new PrismPropertyModel(orgModel, OrgType.F_IDENTIFIER), createStringResource("OrgType.identifier"),
            ID_LABEL_SIZE, ID_INPUT_SIZE, false);
    form.add(identifier);
    TextFormGroup costCenter = new TextFormGroup(ID_COST_CENTER,
            new PrismPropertyModel(orgModel, OrgType.F_COST_CENTER), createStringResource("OrgType.costCenter"),
            ID_LABEL_SIZE, ID_INPUT_SIZE, false);
    form.add(costCenter);
    TextFormGroup locality = new TextFormGroup(ID_LOCALITY,
            new PrismPropertyModel(orgModel, OrgType.F_LOCALITY), createStringResource("OrgType.locality"),
            ID_LABEL_SIZE, ID_INPUT_SIZE, false);
    form.add(locality);

    IModel choices = WebMiscUtil.createReadonlyModelFromEnum(ActivationStatusType.class);
    IChoiceRenderer renderer = new EnumChoiceRenderer();
    DropDownFormGroup administrativeStatus = new DropDownFormGroup(ID_ADMINISTRATIVE_STATUS,
            new PrismPropertyModel(orgModel,
                    new ItemPath(OrgType.F_ACTIVATION, ActivationType.F_ADMINISTRATIVE_STATUS)),
            choices, renderer, createStringResource("ActivationType.administrativeStatus"), ID_LABEL_SIZE,
            ID_INPUT_SIZE, false);
    form.add(administrativeStatus);

    DateFormGroup validFrom = new DateFormGroup(ID_VALID_FROM,
            new PrismPropertyModel(orgModel, new ItemPath(OrgType.F_ACTIVATION, ActivationType.F_VALID_FROM)),
            createStringResource("ActivationType.validFrom"), ID_LABEL_SIZE, ID_INPUT_SIZE, false);
    form.add(validFrom);

    DateFormGroup validTo = new DateFormGroup(ID_VALID_TO,
            new PrismPropertyModel(orgModel, new ItemPath(OrgType.F_ACTIVATION, ActivationType.F_VALID_TO)),
            createStringResource("ActivationType.validTo"), ID_LABEL_SIZE, ID_INPUT_SIZE, false);
    form.add(validTo);

    //todo not finished [lazyman]
    MultiValueTextFormGroup orgType = new MultiValueTextFormGroup(ID_ORG_TYPE, orgTypeModel,
            createStringResource("OrgType.orgType"), ID_LABEL_SIZE, ID_INPUT_SIZE, false) {

        @Override
        protected IModel<String> createTextModel(IModel model) {
            return new PropertyModel<String>(model, "value");
        }

        @Override
        protected Serializable createNewEmptyItem() {
            return new PrismPropertyValue(null, OriginType.USER_ACTION, null);
        }
    };
    form.add(orgType);

    MultiValueChoosePanel parentOrgType = new MultiValueChoosePanel(ID_PARENT_ORG_UNITS, parentOrgUnitsModel,
            createStringResource("ObjectType.parentOrgRef"), ID_LABEL_SIZE, ID_INPUT_SIZE, false,
            OrgType.class) {

        @Override
        protected IModel<String> createTextModel(final IModel model) {
            return new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    OrgType org = (OrgType) model.getObject();

                    return org == null ? null : WebMiscUtil.getOrigStringFromPoly(org.getName());
                }
            };
        }

        @Override
        protected Serializable createNewEmptyItem() {
            return new OrgType();
        }

        @Override
        protected ObjectQuery createChooseQuery() {
            ArrayList<String> oids = new ArrayList<String>();
            ObjectQuery query = new ObjectQuery();

            for (OrgType org : parentOrgUnitsModel.getObject()) {
                if (org != null) {
                    if (org.getOid() != null && !org.getOid().isEmpty()) {
                        oids.add(org.getOid());
                    }
                }
            }

            if (isEditing()) {
                oids.add(orgModel.getObject().asObjectable().getOid());
            }

            if (oids.isEmpty()) {
                return null;
            }

            ObjectFilter oidFilter = InOidFilter.createInOid(oids);
            query.setFilter(NotFilter.createNot(oidFilter));
            //query.setFilter(oidFilter);

            return query;
        }

        @Override
        protected void replaceIfEmpty(Object object) {

            boolean added = false;

            List<OrgType> parents = parentOrgUnitsModel.getObject();
            for (OrgType org : parents) {
                if (WebMiscUtil.getName(org) == null || WebMiscUtil.getName(org).isEmpty()) {
                    parents.remove(org);
                    parents.add((OrgType) object);
                    added = true;
                    break;
                }
            }

            if (!added) {
                parents.add((OrgType) object);
            }
        }
    };
    form.add(parentOrgType);

    AssignmentTablePanel assignments = new AssignmentTablePanel(ID_ASSIGNMENTS_TABLE,
            new Model<AssignmentTableDto>(), createStringResource("PageOrgUnit.title.assignments")) {

        @Override
        public List<AssignmentType> getAssignmentTypeList() {
            return orgModel.getObject().asObjectable().getAssignment();
        }

        @Override
        public String getExcludeOid() {
            return orgModel.getObject().asObjectable().getOid();
        }
    };
    form.add(assignments);

    AssignmentTablePanel inducements = new AssignmentTablePanel(ID_INDUCEMENTS_TABLE,
            new Model<AssignmentTableDto>(), createStringResource("PageOrgUnit.title.inducements")) {

        @Override
        public List<AssignmentType> getAssignmentTypeList() {
            return orgModel.getObject().asObjectable().getInducement();
        }

        @Override
        public String getExcludeOid() {
            return orgModel.getObject().asObjectable().getOid();
        }
    };
    form.add(inducements);

    initButtons(form);
}

From source file:com.evolveum.midpoint.web.page.admin.users.PageUser.java

License:Apache License

private void initSummaryInfo(Form mainForm) {

    WebMarkupContainer summaryContainer = new WebMarkupContainer(ID_SUMMARY_PANEL);
    summaryContainer.setOutputMarkupId(true);

    summaryContainer.add(new VisibleEnableBehaviour() {

        @Override/* w ww. j av a2 s  .  co  m*/
        public boolean isVisible() {
            if (getPageParameters().get(OnePageParameterEncoder.PARAMETER).isEmpty()) {
                return false;
            } else {
                return true;
            }
        }
    });

    mainForm.add(summaryContainer);

    summaryUser = new AbstractReadOnlyModel<PrismObject<UserType>>() {

        @Override
        public PrismObject<UserType> getObject() {
            ObjectWrapper user = userModel.getObject();
            return user.getObject();
        }
    };

    summaryContainer
            .add(new Label(ID_SUMMARY_NAME, new PrismPropertyModel<UserType>(summaryUser, UserType.F_NAME)));
    summaryContainer.add(new Label(ID_SUMMARY_FULL_NAME,
            new PrismPropertyModel<UserType>(summaryUser, UserType.F_FULL_NAME)));
    summaryContainer.add(new Label(ID_SUMMARY_GIVEN_NAME,
            new PrismPropertyModel<UserType>(summaryUser, UserType.F_GIVEN_NAME)));
    summaryContainer.add(new Label(ID_SUMMARY_FAMILY_NAME,
            new PrismPropertyModel<UserType>(summaryUser, UserType.F_FAMILY_NAME)));

    Image img = new Image(ID_SUMMARY_PHOTO, new AbstractReadOnlyModel<AbstractResource>() {

        @Override
        public AbstractResource getObject() {
            if (summaryUser.getObject().asObjectable().getJpegPhoto() != null) {
                return new ByteArrayResource("image/jpeg",
                        summaryUser.getObject().asObjectable().getJpegPhoto());
            } else {
                return new ContextRelativeResource("img/placeholder.png");
            }

        }
    });
    summaryContainer.add(img);
}

From source file:com.evolveum.midpoint.web.page.admin.users.PageUser.java

License:Apache License

private void initConfirmationDialogs() {
    ConfirmationDialog dialog = new ConfirmationDialog(MODAL_ID_CONFIRM_DELETE_ACCOUNT,
            createStringResource("pageUser.title.confirmDelete"), new AbstractReadOnlyModel<String>() {

                @Override/* w ww.  j  av a2s  .  co m*/
                public String getObject() {
                    return createStringResource("pageUser.message.deleteAccountConfirm",
                            getSelectedAccounts().size()).getString();
                }
            }) {

        @Override
        public void yesPerformed(AjaxRequestTarget target) {
            close(target);
            deleteAccountConfirmedPerformed(target, getSelectedAccounts());
        }
    };
    add(dialog);

    dialog = new ConfirmationDialog(MODAL_ID_CONFIRM_DELETE_ASSIGNMENT,
            createStringResource("pageUser.title.confirmDelete"), new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    return createStringResource("pageUser.message.deleteAssignmentConfirm",
                            getSelectedAssignments().size()).getString();
                }
            }) {

        @Override
        public void yesPerformed(AjaxRequestTarget target) {
            close(target);
            deleteAssignmentConfirmedPerformed(target, getSelectedAssignments());
        }
    };
    add(dialog);

    // TODO: uncoment later -> check for unsaved changes
    // dialog = new ConfirmationDialog(MODAL_ID_CONFIRM_CANCEL,
    // createStringResource("pageUser.title.confirmCancel"), new
    // AbstractReadOnlyModel<String>() {
    //
    // @Override
    // public String getObject() {
    // return createStringResource("pageUser.message.cancelConfirm",
    // getSelectedAssignments().size()).getString();
    // }
    // }) {
    //
    // @Override
    // public void yesPerformed(AjaxRequestTarget target) {
    // close(target);
    // setResponsePage(PageUsers.class);
    // // deleteAssignmentConfirmedPerformed(target,
    // getSelectedAssignments());
    // }
    // };
    // add(dialog);
}

From source file:com.evolveum.midpoint.web.page.admin.users.PageUsers.java

License:Apache License

private IModel<String> createDeleteConfirmString() {
    return new AbstractReadOnlyModel<String>() {

        @Override//from   w w w . j a v  a  2  s .  c o m
        public String getObject() {
            if (singleDelete == null) {
                return createStringResource("pageUsers.message.deleteUserConfirm",
                        WebMiscUtil.getSelectedData(getTable()).size()).getString();
            } else {
                return createStringResource("pageUsers.message.deleteUserConfirmSingle", singleDelete.getName())
                        .getString();
            }
        }
    };
}

From source file:com.evolveum.midpoint.web.page.admin.users.PageUsers.java

License:Apache License

private List<IColumn<UserListItemDto, String>> initColumns() {
    List<IColumn<UserListItemDto, String>> columns = new ArrayList<IColumn<UserListItemDto, String>>();

    columns.add(new CheckBoxHeaderColumn());
    columns.add(new IconColumn<UserListItemDto>(null) {

        @Override//from   w ww  . ja v  a 2  s  .  co m
        protected IModel<String> createIconModel(final IModel<UserListItemDto> rowModel) {
            return new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    return rowModel.getObject().getIcon();
                }
            };
        }

        @Override
        protected IModel<String> createTitleModel(final IModel<UserListItemDto> rowModel) {
            return new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    String key = rowModel.getObject().getIconTitle();
                    if (key == null) {
                        return null;
                    }
                    return createStringResource(key).getString();
                }
            };
        }
    });

    IColumn column = new LinkColumn<UserListItemDto>(createStringResource("ObjectType.name"),
            UserType.F_NAME.getLocalPart(), UserListItemDto.F_NAME) {

        @Override
        public void onClick(AjaxRequestTarget target, IModel<UserListItemDto> rowModel) {
            userDetailsPerformed(target, rowModel.getObject().getOid());
        }
    };
    columns.add(column);

    column = new PropertyColumn(createStringResource("UserType.givenName"),
            UserType.F_GIVEN_NAME.getLocalPart(), UserListItemDto.F_GIVEN_NAME);
    columns.add(column);

    column = new PropertyColumn(createStringResource("UserType.familyName"),
            UserType.F_FAMILY_NAME.getLocalPart(), UserListItemDto.F_FAMILY_NAME);
    columns.add(column);

    column = new PropertyColumn(createStringResource("UserType.fullName"), UserType.F_FULL_NAME.getLocalPart(),
            UserListItemDto.F_FULL_NAME);
    columns.add(column);

    column = new PropertyColumn(createStringResource("UserType.emailAddress"), null, UserListItemDto.F_EMAIL);
    columns.add(column);

    column = new PropertyColumn(createStringResource("pageUsers.accounts"), null,
            UserListItemDto.F_ACCOUNT_COUNT);
    columns.add(column);

    column = new InlineMenuHeaderColumn(initInlineMenu());
    columns.add(column);

    return columns;
}

From source file:com.evolveum.midpoint.web.page.admin.workflow.PageProcessInstances.java

License:Apache License

private List<IColumn<ProcessInstanceDto, String>> initColumns() {
    List<IColumn<ProcessInstanceDto, String>> columns = new ArrayList<IColumn<ProcessInstanceDto, String>>();

    IColumn column = new CheckBoxHeaderColumn<ProcessInstanceDto>();
    columns.add(column);//from w  w  w .ja va  2  s . c  om

    column = new LinkColumn<ProcessInstanceDto>(createStringResource("pageProcessInstances.item.name"),
            "name") {

        @Override
        public void onClick(AjaxRequestTarget target, IModel<ProcessInstanceDto> rowModel) {
            ProcessInstanceDto piDto = rowModel.getObject();
            itemDetailsPerformed(target, false, piDto.getProcessInstance().getProcessInstanceId());
        }
    };
    columns.add(column);

    columns.add(new AbstractColumn<ProcessInstanceDto, String>(
            createStringResource("pageProcessInstances.item.started")) {

        @Override
        public void populateItem(Item<ICellPopulator<ProcessInstanceDto>> item, String componentId,
                final IModel<ProcessInstanceDto> rowModel) {
            item.add(new Label(componentId, new AbstractReadOnlyModel<Object>() {

                @Override
                public Object getObject() {
                    ProcessInstanceDto pi = rowModel.getObject();
                    Date started = XmlTypeConverter.toDate(pi.getProcessInstance().getStartTimestamp());
                    if (started == null) {
                        return "?";
                    } else {
                        // todo i18n
                        return DurationFormatUtils.formatDurationWords(
                                System.currentTimeMillis() - started.getTime(), true, true) + " ago";
                    }
                }
            }));
        }
    });

    return columns;
}

From source file:com.evolveum.midpoint.web.page.admin.workflow.PageProcessInstances.java

License:Apache License

private List<IColumn<ProcessInstanceDto, String>> initFinishedColumns() {
    List<IColumn<ProcessInstanceDto, String>> columns = new ArrayList<IColumn<ProcessInstanceDto, String>>();

    IColumn column = new CheckBoxHeaderColumn<ProcessInstanceDto>();
    columns.add(column);/* w  w  w . j  ava  2s. c  o  m*/

    column = new LinkColumn<ProcessInstanceDto>(createStringResource("pageProcessInstances.item.name"),
            "name") {

        @Override
        public void onClick(AjaxRequestTarget target, IModel<ProcessInstanceDto> rowModel) {
            ProcessInstanceDto piDto = rowModel.getObject();
            itemDetailsPerformed(target, true, piDto.getProcessInstance().getProcessInstanceId());
        }
    };
    columns.add(column);

    columns.add(new AbstractColumn<ProcessInstanceDto, String>(
            createStringResource("pageProcessInstances.item.result")) {

        @Override
        public void populateItem(Item<ICellPopulator<ProcessInstanceDto>> item, String componentId,
                final IModel<ProcessInstanceDto> rowModel) {
            item.add(new Label(componentId, new AbstractReadOnlyModel<Object>() {

                @Override
                public Object getObject() {
                    ProcessInstanceDto pi = rowModel.getObject();
                    Boolean result = ApprovalUtils.approvalBooleanValue(pi.getAnswer());
                    if (result == null) {
                        return "";
                    } else {
                        return result ? "APPROVED" : "REJECTED"; // todo i18n
                    }
                }
            }));
        }
    });

    columns.add(new AbstractColumn<ProcessInstanceDto, String>(
            createStringResource("pageProcessInstances.item.started")) {

        @Override
        public void populateItem(Item<ICellPopulator<ProcessInstanceDto>> item, String componentId,
                final IModel<ProcessInstanceDto> rowModel) {
            item.add(new Label(componentId, new AbstractReadOnlyModel<Object>() {

                @Override
                public Object getObject() {
                    ProcessInstanceDto pi = rowModel.getObject();
                    Date started = XmlTypeConverter.toDate(pi.getProcessInstance().getStartTimestamp());
                    if (started == null) {
                        return "?";
                    } else {
                        return WebMiscUtil.formatDate(started);
                    }
                }
            }));
        }
    });

    columns.add(new AbstractColumn<ProcessInstanceDto, String>(
            createStringResource("pageProcessInstances.item.finished")) {

        @Override
        public void populateItem(Item<ICellPopulator<ProcessInstanceDto>> item, String componentId,
                final IModel<ProcessInstanceDto> rowModel) {
            item.add(new Label(componentId, new AbstractReadOnlyModel<Object>() {

                @Override
                public Object getObject() {
                    ProcessInstanceDto pi = rowModel.getObject();
                    Date finished = XmlTypeConverter.toDate(pi.getProcessInstance().getEndTimestamp());
                    if (finished == null) {
                        return getString("pageProcessInstances.notYet");
                    } else {
                        return WebMiscUtil.formatDate(finished);
                    }
                }
            }));
        }
    });

    return columns;
}

From source file:com.evolveum.midpoint.web.page.admin.workflow.PageWorkItem.java

License:Apache License

private void initLayout() {
    Form mainForm = new Form("mainForm");
    mainForm.setMultiPart(true);/*w ww.ja  v  a2s  .  c o  m*/
    add(mainForm);

    Label requestedBy = new Label("requestedBy", new PropertyModel(requesterModel, "object.asObjectable.name"));
    mainForm.add(requestedBy);

    Label requestedByFullName = new Label("requestedByFullName",
            new PropertyModel(requesterModel, "object.asObjectable.fullName"));
    mainForm.add(requestedByFullName);

    Label requestedOn = new Label("requestedOn", new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            ProcessInstanceDto dto = processInstanceDtoModel.getObject();
            if (dto.getProcessInstance().getStartTimestamp() == null) {
                return "";
            }
            return WebMiscUtil
                    .formatDate(XmlTypeConverter.toDate(dto.getProcessInstance().getStartTimestamp()));
        }

    });
    mainForm.add(requestedOn);

    Label workItemCreatedOn = new Label("workItemCreatedOn", new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            WorkItemDetailedDto dto = workItemDtoModel.getObject();
            if (dto.getWorkItem().getMetadata() == null
                    || dto.getWorkItem().getMetadata().getCreateTimestamp() == null) {
                return "";
            }
            return WebMiscUtil
                    .formatDate(XmlTypeConverter.toDate(dto.getWorkItem().getMetadata().getCreateTimestamp()));
        }

    });
    mainForm.add(workItemCreatedOn);

    Label assignee = new Label("assignee", new PropertyModel(workItemDtoModel, WorkItemDto.F_ASSIGNEE));
    mainForm.add(assignee);

    Label candidates = new Label("candidates", new PropertyModel(workItemDtoModel, WorkItemDto.F_CANDIDATES));
    mainForm.add(candidates);

    PrismObjectPanel requestSpecificForm = new PrismObjectPanel("requestSpecificForm", requestSpecificModel,
            new PackageResourceReference(ImgResources.class, ImgResources.DECISION_PRISM), mainForm) {

        @Override
        protected IModel<String> createDisplayName(IModel<ObjectWrapper> model) {
            return createStringResource("pageWorkItem.requestSpecific.description");
        }

        @Override
        protected IModel<String> createDescription(IModel<ObjectWrapper> model) {
            return new Model<>("");
        }
    };
    mainForm.add(requestSpecificForm);

    additionalInfoAccordion = new Accordion(ID_ACCORDION);
    additionalInfoAccordion.setOutputMarkupId(true);
    additionalInfoAccordion.setMultipleSelect(true);
    additionalInfoAccordion.setExpanded(false);
    mainForm.add(additionalInfoAccordion);

    PrismObjectPanel requesterForm = new PrismObjectPanel("requesterForm", requesterModel,
            new PackageResourceReference(ImgResources.class, ImgResources.USER_PRISM), mainForm);
    requesterForm.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return requesterModel != null && !requesterModel.getObject().getObject().isEmpty();
        }
    });
    mainForm.add(requesterForm);

    PrismObjectPanel objectOldForm = new PrismObjectPanel("objectOldForm", objectOldModel,
            new PackageResourceReference(ImgResources.class, ImgResources.USER_PRISM), mainForm);
    objectOldForm.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getGeneralChangeApprovalWorkItemContents() != null
                    && getGeneralChangeApprovalWorkItemContents().getObjectOld() != null;
        }
    });
    mainForm.add(objectOldForm);

    PrismObjectPanel objectNewForm = new PrismObjectPanel("objectNewForm", objectNewModel,
            new PackageResourceReference(ImgResources.class, ImgResources.USER_PRISM), mainForm);
    objectNewForm.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getGeneralChangeApprovalWorkItemContents() != null
                    && getGeneralChangeApprovalWorkItemContents().getObjectNew() != null;
        }
    });
    mainForm.add(objectNewForm);

    PrismObjectPanel additionalDataForm = new PrismObjectPanel("additionalDataForm", additionalDataModel,
            new PackageResourceReference(ImgResources.class, ImgResources.ROLE_PRISM), mainForm);
    mainForm.add(additionalDataForm);

    PrismObjectPanel trackingDataForm = new PrismObjectPanel("trackingDataForm", trackingDataModel,
            new PackageResourceReference(ImgResources.class, ImgResources.TRACKING_PRISM), mainForm) {

        @Override
        protected IModel<String> createDisplayName(IModel<ObjectWrapper> model) {
            return createStringResource("pageWorkItem.trackingData.description");
        }

        @Override
        protected IModel<String> createDescription(IModel<ObjectWrapper> model) {
            return new Model("");
        }
    };
    mainForm.add(trackingDataForm);

    AccordionItem deltaInfo = new AccordionItem(ID_DELTA_INFO, new ResourceModel("pageWorkItem.delta"));
    deltaInfo.setOutputMarkupId(true);
    additionalInfoAccordion.getBodyContainer().add(deltaInfo);

    DeltaPanel deltaPanel = new DeltaPanel(ID_DELTA_PANEL, deltaModel);
    deltaInfo.getBodyContainer().add(deltaPanel);

    additionalInfoAccordion.getBodyContainer()
            .add(createObjectAccordionItem(ID_REQUESTER_ACCORDION_INFO, ID_REQUESTER_PANEL,
                    "pageWorkItem.accordionLabel.requester",
                    new PropertyModel(workItemDtoModel, WorkItemDetailedDto.F_REQUESTER), true));
    additionalInfoAccordion.getBodyContainer()
            .add(createObjectAccordionItem(ID_OBJECT_OLD_ACCORDION_INFO, ID_OBJECT_OLD_PANEL,
                    "pageWorkItem.accordionLabel.objectOld",
                    new PropertyModel(workItemDtoModel, WorkItemDetailedDto.F_OBJECT_OLD), true));
    additionalInfoAccordion.getBodyContainer()
            .add(createObjectAccordionItem(ID_OBJECT_NEW_ACCORDION_INFO, ID_OBJECT_NEW_PANEL,
                    "pageWorkItem.accordionLabel.objectNew",
                    new PropertyModel(workItemDtoModel, WorkItemDetailedDto.F_OBJECT_NEW), true));
    additionalInfoAccordion.getBodyContainer()
            .add(createObjectAccordionItem(ID_ADDITIONAL_DATA_ACCORDION_INFO, ID_ADDITIONAL_DATA_PANEL,
                    "pageWorkItem.accordionLabel.additionalData",
                    new PropertyModel(workItemDtoModel, WorkItemDetailedDto.F_RELATED_OBJECT), true));

    LOGGER.trace("processInstanceDtoModel = {}, loaded = {}", processInstanceDtoModel,
            processInstanceDtoModel.isLoaded());
    ProcessInstanceDto processInstanceDto = processInstanceDtoModel.getObject();
    WfProcessInstanceType processInstance = processInstanceDto.getProcessInstance();
    additionalInfoAccordion.getBodyContainer()
            .add(createAccordionItem(ID_PROCESS_INSTANCE_ACCORDION_INFO,
                    "pageWorkItem.accordionLabel.processInstance",
                    new ProcessInstancePanel(ID_PROCESS_INSTANCE_PANEL, processInstanceDtoModel), true));
    initButtons(mainForm);
}

From source file:com.evolveum.midpoint.web.page.admin.workflow.PageWorkItems.java

License:Apache License

private List<IColumn<WorkItemDto, String>> initWorkItemColumns() {
    List<IColumn<WorkItemDto, String>> columns = new ArrayList<>();

    IColumn column = new CheckBoxHeaderColumn<TaskType>();
    columns.add(column);//w  w w .j  a va  2  s .c  om

    column = new LinkColumn<WorkItemDto>(createStringResource("pageWorkItems.item.name"), "name", "name") {

        @Override
        public void onClick(AjaxRequestTarget target, IModel<WorkItemDto> rowModel) {
            WorkItemDto workItemDto = rowModel.getObject();
            itemDetailsPerformed(target, workItemDto.getWorkItem().getWorkItemId());
        }
    };
    columns.add(column);

    columns.add(new AbstractColumn<WorkItemDto, String>(createStringResource("pageWorkItems.item.created")) {

        @Override
        public void populateItem(Item<ICellPopulator<WorkItemDto>> item, String componentId,
                final IModel<WorkItemDto> rowModel) {
            item.add(new Label(componentId, new AbstractReadOnlyModel<Object>() {

                @Override
                public Object getObject() {
                    WorkItemDto pi = rowModel.getObject();
                    Date started = XmlTypeConverter.toDate(pi.getWorkItem().getMetadata().getCreateTimestamp());
                    if (started == null) {
                        return "?";
                    } else {
                        return WebMiscUtil.formatDate(started);
                    }
                }
            }));
        }
    });

    if (!assigned) {
        columns.add(new PropertyColumn(createStringResource("pageWorkItems.item.candidates"),
                WorkItemDto.F_CANDIDATES));
    }

    return columns;
}

From source file:com.evolveum.midpoint.web.page.admin.workflow.WorkItemPanel.java

License:Apache License

protected void initLayout(PageBase pageBase) {
    WebMarkupContainer additionalInfoColumn = new WebMarkupContainer(ID_ADDITIONAL_INFO_COLUMN);

    WebMarkupContainer historyContainer = new WebMarkupContainer(ID_HISTORY_CONTAINER);
    historyContainer.add(new ItemApprovalHistoryPanel(ID_HISTORY,
            new PropertyModel<WfContextType>(getModel(), WorkItemDto.F_WORKFLOW_CONTEXT),
            UserProfileStorage.TableId.PAGE_WORK_ITEM_HISTORY_PANEL,
            (int) pageBase.getItemsPerPage(UserProfileStorage.TableId.PAGE_WORK_ITEM_HISTORY_PANEL)));
    final VisibleEnableBehaviour historyContainerVisible = new VisibleEnableBehaviour() {
        @Override//from   w w w  .  j ava  2  s  .c o m
        public boolean isVisible() {
            return getModelObject().hasHistory();
        }
    };
    historyContainer.add(historyContainerVisible);
    historyContainer.add(WebComponentUtil.createHelp(ID_HISTORY_HELP));
    additionalInfoColumn.add(historyContainer);

    WebMarkupContainer relatedWorkItemsContainer = new WebMarkupContainer(ID_RELATED_WORK_ITEMS_CONTAINER);
    final IModel<List<WorkItemDto>> relatedWorkItemsModel = new PropertyModel<>(getModel(),
            WorkItemDto.F_OTHER_WORK_ITEMS);
    final ISortableDataProvider<WorkItemDto, String> relatedWorkItemsProvider = new ListDataProvider<>(this,
            relatedWorkItemsModel);
    relatedWorkItemsContainer.add(new WorkItemsPanel(ID_RELATED_WORK_ITEMS, relatedWorkItemsProvider, null, 10,
            WorkItemsPanel.View.ITEMS_FOR_PROCESS));
    final VisibleEnableBehaviour relatedWorkItemsContainerVisible = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return !relatedWorkItemsModel.getObject().isEmpty();
        }
    };
    relatedWorkItemsContainer.add(relatedWorkItemsContainerVisible);
    relatedWorkItemsContainer.add(WebComponentUtil.createHelp(ID_RELATED_WORK_ITEMS_HELP));
    additionalInfoColumn.add(relatedWorkItemsContainer);

    final WebMarkupContainer relatedWorkflowRequestsContainer = new WebMarkupContainer(
            ID_RELATED_REQUESTS_CONTAINER);
    final IModel<List<ProcessInstanceDto>> relatedWorkflowRequestsModel = new PropertyModel<>(getModel(),
            WorkItemDto.F_RELATED_WORKFLOW_REQUESTS);
    final ISortableDataProvider<ProcessInstanceDto, String> relatedWorkflowRequestsProvider = new ListDataProvider<>(
            this, relatedWorkflowRequestsModel);
    relatedWorkflowRequestsContainer.add(new ProcessInstancesPanel(ID_RELATED_REQUESTS,
            relatedWorkflowRequestsProvider, null, 10, ProcessInstancesPanel.View.TASKS_FOR_PROCESS,
            new PropertyModel<String>(getModel(), WorkItemDto.F_PROCESS_INSTANCE_ID)));
    final VisibleEnableBehaviour relatedWorkflowRequestsContainerVisible = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return !relatedWorkflowRequestsModel.getObject().isEmpty();
        }
    };
    relatedWorkflowRequestsContainer.add(relatedWorkflowRequestsContainerVisible);
    relatedWorkflowRequestsContainer.add(WebComponentUtil.createHelp(ID_RELATED_REQUESTS_HELP));
    additionalInfoColumn.add(relatedWorkflowRequestsContainer);
    final VisibleEnableBehaviour additionalInfoColumnVisible = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return historyContainerVisible.isVisible() || relatedWorkItemsContainerVisible.isVisible()
                    || relatedWorkflowRequestsContainerVisible.isVisible();
        }
    };
    additionalInfoColumn.add(additionalInfoColumnVisible);
    add(additionalInfoColumn);

    WebMarkupContainer primaryInfoColumn = new WebMarkupContainer(ID_PRIMARY_INFO_COLUMN);

    primaryInfoColumn
            .add(new Label(ID_REQUESTED_BY, new PropertyModel(getModel(), WorkItemDto.F_REQUESTER_NAME)));
    primaryInfoColumn.add(new Label(ID_REQUESTED_BY_FULL_NAME,
            new PropertyModel(getModel(), WorkItemDto.F_REQUESTER_FULL_NAME)));
    primaryInfoColumn.add(
            new Label(ID_REQUESTED_ON, new PropertyModel(getModel(), WorkItemDto.F_STARTED_FORMATTED_FULL)));
    primaryInfoColumn.add(new Label(ID_WORK_ITEM_CREATED_ON,
            new PropertyModel(getModel(), WorkItemDto.F_CREATED_FORMATTED_FULL)));
    primaryInfoColumn.add(new Label(ID_ASSIGNEE, new PropertyModel(getModel(), WorkItemDto.F_ASSIGNEE)));
    primaryInfoColumn.add(new Label(ID_CANDIDATES, new PropertyModel(getModel(), WorkItemDto.F_CANDIDATES)));
    //primaryInfoColumn.add(new ScenePanel(ID_DELTAS_TO_BE_APPROVED, new PropertyModel<SceneDto>(getModel(), WorkItemDto.F_DELTAS)));
    primaryInfoColumn.add(new TaskChangesPanel(ID_DELTAS_TO_BE_APPROVED,
            new PropertyModel<TaskChangesDto>(getModel(), WorkItemDto.F_CHANGES)));
    primaryInfoColumn.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            return additionalInfoColumnVisible.isVisible() ? "col-md-5" : "col-md-12";
        }
    }));
    add(primaryInfoColumn);

    add(new AjaxFallbackLink(ID_SHOW_REQUEST) {
        public void onClick(AjaxRequestTarget target) {
            String oid = WorkItemPanel.this.getModelObject().getTaskOid();
            if (oid != null) {
                PageParameters parameters = new PageParameters();
                parameters.add(OnePageParameterEncoder.PARAMETER, oid);
                setResponsePage(PageTaskEdit.class, parameters);
            }
        }
    });
    add(WebComponentUtil.createHelp(ID_SHOW_REQUEST_HELP));

    add(new TextArea<>(ID_APPROVER_COMMENT,
            new PropertyModel<String>(getModel(), WorkItemDto.F_APPROVER_COMMENT)));
}