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.component.prism.PrismPropertyPanel.java

License:Apache License

private IModel<String> createStyleClassModel(final IModel<ValueWrapper> value) {
    return new AbstractReadOnlyModel<String>() {

        @Override/*  w w  w.ja  v a2 s  .co m*/
        public String getObject() {
            if (getIndexOfValue(value.getObject()) > 0) {
                return "col-md-offset-4 prism-value";
            }

            return null;
        }
    };
}

From source file:com.evolveum.midpoint.web.component.prism.PrismPropertyPanel.java

License:Apache License

private IModel<String> createDisplayName(final IModel<PropertyWrapper> model) {
    return new AbstractReadOnlyModel<String>() {

        @Override/*from w ww. j  ava2 s.  c  o  m*/
        public String getObject() {
            PropertyWrapper wrapper = model.getObject();
            String displayName = wrapper.getDisplayName();
            return getString(displayName, null, displayName);
        }
    };
}

From source file:com.evolveum.midpoint.web.component.prism.PrismValuePanel.java

License:Apache License

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

        @Override//from www. j a va2 s .  co  m
        public String getObject() {
            PropertyWrapper wrapper = model.getObject().getProperty();
            return wrapper.getItem().getHelp();
        }
    };
}

From source file:com.evolveum.midpoint.web.component.prism.show.PagePreviewChanges.java

License:Apache License

public PagePreviewChanges(ModelContext<? extends ObjectType> modelContext,
        ModelInteractionService modelInteractionService) {
    final List<ObjectDelta<? extends ObjectType>> primaryDeltas = new ArrayList<>();
    final List<ObjectDelta<? extends ObjectType>> secondaryDeltas = new ArrayList<>();
    final List<? extends Scene> primaryScenes;
    final List<? extends Scene> secondaryScenes;
    try {/*  www  . j  ava2  s . c  om*/
        if (modelContext != null) {
            if (modelContext.getFocusContext() != null) {
                addIgnoreNull(primaryDeltas, modelContext.getFocusContext().getPrimaryDelta());
                addIgnoreNull(secondaryDeltas, modelContext.getFocusContext().getSecondaryDelta());
            }
            for (ModelProjectionContext projCtx : modelContext.getProjectionContexts()) {
                addIgnoreNull(primaryDeltas, projCtx.getPrimaryDelta());
                addIgnoreNull(secondaryDeltas, projCtx.getExecutableDelta());
            }
        }
        if (LOGGER.isTraceEnabled()) {
            LOGGER.trace("Primary deltas:\n{}", DebugUtil.debugDump(primaryDeltas));
            LOGGER.trace("Secondary deltas:\n{}", DebugUtil.debugDump(secondaryDeltas));
        }

        Task task = createSimpleTask("visualize");
        primaryScenes = modelInteractionService.visualizeDeltas(primaryDeltas, task, task.getResult());
        secondaryScenes = modelInteractionService.visualizeDeltas(secondaryDeltas, task, task.getResult());
    } catch (SchemaException e) {
        throw new SystemException(e); // TODO
    }
    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace("Creating context DTO for primary deltas:\n{}", DebugUtil.debugDump(primaryScenes));
        LOGGER.trace("Creating context DTO for secondary deltas:\n{}", DebugUtil.debugDump(secondaryScenes));
    }

    final WrapperScene primaryScene = new WrapperScene(primaryScenes,
            primaryScenes.size() != 1 ? "PagePreviewChanges.primaryChangesMore"
                    : "PagePreviewChanges.primaryChangesOne",
            primaryScenes.size());
    final WrapperScene secondaryScene = new WrapperScene(secondaryScenes,
            secondaryScenes.size() != 1 ? "PagePreviewChanges.secondaryChangesMore"
                    : "PagePreviewChanges.secondaryChangesOne",
            secondaryScenes.size());
    final SceneDto primarySceneDto = new SceneDto(primaryScene);
    final SceneDto secondarySceneDto = new SceneDto(secondaryScene);
    primaryDeltasModel = new AbstractReadOnlyModel<SceneDto>() {
        @Override
        public SceneDto getObject() {
            return primarySceneDto;
        }
    };
    secondaryDeltasModel = new AbstractReadOnlyModel<SceneDto>() {
        @Override
        public SceneDto getObject() {
            return secondarySceneDto;
        }
    };
    initLayout();
}

From source file:com.evolveum.midpoint.web.component.prism.show.SceneButtonPanel.java

