Может ли кто-нибудь дать мне пример о том, как добавить значения ограничений в свойство с двуязычным средством - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть свойство в модели данных, это свойство должно иметь значение, ограниченное типом, известным и определенным как класс.

Значения ограничений, определенные следующим типом и списком allowValues ​​/ allowLabels:заполнено

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;
}}

Как видите, разрешенные значения / метки заполнены, но как только я сопоставляю свойство с этим ограничением, используя само определение модели, значения видятся, а не значения и метки.

меткикак вы можете видеть, многоязычны, так как я могу обеспечить отображение меток и как многоязычно.

Может быть, мне нужно разработать генераторы новых компонентов!

Пожалуйста, кто-нибудь может направить меня ясными шагами.

спасибо Мухаммеду Амру

1 Ответ

1 голос
/ 07 сентября 2011

В Alfresco, если вы определите обычный список ограничений, будет отображаться только значение.

Что Alfresco делает в генераторе / рендерере, это создает HTML Каждое ограничение будет представлено как <option value=${value}>${value}</option>

Таким образом, если вы действительно хотите создать список с другим значением и разными метками, вам нужно создать свой собственный Generator + Renderer.Вы можете использовать значение по умолчанию в качестве примера и использовать его.Вам нужно вывести <option value=${value}>${label}</option>

...