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.resources.ResourceContentPanel.java

License:Apache License

private IModel<String> createDeleteConfirmString(final ShadowType selected, final String oneDeleteKey,
        final String moreDeleteKey) {
    return new AbstractReadOnlyModel<String>() {

        @Override/* ww w  . j av  a  2 s.  co  m*/
        public String getObject() {
            List<ShadowType> selectedShadow = getSelectedShadowsList(selected);
            switch (selectedShadow.size()) {
            case 1:
                Object first = selectedShadow.get(0);
                String name = WebComponentUtil.getName(((ShadowType) first));
                return getPageBase().createStringResource(oneDeleteKey, name).getString();
            default:
                return getPageBase().createStringResource(moreDeleteKey, selectedShadow.size()).getString();
            }
        }
    };
}

From source file:com.evolveum.midpoint.web.page.admin.resources.ResourceContentTabPanel.java

License:Apache License

private void initLayout(final IModel<PrismObject<ResourceType>> model, final PageBase parentPage) {
    setOutputMarkupId(true);//from w  ww .j a  va  2 s  .  c o m

    final Form mainForm = new Form(ID_MAIN_FORM);
    mainForm.setOutputMarkupId(true);
    mainForm.addOrReplace(initTable(model));
    add(mainForm);

    AutoCompleteTextPanel<String> intent = new AutoCompleteTextPanel<String>(ID_INTENT,
            new PropertyModel<String>(resourceContentSearch, "intent"), String.class) {
        private static final long serialVersionUID = 1L;

        @Override
        public Iterator<String> getIterator(String input) {
            RefinedResourceSchema refinedSchema = null;
            try {
                refinedSchema = RefinedResourceSchema.getRefinedSchema(model.getObject(),
                        parentPage.getPrismContext());

            } catch (SchemaException e) {
                return new ArrayList<String>().iterator();
            }
            return RefinedResourceSchema.getIntentsForKind(refinedSchema, getKind()).iterator();

        }

    };
    intent.getBaseFormComponent().add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            target.add(get(ID_REAL_OBJECT_CLASS));
            updateResourceContentSearch();
            mainForm.addOrReplace(initTable(model));
            target.add(mainForm);

        }
    });
    intent.setOutputMarkupId(true);
    intent.add(new VisibleEnableBehaviour() {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return !isUseObjectClass();
        }
    });
    add(intent);

    Label realObjectClassLabel = new Label(ID_REAL_OBJECT_CLASS, new AbstractReadOnlyModel<String>() {
        private static final long serialVersionUID = 1L;

        @Override
        public String getObject() {
            RefinedObjectClassDefinition ocDef;
            try {
                RefinedResourceSchema refinedSchema = RefinedResourceSchema.getRefinedSchema(model.getObject(),
                        parentPage.getPrismContext());
                if (refinedSchema == null) {
                    return "NO SCHEMA DEFINED";
                }
                ocDef = refinedSchema.getRefinedDefinition(getKind(), getIntent());
                if (ocDef != null) {
                    return ocDef.getObjectClassDefinition().getTypeName().getLocalPart();
                }
            } catch (SchemaException e) {
            }

            return "NOT FOUND";
        }
    });
    realObjectClassLabel.setOutputMarkupId(true);
    add(realObjectClassLabel);

    AutoCompleteQNamePanel objectClassPanel = new AutoCompleteQNamePanel(ID_OBJECT_CLASS,
            new PropertyModel<QName>(resourceContentSearch, "objectClass")) {
        private static final long serialVersionUID = 1L;

        @Override
        public Collection<QName> loadChoices() {
            return createObjectClassChoices(model);
        }

        @Override
        protected void onChange(AjaxRequestTarget target) {
            LOGGER.trace("Object class panel update: {}", isUseObjectClass());
            updateResourceContentSearch();
            mainForm.addOrReplace(initTable(model));
            target.add(mainForm);
        }

    };

    objectClassPanel.add(new VisibleEnableBehaviour() {
        private static final long serialVersionUID = 1L;

        @Override
        public boolean isVisible() {
            return isUseObjectClass();
        }
    });
    add(objectClassPanel);

    AjaxLink<Boolean> repoSearch = new AjaxLink<Boolean>(ID_REPO_SEARCH,
            new PropertyModel<Boolean>(resourceContentSearch, "resourceSearch")) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            isRepoSearch = true;
            getContentStorage(kind, SessionStorage.KEY_RESOURCE_PAGE_REPOSITORY_CONTENT)
                    .setResourceSearch(Boolean.FALSE);
            getContentStorage(kind, SessionStorage.KEY_RESOURCE_PAGE_RESOURCE_CONTENT)
                    .setResourceSearch(Boolean.FALSE);

            resourceContentSearch.getObject().setResourceSearch(Boolean.FALSE);
            updateResourceContentSearch();
            mainForm.addOrReplace(initRepoContent(model));
            target.add(getParent().addOrReplace(mainForm));
            target.add(this);
            target.add(getParent().get(ID_RESOURCE_SEARCH)
                    .add(AttributeModifier.replace("class", "btn btn-sm btn-default")));
        }

        @Override
        protected void onBeforeRender() {
            super.onBeforeRender();
            if (!getModelObject().booleanValue())
                add(AttributeModifier.replace("class", "btn btn-sm btn-default active"));
        }
    };
    add(repoSearch);

    AjaxLink<Boolean> resourceSearch = new AjaxLink<Boolean>(ID_RESOURCE_SEARCH,
            new PropertyModel<Boolean>(resourceContentSearch, "resourceSearch")) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            isRepoSearch = false;
            getContentStorage(kind, SessionStorage.KEY_RESOURCE_PAGE_REPOSITORY_CONTENT)
                    .setResourceSearch(Boolean.TRUE);
            getContentStorage(kind, SessionStorage.KEY_RESOURCE_PAGE_RESOURCE_CONTENT)
                    .setResourceSearch(Boolean.TRUE);
            updateResourceContentSearch();
            resourceContentSearch.getObject().setResourceSearch(Boolean.TRUE);
            mainForm.addOrReplace(initResourceContent(model));
            target.add(getParent().addOrReplace(mainForm));
            target.add(this.add(AttributeModifier.append("class", " active")));
            target.add(getParent().get(ID_REPO_SEARCH)
                    .add(AttributeModifier.replace("class", "btn btn-sm btn-default")));
        }

        @Override
        protected void onBeforeRender() {
            super.onBeforeRender();
            getModelObject().booleanValue();
            if (getModelObject().booleanValue())
                add(AttributeModifier.replace("class", "btn btn-sm btn-default active"));
        }
    };
    add(resourceSearch);

}