License:Apache License

private void initLayout(final IModel<SceneDto> model) {
    AjaxLink<String> minimize = new AjaxLink<String>(ID_MINIMIZE_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override//from w w w .ja  v a  2s .  c o  m
        public void onClick(AjaxRequestTarget target) {
            minimizeOnClick(target);
        }
    };
    add(minimize);

    Label icon = new Label(ID_ICON);
    icon.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = 1L;

        @Override
        public String getObject() {
            SceneDto dto = model.getObject();
            if (dto.isMinimized()) {
                return GuiStyleConstants.CLASS_ICON_EXPAND;
            }

            return GuiStyleConstants.CLASS_ICON_COLLAPSE;
        }
    }));
    minimize.add(icon);

    icon.add(new AttributeAppender("title", new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = 1L;

        @Override
        public String getObject() {
            SceneDto dto = model.getObject();
            if (dto.isMinimized()) {
                return getString("prismOptionButtonPanel.maximize");
            }
            return getString("prismOptionButtonPanel.minimize");
        }
    }, ""));
}

From source file:com.evolveum.midpoint.web.component.prism.show.SceneItemLinePanel.java

License:Apache License

private void initLayout() {
    WebMarkupContainer nameCell = new WebMarkupContainer(ID_NAME_CONTAINER);
    nameCell.add(new AttributeModifier("rowspan",
            new PropertyModel<Integer>(getModel(), SceneItemLineDto.F_NUMBER_OF_LINES)));
    Label label = new Label("name", new AbstractReadOnlyModel<String>() {
        @Override/* w w  w .j  a v a2  s  .com*/
        public String getObject() {
            final SceneItemLineDto lineDto = getModel().getObject();
            if (lineDto == null || lineDto.getName() == null) {
                return null;
            }
            String key = lineDto.getName();
            return getLocalizer().getString(key, SceneItemLinePanel.this, key);
        }
    });
    nameCell.add(label);
    nameCell.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getModelObject().isFirst();
        }
    });
    add(nameCell);

    WebMarkupContainer oldValueCell = new WebMarkupContainer(ID_OLD_VALUE_CONTAINER);
    oldValueCell.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getModelObject().isDelta();
        }
    });
    SceneItemValuePanel sivp = new SceneItemValuePanel(ID_OLD_VALUE,
            new PropertyModel<SceneItemValue>(getModel(), SceneItemLineDto.F_OLD_VALUE));
    sivp.setRenderBodyOnly(true);
    oldValueCell.add(sivp);
    add(oldValueCell);

    WebMarkupContainer newValueCell = new WebMarkupContainer(ID_NEW_VALUE_CONTAINER);
    sivp = new SceneItemValuePanel(ID_NEW_VALUE,
            new PropertyModel<SceneItemValue>(getModel(), SceneItemLineDto.F_NEW_VALUE));
    sivp.setRenderBodyOnly(true);
    newValueCell.add(sivp);
    newValueCell.add(new AttributeModifier("colspan", new AbstractReadOnlyModel<Integer>() {
        @Override
        public Integer getObject() {
            return !getModelObject().isDelta() && getModelObject().isDeltaScene() ? 2 : 1;
        }
    }));
    newValueCell.add(new AttributeModifier("align", new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            return !getModelObject().isDelta() && getModelObject().isDeltaScene() ? "center" : null;
        }
    }));
    add(newValueCell);
}

From source file:com.evolveum.midpoint.web.component.prism.show.ScenePanel.java

License:Apache License

