Author: alexsmirnov
Date: 2011-02-18 20:12:33 -0500 (Fri, 18 Feb 2011)
New Revision: 21792
Added:
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/freemarker/FacetTemplateModel.java
trunk/cdk/generator/src/main/resources/META-INF/templates/_facets.ftl
Modified:
trunk/cdk/attributes/src/main/resources/META-INF/cdk/attributes/javax.faces.component.UIColumn.xml
trunk/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/AttributesProcessorImpl.java
trunk/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/freemarker/LibraryModelWrapper.java
trunk/cdk/generator/src/main/java/org/richfaces/cdk/model/FacetModel.java
trunk/cdk/generator/src/main/resources/META-INF/templates/component.ftl
trunk/cdk/generator/src/test/java/org/richfaces/cdk/apt/processors/AttributesProcessorTest.java
trunk/cdk/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java
trunk/cdk/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/Html5Attributes.java
trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractMediaOutput.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractColumn.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataGrid.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataScroller.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataTable.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UIDataTableBase.java
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDropDownMenu.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractMenuGroup.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractMenuItem.java
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTab.java
Log:
CODING IN PROGRESS - issue RF-10229: CDK generated faces-config does not create a format
that Tools can process
https://issues.jboss.org/browse/RF-10229
Modified:
trunk/cdk/attributes/src/main/resources/META-INF/cdk/attributes/javax.faces.component.UIColumn.xml
===================================================================
---
trunk/cdk/attributes/src/main/resources/META-INF/cdk/attributes/javax.faces.component.UIColumn.xml 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/cdk/attributes/src/main/resources/META-INF/cdk/attributes/javax.faces.component.UIColumn.xml 2011-02-19
01:12:33 UTC (rev 21792)
@@ -1,24 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
- <!--
- JBoss, Home of Professional Open Source Copyright ${year}, Red Hat,
- Inc. and individual contributors by the @authors tag. See the
- copyright.txt in the distribution for a full listing of individual
- contributors. This is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version. This software is
- distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- License for more details. You should have received a copy of the GNU
- Lesser General Public License along with this software; if not, write
- to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
- Boston, MA 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- -->
+<!-- JBoss, Home of Professional Open Source Copyright ${year}, Red Hat,
+ Inc. and individual contributors by the @authors tag. See the copyright.txt
+ in the distribution for a full listing of individual contributors. This is
+ free software; you can redistribute it and/or modify it under the terms of
+ the GNU Lesser General Public License as published by the Free Software Foundation;
+ either version 2.1 of the License, or (at your option) any later version.
+ This software is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ details. You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the
+ FSF site:
http://www.fsf.org. -->
<cdk:properties
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:cdk="http://jboss.org/schema/richfaces/cdk/extensions"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee">
<xi:include
xpointer="xmlns(cdk=http://jboss.org/schema/richfaces/cdk/extensions...
href="urn:attributes:javax.faces.component.UIComponent.xml" />
+ <facet>
+ <description></description>
+ <facet-name>footer</facet-name>
+ </facet>
+ <facet>
+ <description></description>
+ <facet-name>header</facet-name>
+ </facet>
+
</cdk:properties>
Modified:
trunk/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/AttributesProcessorImpl.java
===================================================================
---
trunk/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/AttributesProcessorImpl.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/AttributesProcessorImpl.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -215,7 +215,7 @@
log.debug(" -- Process Java files.");
Set<BeanProperty> properties = Sets.newHashSet();
properties.addAll(sourceUtils.getBeanPropertiesAnnotatedWith(Attribute.class,
element));
- properties.addAll(sourceUtils.getAbstractBeanProperties(element));
+// properties.addAll(sourceUtils.getAbstractBeanProperties(element));
for (BeanProperty beanProperty : properties) {
processAttribute(beanProperty,
component.getOrCreateAttribute(beanProperty.getName()));
}
Modified:
trunk/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java
===================================================================
---
trunk/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/cdk/generator/src/main/java/org/richfaces/cdk/apt/processors/ComponentProcessor.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -29,6 +29,8 @@
import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement;
+import javax.lang.model.type.TypeKind;
+import javax.lang.model.type.TypeMirror;
import org.richfaces.cdk.CdkException;
import org.richfaces.cdk.annotations.Facet;
@@ -109,6 +111,15 @@
processFacets(componentElement, component, annotation);
processAttributes(componentElement, component, annotation);
processEvents(componentElement, component, annotation);
+ for (TypeMirror atributesInterface : sourceUtils
+ .getAnnotationValues(annotation, "interfaces", TypeMirror.class))
{
+ if (TypeKind.DECLARED.equals(atributesInterface.getKind())) {
+ processFacetsFromType(sourceUtils.asTypeElement(atributesInterface),
component, sourceUtils);
+ } else {
+ // TODO - record warning.
+ }
+ }
+
setTagInfo(annotation, component);
// TODO - process @Test annotations.
@@ -130,6 +141,19 @@
final void processFacets(TypeElement componentElement, ComponentModel component,
AnnotationMirror annotation) {
SourceUtils sourceUtils = getSourceUtils();
+ processFacetsFromType(componentElement, component, sourceUtils);
+ for (AnnotationMirror facet : sourceUtils.getAnnotationValues(annotation,
"facets", AnnotationMirror.class)) {
+ if (!sourceUtils.isDefaultValue(facet, "name")) {
+ String name = sourceUtils.getAnnotationValue(facet, "name",
String.class);
+ FacetModel facetModel = component.getOrCreateFacet(name);
+ processFacet(facet, facetModel, null);
+ } else {
+ throw new CdkException("Facet name should be set");
+ }
+ }
+ }
+
+ private void processFacetsFromType(TypeElement componentElement, ComponentModel
component, SourceUtils sourceUtils) {
if (null != componentElement) {
Set<BeanProperty> properties =
sourceUtils.getBeanPropertiesAnnotatedWith(Facet.class, componentElement);
@@ -145,15 +169,6 @@
}
}
- for (AnnotationMirror facet : sourceUtils.getAnnotationValues(annotation,
"facets", AnnotationMirror.class)) {
- if (!sourceUtils.isDefaultValue(facet, "name")) {
- String name = sourceUtils.getAnnotationValue(facet, "name",
String.class);
- FacetModel facetModel = component.getOrCreateFacet(name);
- processFacet(facet, facetModel, null);
- } else {
- throw new CdkException("Facet name should be set");
- }
- }
}
final void processFacet(AnnotationMirror facet, FacetModel facetModel, String
docComment) {
Added:
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/freemarker/FacetTemplateModel.java
===================================================================
---
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/freemarker/FacetTemplateModel.java
(rev 0)
+++
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/freemarker/FacetTemplateModel.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -0,0 +1,104 @@
+/*
+ * $Id: PropertyModel.java 21464 2011-02-04 18:31:43Z alexsmirnov $
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+
+package org.richfaces.cdk.generate.freemarker;
+
+import org.richfaces.cdk.model.FacetModel;
+import org.richfaces.cdk.util.Strings;
+
+import freemarker.ext.beans.BeansWrapper;
+import freemarker.ext.beans.StringModel;
+import freemarker.ext.util.ModelFactory;
+import freemarker.template.ObjectWrapper;
+import freemarker.template.TemplateModel;
+import freemarker.template.TemplateModelException;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class FacetTemplateModel extends StringModel implements TemplateModel {
+ static final ModelFactory FACTORY = new ModelFactory() {
+ public TemplateModel create(Object object, ObjectWrapper wrapper) {
+ return new FacetTemplateModel((FacetModel) object, (BeansWrapper) wrapper);
+ }
+ };
+ private final FacetModel facet;
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param object
+ * @param wrapper
+ */
+ public FacetTemplateModel(FacetModel object, BeansWrapper wrapper) {
+ super(object, wrapper);
+ facet = object;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the name
+ */
+ public String getAsString() {
+ return facet.getName();
+ }
+
+ @Override
+ public TemplateModel get(String key) throws TemplateModelException {
+ Object value;
+
+ if ("getterName".equals(key)) {
+ value = getGetterName();
+ } else if ("setterName".equals(key)) {
+ value = getSetterName();
+ } else if ("name".equals(key)) {
+ value = getAsString();
+ } else if ("capitalizeName".equals(key)) {
+ value = capitalizeName();
+ } else {
+ return super.get(key);
+ }
+
+ return wrapper.wrap(value);
+ }
+
+
+
+ // Model utility methods.
+ public String getGetterName() {
+ return "get" + capitalizeName();
+ }
+
+ public String getSetterName() {
+ return "set" + capitalizeName();
+ }
+
+ public String capitalizeName() {
+ return Strings.firstToUpperCase(getAsString());
+ }
+
+
+}
Property changes on:
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/freemarker/FacetTemplateModel.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/freemarker/LibraryModelWrapper.java
===================================================================
---
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/freemarker/LibraryModelWrapper.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/cdk/generator/src/main/java/org/richfaces/cdk/generate/freemarker/LibraryModelWrapper.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -26,6 +26,7 @@
import org.richfaces.cdk.model.ClassName;
import org.richfaces.cdk.model.EventModel;
import org.richfaces.cdk.model.FacesId;
+import org.richfaces.cdk.model.FacetModel;
import org.richfaces.cdk.model.ModelElementBase;
import org.richfaces.cdk.model.PropertyBase;
import org.richfaces.cdk.model.TagModel;
@@ -72,6 +73,8 @@
return create(obj, EventTemplateModel.FACTORY);
} else if (obj instanceof TagModel) {
return create(obj, TagTemplateModel.FACTORY);
+ } else if (obj instanceof FacetModel) {
+ return create(obj, FacetTemplateModel.FACTORY);
} else if (obj instanceof ModelElementBase ) {
return create(obj, ModelElementBaseTemplateModel.FACTORY);
} else {
Modified: trunk/cdk/generator/src/main/java/org/richfaces/cdk/model/FacetModel.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/richfaces/cdk/model/FacetModel.java 2011-02-19
01:12:32 UTC (rev 21791)
+++ trunk/cdk/generator/src/main/java/org/richfaces/cdk/model/FacetModel.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -41,7 +41,7 @@
/**
* <p class="changed_added_4_0">Is that bean property generate in
the class or should be generated ?</p>
*/
- private Boolean generate;
+ private Boolean generate = Boolean.FALSE; // TODO - check in model validator.
public FacetModel() {
}
Added: trunk/cdk/generator/src/main/resources/META-INF/templates/_facets.ftl
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates/_facets.ftl
(rev 0)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates/_facets.ftl 2011-02-19
01:12:33 UTC (rev 21792)
@@ -0,0 +1,10 @@
+ <#list facets as facet>
+ <#if facet.generate >
+ public UIComponent ${facet.getterName}() {
+ return getFacet("${facet.name}");
+ }
+ public void ${facet.setterName}(UIComponent facet) {
+ getFacets().put("${facet.name}", facet);
+ }
+ </#if>
+ </#list>
Modified: trunk/cdk/generator/src/main/resources/META-INF/templates/component.ftl
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates/component.ftl 2011-02-19
01:12:32 UTC (rev 21791)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates/component.ftl 2011-02-19
01:12:33 UTC (rev 21792)
@@ -11,6 +11,7 @@
import java.util.List;
import javax.faces.context.FacesContext;
+import javax.faces.component.UIComponent;
import javax.faces.component.behavior.ClientBehaviorHolder;
import javax.el.MethodExpression;
import javax.el.ValueExpression;
@@ -58,6 +59,8 @@
<#include "_attributes.ftl">
+ <#include "_facets.ftl">
+
<#list events as event>
<#include "_event_source_accessors.ftl">
</#list>
Modified:
trunk/cdk/generator/src/test/java/org/richfaces/cdk/apt/processors/AttributesProcessorTest.java
===================================================================
---
trunk/cdk/generator/src/test/java/org/richfaces/cdk/apt/processors/AttributesProcessorTest.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/cdk/generator/src/test/java/org/richfaces/cdk/apt/processors/AttributesProcessorTest.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -90,7 +90,7 @@
BeanProperty beanProperty = createNiceMock(BeanProperty.class);
expect(utils.getBeanPropertiesAnnotatedWith(eq(Attribute.class),
same(element))).andReturn(
Collections.singleton(beanProperty));
- expect(utils.getAbstractBeanProperties(same(element))).andReturn(new
HashSet<BeanProperty>(0));
+// expect(utils.getAbstractBeanProperties(same(element))).andReturn(new
HashSet<BeanProperty>(0));
expect(beanProperty.getName()).andReturn(FOO);
expect(beanProperty.getType()).andReturn(ClassName.parseName(String.class.getName()));
mockController.replay();
Modified:
trunk/cdk/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java
===================================================================
---
trunk/cdk/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/cdk/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/AbstractTestComponent.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -27,6 +27,7 @@
import javax.el.MethodExpression;
import javax.el.ValueExpression;
+import javax.faces.component.UIComponent;
import javax.faces.component.UIComponentBase;
import javax.faces.component.ValueHolder;
import javax.faces.el.MethodBinding;
@@ -78,8 +79,8 @@
)
public abstract class AbstractTestComponent extends UIComponentBase /*implements
ValueHolder */{
- @Attribute
- private int length;
+ @Facet
+ public abstract UIComponent getFooter();
@Attribute
public abstract String getTitle();
Modified:
trunk/cdk/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/Html5Attributes.java
===================================================================
---
trunk/cdk/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/Html5Attributes.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/cdk/maven-cdk-plugin/src/it/annotated-component/src/main/java/org/richfaces/cdk/test/component/Html5Attributes.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -23,8 +23,11 @@
package org.richfaces.cdk.test.component;
+import javax.faces.component.UIComponent;
+
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
+import org.richfaces.cdk.annotations.Facet;
/**
* <p class="changed_added_4_0"></p>
@@ -45,25 +48,27 @@
AUTO
}
+ @Facet
+ UIComponent getHeader();
/**
* @return
*/
@Attribute(events=@EventName("drag"))
- public abstract DraggableState getDraggable();
+ DraggableState getDraggable();
/**
* @param newValue
*/
- public abstract void setDraggable(DraggableState newValue);
+ void setDraggable(DraggableState newValue);
/**
* @return
*/
@Attribute
- public abstract boolean isHidden();
+ boolean isHidden();
/**
* @param newValue
*/
- public abstract void setHidden(boolean newValue);
+ void setHidden(boolean newValue);
}
Modified: trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractMediaOutput.java
===================================================================
---
trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractMediaOutput.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/ui/core/ui/src/main/java/org/richfaces/component/AbstractMediaOutput.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -25,6 +25,7 @@
import java.util.Date;
+import javax.el.MethodExpression;
import javax.faces.application.Resource;
import javax.faces.application.ResourceHandler;
import javax.faces.component.UIOutput;
@@ -129,6 +130,9 @@
public abstract String getMimeType();
@Attribute
+ public abstract MethodExpression getCreateContent();
+
+ @Attribute
public abstract String getRel();
@Attribute
Modified: trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractColumn.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractColumn.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractColumn.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -27,6 +27,8 @@
import javax.el.ValueExpression;
import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.Description;
+import org.richfaces.cdk.annotations.Facet;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.model.Filter;
@@ -41,6 +43,7 @@
@JsfComponent(
type = AbstractColumn.COMPONENT_TYPE,
family = AbstractColumn.COMPONENT_FAMILY,
+ facets={@Facet(name="header",description=@Description("Column
header")),@Facet(name="footer",description=@Description("Column
footer"))},
generate = "org.richfaces.component.UIColumn",
tag = @Tag(name="column")
)
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataGrid.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataGrid.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataGrid.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -36,6 +36,7 @@
import org.richfaces.cdk.annotations.Alias;
import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.Facet;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.Tag;
@@ -92,21 +93,14 @@
@Attribute(aliases = @Alias(value="rows"))
public abstract int getElements();
- public UIComponent getHeaderFacet() {
- return getFacets().get(HEADER_FACET_NAME);
- }
-
- public UIComponent getFooterFacet() {
- return getFacets().get(FOOTER_FACET_NAME);
- }
-
- public UIComponent getCaptionFacet() {
- return getFacets().get(CAPTION_FACET_NAME);
- }
-
- public UIComponent getNoDataFacet() {
- return getFacets().get(NODATA_FACET_NAME);
- }
+ @Facet
+ public abstract UIComponent getHeader();
+ @Facet
+ public abstract UIComponent getFooter();
+ @Facet
+ public abstract UIComponent getCaption();
+ @Facet
+ public abstract UIComponent getNoData();
@Attribute
public int getColumns() {
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataScroller.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataScroller.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataScroller.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -41,6 +41,7 @@
import org.richfaces.application.ServiceTracker;
import org.richfaces.appplication.FacesMessages;
import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.Facet;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.Tag;
@@ -258,34 +259,24 @@
}
// facet getter methods
+ @Facet
public UIComponent getFirst() {
return getFacet(FIRST_FACET_NAME);
}
- public UIComponent getLast() {
- return getFacetByKey(LAST_FACET_NAME);
- }
-
- public UIComponent getNext() {
- return getFacetByKey(NEXT_FACET_NAME);
- }
+ @Facet
+ public abstract UIComponent getLast();
+ @Facet
+ public abstract UIComponent getNext();
- public UIComponent getPrevious() {
- return getFacetByKey(PREVIOUS_FACET_NAME);
- }
+ @Facet
+ public abstract UIComponent getPrevious();
+ @Facet
+ public abstract UIComponent getFastForward();
+ @Facet
+ public abstract UIComponent getFastRewind();
- public UIComponent getFastForward() {
- return getFacetByKey(FAST_FORWARD_FACET_NAME);
- }
- public UIComponent getFastRewind() {
- return getFacetByKey(FAST_REWIND_FACET_NAME);
- }
-
- private UIComponent getFacetByKey(String key) {
- return getFacet(key.toString());
- }
-
private static boolean isRendered(UIComponent component) {
UIComponent c = component;
while (c != null) {
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataTable.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataTable.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/AbstractDataTable.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -25,6 +25,7 @@
import javax.faces.component.UIComponent;
import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.Facet;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.Tag;
@@ -56,9 +57,8 @@
@Attribute
public abstract String getStyleClass();
- public UIComponent getCaption() {
- return getFacets().get(CAPTION_FACET_NAME);
- }
+ @Facet
+ public abstract UIComponent getCaption();
}
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UIDataTableBase.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UIDataTableBase.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/component/UIDataTableBase.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -48,6 +48,7 @@
import org.ajax4jsf.model.Range;
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
+import org.richfaces.cdk.annotations.Facet;
import org.richfaces.context.ExtendedVisitContext;
import org.richfaces.context.ExtendedVisitContextMode;
import org.richfaces.event.FilteringEvent;
@@ -96,17 +97,12 @@
filterVar, sortPriority, sortMode, first, rows, noDataLabel, selection, header
}
- public UIComponent getHeader() {
- return getFacet(HEADER_FACET_NAME);
- }
-
- public UIComponent getFooter() {
- return getFacet(FOOTER_FACET_NAME);
- }
-
- public UIComponent getNoData() {
- return getFacet(NODATA_FACET_NAME);
- }
+ @Facet
+ public abstract UIComponent getHeader();
+ @Facet
+ public abstract UIComponent getFooter();
+ @Facet
+ public abstract UIComponent getNoData();
@Attribute
public abstract String getNoDataLabel();
Modified:
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java
===================================================================
---
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/ui/iteration/ui/src/main/java/org/richfaces/renderkit/DataGridRenderer.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -186,22 +186,22 @@
}
public void encodeHeader(ResponseWriter writer, FacesContext facesContext,
AbstractDataGrid dataGrid, boolean partial) throws IOException {
- UIComponent headerFacet = dataGrid.getHeaderFacet();
+ UIComponent headerFacet = dataGrid.getHeader();
encodeFacet(writer, facesContext, headerFacet, THEAD, dataGrid, new Object[]
{partial});
}
public void encodeFooter(ResponseWriter writer, FacesContext facesContext,
AbstractDataGrid dataGrid, boolean partial) throws IOException {
- UIComponent footerFacet = dataGrid.getFooterFacet();
+ UIComponent footerFacet = dataGrid.getFooter();
encodeFacet(writer, facesContext, footerFacet, TFOOT, dataGrid, new Object[]
{partial});
}
public void encodeCaption(ResponseWriter writer, FacesContext facesContext,
AbstractDataGrid dataGrid) throws IOException {
- UIComponent captionFacet = dataGrid.getCaptionFacet();
+ UIComponent captionFacet = dataGrid.getCaption();
encodeFacet(writer, facesContext, captionFacet, CAPTION, dataGrid, null);
}
public void encodeNoData(ResponseWriter writer, FacesContext facesContext,
AbstractDataGrid dataGrid) throws IOException {
- UIComponent noDataFacet = dataGrid.getNoDataFacet();
+ UIComponent noDataFacet = dataGrid.getNoData();
encodeFacet(writer, facesContext, noDataFacet, NODATA, dataGrid, null);
}
Modified:
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDropDownMenu.java
===================================================================
---
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDropDownMenu.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractDropDownMenu.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -4,12 +4,14 @@
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
+import org.richfaces.cdk.annotations.Facet;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.renderkit.html.DropDownMenuRendererBase;
-@JsfComponent(family = AbstractDropDownMenu.COMPONENT_FAMILY, type =
AbstractDropDownMenu.COMPONENT_TYPE,
+@JsfComponent(family = AbstractDropDownMenu.COMPONENT_FAMILY, type =
AbstractDropDownMenu.COMPONENT_TYPE,
+
facets={@Facet(name="label",generate=false),@Facet(name="labelDisabled",generate=false)},
renderer=@JsfRenderer(type = DropDownMenuRendererBase.RENDERER_TYPE),
tag = @Tag(name="dropDownMenu"),
attributes = {"events-props.xml", "core-props.xml",
"i18n-props.xml"})
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractMenuGroup.java
===================================================================
---
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractMenuGroup.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractMenuGroup.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -4,12 +4,14 @@
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.EventName;
+import org.richfaces.cdk.annotations.Facet;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.Tag;
import org.richfaces.renderkit.html.MenuGroupRendererBase;
@JsfComponent(family = AbstractDropDownMenu.COMPONENT_FAMILY, type =
AbstractMenuGroup.COMPONENT_TYPE,
+
facets={@Facet(name="icon",generate=false),@Facet(name="iconDisabled",generate=false)},
renderer=@JsfRenderer(type = MenuGroupRendererBase.RENDERER_TYPE),
tag = @Tag(name="menuGroup"),
attributes = {"events-props.xml", "core-props.xml",
"i18n-props.xml"})
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractMenuItem.java
===================================================================
---
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractMenuItem.java 2011-02-19
01:12:32 UTC (rev 21791)
+++
trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractMenuItem.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -1,6 +1,7 @@
package org.richfaces.component;
import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.Facet;
import org.richfaces.cdk.annotations.JsfComponent;
import org.richfaces.cdk.annotations.JsfRenderer;
import org.richfaces.cdk.annotations.Tag;
@@ -9,6 +10,7 @@
@JsfComponent(
family = AbstractDropDownMenu.COMPONENT_FAMILY,
type = AbstractMenuItem.COMPONENT_TYPE,
+
facets={@Facet(name="icon",generate=false),@Facet(name="iconDisabled",generate=false)},
renderer=@JsfRenderer(type = MenuItemRendererBase.RENDERER_TYPE),
tag = @Tag(name="menuItem"),
attributes = {"events-props.xml", "core-props.xml",
"i18n-props.xml", "ajax-props.xml"})
Modified: trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTab.java
===================================================================
--- trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTab.java 2011-02-19
01:12:32 UTC (rev 21791)
+++ trunk/ui/output/ui/src/main/java/org/richfaces/component/AbstractTab.java 2011-02-19
01:12:33 UTC (rev 21792)
@@ -32,7 +32,9 @@
* @author akolonitsky
* @since 2010-10-19
*/
-@JsfComponent(tag = @Tag(type = TagType.Facelets), renderer = @JsfRenderer(type =
"org.richfaces.TabRenderer"))
+@JsfComponent(tag = @Tag(type = TagType.Facelets),
+ facets={@Facet(name="header",generate=false)},
+ renderer = @JsfRenderer(type = "org.richfaces.TabRenderer"))
public abstract class AbstractTab extends AbstractActionComponent implements
AbstractTogglePanelTitledItem, AjaxProps, ClientBehaviorHolder {
public static final String COMPONENT_TYPE = "org.richfaces.Tab";