From source file:com.evolveum.midpoint.web.page.admin.roles.PageRoles.java

License:Apache License

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

        @Override/*from w  w  w  .  java  2 s.c o  m*/
        public String getObject() {
            return createStringResource("pageRoles.message.deleteRoleConfirm", getSelectedRoles().size())
                    .getString();
        }
    };
}

From source file:com.evolveum.midpoint.web.page.admin.roles.RoleMemberPanel.java

License:Apache License

private <V> DropDownChoice<V> createDropDown(String id, IModel<V> defaultModel, final List<V> values,
        IChoiceRenderer<V> renderer) {
    DropDownChoice<V> listSelect = new DropDownChoice<V>(id, defaultModel,
            new AbstractReadOnlyModel<List<V>>() {
                private static final long serialVersionUID = 1L;

                @Override//  ww  w .  ja va 2  s . c om
                public List<V> getObject() {
                    return values;
                }
            }, renderer);

    listSelect.add(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            refreshTable(target);
        }
    });

    return listSelect;
}

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

License:Apache License

protected void initLayout() {

    WebMarkupContainer tableLinesContainer = new WebMarkupContainer(ID_OBJECTS_TABLE_LINES_CONTAINER);
    ListView tableLines = new ListView<ActionsExecutedObjectsTableLineDto>(ID_OBJECTS_TABLE_LINES,
            new AbstractReadOnlyModel<List<ActionsExecutedObjectsTableLineDto>>() {
                @Override//  w w  w. ja v a  2 s .c  o  m
                public List<ActionsExecutedObjectsTableLineDto> getObject() {
                    final ActionsExecutedInformationDto modelObject = getModelObject();
                    if (modelObject == null) {
                        return new ArrayList<>();
                    }
                    if (showResultingActionsOnly) {
                        return modelObject.getUniqueObjectsTableLines();
                    } else {
                        return modelObject.getObjectsTableLines();
                    }
                }
            }) {
        protected void populateItem(final ListItem<ActionsExecutedObjectsTableLineDto> item) {
            item.add(new Label(ID_OBJECT_TYPE, new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    String key = item.getModelObject().getObjectTypeLocalizationKey();
                    if (key != null) {
                        return createStringResource(key).getString();
                    } else {
                        return item.getModelObject().getObjectType().getLocalPart();
                    }
                }
            }));
            item.add(new Label(ID_OPERATION, new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    return createStringResource(item.getModelObject().getOperation()).getString();
                }
            }));
            item.add(new Label(ID_CHANNEL, new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    String channel = item.getModelObject().getChannel();
                    if (channel != null && !channel.isEmpty()) {
                        String key = "Channel." + channel;
                        return createStringResource(key).getString();
                    } else {
                        return "";
                    }
                }
            }));

            item.add(new Label(ID_SUCCESS_COUNT, new PropertyModel<String>(item.getModel(),
                    ActionsExecutedObjectsTableLineDto.F_SUCCESS_COUNT)));
            item.add(new Label(ID_LAST_SUCCESS_OBJECT, new PropertyModel<String>(item.getModel(),
                    ActionsExecutedObjectsTableLineDto.F_LAST_SUCCESS_OBJECT)));
            item.add(new Label(ID_LAST_SUCCESS_TIMESTAMP, new PropertyModel<String>(item.getModel(),
                    ActionsExecutedObjectsTableLineDto.F_LAST_SUCCESS_TIMESTAMP)));
            item.add(new Label(ID_FAILURE_COUNT, new PropertyModel<String>(item.getModel(),
                    ActionsExecutedObjectsTableLineDto.F_FAILURE_COUNT)));
        }
    };
    tableLinesContainer.add(tableLines);
    tableLinesContainer.setOutputMarkupId(true);
    add(tableLinesContainer);

    final Label showResultingActionsOnlyLabel = new Label(ID_SHOW_RESULTING_ACTIONS_ONLY_LABEL,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    return showResultingActionsOnly
                            ? createStringResource(
                                    "ActionsExecutedInformationPanel.showingResultingActionsOnly").getString()
                            : createStringResource("ActionsExecutedInformationPanel.showingAllActions")
                                    .getString();
                }
            });
    showResultingActionsOnlyLabel.setOutputMarkupId(true);
    add(showResultingActionsOnlyLabel);
    add(new AjaxFallbackLink<String>(ID_SHOW_RESULTING_ACTIONS_ONLY_LINK) {
        @Override
        public void onClick(AjaxRequestTarget ajaxRequestTarget) {
            showResultingActionsOnly = !showResultingActionsOnly;
            ajaxRequestTarget.add(ActionsExecutedInformationPanel.this);
        }
    });

    add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getModelObject() != null;
        }
    });
}

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