private void initLayout() {
    final IModel<SceneDto> model = getModel();

    WebMarkupContainer box = new WebMarkupContainer(ID_BOX);
    box.add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {

        @Override/*from   w ww. j  a va  2 s.  co m*/
        public String getObject() {
            SceneDto dto = model.getObject();

            if (dto.getBoxClassOverride() != null) {
                return dto.getBoxClassOverride();
            }

            if (dto.getChangeType() == null) {
                return null;
            }

            switch (dto.getChangeType()) {
            case ADD:
                return "box-success";
            case DELETE:
                return "box-danger";
            case MODIFY:
                return "box-info";
            default:
                return null;
            }
        }
    }));
    add(box);

    WebMarkupContainer headerPanel = new WebMarkupContainer(ID_HEADER_PANEL);
    box.add(headerPanel);

    headerPanel.add(new SceneButtonPanel(ID_OPTION_BUTTONS, model) {
        @Override
        public void minimizeOnClick(AjaxRequestTarget target) {
            headerOnClickPerformed(target, model);
        }
    });

    Label headerChangeType = new Label(ID_HEADER_CHANGE_TYPE, new ChangeTypeModel());
    //headerChangeType.setRenderBodyOnly(true);
    Label headerObjectType = new Label(ID_HEADER_OBJECT_TYPE, new ObjectTypeModel());
    //headerObjectType.setRenderBodyOnly(true);

    IModel<String> nameModel = new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            return model.getObject().getName(ScenePanel.this);
        }
    };
    Label headerNameLabel = new Label(ID_HEADER_NAME_LABEL, nameModel);
    LinkPanel headerNameLink = new LinkPanel(ID_HEADER_NAME_LINK, nameModel) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            PrismContainerValue<?> value = getModelObject().getScene().getSourceValue();
            if (value != null && value.getParent() instanceof PrismObject) {
                PrismObject<? extends ObjectType> object = (PrismObject<? extends ObjectType>) value
                        .getParent();
                WebComponentUtil.dispatchToObjectDetailsPage(ObjectTypeUtil.createObjectRef(object),
                        getPageBase(), false);
            }
        }
    };
    Label headerDescription = new Label(ID_HEADER_DESCRIPTION, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            return model.getObject().getDescription(ScenePanel.this);
        }
    });
    Label headerWrapperDisplayName = new Label(ID_HEADER_WRAPPER_DISPLAY_NAME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    String key = ((WrapperScene) getModelObject().getScene()).getDisplayNameKey();
                    Object[] parameters = ((WrapperScene) getModelObject().getScene())
                            .getDisplayNameParameters();
                    return new StringResourceModel(key, this).setModel(null).setDefaultValue(key)
                            .setParameters(parameters).getObject();
                }
            });

    headerPanel.add(headerChangeType);
    headerPanel.add(headerObjectType);
    headerPanel.add(headerNameLabel);
    headerPanel.add(headerNameLink);
    headerPanel.add(headerDescription);
    headerPanel.add(headerWrapperDisplayName);

    headerChangeType.add(createHeaderOnClickBehaviour(model));
    headerObjectType.add(createHeaderOnClickBehaviour(model));
    headerNameLabel.add(createHeaderOnClickBehaviour(model));
    headerDescription.add(createHeaderOnClickBehaviour(model));
    headerWrapperDisplayName.add(createHeaderOnClickBehaviour(model));

    VisibleEnableBehaviour visibleIfNotWrapper = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return !getModelObject().isWrapper();
        }
    };
    VisibleEnableBehaviour visibleIfWrapper = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getModelObject().isWrapper();
        }
    };
    VisibleEnableBehaviour visibleIfExistingObject = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            if (getModelObject().isWrapper()) {
                return false;
            }
            return isExistingViewableObject();
        }
    };
    VisibleEnableBehaviour visibleIfNotWrapperAndNotExistingObject = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            if (getModelObject().isWrapper()) {
                return false;
            }
            return !isExistingViewableObject();
        }
    };
    headerChangeType.add(visibleIfNotWrapper);
    headerObjectType.add(visibleIfNotWrapper);
    headerNameLabel.add(visibleIfNotWrapperAndNotExistingObject);
    headerNameLink.add(visibleIfExistingObject);
    headerDescription.add(visibleIfNotWrapper);
    headerWrapperDisplayName.add(visibleIfWrapper);

    WebMarkupContainer body = new WebMarkupContainer(ID_BODY);
    body.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isVisible() {
            SceneDto wrapper = model.getObject();
            return !wrapper.isMinimized();
        }
    });
    box.add(body);

    WebMarkupContainer itemsTable = new WebMarkupContainer(ID_ITEMS_TABLE);
    itemsTable.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return !model.getObject().getItems().isEmpty();
        }
    });
    WebMarkupContainer oldValueLabel = new WebMarkupContainer(ID_OLD_VALUE_LABEL);
    oldValueLabel.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return model.getObject().containsDeltaItems();
        }
    });
    itemsTable.add(oldValueLabel);
    WebMarkupContainer newValueLabel = new WebMarkupContainer(ID_NEW_VALUE_LABEL);
    newValueLabel.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return model.getObject().containsDeltaItems();
        }
    });
    itemsTable.add(newValueLabel);
    WebMarkupContainer valueLabel = new WebMarkupContainer(ID_VALUE_LABEL);
    valueLabel.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return !model.getObject().containsDeltaItems();
        }
    });
    itemsTable.add(valueLabel);
    ListView<SceneItemDto> items = new ListView<SceneItemDto>(ID_ITEMS,
            new PropertyModel<List<SceneItemDto>>(model, SceneDto.F_ITEMS)) {

        @Override
        protected void populateItem(ListItem<SceneItemDto> item) {
            SceneItemPanel panel = new SceneItemPanel(ID_ITEM, item.getModel());
            panel.setRenderBodyOnly(true);
            item.add(panel);
        }
    };
    items.setReuseItems(true);
    itemsTable.add(items);
    body.add(itemsTable);

    ListView<SceneDto> partialScenes = new ListView<SceneDto>(ID_PARTIAL_SCENES,
            new PropertyModel<List<SceneDto>>(model, SceneDto.F_PARTIAL_SCENES)) {

        @Override
        protected void populateItem(ListItem<SceneDto> item) {
            ScenePanel panel = new ScenePanel(ID_PARTIAL_SCENE, item.getModel());
            panel.setOutputMarkupPlaceholderTag(true);
            item.add(panel);
        }
    };
    partialScenes.setReuseItems(true);
    body.add(partialScenes);
}

