Example usage for org.apache.wicket.validation ValidationError setVariable

List of usage examples for org.apache.wicket.validation ValidationError setVariable

Introduction

In this page you can find the example usage for org.apache.wicket.validation ValidationError setVariable.

Prototype

public ValidationError setVariable(String name, Object value) 

Source Link

Document

Sets a key and value in the variables map for use in substitution.

Usage

From source file:org.devgateway.eudevfin.ui.common.validators.Field12CodeValidator.java

License:Open Source License

@Override
public void validate(IValidatable<Category> validatable) {

    if (!Strings.isEmpty(transactionType)) {
        if (validatable.getValue() != null && validatable.getValue().isLastAncestor()) {
            ValidationError error = new ValidationError(this);
            validatable.error(decorateParentError(error, validatable));
        }/*w  w w  . j  a va2s. c o m*/
    }

    if ((Strings.isEqual(transactionType, SB.BILATERAL_ODA_ADVANCE_QUESTIONNAIRE)
            || Strings.isEqual(transactionType, SB.MULTILATERAL_ODA_ADVANCE_QUESTIONNAIRE))) {
        // Check value against pattern
        if (validatable.getValue() != null
                && pattern.matcher(validatable.getValue().getDisplayableCode()).matches() == reverse) {
            ValidationError error = new ValidationError(this);
            error.setVariable("pattern", pattern.pattern());
            validatable.error(decorate(error, validatable));
        }
    }
}

From source file:org.devgateway.eudevfin.ui.common.validators.Field8CodeValidator.java

License:Open Source License

@Override
public void validate(IValidatable<Category> validatable) {
    if (!Strings.isEmpty(transactionType)
            && (Strings.isEqual(transactionType, SB.MULTILATERAL_ODA_ADVANCE_QUESTIONNAIRE)
                    || Strings.isEqual(transactionType, SB.MULTILATERAL_ODA_CRS))) {
        // Check value against pattern
        if (validatable.getValue() != null
                && pattern.matcher(validatable.getValue().getCode()).matches() == reverse) {
            ValidationError error = new ValidationError(this);
            error.setVariable("pattern", pattern.pattern());
            validatable.error(decorate(error, validatable));
        }/*from ww w.ja  va 2s  . c om*/
    }
}

From source file:org.devgateway.toolkit.forms.validators.EarlierThanDateFieldValidator.java

License:Open Source License

@Override
public void validate(final IValidatable<Date> validatable) {
    highDate.getField().validate();//from  ww  w.j  a  v a 2s. co m
    if (!highDate.getField().isValid()) {
        return;
    }

    Date endDate = (Date) highDate.getField().getConvertedInput();

    if (endDate != null && validatable.getValue() != null && endDate.before(validatable.getValue())) {
        ValidationError error = new ValidationError(this);
        error.setVariable("highDateName",
                new StringResourceModel(highDate.getLabelKey(), highDate.getParent(), null).getString());
        validatable.error(error);
    }
}

From source file:org.devgateway.toolkit.forms.validators.EarlierThanDateValidator.java

License:Open Source License

@Override
public void validate(final IValidatable<Date> validatable) {
    if (highDate == null) {
        return;//from w  w  w.j a  v a  2  s  .  co m
    }

    if (validatable.getValue() != null && highDate.before(validatable.getValue())) {
        ValidationError error = new ValidationError(this);
        error.setVariable("highDate", highDate);
        validatable.error(error);
    }
}

From source file:org.geogig.geoserver.web.repository.RepositoryEditPanel.java

License:Open Source License

public RepositoryEditPanel(final String wicketId, IModel<RepositoryInfo> model, final boolean isNew) {
    super(wicketId, model);

    config = new GeoGigRepositoryInfoFormComponent("repositoryConfig", model, isNew);
    config.setVisible(true);/*from www . j av  a 2s  .co m*/
    add(config);

    add(new IValidator<RepositoryInfo>() {

        private static final long serialVersionUID = 224160688160723504L;

        @Override
        public void validate(IValidatable<RepositoryInfo> validatable) {
            if (isNew) {
                config.processInput();
            }
            ValidationError error = new ValidationError();
            RepositoryInfo repo = validatable.getValue();
            final URI location = repo.getLocation();
            final RepositoryResolver resolver = RepositoryResolver.lookup(location);
            final String scheme = location.getScheme();
            if (isNew && repoNameExists(repo.getRepoName())) {
                error.addKey("errRepositoryNameExists");
            } else if ("file".equals(scheme)) {
                File repoDir = new File(location);
                final File parent = repoDir.getParentFile();
                if (!parent.exists() || !parent.isDirectory()) {
                    error.addKey("errParentDoesntExist");
                }
                if (!parent.canWrite()) {
                    error.addKey("errParentReadOnly");
                }
                if (isNew) {
                    if (repoDir.exists()) {
                        error.addKey("errDirectoryExists");
                    }
                } else if (!isGeogigDirectory(repoDir)) {
                    error.addKey("notAGeogigRepository");
                }
            } else if ("postgresql".equals(scheme)) {
                try {
                    if (isNew) {
                        if (resolver.repoExists(location)) {
                            error.addKey("errRepositoryExists");
                        }
                    } else {
                        // try to connect
                        Repository repository = null;
                        try {
                            repository = resolver.open(location);
                        } finally {
                            if (repository != null) {
                                repository.close();
                            }
                        }

                    }
                } catch (Exception ex) {
                    // likely failed to connect
                    LOGGER.error("Failed to connect to PostgreSQL database", ex);
                    error.addKey("errCannotConnectToDatabase");
                    // find root cause
                    error.setVariable("message", PostgresConnectionErrorHandler.getMessage(ex));
                }
            }
            if (!error.getKeys().isEmpty()) {
                validatable.error(error);
            }
        }
    });
}