License:Apache License

protected void initLayout() {

    Label executionTime = new Label(ID_EXECUTION_TIME, new AbstractReadOnlyModel<String>() {
        @Override//from w  w  w. j a  v  a2 s.  c  o  m
        public String getObject() {
            TaskDto dto = getModel().getObject().getTaskDto();
            if (dto == null) {
                return null;
            }
            Long started = dto.getLastRunStartTimestampLong();
            Long finished = dto.getLastRunFinishTimestampLong();
            if (started == null) {
                return null;
            }
            if (TaskDtoExecutionStatus.RUNNING.equals(dto.getExecution()) || finished == null
                    || finished < started) {
                return getString("TaskStatePanel.message.executionTime.notFinished",
                        formatDate(new Date(started)),
                        DurationFormatUtils.formatDurationHMS(System.currentTimeMillis() - started));
            } else {
                return getString("TaskStatePanel.message.executionTime.finished", formatDate(new Date(started)),
                        formatDate(new Date(finished)),
                        DurationFormatUtils.formatDurationHMS(finished - started));
            }
        }
    });
    add(executionTime);

    Label processedSuccess = new Label(ID_OBJECTS_PROCESSED_SUCCESS, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
            if (info == null) {
                return null;
            }
            if (info.getTotalSuccessCount() == 0) {
                return "0";
            } else {
                return getString("TaskStatePanel.message.objectsProcessed", info.getTotalSuccessCount());
            }
        }
    });
    add(processedSuccess);

    Label processedSuccessTime = new Label(ID_OBJECTS_PROCESSED_SUCCESS_TIME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getTotalSuccessCount() == 0) {
                        return null;
                    } else {
                        return getString("TaskStatePanel.message.objectsProcessedTime",
                                info.getTotalSuccessDuration() / 1000,
                                info.getTotalSuccessDuration() / info.getTotalSuccessCount());
                    }
                }
            });
    add(processedSuccessTime);

    Label lastProcessedSuccess = new Label(ID_LAST_OBJECT_PROCESSED_SUCCESS,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getLastSuccessObjectDisplayName() == null) {
                        return null;
                    } else {
                        return getString("TaskStatePanel.message.lastObjectProcessed",
                                info.getLastSuccessObjectDisplayName());
                    }
                }
            });
    add(lastProcessedSuccess);

    Label lastProcessedSuccessTime = new Label(ID_LAST_OBJECT_PROCESSED_SUCCESS_TIME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getLastSuccessEndTimestamp() == null) {
                        return null;
                    } else {
                        if (showAgo(dto)) {
                            return getString("TaskStatePanel.message.timeInfoWithDurationAndAgo",
                                    formatDate(info.getLastSuccessEndTimestamp()),
                                    DurationFormatUtils.formatDurationWords(System.currentTimeMillis()
                                            - XmlTypeConverter.toMillis(info.getLastSuccessEndTimestamp()),
                                            true, true),
                                    info.getLastSuccessDuration());
                        } else {
                            return getString("TaskStatePanel.message.timeInfoWithDuration",
                                    formatDate(info.getLastSuccessEndTimestamp()),
                                    info.getLastSuccessDuration());
                        }
                    }
                }
            });
    add(lastProcessedSuccessTime);

    Label processedFailure = new Label(ID_OBJECTS_PROCESSED_FAILURE, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
            if (info == null) {
                return null;
            }
            if (info.getTotalFailureCount() == 0) {
                return "0";
            } else {
                return getString("TaskStatePanel.message.objectsProcessed", info.getTotalFailureCount());
            }
        }
    });
    add(processedFailure);

    Label processedFailureTime = new Label(ID_OBJECTS_PROCESSED_FAILURE_TIME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getTotalFailureCount() == 0) {
                        return null;
                    } else {
                        return getString("TaskStatePanel.message.objectsProcessedTime",
                                info.getTotalFailureDuration() / 1000,
                                info.getTotalFailureDuration() / info.getTotalFailureCount());
                    }
                }
            });
    add(processedFailureTime);

    Label lastProcessedFailure = new Label(ID_LAST_OBJECT_PROCESSED_FAILURE,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getLastFailureObjectDisplayName() == null) {
                        return null;
                    } else {
                        return getString("TaskStatePanel.message.lastObjectProcessed",
                                info.getLastFailureObjectDisplayName());
                    }
                }
            });
    add(lastProcessedFailure);

    Label lastProcessedFailureTime = new Label(ID_LAST_OBJECT_PROCESSED_FAILURE_TIME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getLastFailureEndTimestamp() == null) {
                        return null;
                    } else {
                        if (showAgo(dto)) {
                            return getString("TaskStatePanel.message.timeInfoWithDurationAndAgo",
                                    formatDate(info.getLastFailureEndTimestamp()),
                                    DurationFormatUtils.formatDurationWords(System.currentTimeMillis()
                                            - XmlTypeConverter.toMillis(info.getLastFailureEndTimestamp()),
                                            true, true),
                                    info.getLastFailureDuration());
                        } else {
                            return getString("TaskStatePanel.message.timeInfoWithDuration",
                                    formatDate(info.getLastFailureEndTimestamp()),
                                    info.getLastFailureDuration());
                        }
                    }
                }
            });
    add(lastProcessedFailureTime);

    Label lastError = new Label(ID_LAST_ERROR, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
            if (info == null) {
                return null;
            }
            return info.getLastFailureExceptionMessage();
        }
    });
    add(lastError);

    Label currentObjectProcessed = new Label(ID_CURRENT_OBJECT_PROCESSED, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
            if (info == null) {
                return null;
            }
            return info.getCurrentObjectDisplayName();
        }
    });
    add(currentObjectProcessed);

    Label currentObjectProcessedTime = new Label(ID_CURRENT_OBJECT_PROCESSED_TIME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getCurrentObjectStartTimestamp() == null) {
                        return null;
                    } else {
                        return getString("TaskStatePanel.message.timeInfoWithAgo",
                                formatDate(info.getCurrentObjectStartTimestamp()),
                                DurationFormatUtils.formatDurationWords(System.currentTimeMillis()
                                        - XmlTypeConverter.toMillis(info.getCurrentObjectStartTimestamp()),
                                        true, true));
                    }
                }
            });
    add(currentObjectProcessedTime);

    Label objectsTotal = new Label(ID_OBJECTS_TOTAL, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
            if (info == null) {
                return null;
            }
            int objectsTotal = info.getTotalSuccessCount() + info.getTotalFailureCount();
            if (WALL_CLOCK_AVG_CATEGORIES.contains(dto.getTaskDto().getCategory())) {
                Long avg = getWallClockAverage(dto, objectsTotal);
                if (avg != null) {
                    return getString("TaskStatePanel.message.objectsTotal", objectsTotal, avg);
                }
            }
            return String.valueOf(objectsTotal);
        }
    });
    add(objectsTotal);
}

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

