Author: mlusetti
Date: Fri Dec 9 08:06:09 2011
New Revision: 1212270
URL: http://svn.apache.org/viewvc?rev=1212270&view=rev
Log:
TAP5-1773 Add a new OverrideFieldFocus mixin which supersed and deprecate the
old one FormFieldFocus
Added:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.java
- copied, changed from r1211021,
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/FormFieldFocus.java
tapestry/tapestry5/trunk/tapestry-core/src/test/app1/OverrideFieldFocusDemo.tml
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/OverrideFieldFocusDemo.java
- copied, changed from r1211021,
tapestry/tapestry5/trunk/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/FormFieldFocusTest.groovy
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/FormFieldFocus.java
tapestry/tapestry5/trunk/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/FormFieldFocusTest.groovy
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/FormFieldFocus.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/FormFieldFocus.java?rev=1212270&r1=1212269&r2=1212270&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/FormFieldFocus.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/FormFieldFocus.java
Fri Dec 9 08:06:09 2011
@@ -34,8 +34,10 @@ import org.slf4j.Logger;
* This is meant to be used only with {@link
org.apache.tapestry5.corelib.components.Form} component.
*
* @since 5.3
+ * @deprecated As of release 5.4, replaced by {@link
org.apache.tapestry5.corelib.mixins.OverrideFieldFocus}
* @tapestrydoc
*/
+@Deprecated
public class FormFieldFocus
{
@Inject
@@ -61,9 +63,9 @@ public class FormFieldFocus
@AfterRender
void focusField()
{
- javascriptSupport.autofocus(FieldFocusPriority.OVERRIDE,
focusField.getControlName());
+ javascriptSupport.autofocus(FieldFocusPriority.OVERRIDE,
focusField.getClientId());
- logger.trace("Focus OVERRIDE done on field {}",
focusField.getControlName());
+ logger.trace("Focus OVERRIDE done on field {}",
focusField.getClientId());
}
}
Copied:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.java
(from r1211021,
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/FormFieldFocus.java)
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/FormFieldFocus.java&r1=1211021&r2=1212270&rev=1212270&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/FormFieldFocus.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.java
Fri Dec 9 08:06:09 2011
@@ -15,7 +15,6 @@
package org.apache.tapestry5.corelib.mixins;
import org.apache.tapestry5.BindingConstants;
-import org.apache.tapestry5.ClientElement;
import org.apache.tapestry5.Field;
import org.apache.tapestry5.FieldFocusPriority;
import org.apache.tapestry5.annotations.AfterRender;
@@ -28,15 +27,14 @@ import org.apache.tapestry5.services.jav
import org.slf4j.Logger;
/**
- * A mixin that instruments the outer {@link
org.apache.tapestry5.corelib.components.Form} on which
- * component the focus should be activated.
+ * A mixin that let a {@link org.apache.tapestry5.Field} gain focus.
* <p/>
- * This is meant to be used only with {@link
org.apache.tapestry5.corelib.components.Form} component.
+ * This supersede {@link org.apache.tapestry5.corelib.mixins.FormFieldFocus}
in 5.4
*
- * @since 5.3
+ * @since 5.4
* @tapestrydoc
*/
-public class FormFieldFocus
+public class OverrideFieldFocus
{
@Inject
private Logger logger;
@@ -45,14 +43,7 @@ public class FormFieldFocus
* The outer Form
*/
@InjectContainer
- private Form form;
-
- /**
- * The {@link org.apache.tapestry5.Field} instance that will receive the
focus within
- * the {@link org.apache.tapestry5.corelib.components.Form}.
- */
- @Parameter(required = true, defaultPrefix = BindingConstants.COMPONENT,
allowNull = false)
- private Field focusField;
+ private Field container;
@Environmental
private JavaScriptSupport javascriptSupport;
@@ -61,9 +52,9 @@ public class FormFieldFocus
@AfterRender
void focusField()
{
- javascriptSupport.autofocus(FieldFocusPriority.OVERRIDE,
focusField.getControlName());
+ javascriptSupport.autofocus(FieldFocusPriority.OVERRIDE,
container.getClientId());
- logger.trace("Focus OVERRIDE done on field {}",
focusField.getControlName());
+ logger.trace("Focus OVERRIDE done on field {}",
container.getClientId());
}
}
Added:
tapestry/tapestry5/trunk/tapestry-core/src/test/app1/OverrideFieldFocusDemo.tml
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/app1/OverrideFieldFocusDemo.tml?rev=1212270&view=auto
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/app1/OverrideFieldFocusDemo.tml
(added)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/app1/OverrideFieldFocusDemo.tml
Fri Dec 9 08:06:09 2011
@@ -0,0 +1,14 @@
+<html t:type="Border"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"
xml:space="default">
+ <h1>Override Field Focus Demo</h1>
+
+ <t:form t:id="focusform" name="focusform">
+
+ <t:label for="requiredValue" />
+ <t:textfield t:id="requiredValue" t:validate="required"/>
+ <br/>
+ <t:label for="overrideFocus" />
+ <t:textfield t:id="overrideFocus" t:value="overrideFocusValue"
t:mixins="overridefieldfocus" />
+
+ </t:form>
+
+</html>
\ No newline at end of file
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/FormFieldFocusTest.groovy
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/FormFieldFocusTest.groovy?rev=1212270&r1=1212269&r2=1212270&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/FormFieldFocusTest.groovy
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/FormFieldFocusTest.groovy
Fri Dec 9 08:06:09 2011
@@ -19,14 +19,24 @@ import org.apache.tapestry5.integration.
import org.testng.annotations.Test
/**
- * Integration test to veryfiy {@link FormFieldFocusTest} mixin.
+ * Integration test to veryfiy {@link
com.gargoylesoftware.htmlunit.javascript.host.FormField}
+ * and {@link org.apache.tapestry5.corelib.mixins.OverrideFieldfocus} mixin.
*/
class FormFieldFocusTest extends TapestryCoreTestCase
{
@Test
void form_field_focus_mixin()
{
- openLinks "FormFieldFocus Demo"
+ openLinks "FormFieldFocus (DEPRECATED) Demo"
+
+ assertEquals getEval("window.document.activeElement.value"), "But I
got the focus!"
+
+ }
+
+ @Test
+ void override_field_focus_mixin()
+ {
+ openLinks "OverrideFieldFocus Demo"
assertEquals getEval("window.document.activeElement.value"), "But I
got the focus!"
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java?rev=1212270&r1=1212269&r2=1212270&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java
Fri Dec 9 08:06:09 2011
@@ -508,9 +508,11 @@ public class Index
new Item("ExpressionInJsFunction", "Expressions in JS
Functions Demo", "Expressions can be used inside javascript functions"),
- new Item("FormFieldFocusDemo", "FormFieldFocus Demo",
"Setting the Form focus on a specific field"),
+ new Item("FormFieldFocusDemo", "FormFieldFocus
(DEPRECATED) Demo", "Setting the Form focus on a specific field"),
- new Item("FormFragmentExplicitVisibleBoundsDemo", "Form
Fragment Explicit Visible Bounds Demo", "Check for form fragment parent
visibility can be bounded to")
+ new Item("FormFragmentExplicitVisibleBoundsDemo", "Form
Fragment Explicit Visible Bounds Demo", "Check for form fragment parent
visibility can be bounded to"),
+
+ new Item("OverrideFieldFocusDemo", "OverrideFieldFocus
Demo", "Setting the focus in a form to a specific field")
);
Copied:
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/OverrideFieldFocusDemo.java
(from r1211021,
tapestry/tapestry5/trunk/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/FormFieldFocusTest.groovy)
URL:
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/OverrideFieldFocusDemo.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/OverrideFieldFocusDemo.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/FormFieldFocusTest.groovy&r1=1211021&r2=1212270&rev=1212270&view=diff
==============================================================================
---
tapestry/tapestry5/trunk/tapestry-core/src/test/groovy/org/apache/tapestry5/integration/app1/FormFieldFocusTest.groovy
(original)
+++
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/OverrideFieldFocusDemo.java
Fri Dec 9 08:06:09 2011
@@ -12,23 +12,24 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+package org.apache.tapestry5.integration.app1.pages;
-package org.apache.tapestry5.integration.app1
+import org.apache.tapestry5.annotations.Property;
-import org.apache.tapestry5.integration.TapestryCoreTestCase
-import org.testng.annotations.Test
-
-/**
- * Integration test to veryfiy {@link FormFieldFocusTest} mixin.
- */
-class FormFieldFocusTest extends TapestryCoreTestCase
+public class OverrideFieldFocusDemo
{
- @Test
- void form_field_focus_mixin()
- {
- openLinks "FormFieldFocus Demo"
+ @Property
+ private String requiredValue;
+
+ @Property
+ private String overrideFocusValue;
- assertEquals getEval("window.document.activeElement.value"), "But I
got the focus!"
+ void beginRender()
+ {
+ requiredValue = "I'm required";
+
+ overrideFocusValue = "But I got the focus!";
}
+
}