You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by al...@apache.org on 2010/07/31 00:37:34 UTC

svn commit: r980988 [1/8] - in /myfaces/gsoc/html5-comp-lib/trunk: ./ html5-comp-lib-core/ html5-comp-lib-core/src/ html5-comp-lib-core/src/main/ html5-comp-lib-core/src/main/java/ html5-comp-lib-core/src/main/java/META-INF/ html5-comp-lib-core/src/mai...

Author: aliok
Date: Fri Jul 30 22:37:29 2010
New Revision: 980988

URL: http://svn.apache.org/viewvc?rev=980988&view=rev
Log:
The progress on html5-comp-lib so far goes into MyFaces repository

Added:
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/pom.xml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/META-INF/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/META-INF/MANIFEST.MF
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/ClientBehaviorDeltaStateHelper.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/DragSourceBehavior.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/DropTargetBehavior.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/ValueExpressionHolder.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/api/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/api/Draggable.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtml5BaseInputText.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlDataList.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputColor.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputDateTime.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputEmail.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputNumberSlider.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputNumberSpinner.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputText.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/media/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/media/AbstractAudio.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/media/AbstractMedia.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/media/AbstractVideo.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/panel/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/panel/AbstractDiv.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/AccesskeyProperty.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/GlobalEventProperties.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/Html5GlobalProperties.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/Html5InputProperties.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/KeyEventProperties.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/MediaEventProperties.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/MouseEventProperties.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/MultipleProperty.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/PlaceHolderProperty.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/properties/TabindexProperty.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/event/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/event/DropEvent.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/event/DropListener.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/handler/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/handler/DragSourceBehaviorHandler.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/handler/DropTargetBehaviorHandler.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourceHandler.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourcesHandler.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/holder/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/holder/MediaSourceHolder.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/model/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/model/MediaInfo.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/behavior/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/behavior/DragSourceBehaviorRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/behavior/DropTargetBehaviorRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/Html5BaseInputTextRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlDataListRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputColorRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputDateTimeRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputEmailRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSliderRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSpinnerRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputTextRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlDataListSuggestionRendererHelper.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlInputTextRendererDelegate.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlSecretRendererDelegate.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextAreaRendererDelegate.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextInputSuggestionRendererHelper.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/SuggestionRendererHelper.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/Html5DateTimeConverter.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/Html5DateTimeFormatUtils.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/Html5EmailConverter.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/InputPatternRendererUtil.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/media/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/media/AbstractMediaRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/media/AudioRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/media/VideoRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/panel/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/panel/DivRenderer.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/AttributeMap.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/BehaviorScriptUtils.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/ClientBehaviorEvents.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/HTML5.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/Html5RendererUtils.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/JsfProperties.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/PassThroughAttributeGroups.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/PassThroughAttributes.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/PassThroughClientBehaviorEventGroups.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/renderkit/util/PassThroughClientBehaviorEvents.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/validator/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/validator/DateTimeRangeValidator.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/componentClass20.vm
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/facelets-taglib-base.xml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/facelets-taglib20.vm
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/facelets-taglib20_fx.vm
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/faces-config20.vm
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/jsp-tld-base.tld
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/jsp-tld.vm
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/resources/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/resources/myfaces.apache.org/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/resources/myfaces.apache.org/html5.js
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/tagClass12.vm
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/validatorClass12.vm
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/resources/META-INF/validatorTagClass12.vm
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/test/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/test/java/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/test/resources/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/pom.xml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/beans/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/beans/DateTimeBean.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/beans/DnDBean.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/beans/InputColorBean.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/beans/InputNumberBean.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/beans/InputTextBean.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/beans/RegisterBean.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/beans/SportsTeam.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/beans/TestBean.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/beans/VideoBean.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/servlet/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/java/org/apache/myfaces/html5/examples/showcase/servlet/SourceServlet.java
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/resources/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/META-INF/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/META-INF/MANIFEST.MF
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/WEB-INF/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/WEB-INF/faces-config.xml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/WEB-INF/lib/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/WEB-INF/web.xml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/_template.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/dnd/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/dnd.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/dnd/dnd01.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/dnd/dnd02.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/dnd/dnd03.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/dnd/dnd04.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/index.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputColor/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputColor.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputColor/inputColor01.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputDateTime/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputDateTime.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputDateTime/inputDateTime01.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputEmail/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputEmail.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputEmail/inputEmail01.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputNumberXXX/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputNumberXXX.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputNumberXXX/inputNumberXXX01.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputNumberXXX/inputNumberXXX02.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputText/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputText.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputText/inputText01.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputText/inputText02.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputText/inputText03.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputText/inputText04.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/inputText/inputText05.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/video/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/video.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/video/video01.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/video/video02.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/video/video03.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/video/video04.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/video/video05.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/video/video06.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/main/webapp/video/video07.xhtml
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/test/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/test/java/
    myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-examples/src/test/resources/
    myfaces/gsoc/html5-comp-lib/trunk/myfaces-shared-html5/
    myfaces/gsoc/html5-comp-lib/trunk/myfaces-shared-html5/build.xml
    myfaces/gsoc/html5-comp-lib/trunk/myfaces-shared-html5/pom.xml
    myfaces/gsoc/html5-comp-lib/trunk/pom.xml
Modified:
    myfaces/gsoc/html5-comp-lib/trunk/   (props changed)

Propchange: myfaces/gsoc/html5-comp-lib/trunk/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Jul 30 22:37:29 2010
@@ -0,0 +1,3 @@
+.settings
+.classpath
+.project

