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.server.TaskSummaryPanel.java

License:Apache License

@Override
protected IModel<String> getTitle2Model() {
    return new AbstractReadOnlyModel<String>() {
        @Override//  www . j  av  a  2 s  .c  om
        public String getObject() {
            if (parentPage.getTaskDto().isWorkflow()) {
                return getString("TaskSummaryPanel.requestedOn", WebComponentUtil.getLocalizedDate(
                        parentPage.getTaskDto().getRequestedOn(), DateLabelComponent.MEDIUM_MEDIUM_STYLE));
            } else {
                TaskType taskType = getModelObject();
                if (taskType.getOperationStats() != null
                        && taskType.getOperationStats().getIterativeTaskInformation() != null
                        && taskType.getOperationStats().getIterativeTaskInformation()
                                .getLastSuccessObjectName() != null) {
                    return createStringResource("TaskSummaryPanel.lastProcessed", taskType.getOperationStats()
                            .getIterativeTaskInformation().getLastSuccessObjectName()).getString();
                } else {
                    return "";
                }
            }
        }
    };
}

From source file:com.evolveum.midpoint.web.page.admin.server.TaskSummaryPanel.java

License:Apache License

@Override
protected IModel<String> getTitle3Model() {
    return new AbstractReadOnlyModel<String>() {
        @Override/*from   w w  w.j  a v  a 2s.  c  o m*/
        public String getObject() {
            if (parentPage.getTaskDto().isWorkflow()) {
                return "";
            }

            TaskType taskType = getModel().getObject();
            if (taskType == null) {
                return null;
            }
            long started = XmlTypeConverter.toMillis(taskType.getLastRunStartTimestamp());
            long finished = XmlTypeConverter.toMillis(taskType.getLastRunFinishTimestamp());
            if (started == 0) {
                return null;
            }
            if ((TaskExecutionStatus.RUNNABLE.equals(taskType.getExecutionStatus())
                    && taskType.getNodeAsObserved() != null) || finished == 0 || finished < started) {

                PatternDateConverter pdc = new PatternDateConverter(
                        WebComponentUtil.getLocalizedDatePattern(DateLabelComponent.SHORT_MEDIUM_STYLE), true);
                String date = pdc.convertToString(new Date(started), WebComponentUtil.getCurrentLocale());
                return getString("TaskStatePanel.message.executionTime.notFinished", date,
                        DurationFormatUtils.formatDurationHMS(System.currentTimeMillis() - started));
            } else {
                PatternDateConverter pdc = new PatternDateConverter(
                        WebComponentUtil.getLocalizedDatePattern(DateLabelComponent.SHORT_MEDIUM_STYLE), true);
                String startedDate = pdc.convertToString(new Date(started),
                        WebComponentUtil.getCurrentLocale());
                String finishedDate = pdc.convertToString(new Date(finished),
                        WebComponentUtil.getCurrentLocale());

                return getString("TaskStatePanel.message.executionTime.finished", startedDate, finishedDate,
                        DurationFormatUtils.formatDurationHMS(finished - started));
            }
        }
    };
}

From source file:com.evolveum.midpoint.web.page.admin.server.TaskWfParentPanel.java

License:Apache License

private void initLayout(final IModel<TaskDto> taskDtoModel) {
    final PropertyModel<List<ProcessInstanceDto>> requestsModel = new PropertyModel<>(taskDtoModel,
            TaskDto.F_WORKFLOW_REQUESTS);
    final ISortableDataProvider<ProcessInstanceDto, String> requestsProvider = new ListDataProvider<>(this,
            requestsModel);//from  www .  j  a va 2  s.  c  o  m
    processInstancesPanel = new ProcessInstancesPanel(ID_REQUESTS, requestsProvider, null, 10,
            ProcessInstancesPanel.View.TASKS_FOR_PROCESS, null);
    processInstancesPanel.setOutputMarkupId(true);
    add(processInstancesPanel);
    add(WebComponentUtil.createHelp(ID_REQUESTS_HELP));

    changesContainer = new WebMarkupContainer(ID_CHANGES_CONTAINER);
    for (int i = 1; i <= CHANGES_NUMBER; i++) {
        final int index = i;
        final String changesId = ID_CHANGES_PREFIX + i;
        final String changesContentId = changesId + ID_CHANGES_CONTENT_SUFFIX;
        final WebMarkupContainer changes = new WebMarkupContainer(changesId);
        final IModel<TaskChangesDto> changesModel = new AbstractReadOnlyModel<TaskChangesDto>() {
            @Override
            public TaskChangesDto getObject() {
                return taskDtoModel.getObject().getChangesForIndex(index);
            }
        };
        final TaskChangesPanel changesPanel = new TaskChangesPanel(changesContentId, changesModel);
        changes.add(changesPanel);
        changes.add(new VisibleEnableBehaviour() {
            @Override
            public boolean isVisible() {
                return changesModel.getObject() != null;
            }
        });
        changesContainer.add(changes);
    }
    changesContainer.setOutputMarkupId(true);
    add(changesContainer);
}

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

