package it.nexbit.cuba.security.userprofile.config;

import com.haulmont.cuba.core.config.Config;
import com.haulmont.cuba.core.config.Property;
import com.haulmont.cuba.core.config.Source;
import com.haulmont.cuba.core.config.SourceType;
import com.haulmont.cuba.core.config.defaults.Default;
import com.haulmont.cuba.core.config.defaults.DefaultBoolean;

public interface UserProfileConfig extends Config {
    @Property("ext.security.hideChangePasswordInSettings")
    @DefaultBoolean(false)
    @Source(type = SourceType.APP)
    boolean getHideChangePasswordInSettings();

    @Property("ext.security.defaultViewForUserProfile")
    @Default("user.profile")
    @Source(type = SourceType.APP)
    String getDefaultViewForUserProfile();

    @Property("ext.security.defaultViewForUserProfileUpdate")
    @Default("user.profileUpdate")
    @Source(type = SourceType.APP)
    String getDefaultViewForUserProfileUpdate();
}

@@ -353,393 +353,1354 @@
 an;%0A
-%0Apublic interface UserProfileConfig extends Config %7B%0A    @Property(%22ext.security.hideChangePasswordInSettings%22)%0A    @DefaultBoolean(false)%0A    @Source(type = SourceType.APP)%0A    boolean getHideChangePasswordInSettings();%0A%0A    @Property(%22ext.security.defaultViewForUserProfile%22)%0A    @Default(%22user.profile%22)%0A    @Source(type = SourceType.APP)%0A    String getDefaultViewForUserProfile();%0A
+import com.haulmont.cuba.security.entity.User;%0Aimport it.nexbit.cuba.security.userprofile.app.UserProfileService;%0A%0Apublic interface UserProfileConfig extends Config %7B%0A    /**%0A     * Get a flag to instruct if hiding the %22Change password%22 button from the Settings screen.%0A     * Default: %7B@code false%7D%0A     *%0A     * @return %7B@code true%7D to hide the button or %7B@code false%7D to retain the default behavior.%0A     */%0A    @Property(%22ext.security.hideChangePasswordInSettings%22)%0A    @DefaultBoolean(false)%0A    @Source(type = SourceType.APP)%0A    boolean getHideChangePasswordInSettings();%0A%0A    /**%0A     * Get the view name used by the %7B@link UserProfileService#getProfile()%7D method to select%0A     * which properties to include in the returned %7B@code User%7D entity.%0A     * Default: %22user.profile%22%0A     *%0A     * @return a %7B@code String%7D with the view name%0A     */%0A    @Property(%22ext.security.defaultViewForUserProfile%22)%0A    @Default(%22user.profile%22)%0A    @Source(type = SourceType.APP)%0A    String getDefaultViewForUserProfile();%0A%0A    /**%0A     * Get the view name used by the %7B@link UserProfileService#updateProfile(User)%7D method to%0A     * determine which properties will be updated in the %7B@code User%7D entity stored in the current%0A     * %7B@code UserSession%7D.%0A     * Default: %22user.profileUpdate%22%0A     *%0A     * @return a %7B@code String%7D with the view name%0A     */
 %0A   

Add javadoc