From source file:org.geogig.geoserver.web.repository.RepositoryImportPanel.java

License:Open Source License

public RepositoryImportPanel(String id, IModel<RepositoryInfo> model) {
    super(id, model);

    setOutputMarkupId(true);//from   ww w. ja  v  a2 s.com

    // build the backing form model
    ImportRepositoryFormModel formModel = new ImportRepositoryFormModel(model);
    // add the dropdown to switch between configurations
    dropdownPanel = new DropDownChoiceParamPanel("configChoicePanel", new DropDownModel(model),
            new ResourceModel("RepositoryImportPanel.repositoryType", "Repository Type"),
            DropDownModel.CONFIG_LIST, true);
    final DropDownChoice<Serializable> dropDownChoice = dropdownPanel.getFormComponent();
    dropDownChoice.add(new AjaxFormComponentUpdatingBehavior("change") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            final String value = dropDownChoice.getModelObject().toString();
            repoDirectoryComponent.setVisible(DropDownModel.DIRECTORY_CONFIG.equals(value));
            pgPanel.setVisible(DropDownModel.PG_CONFIG.equals(value));
            repoNamePanel.setVisible(DropDownModel.PG_CONFIG.equals(value));
            target.add(settingsPanel);
        }
    });
    add(dropdownPanel);

    settingsPanel = new WebMarkupContainer("settingsContainer");
    settingsPanel.setOutputMarkupId(true);
    add(settingsPanel);

    repoNamePanel = new TextParamPanel("repositoryNamePanel", new PropertyModel(formModel, "repoName"),
            new ResourceModel("RepositoryImportPanel.repositoryName", "Repository Name"), true);
    repoNamePanel.setOutputMarkupId(true);
    repoNamePanel.getFormComponent().setOutputMarkupId(true);
    repoNamePanel.setVisible(DropDownModel.PG_CONFIG.equals(dropDownChoice.getModelObject().toString()));
    settingsPanel.add(repoNamePanel);

    pgPanel = new PostgresConfigFormPanel("pgPanel", new PropertyModel<>(formModel, "pgBean"));
    pgPanel.setVisible(DropDownModel.PG_CONFIG.equals(dropDownChoice.getModelObject().toString()));
    settingsPanel.add(pgPanel);

    repoDirectoryComponent = new RepoDirectoryComponent("repoDirectoryPanel", formModel);
    repoDirectoryComponent.setOutputMarkupId(true);
    repoDirectoryComponent
            .setVisible(DropDownModel.DIRECTORY_CONFIG.equals(dropDownChoice.getModelObject().toString()));
    settingsPanel.add(repoDirectoryComponent);

    add(new IValidator<RepositoryInfo>() {

        private static final long serialVersionUID = 1L;

        @Override
        public void validate(IValidatable<RepositoryInfo> validatable) {
            ValidationError error = new ValidationError();
            RepositoryInfo repo = validatable.getValue();
            final URI location = repo.getLocation();
            // look for already configured repos
            List<RepositoryInfo> existingRepos = RepositoryManager.get().getAll();
            for (RepositoryInfo configuredRepo : existingRepos) {
                if (configuredRepo.getLocation().equals(location)) {
                    error.addKey("errRepositoryAlreadyConfigured");
                    // quit looking
                    break;
                }
            }
            if (error.getKeys().isEmpty()) {
                final RepositoryResolver resolver = RepositoryResolver.lookup(location);
                final String scheme = location.getScheme();
                if ("file".equals(scheme)) {
                    File repoDir = new File(location);
                    if (!repoDir.exists() || !repoDir.isDirectory()) {
                        error.addKey("errRepositoryDirectoryDoesntExist");
                    }
                    if (!isGeogigDirectory(repoDir)) {
                        error.addKey("notAGeogigRepository");
                    }
                } else if ("postgresql".equals(scheme)) {
                    try {
                        if (!resolver.repoExists(location)) {
                            error.addKey("errRepositoryDoesntExist");
                        }
                    } catch (Exception ex) {
                        // likely failed to connect
                        LOGGER.error("Failed to connect to PostgreSQL database", ex);
                        error.addKey("errCannotConnectToDatabase");
                        // find root cause
                        error.setVariable("message", PostgresConnectionErrorHandler.getMessage(ex));
                    }
                }
            }
            if (!error.getKeys().isEmpty()) {
                validatable.error(error);
            }
        }
    });
}

