Search in sources :

Example 1 with UISelectOne

use of javax.faces.component.UISelectOne 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 2 with UISelectOne

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

the class DashboardWizard method dashletDown.

/**
 * Action event called to move a dashlet down the column list
 */
public void dashletDown(ActionEvent event) {
    UISelectOne dashletColumn = (UISelectOne) event.getComponent().findComponent(COMPONENT_COLUMNDASHLETS);
    // get the ID of the selected Dashlet definition
    String dashletId = (String) dashletColumn.getValue();
    if (dashletId != null) {
        Column column = this.editConfig.getCurrentPage().getColumns().get(this.column);
        // find the dashlet in the list
        for (int i = 0; i < column.getDashlets().size(); i++) {
            if (column.getDashlets().get(i).Id.equals(dashletId)) {
                if (i != column.getDashlets().size() - 1) {
                    DashletDefinition dashletDef = column.getDashlets().get(i);
                    column.getDashlets().remove(i);
                    if (i + 1 < column.getDashlets().size()) {
                        column.getDashlets().add(i + 1, dashletDef);
                    } else {
                        column.getDashlets().add(dashletDef);
                    }
                }
                break;
            }
        }
    }
}
Also used : DashletDefinition(org.alfresco.web.config.DashboardsConfigElement.DashletDefinition) UISelectOne(javax.faces.component.UISelectOne)

Example 3 with UISelectOne

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

the class DashboardWizard method dashletUp.

/**
 * Action event called to move a dashlet up the column list
 */
public void dashletUp(ActionEvent event) {
    UISelectOne dashletColumn = (UISelectOne) event.getComponent().findComponent(COMPONENT_COLUMNDASHLETS);
    // get the ID of the selected Dashlet definition
    String dashletId = (String) dashletColumn.getValue();
    if (dashletId != null) {
        Column column = this.editConfig.getCurrentPage().getColumns().get(this.column);
        // find the dashlet in the list
        for (int i = 0; i < column.getDashlets().size(); i++) {
            if (column.getDashlets().get(i).Id.equals(dashletId)) {
                if (i != 0) {
                    DashletDefinition dashletDef = column.getDashlets().get(i);
                    column.getDashlets().remove(i);
                    column.getDashlets().add(i - 1, dashletDef);
                }
                break;
            }
        }
    }
}
Also used : DashletDefinition(org.alfresco.web.config.DashboardsConfigElement.DashletDefinition) UISelectOne(javax.faces.component.UISelectOne)

Example 4 with UISelectOne

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

the class BaseInviteUsersWizard method addSelection.

/**
 * Action handler called when the Add button is pressed to process the current selection
 */
public void addSelection(ActionEvent event) {
    UIGenericPicker picker = (UIGenericPicker) event.getComponent().findComponent("picker");
    UISelectOne rolePicker = (UISelectOne) event.getComponent().findComponent("roles");
    String[] results = picker.getSelectedResults();
    if (results != null) {
        String role = (String) rolePicker.getValue();
        if (role != null) {
            for (int i = 0; i < results.length; i++) {
                addAuthorityWithRole(results[i], role);
            }
        }
    }
}
Also used : UIGenericPicker(org.alfresco.web.ui.common.component.UIGenericPicker) UISelectOne(javax.faces.component.UISelectOne)

Example 5 with UISelectOne

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

the class UserMembersBean method addRole.

/**
 * Action handler called when the Add Role button is pressed to process the current selection
 */
public void addRole(ActionEvent event) {
    UISelectOne rolePicker = (UISelectOne) event.getComponent().findComponent("roles");
    String role = (String) rolePicker.getValue();
    if (role != null) {
        FacesContext context = FacesContext.getCurrentInstance();
        PermissionWrapper wrapper = new PermissionWrapper(role, Application.getMessage(context, role));
        this.personRoles.add(wrapper);
    }
    // force refresh on return to this page
    contextUpdated();
}
Also used : FacesContext(javax.faces.context.FacesContext) UISelectOne(javax.faces.component.UISelectOne)

Aggregations

UISelectOne (javax.faces.component.UISelectOne)7 DashletDefinition (org.alfresco.web.config.DashboardsConfigElement.DashletDefinition)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 UIComponent (javax.faces.component.UIComponent)1 UIInput (javax.faces.component.UIInput)1 UIOutput (javax.faces.component.UIOutput)1 UISelectBoolean (javax.faces.component.UISelectBoolean)1 UISelectItems (javax.faces.component.UISelectItems)1 UISelectMany (javax.faces.component.UISelectMany)1 FacesContext (javax.faces.context.FacesContext)1 ValueBinding (javax.faces.el.ValueBinding)1 SelectItem (javax.faces.model.SelectItem)1 ListOfValuesConstraint (org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint)1 DataTypeDefinition (org.alfresco.service.cmr.dictionary.DataTypeDefinition)1 QName (org.alfresco.service.namespace.QName)1 DashboardsConfigElement (org.alfresco.web.config.DashboardsConfigElement)1 LayoutDefinition (org.alfresco.web.config.DashboardsConfigElement.LayoutDefinition)1 UIGenericPicker (org.alfresco.web.ui.common.component.UIGenericPicker)1