Search in sources :

Example 1 with UISelectItems

use of javax.faces.component.UISelectItems in project acs-community-packaging by Alfresco.

the class UILanguageSelector method encodeBegin.

@Override
@SuppressWarnings("unchecked")
public void encodeBegin(FacesContext context) throws IOException {
    // SelectItems component.
    if (getChildren().size() == 0) {
        UISelectItems items = (UISelectItems) context.getApplication().createComponent("javax.faces.SelectItems");
        items.setId(this.getId() + "_items");
        items.setValue(createList());
        // add the child component
        getChildren().add(items);
    }
    // do the default processing
    super.encodeBegin(context);
}
Also used : UISelectItems(javax.faces.component.UISelectItems)

Example 2 with UISelectItems

use of javax.faces.component.UISelectItems in project acs-community-packaging by Alfresco.

the class UISearchCustomProperties method generateControl.

/**
 * Generates an appropriate control for the given property
 *
 * @param context       JSF context
 * @param propDef       The definition of the property to create the control for
 * @param displayLabel  Display label for the component
 * @param beanBinding   Combined name of the value bound bean and variable used for value binding expression
 *
 * @return UIComponent
 */
@SuppressWarnings("unchecked")
private UIComponent generateControl(FacesContext context, PropertyDefinition propDef, String displayLabel, String beanBinding) {
    UIComponent control = null;
    DataTypeDefinition dataTypeDef = propDef.getDataType();
    QName typeName = dataTypeDef.getName();
    javax.faces.application.Application facesApp = context.getApplication();
    // create default value binding to a Map of values with a defined name
    ValueBinding vb = facesApp.createValueBinding("#{" + beanBinding + "[\"" + propDef.getName().toString() + "\"]}");
    // generate the appropriate input field
    if (typeName.equals(DataTypeDefinition.BOOLEAN)) {
        control = (UISelectBoolean) facesApp.createComponent(ComponentConstants.JAVAX_FACES_SELECT_BOOLEAN);
        control.setRendererType(ComponentConstants.JAVAX_FACES_CHECKBOX);
        control.setValueBinding(VALUE, vb);
    } else if (typeName.equals(DataTypeDefinition.CATEGORY)) {
        control = (UICategorySelector) facesApp.createComponent(RepoConstants.ALFRESCO_FACES_TAG_SELECTOR);
        control.setValueBinding(VALUE, vb);
    } else if (typeName.equals(DataTypeDefinition.DATETIME) || typeName.equals(DataTypeDefinition.DATE)) {
        Boolean showTime = Boolean.valueOf(typeName.equals(DataTypeDefinition.DATETIME));
        // create value bindings for the start year and year count attributes
        ValueBinding startYearBind = null;
        ValueBinding yearCountBind = null;
        if (showTime) {
            startYearBind = facesApp.createValueBinding("#{DateTimePickerGenerator.startYear}");
            yearCountBind = facesApp.createValueBinding("#{DateTimePickerGenerator.yearCount}");
        } else {
            startYearBind = facesApp.createValueBinding("#{DatePickerGenerator.startYear}");
            yearCountBind = facesApp.createValueBinding("#{DatePickerGenerator.yearCount}");
        }
        // Need to output component for From and To date selectors and labels
        // also neeed checkbox for enable/disable state - requires an outer wrapper component
        control = (UIPanel) facesApp.createComponent(ComponentConstants.JAVAX_FACES_PANEL);
        control.setRendererType(ComponentConstants.JAVAX_FACES_GRID);
        control.getAttributes().put("columns", Integer.valueOf(2));
        // enabled state checkbox
        UIInput checkbox = (UIInput) facesApp.createComponent(ComponentConstants.JAVAX_FACES_SELECT_BOOLEAN);
        checkbox.setRendererType(ComponentConstants.JAVAX_FACES_CHECKBOX);
        checkbox.setId(context.getViewRoot().createUniqueId());
        ValueBinding vbCheckbox = facesApp.createValueBinding("#{" + beanBinding + "[\"" + propDef.getName().toString() + "\"]}");
        checkbox.setValueBinding(VALUE, vbCheckbox);
        control.getChildren().add(checkbox);
        // main display label
        UIOutput label = (UIOutput) context.getApplication().createComponent(ComponentConstants.JAVAX_FACES_OUTPUT);
        label.setId(context.getViewRoot().createUniqueId());
        label.setRendererType(ComponentConstants.JAVAX_FACES_TEXT);
        label.setValue(displayLabel + ":");
        control.getChildren().add(label);
        // from date label
        UIOutput labelFromDate = (UIOutput) context.getApplication().createComponent(ComponentConstants.JAVAX_FACES_OUTPUT);
        labelFromDate.setId(context.getViewRoot().createUniqueId());
        labelFromDate.setRendererType(ComponentConstants.JAVAX_FACES_TEXT);
        labelFromDate.setValue(Application.getMessage(context, MSG_FROM));
        control.getChildren().add(labelFromDate);
        // from date control
        UIInput inputFromDate = (UIInput) facesApp.createComponent(ComponentConstants.JAVAX_FACES_INPUT);
        inputFromDate.setId(context.getViewRoot().createUniqueId());
        inputFromDate.setRendererType(RepoConstants.ALFRESCO_FACES_DATE_PICKER_RENDERER);
        inputFromDate.setValueBinding("startYear", startYearBind);
        inputFromDate.setValueBinding("yearCount", yearCountBind);
        inputFromDate.getAttributes().put("initialiseIfNull", Boolean.TRUE);
        inputFromDate.getAttributes().put("showTime", showTime);
        ValueBinding vbFromDate = facesApp.createValueBinding("#{" + beanBinding + "[\"" + PREFIX_DATE_FROM + propDef.getName().toString() + "\"]}");
        inputFromDate.setValueBinding(VALUE, vbFromDate);
        control.getChildren().add(inputFromDate);
        // to date label
        UIOutput labelToDate = (UIOutput) context.getApplication().createComponent(ComponentConstants.JAVAX_FACES_OUTPUT);
        labelToDate.setId(context.getViewRoot().createUniqueId());
        labelToDate.setRendererType(ComponentConstants.JAVAX_FACES_TEXT);
        labelToDate.setValue(Application.getMessage(context, MSG_TO));
        control.getChildren().add(labelToDate);
        // to date control
        UIInput inputToDate = (UIInput) facesApp.createComponent(ComponentConstants.JAVAX_FACES_INPUT);
        inputToDate.setId(context.getViewRoot().createUniqueId());
        inputToDate.setRendererType(RepoConstants.ALFRESCO_FACES_DATE_PICKER_RENDERER);
        inputToDate.setValueBinding("startYear", startYearBind);
        inputToDate.setValueBinding("yearCount", yearCountBind);
        inputToDate.getAttributes().put("initialiseIfNull", Boolean.TRUE);
        inputToDate.getAttributes().put("showTime", showTime);
        ValueBinding vbToDate = facesApp.createValueBinding("#{" + beanBinding + "[\"" + PREFIX_DATE_TO + propDef.getName().toString() + "\"]}");
        inputToDate.setValueBinding(VALUE, vbToDate);
        control.getChildren().add(inputToDate);
    } else if (typeName.equals(DataTypeDefinition.NODE_REF)) {
        control = (UISpaceSelector) facesApp.createComponent(RepoConstants.ALFRESCO_FACES_SPACE_SELECTOR);
        control.setValueBinding(VALUE, vb);
    } else {
        ListOfValuesConstraint constraint = getListOfValuesConstraint(propDef);
        if (constraint != null && propDef != null && propDef.isProtected() == false) {
            control = (UISelectOne) facesApp.createComponent(UISelectOne.COMPONENT_TYPE);
            UISelectItems itemsComponent = (UISelectItems) facesApp.createComponent(ComponentConstants.JAVAX_FACES_SELECT_ITEMS);
            List<SelectItem> items = new ArrayList<SelectItem>();
            List<String> values = constraint.getAllowedValues();
            for (String value : values) {
                items.add(new SelectItem(value, value));
            }
            itemsComponent.setValue(items);
            // add the items as a child component
            control.getChildren().add(itemsComponent);
            ValueBinding vbItemList = facesApp.createValueBinding("#{" + beanBinding + "[\"" + PREFIX_LOV_ITEM + propDef.getName().toString() + "\"]}");
            control.setValueBinding(VALUE, vbItemList);
        } else {
            // any other type is represented as an input text field
            control = (UIInput) facesApp.createComponent(ComponentConstants.JAVAX_FACES_INPUT);
            control.setRendererType(ComponentConstants.JAVAX_FACES_TEXT);
            control.setValueBinding("size", facesApp.createValueBinding("#{TextFieldGenerator.size}"));
            control.setValueBinding("maxlength", facesApp.createValueBinding("#{TextFieldGenerator.maxLength}"));
            control.setValueBinding(VALUE, vb);
        }
    }
    // set up the common aspects of the control
    control.setId(context.getViewRoot().createUniqueId());
    return control;
}
Also used : UISelectItems(javax.faces.component.UISelectItems) QName(org.alfresco.service.namespace.QName) ValueBinding(javax.faces.el.ValueBinding) UIComponent(javax.faces.component.UIComponent) DataTypeDefinition(org.alfresco.service.cmr.dictionary.DataTypeDefinition) UIInput(javax.faces.component.UIInput) UIOutput(javax.faces.component.UIOutput) SelectItem(javax.faces.model.SelectItem) ListOfValuesConstraint(org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint) ArrayList(java.util.ArrayList) List(java.util.List) UISelectBoolean(javax.faces.component.UISelectBoolean) UISelectOne(javax.faces.component.UISelectOne)