License:Apache License

@Override
protected void initLayout() {

    Label updated = new Label(ID_UPDATED, new AbstractReadOnlyModel<String>() {
        @Override//from  w  ww . ja va  2 s. c  o m
        public String getObject() {
            return formatDate(new Date());
        }
    });
    add(updated);

    Label executionStatus = new Label(ID_EXECUTION_STATUS, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskDtoExecutionStatus executionStatus = getModel().getObject().getTaskDto().getExecution();
            return getString(TaskDtoExecutionStatus.class.getSimpleName() + "." + executionStatus.name());
        }
    });
    add(executionStatus);

    Label executionNode = new Label(ID_EXECUTION_NODE, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskDto dto = getModel().getObject().getTaskDto();
            if (!TaskDtoExecutionStatus.RUNNING.equals(dto.getExecution())) {
                return null;
            }
            return getString("TaskStatePanel.message.node", dto.getExecutingAt());
        }
    });
    add(executionNode);

    Label executionTime = new Label(ID_EXECUTION_TIME, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskDto dto = getModel().getObject().getTaskDto();
            if (dto == null) {
                return null;
            }
            Long started = dto.getLastRunStartTimestampLong();
            Long finished = dto.getLastRunFinishTimestampLong();
            if (started == null) {
                return null;
            }
            if (TaskDtoExecutionStatus.RUNNING.equals(dto.getExecution()) || finished == null
                    || finished < started) {
                return getString("TaskStatePanel.message.executionTime.notFinished",
                        formatDate(new Date(started)),
                        DurationFormatUtils.formatDurationHMS(System.currentTimeMillis() - started));
            } else {
                return getString("TaskStatePanel.message.executionTime.finished", formatDate(new Date(started)),
                        formatDate(new Date(finished)),
                        DurationFormatUtils.formatDurationHMS(finished - started));
            }
        }
    });
    add(executionTime);

    Label progress = new Label(ID_PROGRESS, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            TaskDto taskDto = dto.getTaskDto();
            if (taskDto == null) {
                return null;
            } else {
                return taskDto.getProgressDescription(dto.getCurrentProgress()); // TODO implement stalled since
            }
        }
    });
    add(progress);

    Label processedSuccess = new Label(ID_OBJECTS_PROCESSED_SUCCESS, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
            if (info == null) {
                return null;
            }
            if (info.getTotalSuccessCount() == 0) {
                return "0";
            } else {
                return getString("TaskStatePanel.message.objectsProcessed", info.getTotalSuccessCount());
            }
        }
    });
    add(processedSuccess);

    Label processedSuccessTime = new Label(ID_OBJECTS_PROCESSED_SUCCESS_TIME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getTotalSuccessCount() == 0) {
                        return null;
                    } else {
                        return getString("TaskStatePanel.message.objectsProcessedTime",
                                info.getTotalSuccessDuration() / 1000,
                                info.getTotalSuccessDuration() / info.getTotalSuccessCount());
                    }
                }
            });
    add(processedSuccessTime);

    Label lastProcessedSuccess = new Label(ID_LAST_OBJECT_PROCESSED_SUCCESS,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getLastSuccessObjectDisplayName() == null) {
                        return null;
                    } else {
                        return getString("TaskStatePanel.message.lastObjectProcessed",
                                info.getLastSuccessObjectDisplayName());
                    }
                }
            });
    add(lastProcessedSuccess);

    Label lastProcessedSuccessTime = new Label(ID_LAST_OBJECT_PROCESSED_SUCCESS_TIME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getLastSuccessEndTimestamp() == null) {
                        return null;
                    } else {
                        if (showAgo(dto)) {
                            return getString("TaskStatePanel.message.timeInfoWithDurationAndAgo",
                                    formatDate(info.getLastSuccessEndTimestamp()),
                                    DurationFormatUtils.formatDurationWords(System.currentTimeMillis()
                                            - XmlTypeConverter.toMillis(info.getLastSuccessEndTimestamp()),
                                            true, true),
                                    info.getLastSuccessDuration());
                        } else {
                            return getString("TaskStatePanel.message.timeInfoWithDuration",
                                    formatDate(info.getLastSuccessEndTimestamp()),
                                    info.getLastSuccessDuration());
                        }
                    }
                }
            });
    add(lastProcessedSuccessTime);

    Label processedFailure = new Label(ID_OBJECTS_PROCESSED_FAILURE, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
            if (info == null) {
                return null;
            }
            if (info.getTotalFailureCount() == 0) {
                return "0";
            } else {
                return getString("TaskStatePanel.message.objectsProcessed", info.getTotalFailureCount());
            }
        }
    });
    add(processedFailure);

    Label processedFailureTime = new Label(ID_OBJECTS_PROCESSED_FAILURE_TIME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getTotalFailureCount() == 0) {
                        return null;
                    } else {
                        return getString("TaskStatePanel.message.objectsProcessedTime",
                                info.getTotalFailureDuration() / 1000,
                                info.getTotalFailureDuration() / info.getTotalFailureCount());
                    }
                }
            });
    add(processedFailureTime);

    Label lastProcessedFailure = new Label(ID_LAST_OBJECT_PROCESSED_FAILURE,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getLastFailureObjectDisplayName() == null) {
                        return null;
                    } else {
                        return getString("TaskStatePanel.message.lastObjectProcessed",
                                info.getLastFailureObjectDisplayName());
                    }
                }
            });
    add(lastProcessedFailure);

    Label lastProcessedFailureTime = new Label(ID_LAST_OBJECT_PROCESSED_FAILURE_TIME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getLastFailureEndTimestamp() == null) {
                        return null;
                    } else {
                        if (showAgo(dto)) {
                            return getString("TaskStatePanel.message.timeInfoWithDurationAndAgo",
                                    formatDate(info.getLastFailureEndTimestamp()),
                                    DurationFormatUtils.formatDurationWords(System.currentTimeMillis()
                                            - XmlTypeConverter.toMillis(info.getLastFailureEndTimestamp()),
                                            true, true),
                                    info.getLastFailureDuration());
                        } else {
                            return getString("TaskStatePanel.message.timeInfoWithDuration",
                                    formatDate(info.getLastFailureEndTimestamp()),
                                    info.getLastFailureDuration());
                        }
                    }
                }
            });
    add(lastProcessedFailureTime);

    Label lastError = new Label(ID_LAST_ERROR, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
            if (info == null) {
                return null;
            }
            return info.getLastFailureExceptionMessage();
        }
    });
    add(lastError);

    Label currentObjectProcessed = new Label(ID_CURRENT_OBJECT_PROCESSED, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
            if (info == null) {
                return null;
            }
            return info.getCurrentObjectDisplayName();
        }
    });
    add(currentObjectProcessed);

    Label currentObjectProcessedTime = new Label(ID_CURRENT_OBJECT_PROCESSED_TIME,
            new AbstractReadOnlyModel<String>() {
                @Override
                public String getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
                    if (info == null) {
                        return null;
                    }
                    if (info.getCurrentObjectStartTimestamp() == null) {
                        return null;
                    } else {
                        return getString("TaskStatePanel.message.timeInfoWithAgo",
                                formatDate(info.getCurrentObjectStartTimestamp()),
                                DurationFormatUtils.formatDurationWords(System.currentTimeMillis()
                                        - XmlTypeConverter.toMillis(info.getCurrentObjectStartTimestamp()),
                                        true, true));
                    }
                }
            });
    add(currentObjectProcessedTime);

    Label objectsTotal = new Label(ID_OBJECTS_TOTAL, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            IterativeTaskInformationType info = dto.getIterativeTaskInformationType();
            if (info == null) {
                return null;
            }
            int objectsTotal = info.getTotalSuccessCount() + info.getTotalFailureCount();
            if (WALL_CLOCK_AVG_CATEGORIES.contains(dto.getTaskDto().getCategory())) {
                Long avg = getWallClockAverage(dto, objectsTotal);
                if (avg != null) {
                    return getString("TaskStatePanel.message.objectsTotal", objectsTotal, avg);
                }
            }
            return String.valueOf(objectsTotal);
        }
    });
    add(objectsTotal);

    SynchronizationInformationPanel synchronizationInformationPanel = new SynchronizationInformationPanel(
            ID_SYNCHRONIZATION_INFORMATION_PANEL, new AbstractReadOnlyModel<SynchronizationInformationDto>() {
                @Override
                public SynchronizationInformationDto getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    if (dto.getSynchronizationInformationType() == null) {
                        return null;
                    }
                    return new SynchronizationInformationDto(dto.getSynchronizationInformationType());
                }
            });
    synchronizationInformationPanel.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            TaskCurrentStateDto dto = getModelObject();
            return dto != null && dto.getSynchronizationInformationType() != null;
        }
    });
    add(synchronizationInformationPanel);

    ActionsExecutedInformationPanel actionsExecutedInformationPanel = new ActionsExecutedInformationPanel(
            ID_ACTIONS_EXECUTED_INFORMATION_PANEL, new AbstractReadOnlyModel<ActionsExecutedInformationDto>() {
                @Override
                public ActionsExecutedInformationDto getObject() {
                    TaskCurrentStateDto dto = getModelObject();
                    if (dto == null) {
                        return null;
                    }
                    if (dto.getActionsExecutedInformationType() == null) {
                        return null;
                    }
                    return new ActionsExecutedInformationDto(dto.getActionsExecutedInformationType());
                }
            });
    actionsExecutedInformationPanel.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            TaskCurrentStateDto dto = getModelObject();
            return dto != null && dto.getActionsExecutedInformationType() != null;
        }
    });
    add(actionsExecutedInformationPanel);

    Label countersSource = new Label(ID_COUNTERS_SOURCE, new AbstractReadOnlyModel<String>() {
        @Override
        public String getObject() {
            TaskCurrentStateDto dto = getModelObject();
            if (dto == null) {
                return null;
            }
            OperationStatsType stats = dto.getOperationStatsType();
            if (stats == null) {
                return null;
            }
            if (stats.isLiveInformation()) {
                return getString("TaskStatePanel.message.countersSourceMemory",
                        formatDate(stats.getTimestamp()));
            } else {
                return getString("TaskStatePanel.message.countersSourceRepository",
                        formatDate(stats.getTimestamp()));
            }
        }
    });
    add(countersSource);

    statisticsDtoModel = new StatisticsDtoModel(new AbstractReadOnlyModel<TaskDto>() {
        @Override
        public TaskDto getObject() {
            return getModelObject().getTaskDto();
        }
    });
    StatisticsPanel statisticsPanel = new StatisticsPanel(ID_STATISTICS_PANEL, statisticsDtoModel);
    add(statisticsPanel);

    VisibleEnableBehaviour hiddenWhenNoSubtasks = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            TaskDto taskDto = getModelObject().getTaskDto();
            return taskDto != null && !taskDto.getTransientSubtasks().isEmpty();
        }
    };

    Label workerThreadsTableLabel = new Label(ID_WORKER_THREADS_TABLE_LABEL,
            new ResourceModel("TaskStatePanel.workerThreads"));
    workerThreadsTableLabel.add(hiddenWhenNoSubtasks);
    add(workerThreadsTableLabel);
    List<IColumn<WorkerThreadDto, String>> columns = new ArrayList<>();
    columns.add(new PropertyColumn(createStringResourceStatic(this, "TaskStatePanel.subtaskName"),
            WorkerThreadDto.F_NAME));
    columns.add(new EnumPropertyColumn<WorkerThreadDto>(
            createStringResourceStatic(this, "TaskStatePanel.subtaskState"),
            WorkerThreadDto.F_EXECUTION_STATUS));
    columns.add(new PropertyColumn(createStringResourceStatic(this, "TaskStatePanel.subtaskObjectsProcessed"),
            WorkerThreadDto.F_PROGRESS));
    ISortableDataProvider<WorkerThreadDto, String> threadsProvider = new ListDataProvider<>(this,
            new AbstractReadOnlyModel<List<WorkerThreadDto>>() {
                @Override
                public List<WorkerThreadDto> getObject() {
                    List<WorkerThreadDto> rv = new ArrayList<>();
                    TaskDto taskDto = getModelObject().getTaskDto();
                    if (taskDto != null) {
                        for (TaskDto subtaskDto : taskDto.getTransientSubtasks()) {
                            rv.add(new WorkerThreadDto(subtaskDto));
                        }
                    }
                    return rv;
                }
            });
    TablePanel<WorkerThreadDto> workerThreadsTablePanel = new TablePanel<>(ID_WORKER_THREADS_TABLE,
            threadsProvider, columns);
    workerThreadsTablePanel.add(hiddenWhenNoSubtasks);
    add(workerThreadsTablePanel);

    SortableDataProvider<OperationResult, String> provider = new ListDataProvider<>(this,
            new PropertyModel<List<OperationResult>>(getModel(), "taskDto.opResult"));
    TablePanel result = new TablePanel<>(ID_OPERATION_RESULT, provider, initResultColumns());
    result.setStyle("padding-top: 0px;");
    result.setShowPaging(false);
    result.setOutputMarkupId(true);
    add(result);
}

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