Added: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/pom.xml?rev=980988&view=auto
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/pom.xml (added)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/pom.xml Fri Jul 30 22:37:29 2010
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>html5-comp-lib-project</artifactId>
+        <groupId>org.apache.myfaces.html5-comp-lib</groupId>
+        <version>0.0.3-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.myfaces.html5-comp-lib</groupId>
+    <artifactId>html5-comp-lib-core</artifactId>
+    <name>Html5 Renderkit for Apache MyFaces</name>
+    <version>0.0.3-SNAPSHOT</version>
+
+    <dependencies>
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+            <version>1.1.1</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.myfaces.html5-comp-lib</groupId>
+            <artifactId>myfaces-shared-html5</artifactId>
+            <version>0.0.3-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet.jsp</groupId>
+            <artifactId>jsp-api</artifactId>
+            <version>2.1</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <version>2.5</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.el</groupId>
+            <artifactId>el-api</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>jstl</artifactId>
+            <version>1.2</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.myfaces.buildtools</groupId>
+            <artifactId>myfaces-builder-annotations</artifactId>
+            <version>1.0.5</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-validator</groupId>
+            <artifactId>commons-validator</artifactId>
+            <version>1.3.1</version>
+            <type>jar</type>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <excludes>
+                    <exclude>**/*.vm</exclude>
+                </excludes>
+            </resource>
+        </resources>
+
+        <plugins>
+            <plugin>
+                <groupId>org.apache.myfaces.buildtools</groupId>
+                <artifactId>myfaces-builder-plugin</artifactId>
+                <version>1.0.6</version>
+                <executions>
+                    <!-- first, build metadata. components and stuff will 
+                        be generated from this. -->
+                    <execution>
+                        <id>build-html5-metadata</id>
+                        <goals>
+                            <goal>build-metadata</goal>
+                        </goals>
+                        <configuration>
+                            <outputFile>META-INF/myfaces-html5-metadata.xml</outputFile>
+                        </configuration>
+                    </execution>
+
+                    <!-- generate faces-config.xml -->
+                    <execution>
+                        <id>make-html5-faces-config</id>
+                        <configuration>
+                            <templateFile>faces-config20.vm</templateFile>
+                            <xmlFile>META-INF/faces-config.xml</xmlFile>
+                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <!-- generate components -->
+                    <execution>
+                        <id>make-html5-components</id>
+                        <goals>
+                            <goal>make-components</goal>
+                        </goals>
+                        <configuration>
+                            <jsfVersion>20</jsfVersion>
+                            <templateComponentName>componentClass20.vm</templateComponentName>
+                            <!-- TODO: remove this?? -->
+                            <mainSourceDirectory2>${project.build.directory}/html5_sources</mainSourceDirectory2>
+                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+                        </configuration>
+                    </execution>
+
+                    <!-- generate validators -->
+                    <execution>
+                        <id>make-html5-validators</id>
+                        <goals>
+                            <goal>make-validators</goal>
+                        </goals>
+                        <configuration>
+                            <jsfVersion>12</jsfVersion>
+                            <templateValidatorName>validatorClass12.vm</templateValidatorName>
+                            <!-- TODO: remove this?? -->
+                            <mainSourceDirectory2>${project.build.directory}/html5_sources</mainSourceDirectory2>
+                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+                        </configuration>
+                    </execution>
+
+                    <!-- generate JSP classes -->
+                    <execution>
+                        <id>make-html5-tags</id>
+                        <configuration>
+                            <jsfVersion>12</jsfVersion>
+                            <templateTagName>tagClass12.vm</templateTagName>
+                            <!-- TODO: remove this?? -->
+                            <mainSourceDirectory2>${project.build.directory}/html5_sources</mainSourceDirectory2>
+                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+                        </configuration>
+                        <goals>
+                            <goal>make-tags</goal>
+                        </goals>
+                    </execution>
+
+                    <!-- generate <hx> JSP tld file -->
+                    <execution>
+                        <id>make-html5-hx-tld</id>
+                        <configuration>
+                            <xmlFile>META-INF/html5-hx.tld</xmlFile>
+                            <xmlBaseFile>src/main/resources/META-INF/jsp-tld-base.tld</xmlBaseFile>
+                            <templateFile>jsp-tld.vm</templateFile>
+                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+                            <params>
+                                <shortname>hx</shortname>
+                                <uri>http://myfaces.apache.org/html5/html</uri>
+                                <displayname>HTML5 Html Comp Lib.</displayname>
+                                <description>HTML5 Html component
+                                    library for MyFaces.</description>
+                            </params>
+                            <modelIds>
+                                <modelId>html5-comp-lib-core</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <!-- generate <hx> Facelets taglib.xml -->
+                    <execution>
+                        <id>make-html5-hx-taglib</id>
+                        <configuration>
+                            <xmlFile>META-INF/html5-hx.taglib.xml</xmlFile>
+                            <xmlBaseFile>src/main/resources/META-INF/facelets-taglib-base.xml</xmlBaseFile>
+                            <templateFile>facelets-taglib20.vm</templateFile>
+                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+                            <params>
+                                <shortname>hx</shortname>
+                                <uri>http://myfaces.apache.org/html5/html</uri>
+                            </params>
+                            <modelIds>
+                                <modelId>html5-comp-lib-core</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <!-- generate <fx> JSP tld file -->
+                    <execution>
+                        <id>make-html5-fx-tld</id>
+                        <configuration>
+                            <xmlFile>META-INF/html5-fx.tld</xmlFile>
+                            <xmlBaseFile>src/main/resources/META-INF/jsp-tld-base.tld</xmlBaseFile>
+                            <templateFile>jsp-tld.vm</templateFile>
+                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+                            <params>
+                                <shortname>fx</shortname>
+                                <uri>http://myfaces.apache.org/html5/core</uri>
+                                <displayname>HTML5 Core Comp Lib.</displayname>
+                                <description>HTML5 core component
+                                    library for MyFaces.</description>
+                            </params>
+                            <modelIds>
+                                <modelId>html5-comp-lib-core</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <!-- generate <fx> Facelets taglib.xml -->
+                    <execution>
+                        <id>make-html5-fx-taglib</id>
+                        <configuration>
+                            <xmlFile>META-INF/html5-fx.taglib.xml</xmlFile>
+                            <xmlBaseFile>src/main/resources/META-INF/facelets-taglib-base.xml</xmlBaseFile>
+                            <templateFile>facelets-taglib20_fx.vm</templateFile>
+                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+                            <params>
+                                <shortname>fx</shortname>
+                                <uri>http://myfaces.apache.org/html5/core</uri>
+                            </params>
+                            <modelIds>
+                                <modelId>html5-comp-lib-core</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>generate-hx-tagdoc-content</id>
+                        <configuration>
+                            <metadataFile>META-INF/myfaces-html5-metadata.xml</metadataFile>
+                            <params>
+                                <shortname>hx</shortname>
+                                <uri>http://myfaces.apache.org/html5/html</uri>
+                            </params>
+                            <modelIds>
+                                <modelId>html5-comp-lib-core</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>tagdoc-content</goal>
+                        </goals>
+                    </execution>
+
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file

Added: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/META-INF/MANIFEST.MF?rev=980988&view=auto
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/META-INF/MANIFEST.MF (added)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/META-INF/MANIFEST.MF Fri Jul 30 22:37:29 2010
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path: 
+

Added: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/ClientBehaviorDeltaStateHelper.java
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/ClientBehaviorDeltaStateHelper.java?rev=980988&view=auto
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/ClientBehaviorDeltaStateHelper.java (added)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/ClientBehaviorDeltaStateHelper.java Fri Jul 30 22:37:29 2010
@@ -0,0 +1,600 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.html5.behavior;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.el.ValueExpression;
+import javax.faces.component.StateHelper;
+import javax.faces.component.StateHolder;
+import javax.faces.component.UIComponentBase;
+import javax.faces.context.FacesContext;
+
+/**
+ * @see javax.faces.component.behavior._AjaxBehaviorDeltaStateHelper of MyFaces Core
+ */
+public class ClientBehaviorDeltaStateHelper <B extends ValueExpressionHolder> implements StateHelper {
+      /**
+     * We need to hold a component instance because:
+     * <p/>
+     * - The component is the one who knows if we are on initial or delta mode
+     * - eval assume calls to component.ValueExpression
+     */
+    private B _target;
+
+    /**
+     * This map holds the full current state
+     */
+    private Map<Serializable, Object> _fullState;
+
+    /**
+     * This map only keep track of delta changes to be saved
+     */
+    private Map<Serializable, Object> _deltas;
+
+    /**
+     * This map keep track of StateHolder keys, to be saved when
+     * saveState is called.
+     */
+    //private Set<Serializable> _stateHolderKeys;
+
+    private boolean _transient = false;
+
+    public ClientBehaviorDeltaStateHelper(B component) {
+        super();
+        this._target = component;
+        _fullState = new HashMap<Serializable, Object>();
+        _deltas = null;
+        //_stateHolderKeys = new HashSet<Serializable>();
+    }
+
+    /**
+     * Used to create delta map on demand
+     *
+     * @return
+     */
+    private boolean _createDeltas() {
+        if (isInitialStateMarked()) {
+            if (_deltas == null) {
+                _deltas = new HashMap<Serializable, Object>(2);
+            }
+            return true;
+        }
+
+        return false;
+    }
+
+    protected boolean isInitialStateMarked() {
+        return _target.initialStateMarked();
+    }
+
+    @SuppressWarnings("unchecked")
+    public void add(Serializable key, Object value) {
+        if (_createDeltas()) {
+            //Track delta case
+            Map<Object, Boolean> deltaListMapValues = (Map<Object, Boolean>) _deltas
+                    .get(key);
+            if (deltaListMapValues == null) {
+                deltaListMapValues = new InternalDeltaListMap<Object, Boolean>(
+                        3);
+                _deltas.put(key, deltaListMapValues);
+            }
+            deltaListMapValues.put(value, Boolean.TRUE);
+        }
+
+        //Handle change on full map
+        List<Object> fullListValues = (List<Object>) _fullState.get(key);
+        if (fullListValues == null) {
+            fullListValues = new InternalList<Object>(3);
+            _fullState.put(key, fullListValues);
+        }
+        fullListValues.add(value);
+    }
+
+    public Object eval(Serializable key) {
+        Object returnValue = _fullState.get(key);
+        if (returnValue != null) {
+            return returnValue;
+        }
+        ValueExpression expression = _target.getValueExpression(key
+                .toString());
+        if (expression != null) {
+            return expression.getValue(FacesContext.getCurrentInstance()
+                    .getELContext());
+        }
+        return null;
+    }
+
+    public Object eval(Serializable key, Object defaultValue) {
+        Object returnValue = _fullState.get(key);
+        if (returnValue != null) {
+            return returnValue;
+        }
+        ValueExpression expression = _target.getValueExpression(key
+                .toString());
+        if (expression != null) {
+            return expression.getValue(FacesContext.getCurrentInstance()
+                    .getELContext());
+        }
+        return defaultValue;
+    }
+
+    public Object get(Serializable key) {
+        return _fullState.get(key);
+    }
+
+    public Object put(Serializable key, Object value) {
+        Object returnValue = null;
+        if (_createDeltas()) {
+            if (_deltas.containsKey(key)) {
+                returnValue = _deltas.put(key, value);
+                _fullState.put(key, value);
+            } else {
+                _deltas.put(key, value);
+                returnValue = _fullState.put(key, value);
+            }
+        } else {
+            /*
+            if (value instanceof StateHolder)
+            {
+                _stateHolderKeys.add(key);
+            }
+            */
+            returnValue = _fullState.put(key, value);
+        }
+        return returnValue;
+    }
+
+    @SuppressWarnings("unchecked")
+    public Object put(Serializable key, String mapKey, Object value) {
+        boolean returnSet = false;
+        Object returnValue = null;
+        if (_createDeltas()) {
+            //Track delta case
+            Map<String, Object> mapValues = (Map<String, Object>) _deltas
+                    .get(key);
+            if (mapValues == null) {
+                mapValues = new InternalMap<String, Object>();
+                _deltas.put(key, mapValues);
+            }
+            if (mapValues.containsKey(mapKey)) {
+                returnValue = mapValues.put(mapKey, value);
+                returnSet = true;
+            } else {
+                mapValues.put(mapKey, value);
+            }
+        }
+
+        //Handle change on full map
+        Map<String, Object> mapValues = (Map<String, Object>) _fullState
+                .get(key);
+        if (mapValues == null) {
+            mapValues = new InternalMap<String, Object>();
+            _fullState.put(key, mapValues);
+        }
+        if (returnSet) {
+            mapValues.put(mapKey, value);
+        } else {
+            returnValue = mapValues.put(mapKey, value);
+        }
+        return returnValue;
+    }
+
+    public Object remove(Serializable key) {
+        Object returnValue = null;
+        if (_createDeltas()) {
+            if (_deltas.containsKey(key)) {
+                // Keep track of the removed values using key/null pair on the delta map
+                returnValue = _deltas.put(key, null);
+                _fullState.remove(key);
+            } else {
+                // Keep track of the removed values using key/null pair on the delta map
+                _deltas.put(key, null);
+                returnValue = _fullState.remove(key);
+            }
+        } else {
+            returnValue = _fullState.remove(key);
+        }
+        return returnValue;
+    }
+
+    @SuppressWarnings("unchecked")
+    public Object remove(Serializable key, Object valueOrKey) {
+        // Comment by lu4242 : The spec javadoc says if it is a Collection
+        // or Map deal with it. But the intention of this method is work
+        // with add(?,?) and put(?,?,?), this ones return instances of
+        // InternalMap and InternalList to prevent mixing, so to be
+        // consistent we'll cast to those classes here.
+
+        Object collectionOrMap = _fullState.get(key);
+        Object returnValue = null;
+        if (collectionOrMap instanceof InternalMap) {
+            if (_createDeltas()) {
+                returnValue = _removeValueOrKeyFromMap(_deltas, key,
+                                                       valueOrKey, true);
+                _removeValueOrKeyFromMap(_fullState, key, valueOrKey, false);
+            } else {
+                returnValue = _removeValueOrKeyFromMap(_fullState, key,
+                                                       valueOrKey, false);
+            }
+        } else if (collectionOrMap instanceof InternalList) {
+            if (_createDeltas()) {
+                returnValue = _removeValueOrKeyFromCollectionDelta(_deltas,
+                                                                   key, valueOrKey);
+                _removeValueOrKeyFromCollection(_fullState, key, valueOrKey);
+            } else {
+                returnValue = _removeValueOrKeyFromCollection(_fullState, key,
+                                                              valueOrKey);
+            }
+        }
+        return returnValue;
+    }
+
+    @SuppressWarnings("unchecked")
+    private static Object _removeValueOrKeyFromCollectionDelta(
+            Map<Serializable, Object> stateMap, Serializable key,
+            Object valueOrKey) {
+        Object returnValue = null;
+        Map<Object, Boolean> c = (Map<Object, Boolean>) stateMap.get(key);
+        if (c != null) {
+            if (c.containsKey(valueOrKey)) {
+                returnValue = valueOrKey;
+            }
+            c.put(valueOrKey, Boolean.FALSE);
+        }
+        return returnValue;
+    }
+
+    @SuppressWarnings("unchecked")
+    private static Object _removeValueOrKeyFromCollection(
+            Map<Serializable, Object> stateMap, Serializable key,
+            Object valueOrKey) {
+        Object returnValue = null;
+        Collection c = (Collection) stateMap.get(key);
+        if (c != null) {
+            if (c.remove(valueOrKey)) {
+                returnValue = valueOrKey;
+            }
+            if (c.isEmpty()) {
+                stateMap.remove(key);
+            }
+        }
+        return returnValue;
+    }
+
+    @SuppressWarnings("unchecked")
+    private static Object _removeValueOrKeyFromMap(
+            Map<Serializable, Object> stateMap, Serializable key,
+            Object valueOrKey, boolean delta) {
+        if (valueOrKey == null) {
+            return null;
+        }
+
+        Object returnValue = null;
+        Map<String, Object> map = (Map<String, Object>) stateMap.get(key);
+        if (map != null) {
+            if (delta) {
+                // Keep track of the removed values using key/null pair on the delta map
+                returnValue = map.put((String) valueOrKey, null);
+            } else {
+                returnValue = map.remove(valueOrKey);
+            }
+
+            if (map.isEmpty()) {
+                //stateMap.remove(key);
+                stateMap.put(key, null);
+            }
+        }
+        return returnValue;
+    }
+
+    public boolean isTransient() {
+        return _transient;
+    }
+
+    /**
+     * Serializing cod
+     * the serialized data structure consists of key value pairs unless the value itself is an internal array
+     * or a map in case of an internal array or map the value itself is another array with its initial value
+     * myfaces.InternalArray, myfaces.internalMap
+     * <p/>
+     * the internal Array is then mapped to another array
+     * <p/>
+     * the internal Map again is then mapped to a map with key value pairs
+     */
+
+    @SuppressWarnings("unchecked")
+    public Object saveState(FacesContext context) {
+        Map serializableMap = (isInitialStateMarked()) ? _deltas : _fullState;
+
+        if (serializableMap == null || serializableMap.size() == 0) {
+            return null;
+        }
+
+        /*
+        int stateHolderKeyCount = 0;
+        if (isInitalStateMarked())
+        {
+            for (Iterator<Serializable> it = _stateHolderKeys.iterator(); it.hasNext();)
+            {
+                Serializable key = it.next();
+                if (!_deltas.containsKey(key))
+                {
+                    stateHolderKeyCount++;
+                }
+            }
+        }*/
+
+        Map.Entry<Serializable, Object> entry;
+        //entry == key, value, key, value
+        Object[] retArr = new Object[serializableMap.entrySet().size() * 2];
+        //Object[] retArr = new Object[serializableMap.entrySet().size() * 2 + stateHolderKeyCount];
+
+        Iterator<Map.Entry<Serializable, Object>> it = serializableMap
+                .entrySet().iterator();
+        int cnt = 0;
+        while (it.hasNext()) {
+            entry = it.next();
+            retArr[cnt] = entry.getKey();
+
+            Object value = entry.getValue();
+
+            // The condition in which the call to saveAttachedState
+            // is to handle List, StateHolder or non Serializable instances.
+            // we check it here, to prevent unnecessary calls.
+            if (value instanceof StateHolder ||
+                value instanceof List ||
+                !(value instanceof Serializable)) {
+                Object savedValue = UIComponentBase.saveAttachedState(context,
+                                                                      value);
+                retArr[cnt + 1] = savedValue;
+            } else {
+                retArr[cnt + 1] = value;
+            }
+            cnt += 2;
+        }
+
+        /*
+        if (isInitalStateMarked())
+        {
+            for (Iterator<Serializable> it2 = _stateHolderKeys.iterator(); it.hasNext();)
+            {
+                Serializable key = it2.next();
+                if (!_deltas.containsKey(key))
+                {
+                    retArr[cnt] = key;
+                    Object value = _fullState.get(key);
+                    if (value instanceof PartialStateHolder)
+                    {
+                        //Could contain delta, save it as _AttachedDeltaState
+                        PartialStateHolder holder = (PartialStateHolder) value;
+                        if (holder.isTransient())
+                        {
+                            retArr[cnt + 1] = null;
+                        }
+                        else
+                        {
+                            retArr[cnt + 1] = new _AttachedDeltaWrapper(value.getClass(), holder.saveState(context));
+                        }
+                    }
+                    else
+                    {
+                        //Save everything
+                        retArr[cnt + 1] = UIComponentBase.saveAttachedState(context, _fullState.get(key));
+                    }
+                    cnt += 2;
+                }
+            }
+        }
+        */
+        return retArr;
+    }
+
+
+    @SuppressWarnings("unchecked")
+    public void restoreState(FacesContext context, Object state) {
+        if (state == null)
+            return;
+
+        Object[] serializedState = (Object[]) state;
+
+        for (int cnt = 0; cnt < serializedState.length; cnt += 2) {
+            Serializable key = (Serializable) serializedState[cnt];
+
+            Object savedValue = UIComponentBase.restoreAttachedState(context,
+                                                                     serializedState[cnt + 1]);
+
+            if (isInitialStateMarked()) {
+                if (savedValue instanceof InternalDeltaListMap) {
+                    for (Map.Entry<Object, Boolean> mapEntry : ((Map<Object, Boolean>) savedValue)
+                            .entrySet()) {
+                        boolean addOrRemove = mapEntry.getValue();
+                        if (addOrRemove) {
+                            //add
+                            this.add(key, mapEntry.getKey());
+                        } else {
+                            //remove
+                            this.remove(key, mapEntry.getKey());
+                        }
+                    }
+                } else if (savedValue instanceof InternalMap) {
+                    for (Map.Entry<String, Object> mapEntry : ((Map<String, Object>) savedValue)
+                            .entrySet()) {
+                        this.put(key, mapEntry.getKey(), mapEntry.getValue());
+                    }
+                }
+                /*
+                else if (savedValue instanceof _AttachedDeltaWrapper)
+                {
+                    _AttachedStateWrapper wrapper = (_AttachedStateWrapper) savedValue;
+                    //Restore delta state
+                    ((PartialStateHolder)_fullState.get(key)).restoreState(context, wrapper.getWrappedStateObject());
+                    //Add this key as StateHolder key
+                    _stateHolderKeys.add(key);
+                }
+                */
+                else {
+                    put(key, savedValue);
+                }
+            } else {
+                put(key, savedValue);
+            }
+        }
+    }
+
+    public void setTransient(boolean transientValue) {
+        _transient = transientValue;
+    }
+
+    //We use our own data structures just to make sure
+    //nothing gets mixed up internally
+    @SuppressWarnings("serial")
+    static class InternalMap<K, V> extends HashMap<K, V> implements StateHolder {
+        public InternalMap() {
+            super();
+        }
+
+        public InternalMap(int initialCapacity, float loadFactor) {
+            super(initialCapacity, loadFactor);
+        }
+
+        public InternalMap(Map<? extends K, ? extends V> m) {
+            super(m);
+        }
+
+        public InternalMap(int initialSize) {
+            super(initialSize);
+        }
+
+        public boolean isTransient() {
+            return false;
+        }
+
+        public void setTransient(boolean newTransientValue) {
+            // No op
+        }
+
+        @SuppressWarnings("unchecked")
+        public void restoreState(FacesContext context, Object state) {
+            Object[] listAsMap = (Object[]) state;
+            for (int cnt = 0; cnt < listAsMap.length; cnt += 2) {
+                this.put((K) listAsMap[cnt], (V) UIComponentBase
+                        .restoreAttachedState(context, listAsMap[cnt + 1]));
+            }
+        }
+
+        @SuppressWarnings("unchecked")
+        public Object saveState(FacesContext context) {
+            int cnt = 0;
+            Object[] mapArr = new Object[this.size() * 2];
+            for (Map.Entry<K, V> entry : this.entrySet()) {
+                mapArr[cnt] = entry.getKey();
+                Object value = entry.getValue();
+
+                if (value instanceof StateHolder ||
+                    value instanceof List ||
+                    !(value instanceof Serializable)) {
+                    mapArr[cnt + 1] = UIComponentBase.saveAttachedState(context, value);
+                } else {
+                    mapArr[cnt + 1] = value;
+                }
+                cnt += 2;
+            }
+            return mapArr;
+        }
+    }
+
+    /**
+     * Map used to keep track of list changes
+     */
+    @SuppressWarnings("serial")
+    static class InternalDeltaListMap<K, V> extends InternalMap<K, V> {
+
+        public InternalDeltaListMap() {
+            super();
+        }
+
+        public InternalDeltaListMap(int initialCapacity, float loadFactor) {
+            super(initialCapacity, loadFactor);
+        }
+
+        public InternalDeltaListMap(int initialSize) {
+            super(initialSize);
+        }
+
+        public InternalDeltaListMap(Map<? extends K, ? extends V> m) {
+            super(m);
+        }
+    }
+
+    @SuppressWarnings("serial")
+    static class InternalList<T> extends ArrayList<T> implements StateHolder {
+        public InternalList() {
+            super();
+        }
+
+        public InternalList(Collection<? extends T> c) {
+            super(c);
+        }
+
+        public InternalList(int initialSize) {
+            super(initialSize);
+        }
+
+        public boolean isTransient() {
+            return false;
+        }
+
+        public void setTransient(boolean newTransientValue) {
+        }
+
+        @SuppressWarnings("unchecked")
+        public void restoreState(FacesContext context, Object state) {
+            Object[] listAsArr = (Object[]) state;
+            //since all other options would mean dual iteration
+            //we have to do it the hard way
+            for (Object elem : listAsArr) {
+                add((T) UIComponentBase.restoreAttachedState(context, elem));
+            }
+        }
+
+        @SuppressWarnings("unchecked")
+        public Object saveState(FacesContext context) {
+            Object[] values = new Object[size()];
+            for (int i = 0; i < size(); i++) {
+                Object value = get(i);
+
+                if (value instanceof StateHolder ||
+                    value instanceof List ||
+                    !(value instanceof Serializable)) {
+                    values[i] = UIComponentBase.saveAttachedState(context, value);
+                } else {
+                    values[i] = value;
+                }
+            }
+            return values;
+        }
+    }
+}