From source file:org.geoserver.web.data.store.StoreNameValidator.java

License:Open Source License

/**
 * Performs the cross validation between the selected workspace and the assigned store name
 * <p>/*from  w  w  w .j  a  v  a  2 s. c om*/
 * If there's already a {@link StoreInfo} in the selected workspace with the same name than the
 * choosed one the store name form component is set with a proper {@link IValidationError error
 * message}
 * </p>
 * 
 * @see IFormValidator#validate(Form)
 */
public void validate(final Form form) {
    final FormComponent[] components = getDependentFormComponents();
    final FormComponent wsComponent = components[0];
    final FormComponent nameComponent = components[1];

    WorkspaceInfo workspace = (WorkspaceInfo) wsComponent.getConvertedInput();
    String name = (String) nameComponent.getConvertedInput();

    if (name == null) {
        if (required) {
            ValidationError error = new ValidationError();
            error.addMessageKey("StoreNameValidator.storeNameRequired");
            nameComponent.error((IValidationError) error);
        }
        return;
    }

    Catalog catalog = GeoServerApplication.get().getCatalog();

    final StoreInfo existing = catalog.getStoreByName(workspace, name, StoreInfo.class);
    if (existing != null) {
        final String existingId = existing.getId();
        if (!existingId.equals(edittingStoreId)) {
            ValidationError error = new ValidationError();
            error.addMessageKey("StoreNameValidator.storeExistsInWorkspace");
            error.setVariable("workspace", workspace.getName());
            error.setVariable("storeName", name);
            nameComponent.error((IValidationError) error);
        }
    }
}

From source file:org.obiba.onyx.quartz.core.wicket.layout.impl.validation.AnswerCountValidator.java

License:Open Source License

private void validateMultipleOpenAnswer(IValidatable<T> validatable, Question question,
        QuestionCategory questionCategory, OpenAnswerDefinition openAnswerDefinition) {
    if (openAnswerDefinition.hasRequiredChild()) {
        List<OpenAnswer> openAnswers = activeQuestionnaireAdministrationService.findOpenAnswers(question,
                questionCategory.getCategory());
        // check child open answer requiredness
        for (OpenAnswerDefinition childOpenAnswerDefinition : openAnswerDefinition.getOpenAnswerDefinitions()) {
            if (childOpenAnswerDefinition.isRequired()) {
                boolean found = false;
                for (OpenAnswer openAnswer : openAnswers) {
                    if (openAnswer.getOpenAnswerDefinitionName().equals(childOpenAnswerDefinition.getName())) {
                        found = true;/*w w  w  .ja  v a  2s.  c o  m*/
                        break;
                    }
                }
                if (!found) {
                    ValidationError error = newValidationError(question);
                    error.addMessageKey(KEY_PREFIX + ".OpenRequired");
                    error.setVariable("open", QuestionnaireStringResourceModelHelper
                            .getStringResourceModel(question, questionCategory, childOpenAnswerDefinition)
                            .getObject());
                    validatable.error(error);
                }
            }
        }
    }
}

From source file:org.obiba.onyx.quartz.core.wicket.layout.impl.validation.AnswerCountValidator.java

License:Open Source License

private ValidationError newValidationError(Question question) {
    ValidationError error = new ValidationError();
    error.setVariable("question", new QuestionnaireStringResourceModel(question, "label").getString());
    return error;
}

From source file:org.obiba.onyx.quartz.core.wicket.layout.impl.validation.AnswerCountValidator.java

License:Open Source License

private ValidationError newValidationError(Question question, Integer minCount, Integer maxCount, int count) {
    ValidationError error = newValidationError(question);

    error.setVariable("count", count);

    String key = "";
    if (minCount != null) {
        error.setVariable("min", minCount);
        key = KEY_PREFIX + ".Min";
    }//w  ww  .  j a  va 2 s . c o m

    if (maxCount != null) {
        error.setVariable("max", maxCount);
        if (key.length() == 0) {
            key = "AnswerCountValidator.Max";
        } else {
            key = "AnswerCountValidator.Count";
        }
    }

    error.addMessageKey(key);

    return error;
}