License:Apache License

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

    columns.add(new LinkColumn<AssignmentsPreviewDto>(
            createStringResource("AssignmentPreviewDialog.column.name"), AssignmentsPreviewDto.F_TARGET_NAME) {

        @Override/*from   w w  w .j  av a  2 s .c o m*/
        public void onClick(AjaxRequestTarget target, IModel<AssignmentsPreviewDto> rowModel) {
            AssignmentsPreviewDto dto = rowModel.getObject();
            chooseOperationPerformed(target, dto.getTargetOid(), dto.getTargetClass());
        }
    });

    columns.add(new IconColumn<AssignmentsPreviewDto>(createStringResource("")) {

        @Override
        protected IModel<String> createIconModel(IModel<AssignmentsPreviewDto> rowModel) {
            ObjectTypeGuiDescriptor guiDescriptor = ObjectTypeGuiDescriptor
                    .getDescriptor(rowModel.getObject().getTargetClass());
            String icon = guiDescriptor != null ? guiDescriptor.getIcon() : ObjectTypeGuiDescriptor.ERROR_ICON;
            return new Model<>(icon);
        }
    });

    columns.add(new AbstractColumn<AssignmentsPreviewDto, String>(createStringResource("Type")) {

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

                @Override
                public String getObject() {
                    return rowModel.getObject().isDirect()
                            ? createStringResource("AssignmentPreviewDialog.type.direct").getString()
                            : createStringResource("AssignmentPreviewDialog.type.indirect").getString();
                }
            }));
        }
    });

    columns.add(new PropertyColumn<AssignmentsPreviewDto, String>(
            createStringResource("AssignmentPreviewDialog.column.description"),
            AssignmentsPreviewDto.F_TARGET_DESCRIPTION));

    columns.add(new PropertyColumn<AssignmentsPreviewDto, String>(
            createStringResource("AssignmentPreviewDialog.column.tenant"),
            AssignmentsPreviewDto.F_TENANT_NAME));

    columns.add(new PropertyColumn<AssignmentsPreviewDto, String>(
            createStringResource("AssignmentPreviewDialog.column.orgRef"),
            AssignmentsPreviewDto.F_ORG_REF_NAME));

    columns.add(new PropertyColumn<AssignmentsPreviewDto, String>(
            createStringResource("AssignmentPreviewDialog.column.kind"), AssignmentsPreviewDto.F_KIND));

    columns.add(new PropertyColumn<AssignmentsPreviewDto, String>(
            createStringResource("AssignmentPreviewDialog.column.intent"), AssignmentsPreviewDto.F_INTENT));

    return columns;
}

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

License:Apache License