From source file:com.evolveum.midpoint.web.component.prism.SimpleErrorPanel.java

License:Apache License

@Override
protected void initLayout() {

    Label icon = new Label(ID_ICON);
    add(icon);//from  w w w . java  2 s  .co m

    Label description = new Label(ID_DESCRIPTION, new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            return getDescription();
        }
    });
    add(description);

    AjaxLink link = new AjaxLink(ID_LINK) {

        @Override
        public void onClick(AjaxRequestTarget target) {
            onShowMorePerformed(target);
        }
    };
    add(link);

    Label showMore = new Label(ID_SHOW_MORE, new AbstractReadOnlyModel<String>() {

        @Override
        public String getObject() {
            return createStringResource("simpleErrorPanel.label.showMore").getString();
        }
    });
    link.add(showMore);
}

From source file:com.evolveum.midpoint.web.component.progress.ProgressPanel.java

License:Apache License

protected void initLayout() {
    contentsPanel = new WebMarkupContainer(ID_CONTENTS_PANEL);
    contentsPanel.setOutputMarkupId(true);
    add(contentsPanel);/* www.  j  a  v  a2 s . c  om*/

    ListView statusItemsListView = new ListView<ProgressReportActivityDto>(ID_ACTIVITIES,
            new AbstractReadOnlyModel<List<ProgressReportActivityDto>>() {
                @Override
                public List<ProgressReportActivityDto> getObject() {
                    ProgressDto progressDto = ProgressPanel.this.getModelObject();
                    return progressDto.getProgressReportActivities();
                }
            }) {
        protected void populateItem(final ListItem<ProgressReportActivityDto> item) {
            item.add(new Label(ID_ACTIVITY_DESCRIPTION, new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    ProgressReportActivityDto si = item.getModelObject();
                    if (si.getActivityType() == RESOURCE_OBJECT_OPERATION
                            && si.getResourceShadowDiscriminator() != null) {
                        ResourceShadowDiscriminator rsd = si.getResourceShadowDiscriminator();
                        return createStringResource(rsd.getKind()).getString() + " (" + rsd.getIntent()
                                + ") on " + si.getResourceName(); // TODO correct i18n
                    } else {
                        return createStringResource(si.getActivityType()).getString();
                    }
                }
            }));
            item.add(createImageLabel(ID_ACTIVITY_STATE, new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() {
                    OperationResultStatusType statusType = item.getModelObject().getStatus();
                    if (statusType == null) {
                        return null;
                    } else {
                        return OperationResultStatusIcon.parseOperationalResultStatus(statusType).getIcon();
                    }
                }
            }, new AbstractReadOnlyModel<String>() {

                @Override
                public String getObject() { // TODO why this does not work???
                    OperationResultStatusType statusType = item.getModelObject().getStatus(); // TODO i18n
                    if (statusType == null) {
                        return null;
                    } else {
                        return statusType.toString();
                    }
                }
            }));
            item.add(new Label(ID_ACTIVITY_COMMENT, new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    ProgressReportActivityDto si = item.getModelObject();
                    if (si.getResourceName() != null || si.getResourceOperationResultList() != null) {
                        StringBuilder sb = new StringBuilder();
                        boolean first = true;
                        if (si.getResourceOperationResultList() != null) {
                            for (ResourceOperationResult ror : si.getResourceOperationResultList()) {
                                if (!first) {
                                    sb.append(", ");
                                } else {
                                    first = false;
                                }
                                sb.append(
                                        createStringResource("ChangeType." + ror.getChangeType()).getString());
                                sb.append(":");
                                sb.append(createStringResource(ror.getResultStatus()).getString());
                            }
                        }
                        if (si.getResourceObjectName() != null) {
                            if (!first) {
                                sb.append(" -> ");
                            }
                            sb.append(si.getResourceObjectName());
                        }
                        return sb.toString();
                    } else {
                        return null;
                    }
                }
            }));
        }

        private Label createImageLabel(String id, IModel<String> cssClass, IModel<String> title) {
            Label label = new Label(id);
            label.add(AttributeModifier.replace("class", cssClass));
            label.add(AttributeModifier.replace("title", title)); // does not work, currently

            return label;
        }

    };
    contentsPanel.add(statusItemsListView);

    ListView logItemsListView = new ListView(ID_LOG_ITEMS, new AbstractReadOnlyModel<List>() {
        @Override
        public List getObject() {
            ProgressDto progressDto = ProgressPanel.this.getModelObject();
            return progressDto.getLogItems();
        }
    }) {
        protected void populateItem(ListItem item) {
            item.add(new Label(ID_LOG_ITEM, item.getModel()));
        }
    };
    contentsPanel.add(logItemsListView);

    Label executionTime = new Label(ID_EXECUTION_TIME, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            if (operationDurationTime > 0) {
                return createStringResource("ProgressPanel.ExecutionTimeWhenFinished", operationDurationTime)
                        .getString();
            } else if (operationStartTime > 0) {
                return createStringResource("ProgressPanel.ExecutionTimeWhenRunning",
                        (System.currentTimeMillis() - operationStartTime) / 1000).getString();
            } else {
                return null;
            }
        }
    });
    contentsPanel.add(executionTime);
}