Example 3 with UISelectItems

use of javax.faces.component.UISelectItems in project acs-community-packaging by Alfresco.

the class UIStoreSelector method encodeBegin.

@Override
@SuppressWarnings("unchecked")
public void encodeBegin(FacesContext context) throws IOException {
    if (getChildren().size() == 0) {
        UISelectItems items = (UISelectItems) context.getApplication().createComponent("javax.faces.SelectItems");
        items.setId(this.getId() + "_items");
        items.setValue(createList());
        // add the child component
        getChildren().add(items);
    }
    // do the default processing
    super.encodeBegin(context);
}
Also used : UISelectItems(javax.faces.component.UISelectItems)

Example 4 with UISelectItems

use of javax.faces.component.UISelectItems in project acs-community-packaging by Alfresco.

the class UICharsetSelector method encodeBegin.

@Override
@SuppressWarnings("unchecked")
public void encodeBegin(FacesContext context) throws IOException {
    // SelectItems component.
    if (getChildren().size() == 0) {
        UISelectItems items = (UISelectItems) context.getApplication().createComponent("javax.faces.SelectItems");
        items.setId(this.getId() + "_items");
        items.setValue(createList());
        // add the child component
        getChildren().add(items);
    }
    // do the default processing
    super.encodeBegin(context);
}
Also used : UISelectItems(javax.faces.component.UISelectItems)