Added: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/DragSourceBehavior.java
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/DragSourceBehavior.java?rev=980988&view=auto
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/DragSourceBehavior.java (added)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/DragSourceBehavior.java Fri Jul 30 22:37:29 2010
@@ -0,0 +1,181 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.html5.behavior;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.el.ValueExpression;
+import javax.faces.application.ResourceDependencies;
+import javax.faces.application.ResourceDependency;
+import javax.faces.context.FacesContext;
+
+import org.apache.myfaces.html5.event.DropEvent;
+
+//TODO: use the myfaces annotation and fix the template!
+//@JSFBehavior(name = "fx:dragSource", id = "org.apache.myfaces.html5.DragSource")
+//@FacesBehavior(value="org.apache.myfaces.html5.DragSourceBehavior")
+/**
+ * Adds the Html5 drag functionality to its parent. <br/>
+ * This behavior should be attached to "dragstart" event of the parent.
+ * 
+ * @author Ali Ok
+ * 
+ */
+@ResourceDependencies(
+{
+        @ResourceDependency(name = "jsf.js", library = "javax.faces", target = "head"),
+        @ResourceDependency(name = "html5.js", library = "myfaces.apache.org", target = "head")
+})
+public class DragSourceBehavior extends javax.faces.component.behavior.ClientBehaviorBase implements ValueExpressionHolder
+{
+
+    public static final String RENDERER_ID = "org.apache.myfaces.html5.DragSourceBehavior";
+
+    private static final Serializable ATTR_ACTION = "action";
+    private static final Serializable ATTR_DROP_TARGET_TYPES = "dropTargetTypes";
+    private static final Serializable ATTR_PARAM = "param";
+
+    private Map<String, ValueExpression> _valueExpressions = new HashMap<String, ValueExpression>();
+    private ClientBehaviorDeltaStateHelper<DragSourceBehavior> deltaStateHelper = new ClientBehaviorDeltaStateHelper<DragSourceBehavior>(this);
+
+    @Override
+    public String getRendererType()
+    {
+        return RENDERER_ID;
+    }
+
+    /**
+     * Action of for drag operation. Can be one of below:
+     * <ul>
+     * <li>copy: A copy of the source item may be made at the new location.</li>
+     * <li>move: An item may be moved to a new location.</li>
+     * <li>link: A link may be established to the source at the new location.</li>
+     * <li>none: The item may not be dropped.</li>
+     * </ul>
+     * <br/>
+     * 
+     * If nothing is specified, the action will be defined by the browser and can be adjusted using the modifier keys.
+     * If dropTarget does not accept the action of this dragSource, then the DnD will fail.
+     */
+    public String getAction()
+    {
+        return (String) deltaStateHelper.eval(ATTR_ACTION);
+    }
+
+    public void setAction(String action)
+    {
+        deltaStateHelper.put(ATTR_ACTION, action);
+    }
+
+    /**
+     * The types of the dropTargets that drags from this dragSource can be applied. Can be comma separated set or
+     * String[] or Collection<String>. <br/>
+     * If defined, drags from this dragSource will work into only the dropTargets that have one of the same type. The
+     * drag will be accepted if 'types' of hx:dropTarget has one of the types defined here.
+     */
+    public Object getDropTargetTypes()
+    {
+        return deltaStateHelper.eval(ATTR_DROP_TARGET_TYPES);
+    }
+
+    public void setDropTargetTypes(Object dropTargetTypes)
+    {
+        deltaStateHelper.put(ATTR_DROP_TARGET_TYPES, dropTargetTypes);
+    }
+
+    /**
+     * Data to send to server when a successful drag&drop happens from this source. <br/>
+     * The param can be received using the {@link DropEvent#getParam()} method at dropListener of the fx:dropTarget.
+     * 
+     */
+    public String getParam()
+    {
+        return (String)deltaStateHelper.eval(ATTR_PARAM);
+    }
+
+    public void setParam(String param)
+    {
+        deltaStateHelper.put(ATTR_PARAM, param);
+    }
+
+    public void setValueExpression(String name, ValueExpression item)
+    {
+        if (item == null)
+        {
+            getValueExpressionMap().remove(name);
+            deltaStateHelper.remove(name);
+        }
+        else
+        {
+            getValueExpressionMap().put(name, item);
+        }
+    }
+
+    private Map<String, ValueExpression> getValueExpressionMap()
+    {
+        return _valueExpressions;
+    }
+    
+    public ValueExpression getValueExpression(String name) 
+    {
+        return getValueExpressionMap().get(name);
+    }
+    
+    @Override
+    public void restoreState(FacesContext facesContext, Object o)
+    {
+        if (o == null)
+        {
+            return;
+        }
+        Object[] values = (Object[]) o;
+        if (values[0] != null) 
+        {
+            super.restoreState(facesContext, values[0]);
+        }
+        deltaStateHelper.restoreState(facesContext, values[1]);
+    }
+
+    @Override
+    public Object saveState(FacesContext facesContext)
+    {
+        if (initialStateMarked())
+        {
+            Object parentSaved = super.saveState(facesContext);
+            Object deltaStateHelperSaved = deltaStateHelper.saveState(facesContext);
+            
+            if (parentSaved == null && deltaStateHelperSaved == null)
+            {
+                //No values
+                return null;
+            }   
+            return new Object[]{parentSaved, deltaStateHelperSaved};
+        }
+        else
+        {
+            Object[] values = new Object[2];
+            values[0] = super.saveState(facesContext);
+            values[1] = deltaStateHelper.saveState(facesContext);
+            return values;
+        }
+    }
+
+}