From source file:com.evolveum.midpoint.web.component.refresh.AutoRefreshPanel.java

License:Apache License

private void initLayout(final Refreshable refreshable, boolean inSummaryPanel) {

    final LinkIconPanel refreshNow = new LinkIconPanel(ID_REFRESH_NOW, new Model("fa fa-refresh"),
            createStringResource("autoRefreshPanel.refreshNow")) {
        @Override/*  w w w. java 2  s .  c  o m*/
        protected void onClickPerformed(AjaxRequestTarget target) {
            refreshable.refresh(target);
        }
    };
    refreshNow.setRenderBodyOnly(true);
    add(refreshNow);

    final LinkIconPanel resumeRefreshing = new LinkIconPanel(ID_START, new Model("fa fa-play"),
            createStringResource("autoRefreshPanel.resumeRefreshing")) {
        @Override
        protected void onClickPerformed(AjaxRequestTarget target) {
            getModelObject().setEnabled(true);
            refreshable.refresh(target);
            startRefreshing(refreshable, target);
        }
    };
    resumeRefreshing.setRenderBodyOnly(true);
    resumeRefreshing.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return !getModelObject().isEnabled();
        }
    });
    add(resumeRefreshing);

    final LinkIconPanel pauseRefreshing = new LinkIconPanel(ID_PAUSE, new Model("fa fa-pause"),
            createStringResource("autoRefreshPanel.pauseRefreshing")) {
        @Override
        protected void onClickPerformed(AjaxRequestTarget target) {
            getModelObject().setEnabled(false);
            refreshable.refresh(target);
            stopRefreshing(refreshable, target);
        }
    };
    pauseRefreshing.setRenderBodyOnly(true);
    pauseRefreshing.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getModelObject().isEnabled();
        }
    });
    add(pauseRefreshing);

    final Label status = new Label(ID_STATUS, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            AutoRefreshDto dto = getModelObject();
            if (dto.isEnabled()) {
                return createStringResource("autoRefreshPanel.refreshingEach", dto.getInterval() / 1000)
                        .getString();
            } else {
                return createStringResource("autoRefreshPanel.noRefreshing").getString();
            }
        }
    });
    status.setRenderBodyOnly(true);
    add(status);

    if (inSummaryPanel) {
        add(new AttributeModifier("class", "summary-tag"));
    }
}