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;
}
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;
}
}
}
}
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;
}
}
}
}
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);
}
}
}
}
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();
}
Aggregations