Added: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/DropTargetBehavior.java
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/DropTargetBehavior.java?rev=980988&view=auto
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/DropTargetBehavior.java (added)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/DropTargetBehavior.java Fri Jul 30 22:37:29 2010
@@ -0,0 +1,254 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.html5.behavior;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.el.ValueExpression;
+import javax.faces.application.ResourceDependencies;
+import javax.faces.application.ResourceDependency;
+import javax.faces.context.FacesContext;
+
+import org.apache.myfaces.html5.event.DropEvent;
+import org.apache.myfaces.html5.event.DropListener;
+import org.apache.myfaces.html5.renderkit.behavior.DropTargetBehaviorRenderer;
+
+//TODO: use the myfaces annotation and fix the template!
+//@JSFBehavior(name = "fx:dragTarget", id = "org.apache.myfaces.html5.DragDropTargetBehavior")
+//@FacesBehavior(value="org.apache.myfaces.html5.DropTargetBehavior")
+/**
+ * Provides Html5 drop functionality to its parent.
+ * 
+ * @author Ali Ok
+ * 
+ */
+@ResourceDependencies(
+{
+        @ResourceDependency(name = "jsf.js", library = "javax.faces", target = "head"),
+        @ResourceDependency(name = "html5.js", library = "myfaces.apache.org", target = "head")
+})
+public class DropTargetBehavior extends javax.faces.component.behavior.ClientBehaviorBase implements ValueExpressionHolder
+{
+
+    public static final String RENDERER_ID = "org.apache.myfaces.html5.DropTargetBehavior";
+    
+    private static final String ATTR_ACTION = "action";
+    private static final String ATTR_TYPES = "types";
+    private static final String ATTR_ACCEPT_MIME_TYPES = "acceptMimeTypes";
+    private static final String ATTR_RERENDER = "rerender";
+
+    private Map<String, ValueExpression> _valueExpressions = new HashMap<String, ValueExpression>();
+    private ClientBehaviorDeltaStateHelper<DropTargetBehavior> deltaStateHelper = new ClientBehaviorDeltaStateHelper<DropTargetBehavior>(this);
+    
+    /**
+     * Adds a {@link DropListener} to notify when a {@link DropEvent} occured. 
+     */
+    public void addDropTargetBehaviorListener(DropListener listener)
+    {
+        super.addBehaviorListener(listener);
+    }
+
+    /**
+     * @see DropTargetBehavior#addBehaviorListener(javax.faces.event.BehaviorListener)
+     */
+    public void removeDropTargetBehaviorListener(DropListener listener)
+    {
+        removeBehaviorListener(listener);
+    }
+
+    @Override
+    public String getRendererType()
+    {
+        return RENDERER_ID;
+    }
+
+    /**
+     * Action to allow for drop operation. Can be one of below:
+     * <ul>
+     * <li>copy: A copy of the source item may be made at the new location.</li>
+     * <li>move: An item may be moved to a new location.</li>
+     * <li>link: A link may be established to the source at the new location.</li>
+     * <li>copyLink: A copy or link operation is permitted.</li>
+     * <li>copyMove: A copy or move operation is permitted.</li>
+     * <li>linkMove: A link or move operation is permitted.</li>
+     * <li>all: All operations are permitted.</li>
+     * <li>none: The item may not be dropped.</li>
+     * </ul>
+     * <br/>
+     * 
+     * If nothing is specified, any action will be accepted. Action is set by the hx:dragSource behavior, when the
+     * element is generated by a MyFaces-Html5 component that has hx:dragSource behavior. For other elements, action is
+     * set by the browser, and can be adjusted by pressing the modifier keys.
+     */
+    public String getAction()
+    {
+        return (String) deltaStateHelper.eval(ATTR_ACTION);
+    }
+
+    public void setAction(String action)
+    {
+        deltaStateHelper.put(ATTR_ACTION, action);
+    }
+
+    /**
+     * The type of the drop target. Can be comma separated set or String[] or Collection<String>. <br/>
+     * If defined, drags from elements that are generated by MyFaces-Html5 components with hx:dragSource behavior, will
+     * be filtered. The drag will be accepted if dropTargetTypes of hx:dragSource is one of the allowed. For the drags
+     * that are originated from other elements, this property is ignored. Please see acceptMimeTypes property for
+     * accepting/rejecting drags from non-MyFaces-Html5 components.
+     */
+    public Object getTypes()
+    {
+        return deltaStateHelper.eval(ATTR_TYPES);
+    }
+
+    public void setTypes(Object types)
+    {
+        deltaStateHelper.put(ATTR_TYPES, types);
+    }
+
+    /**
+     * If this property is set, only content dropped into this drop zone with defined mime type will be accepted and
+     * sent to server-side drop listener. Can be comma separated set or String[] or Collection<String>. <br/>
+     * <br/>
+     * HTML5 DnD allows us to drop anything into drop zone : files from desktop, images on some other document, etc. So
+     * this property is a filter. If value is "*", any content dropped into this zone will be accepted. <br/>
+     * <br/>
+     * All type info and data of dropped stuff will be sent to dropListener. For example, if value of this property is
+     * "*" and we drop some image from any Html page(even not generated by JSF), dropListener will be triggered with the
+     * following data:
+     * <table border="1">
+     * <tr>
+     * <td>content-type</td>
+     * <td>value</td>
+     * </tr>
+     * <tr>
+     * <td>text/uri-list</td>
+     * <td>http://example.org/someImage.png</td>
+     * </tr>
+     * <tr>
+     * <td>Text</td>
+     * <td>http://example.org/someImage.png</td>
+     * </tr>
+     * <tr>
+     * <td>text/plain</td>
+     * <td>http://example.org/someImage.png</td>
+     * </tr>
+     * <tr>
+     * <td>URL</td>
+     * <td>http://example.org/someImage.png</td>
+     * </tr>
+     * </table>
+     * <br/>
+     * 
+     * Mime type is "text/x-myfaces-html5-dnd-source" for drag&drop events that is generated by MyFaces-Html5 components
+     * and that mime type is defined at {@link DropTargetBehaviorRenderer#DEFAULT_MYFACES_MIME_TYPE}. Default value of
+     * this property is "text/x-myfaces-html5-dnd-source", thus only MyFaces generated components can be dropped into
+     * the drop target.
+     */
+    // TODO: implement accepting all mime types with supporting '*' for the value.
+    public Object getAcceptMimeTypes()
+    {
+        return deltaStateHelper.eval(ATTR_ACCEPT_MIME_TYPES);
+    }
+
+    public void setAcceptMimeTypes(Object acceptMimeTypes)
+    {
+        deltaStateHelper.put(ATTR_ACCEPT_MIME_TYPES, acceptMimeTypes);
+    }
+
+    /**
+     * Space separated ids of components to rerender. <br/>
+     * Value of this property will be passed through to jsf.ajax.request, thus semantics is same with jsf.ajax.request
+     * and f:ajax. Just like those, @all, @this etc. can be used.
+     */
+    public Object getRerender()
+    {
+        return deltaStateHelper.eval(ATTR_RERENDER);
+    }
+
+    public void setRerender(Object rerender)
+    {
+        deltaStateHelper.put(ATTR_RERENDER, rerender);
+    }
+
+    
+    public void setValueExpression(String name, ValueExpression item)
+    {
+        if (item == null)
+        {
+            getValueExpressionMap().remove(name);
+            deltaStateHelper.remove(name);
+        }
+        else
+        {
+            getValueExpressionMap().put(name, item);
+        }
+    }
+
+    private Map<String, ValueExpression> getValueExpressionMap()
+    {
+        return _valueExpressions;
+    }
+    
+    public ValueExpression getValueExpression(String name) 
+    {
+        return getValueExpressionMap().get(name);
+    }
+    
+    @Override
+    public void restoreState(FacesContext facesContext, Object o)
+    {
+        if (o == null)
+        {
+            return;
+        }
+        Object[] values = (Object[]) o;
+        if (values[0] != null) 
+        {
+            super.restoreState(facesContext, values[0]);
+        }
+        deltaStateHelper.restoreState(facesContext, values[1]);
+    }
+
+    @Override
+    public Object saveState(FacesContext facesContext)
+    {
+        if (initialStateMarked())
+        {
+            Object parentSaved = super.saveState(facesContext);
+            Object deltaStateHelperSaved = deltaStateHelper.saveState(facesContext);
+            
+            if (parentSaved == null && deltaStateHelperSaved == null)
+            {
+                //No values
+                return null;
+            }   
+            return new Object[]{parentSaved, deltaStateHelperSaved};
+        }
+        else
+        {
+            Object[] values = new Object[2];
+            values[0] = super.saveState(facesContext);
+            values[1] = deltaStateHelper.saveState(facesContext);
+            return values;
+        }
+    }
+}