License:Apache License

private void initLayout() {
    WebMarkupContainer objectTypeContainer = new WebMarkupContainer(ID_OBJECT_TYPE_CONTAINER);
    Label objectType = new Label(ID_OBJECT_TYPE, new AbstractReadOnlyModel<String>() {
        @Override/*from  www  .  j a va 2s . com*/
        public String getObject() {
            final String key = getModelObject().getObjectTypeKey();
            return key != null ? getString(key) : null;
        }
    });
    objectTypeContainer.add(objectType);
    add(objectTypeContainer);

    WebMarkupContainer objectQueryContainer = new WebMarkupContainer(ID_OBJECT_QUERY_CONTAINER);
    TextArea objectQuery = new TextArea<>(ID_OBJECT_QUERY,
            new PropertyModel<>(getModel(), QueryBasedHandlerDto.F_OBJECT_QUERY));
    objectQuery.setEnabled(false);
    objectQueryContainer.add(objectQuery);
    add(objectQueryContainer);
}

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

License:Apache License

private void initLayout() {

    final VisibleEnableBehaviour visibleIfEdit = new VisibleEnableBehaviour() {
        @Override/*from www. j  a  v a  2  s . c o  m*/
        public boolean isVisible() {
            return parentPage.isEdit();
        }
    };
    final VisibleEnableBehaviour visibleIfView = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return !parentPage.isEdit();
        }
    };
    final VisibleEnableBehaviour enabledIfEdit = new VisibleEnableBehaviour() {

        @Override
        public boolean isEnabled() {
            return parentPage.isEdit();
        }
    };
    final VisibleEnableBehaviour visibleForResourceCoordinates = new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getTaskDto().configuresResourceCoordinates();
        }
    };

    final WebMarkupContainer resourceRefContainer = new WebMarkupContainer(ID_RESOURCE_REF_CONTAINER);
    resourceRefContainer.add(visibleForResourceCoordinates);
    resourceRefContainer.setOutputMarkupId(true);
    add(resourceRefContainer);

    final DropDownChoice<TaskAddResourcesDto> resourceRef = new DropDownChoice<>(ID_RESOURCE_REF,
            new PropertyModel<TaskAddResourcesDto>(getModel(), ResourceRelatedHandlerDto.F_RESOURCE_REFERENCE),
            new AbstractReadOnlyModel<List<TaskAddResourcesDto>>() {
                @Override
                public List<TaskAddResourcesDto> getObject() {
                    return createResourceList();
                }
            }, new ChoiceableChoiceRenderer<TaskAddResourcesDto>());
    resourceRef.setOutputMarkupId(true);
    resourceRef.add(enabledIfEdit);
    resourceRef.add(new AjaxFormComponentUpdatingBehavior("change") {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            Task task = parentPage.createSimpleTask(OPERATION_LOAD_RESOURCE);
            OperationResult result = task.getResult();
            List<QName> objectClassList = new ArrayList<>();

            TaskAddResourcesDto resourcesDto = getModelObject().getResourceRef();

            if (resourcesDto != null) {
                PrismObject<ResourceType> resource = WebModelServiceUtils.loadObject(ResourceType.class,
                        resourcesDto.getOid(), parentPage, task, result);

                try {
                    ResourceSchema schema = RefinedResourceSchema.getResourceSchema(resource,
                            parentPage.getPrismContext());
                    schema.getObjectClassDefinitions();

                    for (Definition def : schema.getDefinitions()) {
                        objectClassList.add(def.getTypeName());
                    }

                    getModelObject().setObjectClassList(objectClassList);
                } catch (Exception e) {
                    LoggingUtils.logUnexpectedException(LOGGER,
                            "Couldn't load object class list from resource.", e);
                    error("Couldn't load object class list from resource.");
                }

            }
            target.add(resourceRefContainer);
        }
    });
    resourceRefContainer.add(resourceRef);

    WebMarkupContainer kindContainer = new WebMarkupContainer(ID_KIND_CONTAINER);
    kindContainer.add(visibleForResourceCoordinates);
    add(kindContainer);

    final DropDownChoice kind = new DropDownChoice<>(ID_KIND,
            new PropertyModel<ShadowKindType>(getModel(), ResourceRelatedHandlerDto.F_KIND),
            WebComponentUtil.createReadonlyModelFromEnum(ShadowKindType.class),
            new EnumChoiceRenderer<ShadowKindType>());
    kind.setOutputMarkupId(true);
    kind.setNullValid(true);
    kindContainer.add(kind);

    WebMarkupContainer intentContainer = new WebMarkupContainer(ID_INTENT_CONTAINER);
    intentContainer.add(visibleForResourceCoordinates);
    add(intentContainer);

    final TextField<String> intent = new TextField<>(ID_INTENT,
            new PropertyModel<String>(getModel(), ResourceRelatedHandlerDto.F_INTENT));
    intentContainer.add(intent);
    intent.setOutputMarkupId(true);
    intent.add(enabledIfEdit);

    WebMarkupContainer objectClassContainer = new WebMarkupContainer(ID_OBJECT_CLASS_CONTAINER);
    objectClassContainer.add(visibleForResourceCoordinates);
    add(objectClassContainer);

    AutoCompleteSettings autoCompleteSettings = new AutoCompleteSettings();
    autoCompleteSettings.setShowListOnEmptyInput(true);
    final AutoCompleteTextField<String> objectClass = new AutoCompleteTextField<String>(ID_OBJECT_CLASS,
            new PropertyModel<String>(getModel(), ResourceRelatedHandlerDto.F_OBJECT_CLASS),
            autoCompleteSettings) {

        @Override
        protected Iterator<String> getChoices(String input) {

            return prepareObjectClassChoiceList(input);
        }
    };
    objectClass.add(enabledIfEdit);
    objectClassContainer.add(objectClass);

    WebMarkupContainer optionsContainer = new WebMarkupContainer(ID_OPTIONS_CONTAINER);
    optionsContainer.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getTaskDto().configuresDryRun();
        }
    });
    add(optionsContainer);

    WebMarkupContainer dryRunContainer = new WebMarkupContainer(ID_DRY_RUN_CONTAINER);
    dryRunContainer.add(new VisibleEnableBehaviour() {
        @Override
        public boolean isVisible() {
            return getTaskDto().configuresDryRun();
        }
    });
    optionsContainer.add(dryRunContainer);
    CheckBox dryRun = new CheckBox(ID_DRY_RUN,
            new PropertyModel<Boolean>(getModel(), ResourceRelatedHandlerDto.F_DRY_RUN));
    dryRun.add(enabledIfEdit);
    dryRunContainer.add(dryRun);
}

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

