List of usage examples for org.apache.wicket.model AbstractReadOnlyModel AbstractReadOnlyModel
AbstractReadOnlyModel
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))); }