Example 5 with UISelectItems

use of javax.faces.component.UISelectItems in project acs-community-packaging by Alfresco.

the class LanguageSelectorGenerator method generate.

@SuppressWarnings("unchecked")
public UIComponent generate(FacesContext context, String id) {
    UIComponent component = context.getApplication().createComponent(UISelectOne.COMPONENT_TYPE);
    FacesHelper.setupComponentId(context, component, id);
    // create the list of choices
    UISelectItems itemsComponent = (UISelectItems) context.getApplication().createComponent("javax.faces.SelectItems");
    itemsComponent.setValue(getLanguageItems());
    // add the items as a child component
    component.getChildren().add(itemsComponent);
    return component;
}
Also used : UISelectItems(javax.faces.component.UISelectItems) UIComponent(javax.faces.component.UIComponent)

Aggregations

UISelectItems (javax.faces.component.UISelectItems)7 UIComponent (javax.faces.component.UIComponent)3 ArrayList (java.util.ArrayList)2 SelectItem (javax.faces.model.SelectItem)2 ListOfValuesConstraint (org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint)2 List (java.util.List)1 UIInput (javax.faces.component.UIInput)1 UIOutput (javax.faces.component.UIOutput)1 UISelectBoolean (javax.faces.component.UISelectBoolean)1 UISelectOne (javax.faces.component.UISelectOne)1 ValueBinding (javax.faces.el.ValueBinding)1 DataTypeDefinition (org.alfresco.service.cmr.dictionary.DataTypeDefinition)1 PropertyDefinition (org.alfresco.service.cmr.dictionary.PropertyDefinition)1 QName (org.alfresco.service.namespace.QName)1