protected IModel<String> createTextModel(final IModel<PrismContainerValue<ShadowAssociationType>> model) {
    return new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = 1L;

        @Override//w w w .  j  a v a  2 s .  c  om
        public String getObject() {
            PrismContainerValue<ShadowAssociationType> cval = model.getObject();
            if (cval == null || cval.isEmpty()) {
                return "";
            }
            PrismReferenceValue shadowRef = cval.findReference(ShadowAssociationType.F_SHADOW_REF).getValue();
            if (shadowRef.getObject() == null) {
                PrismContainer<Containerable> identifiersContainer = cval
                        .findContainer(ShadowAssociationType.F_IDENTIFIERS);

                List<PrismProperty<String>> identifiers = (List) identifiersContainer.getValue().getItems();
                Collection<? extends RefinedAttributeDefinition<?>> secondaryIdentifierDefs = assocTargetDef
                        .getSecondaryIdentifiers();

                for (RefinedAttributeDefinition<?> secondaryIdentifierDef : secondaryIdentifierDefs) {
                    for (PrismProperty<String> identifier : identifiers) {
                        if (identifier.getElementName().equals(secondaryIdentifierDef.getName())) {
                            return identifier.getRealValue();
                        }
                    }
                }

                // fallback
                PrismProperty<String> identifierProp = identifiers.get(0);
                return identifierProp.getRealValue();

            } else {
                return shadowRef.getObject().getName().toString();
            }

        }
    };
}

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

License:Apache License

protected IModel<String> createTextModel(final IModel<PrismContainerValue<ShadowAssociationType>> model) {
    return new AbstractReadOnlyModel<String>() {

        @Override//from ww w .ja v  a  2  s. c  om
        public String getObject() {
            PrismContainerValue<ShadowAssociationType> cval = model.getObject();
            if (cval == null || cval.isEmpty()) {
                return "";
            }
            PrismReferenceValue shadowRef = cval.findReference(ShadowAssociationType.F_SHADOW_REF).getValue();
            if (shadowRef.getObject() == null) {
                ShadowIdentifiersType identifiers = cval.asContainerable().getIdentifiers();
                Element e = (Element) identifiers.getAny().get(0);
                return e.getTextContent();
            } else {
                return shadowRef.getObject().getName().toString();
            }

        }
    };
}

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

License:Apache License

@Override
protected IModel<?> newLabelModel(final IModel<OrgTreeDto> model) {
    return new AbstractReadOnlyModel<String>() {

        @Override/*w  ww. j  a v  a  2  s  . com*/
        public String getObject() {
            OrgTreeDto dto = model.getObject();
            if (StringUtils.isNotEmpty(dto.getDisplayName())) {
                return dto.getDisplayName();
            }
            return dto.getName();
        }
    };
}

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

License:Apache License

