谁能给我一个关于如何使用双语功能向属性添加约束值的示例

发布于 2024-12-03 16:51:01 字数 4798 浏览 1 评论 0原文

我在数据模型中有一个属性,该属性必须具有受已知类型约束并定义为类的值。

由以下类型定义的约束值和 allowedValues/allowedLabels 列表已填充

package com.ds.ui.constraints;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import javax.faces.model.SelectItem;
import org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint;
import org.apache.log4j.Logger;
import com.ds.ui.bean.dialog.util.BeanUtil;

public class PositionPermissionsConstraints extends ListOfValuesConstraint
    implements Serializable {

public void initialize(){
    LOG.debug("PositionPermissionsConstraints Initializer");
    super.setCaseSensitive(false);
    preparePermissionList();
}

public void preparePermissionList(){
    ResourceBundle bundle = ResourceBundle.getBundle(BeanUtil.RESOURECE_BUNDLE);
    List<String> av = new ArrayList<String>();
    av
    .add(PositionPermissionsConstraints.
            CREATE_ORGANIZATION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(CREATE_ORGANIZATION_PERMISSION));
    av
        .add(PositionPermissionsConstraints.
                UPDATE_ORGANIZATION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(UPDATE_ORGANIZATION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                DELETE_ORGANIZATION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(DELETE_ORGANIZATION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                CREATE_ROOT_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(CREATE_ROOT_POSITION_PERMISSION));            
    av
        .add(PositionPermissionsConstraints.
                MANAGE_ROOT_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(MANAGE_ROOT_POSITION_PERMISSION));
    av
    .add(PositionPermissionsConstraints.
            CREATE_SUBORDINATE_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(CREATE_SUBORDINATE_POSITION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                UPDATE_SUBORDINATE_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(UPDATE_SUBORDINATE_POSITION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                DELETE_SUBORDINATE_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(DELETE_SUBORDINATE_POSITION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                MANAGE_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(MANAGE_POSITION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                ASSIGN_POSITION_TO_USER_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(ASSIGN_POSITION_TO_USER_PERMISSION));
    this.setAllowedValues(av);
    this.setAllowedLabels(allowedLabels);

}

public List<SelectItem> prepareSelectItemsList(){
    ResourceBundle bundle = ResourceBundle.getBundle(BeanUtil.RESOURECE_BUNDLE);
    List<SelectItem> selectItems = new ArrayList<SelectItem>();
    for(String value : getAllowedValues()){
        SelectItem selectItem = new SelectItem(value,bundle.getString(value));
        selectItems.add(selectItem);
    }
    return selectItems;
}

private static final String CREATE_ORGANIZATION_PERMISSION = "CREATE_ORGANIZATION";
private static final String UPDATE_ORGANIZATION_PERMISSION = "UPDATE_ORGANIZATION";
private static final String DELETE_ORGANIZATION_PERMISSION = "DELETE_ORGANIZATION";
private static final String CREATE_ROOT_POSITION_PERMISSION = "CREATE_ROOT_POSITION";
private static final String MANAGE_ROOT_POSITION_PERMISSION = "MANAGE_ROOT_POSITION";
private static final String CREATE_SUBORDINATE_POSITION_PERMISSION = "CREATE_SUBORDINATE_POSITION";
private static final String UPDATE_SUBORDINATE_POSITION_PERMISSION = "UPDATE_SUBORDINATE_POSITION";
private static final String DELETE_SUBORDINATE_POSITION_PERMISSION = "DELETE_SUBORDINATE_POSITION";
private static final String MANAGE_POSITION_PERMISSION = "MANAGE_POSITION";
private static final String ASSIGN_POSITION_TO_USER_PERMISSION = "ASSIGN_POSITION_TO_USER";

private List<String> allowedLabels = new ArrayList<String>();
private static final long serialVersionUID = 1L;
private static Logger LOG = Logger.getLogger(PositionPermissionsConstraints.class);

public List<String> getAllowedLabels() {
    return allowedLabels;
}
public void setAllowedLabels(List<String> allowedLabels) {
    this.allowedLabels = allowedLabels;
}}

正如您所看到的 allowedValues/labels 已填充,但是一旦我通过使用模型定义本身将属性与此约束关联起来,就会看到值而不是值和标签。

如您所见,标签是多语言的,那么我如何强制显示标签以及如何强制显示多语言。

也许我需要开发一个新的组件生成器!

请任何人都可以通过明确的步骤指导我。

谢谢 穆罕默德·阿米尔

I have a property within a data model, that property must have a value constrained from a type know and defined as a class.

The constraints values defined by the following type and the allowedValues/allowedLabels list are filled

package com.ds.ui.constraints;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import javax.faces.model.SelectItem;
import org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint;
import org.apache.log4j.Logger;
import com.ds.ui.bean.dialog.util.BeanUtil;

public class PositionPermissionsConstraints extends ListOfValuesConstraint
    implements Serializable {

public void initialize(){
    LOG.debug("PositionPermissionsConstraints Initializer");
    super.setCaseSensitive(false);
    preparePermissionList();
}

public void preparePermissionList(){
    ResourceBundle bundle = ResourceBundle.getBundle(BeanUtil.RESOURECE_BUNDLE);
    List<String> av = new ArrayList<String>();
    av
    .add(PositionPermissionsConstraints.
            CREATE_ORGANIZATION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(CREATE_ORGANIZATION_PERMISSION));
    av
        .add(PositionPermissionsConstraints.
                UPDATE_ORGANIZATION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(UPDATE_ORGANIZATION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                DELETE_ORGANIZATION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(DELETE_ORGANIZATION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                CREATE_ROOT_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(CREATE_ROOT_POSITION_PERMISSION));            
    av
        .add(PositionPermissionsConstraints.
                MANAGE_ROOT_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(MANAGE_ROOT_POSITION_PERMISSION));
    av
    .add(PositionPermissionsConstraints.
            CREATE_SUBORDINATE_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(CREATE_SUBORDINATE_POSITION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                UPDATE_SUBORDINATE_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(UPDATE_SUBORDINATE_POSITION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                DELETE_SUBORDINATE_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(DELETE_SUBORDINATE_POSITION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                MANAGE_POSITION_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(MANAGE_POSITION_PERMISSION));         
    av
        .add(PositionPermissionsConstraints.
                ASSIGN_POSITION_TO_USER_PERMISSION);
    this.allowedLabels
    .add(bundle.getString(ASSIGN_POSITION_TO_USER_PERMISSION));
    this.setAllowedValues(av);
    this.setAllowedLabels(allowedLabels);

}

public List<SelectItem> prepareSelectItemsList(){
    ResourceBundle bundle = ResourceBundle.getBundle(BeanUtil.RESOURECE_BUNDLE);
    List<SelectItem> selectItems = new ArrayList<SelectItem>();
    for(String value : getAllowedValues()){
        SelectItem selectItem = new SelectItem(value,bundle.getString(value));
        selectItems.add(selectItem);
    }
    return selectItems;
}

private static final String CREATE_ORGANIZATION_PERMISSION = "CREATE_ORGANIZATION";
private static final String UPDATE_ORGANIZATION_PERMISSION = "UPDATE_ORGANIZATION";
private static final String DELETE_ORGANIZATION_PERMISSION = "DELETE_ORGANIZATION";
private static final String CREATE_ROOT_POSITION_PERMISSION = "CREATE_ROOT_POSITION";
private static final String MANAGE_ROOT_POSITION_PERMISSION = "MANAGE_ROOT_POSITION";
private static final String CREATE_SUBORDINATE_POSITION_PERMISSION = "CREATE_SUBORDINATE_POSITION";
private static final String UPDATE_SUBORDINATE_POSITION_PERMISSION = "UPDATE_SUBORDINATE_POSITION";
private static final String DELETE_SUBORDINATE_POSITION_PERMISSION = "DELETE_SUBORDINATE_POSITION";
private static final String MANAGE_POSITION_PERMISSION = "MANAGE_POSITION";
private static final String ASSIGN_POSITION_TO_USER_PERMISSION = "ASSIGN_POSITION_TO_USER";

private List<String> allowedLabels = new ArrayList<String>();
private static final long serialVersionUID = 1L;
private static Logger LOG = Logger.getLogger(PositionPermissionsConstraints.class);

public List<String> getAllowedLabels() {
    return allowedLabels;
}
public void setAllowedLabels(List<String> allowedLabels) {
    this.allowedLabels = allowedLabels;
}}

As you see the allowedValues/labels are filled but once i correlate the property with this constraint by using model definition itself the values are seeing rather than values and labels.

labels are multi lingual as you can see, so how can i enforce the labels to be displayed and how can i enforce the multi lingual.

May be i need to develop a new component generators !

Please, can any one guide me by a clear steps.

thanks
Mohammed Amr

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不寐倦长更 2024-12-10 16:51:01

在 Alfresco 中,如果定义正常约束列表,则仅显示值。

Alfresco 在生成器/渲染器中所做的是制作 HTML
每个约束将显示为

因此,如果您确实想创建一个具有不同值和不同标签的列表,您可以需要创建自己的生成器+渲染器。
您可以使用默认值作为示例并在其基础上进行构建。
您需要输出

Within Alfresco, if you define a normal constraint list, only the value will be displayed.

What Alfresco does in the generator/renderer is make a HTML
Each constraint will get presented as <option value=${value}>${value}</option>

Thus if you really want to create a list with different value and different labels, you need to create your own Generator + Renderer.
You could use the default as an example and build upon it.
You need to output <option value=${value}>${label}</option>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文