@Override public void initNestedMetawidget( StaticMetawidget nestedMetawidget, Map<String, String> attributes ) { super.initNestedMetawidget( nestedMetawidget, attributes ); if ( ( (StaticUIMetawidget) nestedMetawidget ).getValue() == null ) { String valueExpression = getValue(); valueExpression = StaticFacesUtils.unwrapExpression( valueExpression ); valueExpression += StringUtils.SEPARATOR_DOT_CHAR + attributes.get( NAME ); valueExpression = StaticFacesUtils.wrapExpression( valueExpression ); ( (StaticUIMetawidget) nestedMetawidget ).setValue( valueExpression ); } } }
valueExpression = StaticFacesUtils.wrapExpression( valueExpression );
/** * Overrriden to enhance the default f:selectItem widget with more suitable item labels */ @Override protected void addSelectItems(HtmlSelectOneMenu select, String valueExpression, Map<String, String> attributes) { // Empty option // // Note: a 'null' value (rather than an empty String') renders an <f:selectItem/> rather // than an <f:selectItem itemValue=""/>. This works out better if the HtmlSelectOneMenu has // a converter, because the empty String may not be a compatible value if (WidgetBuilderUtils.needsEmptyLookupItem(attributes)) { addSelectItem(select, null, null); } // Add the select items SelectItems selectItems = new SelectItems(); selectItems.putAttribute("value", valueExpression); // For each item to be displayed, set the label to the reverse primary key value if (attributes.containsKey(REVERSE_PRIMARY_KEY)) { selectItems.putAttribute("var", SELECT_ITEM); selectItems.putAttribute("itemValue", StaticFacesUtils.wrapExpression(SELECT_ITEM)); String displayExpression = "forgeview:display(_item)"; ((BaseStaticXmlWidget) selectItems).putAdditionalNamespaceURI("forgeview", "http://jboss.org/forge/view"); selectItems.putAttribute("itemLabel", StaticFacesUtils.wrapExpression(displayExpression)); } select.getChildren().add(selectItems); }
/** * Overrriden to enhance the default f:selectItem widget with more suitable item labels */ @Override protected void addSelectItems( HtmlSelectOneMenu select, String valueExpression, Map<String, String> attributes ) { // Empty option // // Note: a 'null' value (rather than an empty String') renders an <f:selectItem/> rather // than an <f:selectItem itemValue=""/>. This works out better if the HtmlSelectOneMenu has // a converter, because the empty String may not be a compatible value if ( WidgetBuilderUtils.needsEmptyLookupItem( attributes ) ) { addSelectItem( select, null, null ); } // Add the select items SelectItems selectItems = new SelectItems(); selectItems.putAttribute("value", valueExpression); // For each item to be displayed, set the label to the reverse primary key value if (attributes.containsKey(REVERSE_PRIMARY_KEY)) { selectItems.putAttribute("var", SELECT_ITEM); selectItems.putAttribute("itemValue", StaticFacesUtils.wrapExpression(SELECT_ITEM)); String displayExpression = "forgeview:display(_item)"; ((BaseStaticXmlWidget) selectItems).putAdditionalNamespaceURI("forgeview", "http://jboss.org/forge/view"); selectItems.putAttribute("itemLabel", StaticFacesUtils.wrapExpression(displayExpression)); } select.getChildren().add( selectItems ); }
param.putAttribute( "value", StaticFacesUtils.wrapExpression(dataTable.getAttribute("var") + StringUtils.SEPARATOR_DOT_CHAR + primaryKeyName)); link.getChildren().add(param); + StringUtils.SEPARATOR_DOT_CHAR + StringUtils.decapitalize(columnAttributes.get(NAME)); output.setValue(StaticFacesUtils.wrapExpression(displayExpression)); output.setValue(StaticFacesUtils.wrapExpression(valueExpression)); footerMetawidget.setValue(StaticFacesUtils.wrapExpression(controllerName + "Bean.add." + columnName)); footerMetawidget.setPath(componentType + StringUtils.SEPARATOR_FORWARD_SLASH_CHAR + columnName); footerMetawidget.setLayout(new SimpleLayout());
param.putAttribute( "value", StaticFacesUtils.wrapExpression(dataTable.getAttribute("var") + StringUtils.SEPARATOR_DOT_CHAR + primaryKeyName)); link.getChildren().add(param); + StringUtils.decapitalize(columnAttributes.get(NAME)) + ")"; ((BaseStaticXmlWidget) link).putAdditionalNamespaceURI("forgeview", "http://jboss.org/forge/view"); output.setValue(StaticFacesUtils.wrapExpression(displayExpression)); output.setValue(StaticFacesUtils.wrapExpression(valueExpression)); footerMetawidget.setValue(StaticFacesUtils.wrapExpression(controllerName + "Bean.add." + columnName)); footerMetawidget.setPath(componentType + StringUtils.SEPARATOR_FORWARD_SLASH_CHAR + columnName); footerMetawidget.setLayout(new SimpleLayout());
StaticFacesUtils.wrapExpression("!empty " + StaticFacesUtils.unwrapExpression(link.getValue()))); param.putAttribute( "value", StaticFacesUtils.wrapExpression(StaticFacesUtils.unwrapExpression(link.getValue()) + StringUtils.SEPARATOR_DOT_CHAR + reverseKey)); outputText.putAttribute("styleClass", StaticFacesUtils.wrapExpression(styleClassEl)); outputText.setValue(""); String unwrappedExpression = StaticFacesUtils.unwrapExpression(nestedMetawidget.getValue()); nestedMetawidget.putAttribute("rendered", StaticFacesUtils.wrapExpression("!empty " + unwrappedExpression)); commandLink.putAttribute( "action", StaticFacesUtils.wrapExpression(parentExpression + ".new" + StringUtils.capitalize(childExpression))); commandLink.putAttribute("rendered", StaticFacesUtils.wrapExpression("empty " + unwrappedExpression));
attributes .put(FACES_LOOKUP, StaticFacesUtils.wrapExpression(StringUtils.decapitalize(ClassUtils.getSimpleName(property .getType())) + "Bean.all")); StaticFacesUtils.wrapExpression(StringUtils.decapitalize(ClassUtils.getSimpleName(property .getType())) + "Bean.converter"));
columnContents.putAttribute( "value", StaticFacesUtils.wrapExpression( dataTable.getAttribute( "var" ) ) ); } else { columnContents.putAttribute( "value", StaticFacesUtils.wrapExpression( valueExpression ) );
param.putAttribute( "value", StaticFacesUtils.wrapExpression(StaticFacesUtils.unwrapExpression(link.getValue()) + StringUtils.SEPARATOR_DOT_CHAR + reverseKey)); link.getChildren().add(param); outputText.putAttribute("styleClass", StaticFacesUtils.wrapExpression(styleClassEl)); outputText.setValue(""); String unwrappedExpression = StaticFacesUtils.unwrapExpression(nestedMetawidget.getValue()); nestedMetawidget.putAttribute("rendered", StaticFacesUtils.wrapExpression("!empty " + unwrappedExpression)); commandLink.putAttribute( "action", StaticFacesUtils.wrapExpression(parentExpression + ".new" + StringUtils.capitalize(childExpression))); commandLink.putAttribute("rendered", StaticFacesUtils.wrapExpression("empty " + unwrappedExpression));
removeLink.putAttribute("styleClass", "remove-button"); String removeExpression = COLLECTION_VAR + ".remove(" + dataTable.getAttribute("var") + ")"; removeLink.putAttribute("action", StaticFacesUtils.wrapExpression(removeExpression)); addLink.putAttribute("styleClass", "add-button"); String addExpression = COLLECTION_VAR + ".add(" + controllerName + "Bean.added)"; addLink.putAttribute("action", StaticFacesUtils.wrapExpression(addExpression)); setPropertyActionListener.putAttribute( "target", StaticFacesUtils.wrapExpression(controllerName + "Bean.add." + inverseRelationship)); StandardBindingProcessor bindingProcessor = metawidget.getWidgetProcessor(StandardBindingProcessor.class);
valueHolderTable.setValue(StaticFacesUtils.wrapExpression(asListValueExpression)); ((BaseStaticXmlWidget) dataTable).putAdditionalNamespaceURI("forgeview", "http://jboss.org/forge/view"); valueHolderTable.setValue(StaticFacesUtils.wrapExpression("forgeview:asList(" + COLLECTION_VAR + ")")); valueHolderTable.setValue(StaticFacesUtils.wrapExpression(COLLECTION_VAR)); select.putAttribute("id", selectId); String requestScopedValue = "requestScope['" + selectId + "']"; select.setValue(StaticFacesUtils.wrapExpression(requestScopedValue)); String simpleComponentType = ClassUtils.getSimpleName(componentType); String controllerName = StringUtils.decapitalize(simpleComponentType); select.setConverter(StaticFacesUtils.wrapExpression(controllerName + "Bean.converter")); addSelectItems(select, StaticFacesUtils.wrapExpression(controllerName + "Bean.all"), attributes); panelGrid.getChildren().add(select); addLink.putAttribute("styleClass", "add-button"); String addExpression = COLLECTION_VAR + ".add(" + requestScopedValue + ")"; addLink.putAttribute("action", StaticFacesUtils.wrapExpression(addExpression)); addLink.putAttribute("onclick", "if (document.getElementById(document.forms[0].id+':" + selectId + "').selectedIndex < 1) { alert('Must select a " + StringUtils.uncamelCase(simpleComponentType)
valueHolderTable.setValue(StaticFacesUtils.wrapExpression(asListValueExpression)); ((BaseStaticXmlWidget) dataTable).putAdditionalNamespaceURI("forgeview", "http://jboss.org/forge/view"); valueHolderTable.setValue(StaticFacesUtils.wrapExpression("forgeview:asList(" + COLLECTION_VAR + ")")); valueHolderTable.setValue(StaticFacesUtils.wrapExpression(COLLECTION_VAR)); select.putAttribute("id", selectId); String requestScopedValue = "requestScope['" + selectId + "']"; select.setValue(StaticFacesUtils.wrapExpression(requestScopedValue)); String simpleComponentType = ClassUtils.getSimpleName(componentType); String controllerName = StringUtils.decapitalize(simpleComponentType); select.setConverter(StaticFacesUtils.wrapExpression(controllerName + "Bean.converter")); addSelectItems(select, StaticFacesUtils.wrapExpression(controllerName + "Bean.all"), attributes); panelGrid.getChildren().add(select); addLink.putAttribute("styleClass", "add-button"); String addExpression = COLLECTION_VAR + ".add(" + requestScopedValue + ")"; addLink.putAttribute("action", StaticFacesUtils.wrapExpression(addExpression)); addLink.putAttribute("onclick", "if (document.getElementById(document.forms[0].id+':" + selectId + "').selectedIndex < 1) { alert('Must select a " + StringUtils.uncamelCase(simpleComponentType)
removeLink.putAttribute("styleClass", "remove-button"); String removeExpression = COLLECTION_VAR + ".remove(" + dataTable.getAttribute("var") + ")"; removeLink.putAttribute("action", StaticFacesUtils.wrapExpression(removeExpression)); addLink.putAttribute("styleClass", "add-button"); String addExpression = COLLECTION_VAR + ".add(" + controllerName + "Bean.added)"; addLink.putAttribute("action", StaticFacesUtils.wrapExpression(addExpression)); setPropertyActionListener.putAttribute( "target", StaticFacesUtils.wrapExpression(controllerName + "Bean.add." + inverseRelationship)); StandardBindingProcessor bindingProcessor = metawidget.getWidgetProcessor(StandardBindingProcessor.class);
attributes .put(FACES_LOOKUP, StaticFacesUtils.wrapExpression(StringUtils.decapitalize(ClassUtils.getSimpleName(property .getType())) + "Bean.all")); StaticFacesUtils.wrapExpression(StringUtils.decapitalize(ClassUtils.getSimpleName(property .getType())) + "Bean.converter"));
this.entityMetawidget.setValue(StaticFacesUtils.wrapExpression(beanName + "." + ccEntity)); this.entityMetawidget.setPath(entity.getQualifiedName()); this.entityMetawidget.setReadOnly(false); this.searchMetawidget.setValue(StaticFacesUtils.wrapExpression(beanName + ".example")); this.searchMetawidget.setPath(entity.getQualifiedName()); this.beanMetawidget.setValue(StaticFacesUtils.wrapExpression(beanName + ".pageItems")); this.beanMetawidget.setPath(viewBean.getQualifiedName() + "/pageItems"); writeSearchAndBeanMetawidget(context, this.searchTemplateSearchMetawidgetIndent,
this.entityMetawidget.setValue(StaticFacesUtils.wrapExpression(beanName + "." + ccEntity)); this.entityMetawidget.setPath(entity.getQualifiedName()); this.entityMetawidget.setReadOnly(false); this.searchMetawidget.setValue(StaticFacesUtils.wrapExpression(beanName + ".example")); this.searchMetawidget.setPath(entity.getQualifiedName()); this.beanMetawidget.setValue(StaticFacesUtils.wrapExpression(beanName + ".pageItems")); this.beanMetawidget.setPath(viewBean.getQualifiedName() + "/pageItems"); writeSearchAndBeanMetawidget(context, this.searchTemplateSearchMetawidgetIndent,