@Override
protected void initLayout() {
    add(new ConfirmationDialog(ID_CONFIRM_DELETE_POPUP,
            createStringResource("TreeTablePanel.dialog.title.confirmDelete"), createDeleteConfirmString()) {

        @Override/*from w w  w . j av a  2  s.  co  m*/
        public void yesPerformed(AjaxRequestTarget target) {
            close(target);

            switch (getConfirmType()) {
            case CONFIRM_DELETE:
                deleteConfirmedPerformed(target);
                break;
            case CONFIRM_DELETE_ROOT:
                deleteRootConfirmedPerformed(target);
                break;
            }

        }
    });

    add(new OrgUnitBrowser(ID_MOVE_POPUP) {

        @Override
        protected void createRootPerformed(AjaxRequestTarget target) {
            moveConfirmedPerformed(target, null, null, Operation.MOVE);
        }

        @Override
        protected void rowSelected(AjaxRequestTarget target, IModel<OrgTableDto> row, Operation operation) {
            moveConfirmedPerformed(target, selected.getObject(), row.getObject(), operation);
        }

        @Override
        public ObjectQuery createRootQuery() {
            ArrayList<String> oids = new ArrayList<String>();
            ObjectQuery query = new ObjectQuery();

            if (isMovingRoot() && getRootFromProvider() != null) {
                oids.add(getRootFromProvider().getOid());
            }

            //Selection from table, but only if we are not moving root
            if (!isMovingRoot()) {
                oids.remove(getRootFromProvider().getOid());

                List<OrgTableDto> objects = WebMiscUtil.getSelectedData(getTable());
                if (!objects.isEmpty()) {
                    for (OrgTableDto dto : objects) {
                        oids.add(dto.getOid());

                        //TODO - uncomment this, if parentOrgOid filtering is also required (see issue MID-1780)
                        //oids.addAll(getOrgParentOids(dto.getOid()));
                    }
                }
            }

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

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

            return query;
        }
    });

    add(new OrgUnitAddDeletePopup(ID_ADD_DELETE_POPUP) {

        @Override
        public void addPerformed(AjaxRequestTarget target, OrgType selected) {
            addOrgUnitToUserPerformed(target, selected);
        }

        @Override
        public void removePerformed(AjaxRequestTarget target, OrgType selected) {
            removeOrgUnitToUserPerformed(target, selected);
        }

        @Override
        public ObjectQuery getAddProviderQuery() {
            return null;
        }

        @Override
        public ObjectQuery getRemoveProviderQuery() {
            return null;
        }
    });

    WebMarkupContainer treeHeader = new WebMarkupContainer(ID_TREE_HEADER);
    treeHeader.setOutputMarkupId(true);
    add(treeHeader);

    InlineMenu treeMenu = new InlineMenu(ID_TREE_MENU, new Model((Serializable) createTreeMenu()));
    treeHeader.add(treeMenu);

    ISortableTreeProvider provider = new OrgTreeProvider(this, getModel());
    List<IColumn<OrgTreeDto, String>> columns = new ArrayList<IColumn<OrgTreeDto, String>>();
    columns.add(new TreeColumn<OrgTreeDto, String>(createStringResource("TreeTablePanel.hierarchy")));

    WebMarkupContainer treeContainer = new WebMarkupContainer(ID_TREE_CONTAINER) {

        @Override
        public void renderHead(IHeaderResponse response) {
            super.renderHead(response);

            //method computes height based on document.innerHeight() - screen height;
            response.render(OnDomReadyHeaderItem.forScript(
                    "updateHeight('" + getMarkupId() + "', ['#" + TreeTablePanel.this.get(ID_FORM).getMarkupId()
                            + "'], ['#" + TreeTablePanel.this.get(ID_TREE_HEADER).getMarkupId() + "'])"));
        }
    };
    add(treeContainer);

    TableTree<OrgTreeDto, String> tree = new TableTree<OrgTreeDto, String>(ID_TREE, columns, provider,
            Integer.MAX_VALUE, new TreeStateModel(provider)) {

        @Override
        protected Component newContentComponent(String id, IModel<OrgTreeDto> model) {
            return new SelectableFolderContent(id, this, model, selected) {

                @Override
                protected void onClick(AjaxRequestTarget target) {
                    super.onClick(target);

                    selectTreeItemPerformed(target);
                }
            };
        }

        @Override
        protected Item<OrgTreeDto> newRowItem(String id, int index, final IModel<OrgTreeDto> model) {
            Item item = super.newRowItem(id, index, model);
            item.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    OrgTreeDto itemObject = model.getObject();
                    if (itemObject != null && itemObject.equals(selected.getObject())) {
                        return "success";
                    }

                    return null;
                }
            }));
            return item;
        }
    };
    tree.getTable().add(AttributeModifier.replace("class", "table table-striped table-condensed"));
    tree.add(new WindowsTheme());
    //        tree.add(AttributeModifier.replace("class", "tree-midpoint"));
    treeContainer.add(tree);

    initTable();
    initSearch();
}

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

License:Apache License

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

        @Override/* ww  w . j  a  v  a  2  s . com*/
        public String getObject() {
            ConfirmationDialog dialog = (ConfirmationDialog) TreeTablePanel.this.get(ID_CONFIRM_DELETE_POPUP);
            switch (dialog.getConfirmType()) {
            case CONFIRM_DELETE:
                return createStringResource("TreeTablePanel.message.deleteObjectConfirm",
                        WebMiscUtil.getSelectedData(getTable()).size()).getString();
            case CONFIRM_DELETE_ROOT:
                OrgTreeDto dto = getRootFromProvider();

                return createStringResource("TreeTablePanel.message.deleteRootConfirm", dto.getName(),
                        dto.getDisplayName()).getString();
            }
            return null;
        }
    };
}

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

License:Apache License

private IModel<String> createTabTitle(final PrismObject<OrgType> org) {
    return new AbstractReadOnlyModel<String>() {

        @Override/*from   w  ww . j  a  v  a  2  s  .  c o m*/
        public String getObject() {
            PolyString displayName = org.getPropertyRealValue(OrgType.F_DISPLAY_NAME, PolyString.class);
            if (displayName != null) {
                return displayName.getOrig();
            }

            return WebMiscUtil.getName(org);
        }
    };
}