Added: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/ValueExpressionHolder.java
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/ValueExpressionHolder.java?rev=980988&view=auto
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/ValueExpressionHolder.java (added)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/behavior/ValueExpressionHolder.java Fri Jul 30 22:37:29 2010
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.html5.behavior;
+
+import javax.el.ValueExpression;
+
+/**
+ * Contract for the workaround done at {@link DragSourceBehavior}.
+ * see https://issues.apache.org/jira/browse/MYFACES-2616
+ */
+public interface ValueExpressionHolder
+{
+
+    public void setValueExpression(String name, ValueExpression item);
+    public ValueExpression getValueExpression(String name);
+    public boolean initialStateMarked();
+    
+}

Added: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/api/Draggable.java
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/api/Draggable.java?rev=980988&view=auto
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/api/Draggable.java (added)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/api/Draggable.java Fri Jul 30 22:37:29 2010
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.html5.component.api;
+
+import org.apache.myfaces.html5.behavior.DragSourceBehavior;
+
+
+/**
+ * Defines the necessary contract for the {@link DragSourceBehavior}.
+ * Any component that can accept {@link DragSourceBehavior} have to implement this interface. 
+ * @author Ali Ok
+ *
+ */
+public interface Draggable
+{
+
+    public void setDraggable(boolean draggable);
+    
+}