License:Apache License

private void initLayout() {
    Form mainForm = new Form("mainForm");
    add(mainForm);/* w  ww. ja va  2 s .  c o m*/

    final DropDownChoice resource = new DropDownChoice("resource",
            new PropertyModel<TaskAddResourcesDto>(model, "resource"),
            new AbstractReadOnlyModel<List<TaskAddResourcesDto>>() {

                @Override
                public List<TaskAddResourcesDto> getObject() {
                    return createResourceList();
                }
            }, new IChoiceRenderer<TaskAddResourcesDto>() {

                @Override
                public Object getDisplayValue(TaskAddResourcesDto dto) {
                    return dto.getName();
                }

                @Override
                public String getIdValue(TaskAddResourcesDto dto, int index) {
                    return Integer.toString(index);
                }
            });
    resource.add(new VisibleEnableBehaviour() {

        @Override
        public boolean isEnabled() {
            TaskAddDto dto = model.getObject();
            boolean sync = TaskCategory.LIVE_SYNCHRONIZATION.equals(dto.getCategory());
            boolean recon = TaskCategory.RECONCILIATION.equals(dto.getCategory());
            boolean importAccounts = TaskCategory.IMPORTING_ACCOUNTS.equals(dto.getCategory());
            return sync || recon || importAccounts;
        }
    });
    resource.setOutputMarkupId(true);
    mainForm.add(resource);
    DropDownChoice type = new DropDownChoice("category", new PropertyModel<String>(model, "category"),
            new AbstractReadOnlyModel<List<String>>() {

                @Override
                public List<String> getObject() {
                    return createCategoryList();
                }
            }, new IChoiceRenderer<String>() {

                @Override
                public Object getDisplayValue(String item) {
                    return PageTaskAdd.this.getString("pageTask.category." + item);
                }

                @Override
                public String getIdValue(String item, int index) {
                    return Integer.toString(index);
                }

            });
    type.add(new AjaxFormComponentUpdatingBehavior("onChange") {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            target.add(resource);
        }
    });
    type.setRequired(true);
    mainForm.add(type);

    TextField<String> name = new TextField<String>("name", new PropertyModel<String>(model, "name"));
    name.setRequired(true);
    mainForm.add(name);

    initScheduling(mainForm);
    initAdvanced(mainForm);

    CheckBox dryRun = new CheckBox(ID_DRY_RUN, new PropertyModel<Boolean>(model, TaskAddDto.F_DRY_RUN));
    mainForm.add(dryRun);

    initButtons(mainForm);
}