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