Added: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtml5BaseInputText.java
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtml5BaseInputText.java?rev=980988&view=auto
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtml5BaseInputText.java (added)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtml5BaseInputText.java Fri Jul 30 22:37:29 2010
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.html5.component.input;
+
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
+import org.apache.myfaces.html5.component.properties.Html5GlobalProperties;
+import org.apache.myfaces.html5.component.properties.Html5InputProperties;
+
+/**
+ * Base class for HTML5 input components. Provides support for common mechanisms like suggestions.
+ * 
+ * @author Ali Ok
+ * 
+ */
+@JSFComponent(clazz = "org.apache.myfaces.html5.component.input.Html5BaseInputText",
+        implementz = "javax.faces.component.behavior.ClientBehaviorHolder",
+        defaultEventName="valueChange")
+public abstract class AbstractHtml5BaseInputText extends javax.faces.component.html.HtmlInputText implements
+        Html5GlobalProperties, Html5InputProperties
+{
+    
+}

Added: myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlDataList.java
URL: http://svn.apache.org/viewvc/myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlDataList.java?rev=980988&view=auto
==============================================================================
--- myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlDataList.java (added)
+++ myfaces/gsoc/html5-comp-lib/trunk/html5-comp-lib-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlDataList.java Fri Jul 30 22:37:29 2010
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.html5.component.input;
+
+import java.util.logging.Logger;
+
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
+
+@JSFComponent(
+        name = "hx:dataList",
+        clazz = "org.apache.myfaces.html5.component.input.HtmlDataList",
+        tagClass = "org.apache.myfaces.html5.tag.input.HtmlDataListTag",
+        defaultRendererType = "org.apache.myfaces.html5.DataList",
+        family = "javax.faces.Output",
+        type = "org.apache.myfaces.html5.HtmlDataList"
+        )
+        //TODO: docme 
+public abstract class AbstractHtmlDataList extends javax.faces.component.UIComponentBase
+{
+    private static final Logger log = Logger.getLogger(AbstractHtmlDataList.class.getName());
+
+    //TODO: docme
+    @JSFProperty(deferredValueType = "java.lang.Object")
+    // since this property accepts both comma separated string and List<SelectItem>
+    public abstract Object getSuggestions();
+}