You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by fr...@apache.org on 2007/02/10 12:36:43 UTC
svn commit: r505676 [1/2] - in
/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src:
main/java/org/apache/tapestry/
main/java/org/apache/tapestry/corelib/components/
main/java/org/apache/tapestry/corelib/mixins/ main/java/org/apache/t...
Author: freemant
Date: Sat Feb 10 03:36:41 2007
New Revision: 505676
URL: http://svn.apache.org/viewvc?view=rev&rev=505676
Log:
1) Changed the rest core components to use type safe configuration.
2) Allow runtime setting of informal parameters.
Added:
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RuntimeInformalWriter.java (with props)
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpInstantiator.java (with props)
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/model/
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/model/NoOpComponentModel.java (with props)
Modified:
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/ComponentResources.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Any.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/BeanEditForm.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Delegate.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Errors.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Form.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/If.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Label.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Loop.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/PageLink.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Submit.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/pages/ExceptionReport.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/PageLoaderProcessor.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/resources/org/apache/tapestry/corelib/components/BeanEditForm.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/resources/org/apache/tapestry/corelib/pages/ExceptionReport.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/AnyDemo.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/BlockDemo.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/ClassLoaderInspect.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/PasswordFieldDemo.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/RenderComponentDemo.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/SimpleForm.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/IntegrationTests.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ActionPage.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/AnyDemo.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/BlockDemo.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ClassLoaderInspect.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/NumberSelect.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/PasswordFieldDemo.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/RenderComponentDemo.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/SimpleForm.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ValidForm.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForActionLink.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForIf.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpComponentResources.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImplTest.java
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app1/pages/ActionPage.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app1/pages/NumberSelect.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app1/pages/ValidForm.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForActionLink.html
tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForIf.html
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/ComponentResources.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/ComponentResources.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/ComponentResources.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/ComponentResources.java Sat Feb 10 03:36:41 2007
@@ -14,6 +14,8 @@
package org.apache.tapestry;
+import java.util.Map;
+
import org.apache.tapestry.ioc.Messages;
import org.apache.tapestry.model.ComponentModel;
import org.apache.tapestry.runtime.Component;
@@ -80,8 +82,10 @@
*
* @param writer
* to which {@link MarkupWriter#attributes(Object[]) attributes} will be written
+ * @param runtimeParameters
+ * informal parameters set at runtime.
*/
- void renderInformalParameters(MarkupWriter writer);
+ void renderInformalParameters(MarkupWriter writer, Map<String, String> runtimeParameters);
/** Returns the message catalog for this component. */
Messages getMessages();
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java Sat Feb 10 03:36:41 2007
@@ -16,6 +16,7 @@
import static org.apache.tapestry.TapestryConstants.DEFAULT_EVENT;
+import java.util.Arrays;
import java.util.List;
import org.apache.tapestry.ComponentResources;
@@ -27,7 +28,6 @@
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Mixin;
-import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.corelib.mixins.RenderInformals;
import org.apache.tapestry.services.PageRenderSupport;
@@ -42,13 +42,11 @@
* strings and included in the URI. The strings will be coerced back to whatever their values
* are and made available to event handler methods.
*/
- @Parameter
private List<?> _context;
@Inject
private ComponentResources _resources;
- @SuppressWarnings("unused")
@Mixin
private RenderInformals _renderInformals;
@@ -65,8 +63,6 @@
Link link = _resources.createActionLink(DEFAULT_EVENT, false, contextArray);
writer.element("a", "href", link, "id", clientId);
-
- _resources.renderInformalParameters(writer);
}
@AfterRender
@@ -74,4 +70,15 @@
{
writer.end(); // <a>
}
+
+ public void setContext(Object... context)
+ {
+ _context = Arrays.asList(context);
+ }
+
+ public void setInformalParameter(String name, String value)
+ {
+ _renderInformals.setInformalParameter(name, value);
+ }
+
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Any.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Any.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Any.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Any.java Sat Feb 10 03:36:41 2007
@@ -19,8 +19,9 @@
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
-import org.apache.tapestry.annotations.Parameter;
+import org.apache.tapestry.annotations.Mixin;
import org.apache.tapestry.annotations.SupportsInformalParameters;
+import org.apache.tapestry.corelib.mixins.RenderInformals;
import org.apache.tapestry.services.PageRenderSupport;
/**
@@ -38,7 +39,6 @@
* The element to be rendered by the component. Normally, this matches the element from the
* template, but this can be overridden if necessary.
*/
- @Parameter(value="prop:componentResources.elementName", defaultPrefix="literal")
private String _element;
@Inject
@@ -49,15 +49,25 @@
private String _clientId;
+ @Mixin
+ private RenderInformals _renderInformals;
+
void beginRender(MarkupWriter writer)
{
+ if (_element == null)
+ {
+ useDefaultElement();
+ }
String componentId = _resources.getId();
_clientId = _pageRenderSupport.allocateClientId(componentId);
writer.element(_element, "id", _clientId);
+ }
- _resources.renderInformalParameters(writer);
+ private void useDefaultElement()
+ {
+ _element = _resources.getElementName();
}
void afterRender(MarkupWriter writer)
@@ -68,5 +78,15 @@
public String getClientId()
{
return _clientId;
+ }
+
+ public void setElement(String element)
+ {
+ _element = element;
+ }
+
+ public void setInformalParameter(String name, String value)
+ {
+ _renderInformals.setInformalParameter(name, value);
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/BeanEditForm.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/BeanEditForm.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/BeanEditForm.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/BeanEditForm.java Sat Feb 10 03:36:41 2007
@@ -55,8 +55,7 @@
@ComponentClass
public class BeanEditForm
{
- public static class PropertyNameUpdatedListener implements ValueUpdatedListener,
- Serializable
+ public static class PropertyNameUpdatedListener implements ValueUpdatedListener, Serializable
{
private static final long serialVersionUID = 1L;
@@ -75,6 +74,42 @@
_loop.setSource(getModel().getPropertyNames());
_loop.setValueUpdatedListener(new PropertyNameUpdatedListener());
}
+
+ @Component
+ private Label _textFieldLabel;
+
+ @Component
+ private Label _selectLabel;
+
+ @Component
+ private Label _checkboxFieldLabel;
+
+ public void configure_checkboxFieldLabel()
+ {
+ _checkboxFieldLabel.setField(_checkboxField);
+ }
+
+ public void configure_selectLabel()
+ {
+ _selectLabel.setField(_select);
+ }
+
+ public void configure_textFieldLabel()
+ {
+ _textFieldLabel.setField(_textField);
+ }
+
+ @Component
+ private Delegate _delegate;
+
+ public void configure_delegate()
+ {
+ _delegate.setTo(getBlockForProperty());
+ }
+
+ @SuppressWarnings("unused")
+ @Component
+ private Errors _errors;
/** The object to be editted by the BeanEditor. */
@Parameter(required = true)
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Delegate.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Delegate.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Delegate.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Delegate.java Sat Feb 10 03:36:41 2007
@@ -16,7 +16,6 @@
import org.apache.tapestry.Block;
import org.apache.tapestry.annotations.ComponentClass;
-import org.apache.tapestry.annotations.Parameter;
/**
* A component that does not do any rendering of its own, but will delegate to some other object
@@ -26,11 +25,18 @@
@ComponentClass
public class Delegate
{
- @Parameter(required = true)
+ /**
+ * Delegetes to this object.
+ */
private Object _to;
Object beginRender()
{
return _to;
+ }
+
+ public void setTo(Object to)
+ {
+ _to = to;
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Errors.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Errors.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Errors.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Errors.java Sat Feb 10 03:36:41 2007
@@ -14,11 +14,12 @@
package org.apache.tapestry.corelib.components;
+import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.ValidationTracker;
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
-import org.apache.tapestry.annotations.Parameter;
+import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.internal.InternalConstants;
/**
@@ -27,11 +28,12 @@
@ComponentClass
public class Errors
{
- @Parameter("message:default-banner")
private String _banner;
- @Parameter
- private String _class = InternalConstants.TAPESTRY_ERROR_CLASS;
+ private String _class;
+
+ @Inject
+ private ComponentResources _resources;
// Allow null so we can generate a better error message if missing
@Environmental(false)
@@ -39,6 +41,14 @@
void beginRender(MarkupWriter writer)
{
+ if (_class == null)
+ {
+ useDefaultClass();
+ }
+ if (_banner == null)
+ {
+ useDefaultBanner();
+ }
// TODO: Would be nice if there was a Location to report ... can we add a Location property
// to ComponentResources?
@@ -67,5 +77,25 @@
writer.end(); // ul
writer.end(); // div
+ }
+
+ private void useDefaultBanner()
+ {
+ _banner = _resources.getMessages().get("default-banner");
+ }
+
+ private void useDefaultClass()
+ {
+ _class = InternalConstants.TAPESTRY_ERROR_CLASS;
+ }
+
+ public void setBanner(String banner)
+ {
+ _banner = banner;
+ }
+
+ public void setClass(String class1)
+ {
+ _class = class1;
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Form.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Form.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Form.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Form.java Sat Feb 10 03:36:41 2007
@@ -39,7 +39,7 @@
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.annotations.SetupRender;
-import org.apache.tapestry.corelib.mixins.RenderInformals;
+import org.apache.tapestry.corelib.mixins.RuntimeInformalWriter;
import org.apache.tapestry.dom.Element;
import org.apache.tapestry.internal.services.FormParameterLookup;
import org.apache.tapestry.internal.services.HeartbeatImpl;
@@ -149,9 +149,8 @@
private Base64ObjectOutputStream _actions;
- @SuppressWarnings("unused")
@Mixin
- private RenderInformals _renderInformals;
+ private RuntimeInformalWriter _informalWriter;
public ValidationTracker getDefaultTracker()
{
@@ -207,7 +206,7 @@
.createActionLink(TapestryConstants.DEFAULT_EVENT, true, contextArray);
writer.element("form", "name", name, "id", name, "method", "post", "action", link);
- _resources.renderInformalParameters(writer);
+ _informalWriter.write(writer);
_div = writer.element("div", "class", "t-invisible");
@@ -436,5 +435,10 @@
public void clearErrors()
{
_tracker.clear();
+ }
+
+ public void setInformalParameter(String name, String value)
+ {
+ _informalWriter.setInformalParameter(name, value);
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/If.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/If.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/If.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/If.java Sat Feb 10 03:36:41 2007
@@ -16,7 +16,6 @@
import org.apache.tapestry.Block;
import org.apache.tapestry.annotations.ComponentClass;
-import org.apache.tapestry.annotations.Parameter;
/**
* Conditionally renders its body.
@@ -24,10 +23,8 @@
@ComponentClass
public class If
{
- @Parameter(required = true)
private boolean _test;
- @Parameter
private Block _else;
/**
@@ -46,5 +43,15 @@
boolean beforeRenderBody()
{
return _test;
+ }
+
+ public void setElse(Block else1)
+ {
+ _else = else1;
+ }
+
+ public void setTest(boolean test)
+ {
+ _test = test;
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Label.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Label.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Label.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Label.java Sat Feb 10 03:36:41 2007
@@ -24,21 +24,20 @@
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
-import org.apache.tapestry.annotations.Parameter;
-import org.apache.tapestry.annotations.SupportsInformalParameters;
+import org.apache.tapestry.annotations.Mixin;
+import org.apache.tapestry.corelib.mixins.RenderInformals;
import org.apache.tapestry.dom.Element;
+import org.apache.tapestry.ioc.internal.util.Defense;
import org.apache.tapestry.services.Heartbeat;
/** Generates a <label> element for a particular field. */
@ComponentClass
-@SupportsInformalParameters
public class Label
{
/**
* The for parameter is used to identify the {@link Field} linked to this label (it is named
* this way because it results in the for attribute of the label element).
*/
- @Parameter(name = "for", required = true, defaultPrefix = "component")
private Field _field;
@Environmental
@@ -50,14 +49,19 @@
@Inject
private ComponentResources _resources;
+ @Mixin
+ private RenderInformals _renderInformals;
+
@BeginRender
void begin(MarkupWriter writer)
{
+ Defense.notNull(_field, "field");
final Field field = _field;
final Element element = writer.element("label");
- _resources.renderInformalParameters(writer);
+ _resources
+ .renderInformalParameters(writer, _renderInformals.getRuntimeInformalParameters());
// Uh oh! Referencing a private field (that happens to get instrumented up the wazoo) from
// a inner class causes a java.lang.Verify error (Unable to pop operand off an empty stack).
@@ -101,5 +105,15 @@
void after(MarkupWriter writer)
{
writer.end(); // label
+ }
+
+ public void setField(Field field)
+ {
+ _field = field;
+ }
+
+ public void setInformalParameter(String name, String value)
+ {
+ _renderInformals.setInformalParameter(name, value);
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Loop.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Loop.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Loop.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Loop.java Sat Feb 10 03:36:41 2007
@@ -33,9 +33,10 @@
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.FormPersist;
import org.apache.tapestry.annotations.Inject;
+import org.apache.tapestry.annotations.Mixin;
import org.apache.tapestry.annotations.SetupRender;
-import org.apache.tapestry.annotations.SupportsInformalParameters;
import org.apache.tapestry.corelib.base.RestorePropertiesAction;
+import org.apache.tapestry.corelib.mixins.RuntimeInformalWriter;
import org.apache.tapestry.internal.services.FormPersistPropertySource;
import org.apache.tapestry.runtime.Component;
import org.apache.tapestry.services.BindingSource;
@@ -52,7 +53,6 @@
* full objects when there is not encoder, or as client-side objects when there is an encoder).
*/
@ComponentClass
-@SupportsInformalParameters
public class Loop<E, K extends Serializable> implements FormPersistPropertySource,
BindingSourceProvider
{
@@ -243,6 +243,9 @@
private List<K> _keyList;
+ @Mixin
+ private RuntimeInformalWriter _informalWriter;
+
@SetupRender
boolean setup()
{
@@ -366,7 +369,7 @@
if (_elementName != null)
{
writer.element(_elementName);
- _resources.renderInformalParameters(writer);
+ _informalWriter.write(writer);
}
}
@@ -522,5 +525,10 @@
public void setValueUpdatedListener(ValueUpdatedListener valueUpdatedListener)
{
_valueUpdatedListener = valueUpdatedListener;
+ }
+
+ public void setInformalParameter(String name, String value)
+ {
+ _informalWriter.setInformalParameter(name, value);
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/PageLink.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/PageLink.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/PageLink.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/PageLink.java Sat Feb 10 03:36:41 2007
@@ -22,7 +22,9 @@
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
+import org.apache.tapestry.annotations.Mixin;
import org.apache.tapestry.annotations.Parameter;
+import org.apache.tapestry.corelib.mixins.RenderInformals;
import org.apache.tapestry.services.PageRenderSupport;
/**
@@ -40,6 +42,9 @@
@Environmental
private PageRenderSupport _support;
+ @Mixin
+ private RenderInformals _renderInformals;
+
@BeginRender
void begin(MarkupWriter writer)
{
@@ -48,13 +53,16 @@
Link link = _resources.createPageLink(_page);
writer.element("a", "href", link, "id", clientId);
-
- _resources.renderInformalParameters(writer);
}
@AfterRender
void end(MarkupWriter writer)
{
writer.end(); // <a>
+ }
+
+ public void setInformalParameter(String name, String value)
+ {
+ _renderInformals.setInformalParameter(name, value);
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Submit.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Submit.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Submit.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/components/Submit.java Sat Feb 10 03:36:41 2007
@@ -17,6 +17,7 @@
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.annotations.Environmental;
+import org.apache.tapestry.annotations.FormPersist;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.corelib.base.AbstractField;
import org.apache.tapestry.internal.services.FormParameterLookup;
@@ -37,6 +38,7 @@
* If true, then any notification sent by the component will be deferred until the end of the
* form submission (this is usually desirable).
*/
+ @FormPersist
private boolean _defer = true;
@Environmental
@@ -86,7 +88,7 @@
}
- void setDefer(boolean defer)
+ public void setDefer(boolean defer)
{
_defer = defer;
}
@@ -96,5 +98,10 @@
_resources = resources;
_formSupport = support;
_heartbeat = heartbeat;
+ }
+
+ public boolean isDefer()
+ {
+ return _defer;
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java Sat Feb 10 03:36:41 2007
@@ -14,15 +14,11 @@
package org.apache.tapestry.corelib.mixins;
-import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.annotations.AfterRenderTemplate;
import org.apache.tapestry.annotations.BeforeRenderTemplate;
import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
-import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.MixinAfter;
-import org.apache.tapestry.annotations.SupportsInformalParameters;
/**
* Used to render out all informal parameters, in the {@link PostBeginRender} phase.
@@ -37,17 +33,13 @@
* <p>
* This is often used as a base class, for cases where a component doesn't have other mixins.
*/
-@ComponentClass
@MixinAfter
-@SupportsInformalParameters
-public class RenderInformals
+public class RenderInformals extends RuntimeInformalWriter
{
- @Inject
- private ComponentResources _resources;
-
@BeginRender
- void write(MarkupWriter writer)
+ void begin(MarkupWriter writer)
{
- _resources.renderInformalParameters(writer);
+ write(writer);
}
+
}
Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RuntimeInformalWriter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RuntimeInformalWriter.java?view=auto&rev=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RuntimeInformalWriter.java (added)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RuntimeInformalWriter.java Sat Feb 10 03:36:41 2007
@@ -0,0 +1,52 @@
+// Copyright 2007 The Apache Software Foundation
+//
+// Licensed 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.tapestry.corelib.mixins;
+
+import java.util.Map;
+
+import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.MarkupWriter;
+import org.apache.tapestry.annotations.ComponentClass;
+import org.apache.tapestry.annotations.Inject;
+import org.apache.tapestry.annotations.SupportsInformalParameters;
+import org.apache.tapestry.ioc.internal.util.CollectionFactory;
+
+/**
+ * Used to store runtime informal parameters and write them out on request.
+ */
+@ComponentClass
+@SupportsInformalParameters
+public class RuntimeInformalWriter
+{
+ @Inject
+ private ComponentResources _resources;
+
+ private Map<String, String> _runtimeInformalParameters = CollectionFactory.newMap();
+
+ public void write(MarkupWriter writer)
+ {
+ _resources.renderInformalParameters(writer, _runtimeInformalParameters);
+ }
+
+ public void setInformalParameter(String name, String value)
+ {
+ _runtimeInformalParameters.put(name, value);
+ }
+
+ public Map<String, String> getRuntimeInformalParameters()
+ {
+ return _runtimeInformalParameters;
+ }
+}
Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/mixins/RuntimeInformalWriter.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/pages/ExceptionReport.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/pages/ExceptionReport.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/pages/ExceptionReport.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/corelib/pages/ExceptionReport.java Sat Feb 10 03:36:41 2007
@@ -20,6 +20,7 @@
import org.apache.tapestry.annotations.Component;
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Inject;
+import org.apache.tapestry.corelib.components.If;
import org.apache.tapestry.corelib.components.Loop;
import org.apache.tapestry.ioc.services.ExceptionAnalysis;
import org.apache.tapestry.ioc.services.ExceptionAnalyzer;
@@ -46,6 +47,38 @@
@Component
private Loop<String, Serializable> _attrLoop;
+
+ @Component
+ private If _hasMessage;
+
+ @Component
+ private If _showProperties;
+
+ @Component
+ private If _hasStackTrace;
+
+ @Component
+ private If _hasSession;
+
+ public void configure_hasSession()
+ {
+ _hasSession.setTest(getHasSession());
+ }
+
+ public void configure_hasStackTrace()
+ {
+ _hasStackTrace.setTest(!getInfo().getStackTrace().isEmpty());
+ }
+
+ public void configure_showProperties()
+ {
+ _showProperties.setTest(getShowPropertyList());
+ }
+
+ public void configure_hasMessage()
+ {
+ _hasMessage.setTest(getInfo().getMessage() != null);
+ }
public void configure_attrLoop()
{
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/PageLoaderProcessor.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/PageLoaderProcessor.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/PageLoaderProcessor.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/services/PageLoaderProcessor.java Sat Feb 10 03:36:41 2007
@@ -533,15 +533,9 @@
if (isBlank(embeddedType) && isBlank(embeddedComponentClassName))
{
- // non-null means its invisible instrumentation; the Any component
- // will mimic the actual element, w/ body and informal parameters.
-
- if (elementName != null)
- embeddedType = "Any";
- else
- throw new TapestryException(ServicesMessages.noTypeForEmbeddedComponent(
- embeddedId,
- _loadingComponentModel.getComponentClassName()), token, null);
+ throw new TapestryException(ServicesMessages.noTypeForEmbeddedComponent(
+ embeddedId,
+ _loadingComponentModel.getComponentClassName()), token, null);
}
ComponentPageElement newComponent = _pageElementFactory.newComponentElement(
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java Sat Feb 10 03:36:41 2007
@@ -252,8 +252,12 @@
return _element.getMixinByClassName(mixinClassName);
}
- public void renderInformalParameters(MarkupWriter writer)
+ public void renderInformalParameters(MarkupWriter writer, Map<String, String> runtimeParameters)
{
+ for (String name : runtimeParameters.keySet())
+ {
+ writer.attributes(name, runtimeParameters.get(name));
+ }
if (_bindings == null)
return;
@@ -315,4 +319,5 @@
{
return _element.getBlock(blockId);
}
+
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/resources/org/apache/tapestry/corelib/components/BeanEditForm.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/resources/org/apache/tapestry/corelib/components/BeanEditForm.html?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/resources/org/apache/tapestry/corelib/components/BeanEditForm.html (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/resources/org/apache/tapestry/corelib/components/BeanEditForm.html Sat Feb 10 03:36:41 2007
@@ -1,9 +1,9 @@
<form t:id="form" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
- <t:comp type="Errors"/>
+ <t:comp id="errors"/>
<div class="t-beaneditor">
<div class="t-beaneditor-row" t:id="loop">
- <t:comp type="Delegate" to="blockForProperty"/>
+ <t:comp id="delegate"/>
</div>
<div class="t-beaneditor-row">
<input type="submit" value="Create/Update"/>
@@ -11,17 +11,17 @@
</div>
<t:block id="text">
- <label t:type="Label" for="textField"/>
+ <label t:id="textFieldLabel"/>
<input t:id="textField"/>
</t:block>
<t:block id="enum">
- <label t:type="Label" for="select"/>
+ <label t:id="selectLabel"/>
<input t:id="select"/>
</t:block>
<t:block id="checkbox">
- <label t:type="Label" for="checkboxField"/>
+ <label t:id="checkboxFieldLabel"/>
<input t:id="checkboxField"/>
</t:block>
</form>
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/resources/org/apache/tapestry/corelib/pages/ExceptionReport.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/resources/org/apache/tapestry/corelib/pages/ExceptionReport.html?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/resources/org/apache/tapestry/corelib/pages/ExceptionReport.html (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/main/resources/org/apache/tapestry/corelib/pages/ExceptionReport.html Sat Feb 10 03:36:41 2007
@@ -12,24 +12,23 @@
<li>
<span class="t-exception-class-name">${info.className}</span>
- <t:comp type="If" test="info.message">
+ <t:comp id="hasMessage">
<div class="t-exception-message">
${info.message}
</div>
</t:comp>
- <t:comp type="If" test="showPropertyList">
+ <t:comp id="showProperties">
<dl>
<t:comp id="propLoop">
<dt>${propertyName}</dt>
<dd>${propertyValue}</dd>
</t:comp>
- <t:comp type="If" test="info.stackTrace">
+ <t:comp id="hasStackTrace">
<dt>Stack trace</dt>
<dd>
<ul class="t-stack-trace">
- <t:comp id="frameLoop" source="info.stackTrace"
- value="frame">
+ <t:comp id="frameLoop">
<li>${frame}</li>
</t:comp>
</ul>
@@ -42,7 +41,7 @@
</ul>
</div>
<div class="t-env-data">
- <t:comp type="If" test="hasSession">
+ <t:comp id="hasSession">
<h2>Session</h2>
<dl>
<t:comp id="attrLoop">
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/AnyDemo.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/AnyDemo.html?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/AnyDemo.html (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/AnyDemo.html Sat Feb 10 03:36:41 2007
@@ -9,7 +9,7 @@
<div t:id="heading" class="heading">Heading</div>
- <div t:id="section" element="h2" class="section">Section</div>
+ <div t:id="section" class="section">Section</div>
<ul>
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/BlockDemo.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/BlockDemo.html?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/BlockDemo.html (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/BlockDemo.html Sat Feb 10 03:36:41 2007
@@ -8,7 +8,7 @@
</p>
<form t:type="Form">
- <select t:id="blockName" onchange="this.form.submit();"/> <label t:type="Label" for="blockName">Block to display</label>
+ <select t:id="blockName" onchange="this.form.submit();"/> <label t:id="label">Block to display</label>
</form>
<p>The block: [<t:comp type="Render" value="blockToRender"/>]</p>
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/ClassLoaderInspect.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/ClassLoaderInspect.html?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/ClassLoaderInspect.html (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/ClassLoaderInspect.html Sat Feb 10 03:36:41 2007
@@ -15,7 +15,7 @@
<h2>Class Loader Hierarchy</h2>
<ul>
- <t:comp type="Loop" source="loaders" value="loader">
+ <t:comp id="loaderLoop">
<li> ${loader} </li>
</t:comp>
</ul>
@@ -23,19 +23,19 @@
<h2> Find Resources </h2>
<form t:id="search">
- <t:comp type="Errors"/>
- <label t:type="Label" for="resource"/>: <input t:id="resource"
- t:type="TextField" size="50" validate="required"/>
+ <t:comp id="errors"/>
+ <label t:type="Label"/>: <input t:id="resourceField"
+ size="50"/>
<br/>
<input type="submit"/>
</form>
- <t:comp type="If" test="showMatches">
+ <t:comp id="hasMatches">
<h3>${listSize} Matches</h3>
<ul>
- <t:comp type="Loop" source="URLs" value="URL">
+ <t:comp id="URLLoop" source="URLs" value="URL">
<li>${URL} <dl>
<dt>Connection</dt>
@@ -54,7 +54,7 @@
<dd>
<ul>
- <t:comp type="Loop" source="jarEntries" value="jarEntry">
+ <t:comp id="jarEntriesLoop">
<li> ${jarEntry} </li>
</t:comp>
</ul>
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/PasswordFieldDemo.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/PasswordFieldDemo.html?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/PasswordFieldDemo.html (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/PasswordFieldDemo.html Sat Feb 10 03:36:41 2007
@@ -5,12 +5,12 @@
<form t:id="form">
- <span t:type="Errors"/>
+ <span t:id="errors"/>
- <label t:type="Label" for="userName"/>
+ <label t:id="l1"/>
<input t:id="userName" size="30"/>
<br/>
- <label t:type="Label" for="password"/>
+ <label t:id="l2"/>
<input t:id="password" size="30"/>
<br/>
<input type="submit" value="Login"/>
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/RenderComponentDemo.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/RenderComponentDemo.html?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/RenderComponentDemo.html (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/RenderComponentDemo.html Sat Feb 10 03:36:41 2007
@@ -13,14 +13,14 @@
</t:block>
<form t:type="Form">
- <input t:type="Checkbox" t:id="enabled" onchange="this.form.submit();"/> <label t:type="Label" for="enabled">Enable optional text</label>
+ <input t:id="enabled" onchange="this.form.submit();"/> <label t:id="label">Enable optional text</label>
</form>
- <t:comp type="If" test="enabled">
- Should now show up:
- <t:parameter name="else">
+ <t:comp id="ifEnabled">
+ Should now show up:
+ <t:block id="else">
Should be blank:
- </t:parameter>
+ </t:block>
</t:comp>
<span id="container">[<t:comp type="Render" value="thing"/>]</span>
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/SimpleForm.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/SimpleForm.html?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/SimpleForm.html (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/app1/WEB-INF/SimpleForm.html Sat Feb 10 03:36:41 2007
@@ -4,27 +4,27 @@
<p> This is the <em>very early</em> start to Tapestry 5 form support. </p>
<form t:type="Form">
- <input t:type="Checkbox" t:id="disabled"/>
- <label id="l1" t:type="Label" for="disabled"/>
+ <input t:id="disabled"/>
+ <label id="l1" t:id="l1"/>
<br/>
<div class="t-beaneditor">
- <label id="l2" t:type="Label" for="email">This isn't used</label>
+ <label id="l2" t:id="l2">This isn't used</label>
<input
t:id="email" size="50"/>
<br/>
- <label id="l3" t:type="Label" for="message"/>
+ <label id="l3" t:id="l3"/>
<input t:id="message"
cols="50" rows="10"> You can put text here, but it isn't used. </input>
<br/>
- <label id="l4" t:type="Label" for="operatingSystem"/>
+ <label id="l4" t:id="l4"/>
<select t:id="operatingSystem" />
<br/>
- <label id="l5" t:type="Label" for="department"/>
+ <label id="l5" t:id="l5"/>
<select t:id="department"/>
<br/>
- <label id="l6" t:type="Label" for="urgent"/>
+ <label id="l6" t:id="l6"/>
<input t:id="urgent"/>
<br/>
<input type="submit"/></div>
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/IntegrationTests.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/IntegrationTests.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/IntegrationTests.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/IntegrationTests.java Sat Feb 10 03:36:41 2007
@@ -459,7 +459,14 @@
for (int i = 2; i < 5; i++)
{
clickAndWait("link=" + i);
-
+ assertFalse(_selenium.isElementPresent(String.format(
+ "//a[@id='choose_%d']/@class",
+ i - 3)));
+ assertEquals(_selenium
+ .getAttribute(String.format("//a[@id='choose_%d']/@class", i - 2)), "selected");
+ assertFalse(_selenium.isElementPresent(String.format(
+ "//a[@id='choose_%d']/@class",
+ i - 1)));
assertTextPresent(YOU_CHOSE + i);
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ActionPage.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ActionPage.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ActionPage.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ActionPage.java Sat Feb 10 03:36:41 2007
@@ -14,13 +14,43 @@
package org.apache.tapestry.integration.app1.pages;
+import java.io.Serializable;
+
+import org.apache.tapestry.annotations.Component;
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Persist;
+import org.apache.tapestry.corelib.components.ActionLink;
+import org.apache.tapestry.corelib.components.If;
+import org.apache.tapestry.corelib.components.Loop;
+import org.apache.tapestry.internal.util.IntegerRange;
@ComponentClass
public class ActionPage
{
- private int _index;
+ @Component
+ private If _hasValue;
+
+ @Component
+ private ActionLink _choose;
+
+ @Component
+ private Loop<Integer, Serializable> _loop;
+
+ public void configure_loop()
+ {
+ _loop.setSource(new IntegerRange(1, 10));
+ }
+
+ public void configure_choose()
+ {
+ _choose.setContext(getIndex());
+ _choose.setInformalParameter("class", getLinkClass());
+ }
+
+ public void configure_hasValue()
+ {
+ _hasValue.setTest(_value > 0);
+ }
// Must be persistent, to survive from one request to the next.
// An action request is always followed by a redirect request.
@@ -34,12 +64,7 @@
public int getIndex()
{
- return _index;
- }
-
- public void setIndex(int index)
- {
- _index = index;
+ return _loop.getValue();
}
public int getValue()
@@ -49,6 +74,6 @@
public String getLinkClass()
{
- return _index == _value ? "selected" : null;
+ return getIndex() == _value ? "selected" : null;
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/AnyDemo.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/AnyDemo.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/AnyDemo.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/AnyDemo.java Sat Feb 10 03:36:41 2007
@@ -25,6 +25,22 @@
@ComponentClass
public class AnyDemo
{
+ @SuppressWarnings("unused")
+ @Component
+ private Any _title;
+
+ @SuppressWarnings("unused")
+ @Component
+ private Any _heading;
+
+ @Component
+ private Any _section;
+
+ public void configure_section()
+ {
+ _section.setElement("h2");
+ }
+
@Component
private Loop<Integer, Serializable> _loop;
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/BlockDemo.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/BlockDemo.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/BlockDemo.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/BlockDemo.java Sat Feb 10 03:36:41 2007
@@ -22,6 +22,7 @@
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.annotations.Retain;
+import org.apache.tapestry.corelib.components.Label;
import org.apache.tapestry.corelib.components.Select;
import org.apache.tapestry.internal.TapestryUtils;
import org.apache.tapestry.ioc.internal.util.CollectionFactory;
@@ -29,9 +30,17 @@
@ComponentClass
public class BlockDemo
{
- @Component(id="blockName")
+ @Component
+ private Label _label;
+
+ public void configure_label()
+ {
+ _label.setField(_blockNameField);
+ }
+
+ @Component(id = "blockName")
private Select<String> _blockNameField;
-
+
@Inject
private Block _fred;
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ClassLoaderInspect.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ClassLoaderInspect.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ClassLoaderInspect.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ClassLoaderInspect.java Sat Feb 10 03:36:41 2007
@@ -17,6 +17,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.io.Serializable;
import java.net.JarURLConnection;
import java.net.URL;
import java.net.URLConnection;
@@ -27,16 +28,74 @@
import org.apache.tapestry.annotations.Component;
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Persist;
+import org.apache.tapestry.corelib.components.Errors;
import org.apache.tapestry.corelib.components.Form;
+import org.apache.tapestry.corelib.components.If;
+import org.apache.tapestry.corelib.components.Label;
+import org.apache.tapestry.corelib.components.Loop;
+import org.apache.tapestry.corelib.components.TextField;
import org.apache.tapestry.ioc.internal.util.CollectionFactory;
import org.apache.tapestry.ioc.internal.util.InternalUtils;
+import org.apache.tapestry.validator.Required;
@ComponentClass
public class ClassLoaderInspect
{
private static final ClassLoader _classLoader = Thread.currentThread().getContextClassLoader();
- private ClassLoader _loader;
+ @SuppressWarnings("unused")
+ @Component
+ private Errors _errors;
+
+ @Component
+ private TextField<String> _resourceField;
+
+ @Component
+ private Loop<URL, Serializable> _URLLoop;
+
+ @Component
+ private Loop<JarEntry, Serializable> _jarEntriesLoop;
+
+ @Component
+ private Label _label;
+
+ public void configure_label()
+ {
+ _label.setField(_resourceField);
+ }
+
+ public void configure_jarEntriesLoop()
+ {
+ _jarEntriesLoop.setSource(getJarEntries());
+ }
+
+ public void configure_URLLoop()
+ {
+ _URLLoop.setSource(getURLs());
+ }
+
+ public void configure_resourceField()
+ {
+ _resourceField.setValueBindingExpr("resource");
+ _resourceField.setValidators(new Required());
+ _resourceField.setLabel("Resource");
+ }
+
+ @Component
+ private Loop<ClassLoader, Serializable> _loaderLoop;
+
+ public void configure_loaderLoop()
+ {
+ _loaderLoop.setSource(getLoaders());
+ }
+
+ @Component
+ private If _hasMatches;
+
+ public void configure_hasMatches()
+ {
+ _hasMatches.setTest(getShowMatches());
+ }
@Persist
private String _resource;
@@ -50,18 +109,9 @@
@Persist
private boolean _showMatches;
- private URL _URL;
-
- private JarEntry _jarEntry;
-
public URL getURL()
{
- return _URL;
- }
-
- public void setURL(URL url)
- {
- _URL = url;
+ return _URLLoop.getValue();
}
public ClassLoader getClassLoader()
@@ -71,12 +121,7 @@
public ClassLoader getLoader()
{
- return _loader;
- }
-
- public void setLoader(ClassLoader loader)
- {
- _loader = loader;
+ return _loaderLoop.getValue();
}
public List<ClassLoader> getLoaders()
@@ -162,7 +207,7 @@
try
{
- InputStream is = _URL.openStream();
+ InputStream is = getURL().openStream();
InputStreamReader reader = new InputStreamReader(is);
char[] buffer = new char[1000];
@@ -191,7 +236,7 @@
{
try
{
- URLConnection rawConnection = _URL.openConnection();
+ URLConnection rawConnection = getURL().openConnection();
JarURLConnection jarConnection = (JarURLConnection) rawConnection;
@@ -224,7 +269,7 @@
{
try
{
- return _URL.openConnection();
+ return getURL().openConnection();
}
catch (IOException ex)
{
@@ -234,11 +279,11 @@
public JarEntry getJarEntry()
{
- return _jarEntry;
+ return _jarEntriesLoop.getValue();
}
- public void setJarEntry(JarEntry jarEntry)
+ public TextField<String> getResourceField()
{
- _jarEntry = jarEntry;
+ return _resourceField;
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/NumberSelect.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/NumberSelect.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/NumberSelect.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/NumberSelect.java Sat Feb 10 03:36:41 2007
@@ -17,12 +17,30 @@
import org.apache.tapestry.annotations.Component;
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.InjectPage;
+import org.apache.tapestry.corelib.components.ActionLink;
+import org.apache.tapestry.corelib.components.If;
import org.apache.tapestry.corelib.components.Loop;
import org.apache.tapestry.internal.util.IntegerRange;
@ComponentClass
public class NumberSelect
{
+ @Component
+ private If _ifNotFirst;
+
+ @Component
+ private ActionLink _select;
+
+ public void configure_select()
+ {
+ _select.setContext(getIndex());
+ }
+
+ public void configure_ifNotFirst()
+ {
+ _ifNotFirst.setTest(isNotFirst());
+ }
+
@Component
private Loop<Integer, Integer> _loop;
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/PasswordFieldDemo.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/PasswordFieldDemo.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/PasswordFieldDemo.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/PasswordFieldDemo.java Sat Feb 10 03:36:41 2007
@@ -18,7 +18,9 @@
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Retain;
+import org.apache.tapestry.corelib.components.Errors;
import org.apache.tapestry.corelib.components.Form;
+import org.apache.tapestry.corelib.components.Label;
import org.apache.tapestry.corelib.components.PasswordField;
import org.apache.tapestry.corelib.components.TextField;
import org.apache.tapestry.integration.app1.services.UserAuthenticator;
@@ -27,9 +29,29 @@
@ComponentClass
public class PasswordFieldDemo
{
- @Component(id="userName")
+ @SuppressWarnings("unused")
+ @Component
+ private Errors _errors;
+
+ @Component
+ private Label _l1;
+
+ @Component
+ private Label _l2;
+
+ public void configure_l2()
+ {
+ _l2.setField(_passwordField);
+ }
+
+ public void configure_l1()
+ {
+ _l1.setField(_userNameField);
+ }
+
+ @Component(id = "userName")
private TextField<String> _userNameField;
-
+
@Retain
private String _userName;
@@ -81,6 +103,7 @@
{
_userNameField.setValidators(new Required());
}
+
public void configure_password()
{
_passwordField.setValidators(new Required());
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/RenderComponentDemo.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/RenderComponentDemo.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/RenderComponentDemo.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/RenderComponentDemo.java Sat Feb 10 03:36:41 2007
@@ -14,32 +14,60 @@
package org.apache.tapestry.integration.app1.pages;
+import org.apache.tapestry.Block;
import org.apache.tapestry.annotations.Component;
import org.apache.tapestry.annotations.ComponentClass;
+import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.corelib.components.Any;
+import org.apache.tapestry.corelib.components.Checkbox;
+import org.apache.tapestry.corelib.components.If;
+import org.apache.tapestry.corelib.components.Label;
@ComponentClass
public class RenderComponentDemo
{
+ @Component
+ private Checkbox _enabled;
+
+ @Component
+ private Label _label;
+
+ public void configure_label()
+ {
+ _label.setField(_enabled);
+ }
+
+ @Component
+ private If _ifEnabled;
+
+ @Inject
+ private Block _else;
+
+ public void configure_ifEnabled()
+ {
+ _ifEnabled.setTest(isEnabled());
+ _ifEnabled.setElse(_else);
+ }
+
@Persist
- private boolean _enabled;
+ private boolean _isEnabled;
@Component
private Any _optional;
public boolean isEnabled()
{
- return _enabled;
+ return _isEnabled;
}
public void setEnabled(boolean enable)
{
- _enabled = enable;
+ _isEnabled = enable;
}
public Object getThing()
{
- return _enabled ? _optional : null;
+ return _isEnabled ? _optional : null;
}
}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/SimpleForm.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/SimpleForm.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/SimpleForm.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/SimpleForm.java Sat Feb 10 03:36:41 2007
@@ -20,6 +20,7 @@
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.corelib.components.Checkbox;
+import org.apache.tapestry.corelib.components.Label;
import org.apache.tapestry.corelib.components.Select;
import org.apache.tapestry.corelib.components.TextArea;
import org.apache.tapestry.corelib.components.TextField;
@@ -32,6 +33,57 @@
public class SimpleForm
{
@Component
+ private Label _l1;
+
+ @Component
+ private Label _l2;
+
+ @Component
+ private Label _l3;
+
+ @Component
+ private Label _l4;
+
+ @Component
+ private Label _l5;
+
+ @Component
+ private Label _l6;
+
+ public void configure_l6()
+ {
+ _l6.setField(_urgent);
+ }
+
+ public void configure_l5()
+ {
+ _l5.setField(_department);
+ }
+
+ public void configure_l4()
+ {
+ _l4.setField(_operatingSystem);
+ }
+
+ public void configure_l3()
+ {
+ _l3.setField(_message);
+ }
+
+ public void configure_l2()
+ {
+ _l2.setField(_email);
+ }
+
+ public void configure_l1()
+ {
+ _l1.setField(_disabled);
+ }
+
+ @Component
+ private Checkbox _disabled;
+
+ @Component
private TextField<String> _email;
@Component
@@ -50,7 +102,7 @@
{
_email.setValueBindingExpr("incident.email");
_email.setValidators(new Required());
- _email.setDisabled(_disabled);
+ _email.setDisabled(_isDisabled);
}
public void configure_message()
@@ -58,13 +110,13 @@
_message.setValueBindingExpr("incident.message");
_message.setValidators(new Required());
_message.setLabel("Incident Message");
- _message.setDisabled(_disabled);
+ _message.setDisabled(_isDisabled);
}
public void configure_department()
{
_department.setValueBindingExpr("incident.department");
- _department.setDisabled(_disabled);
+ _department.setDisabled(_isDisabled);
_department.useDefaultsFor(Department.class);
}
@@ -74,7 +126,7 @@
public void configure_operatingSystem()
{
_operatingSystem.setValueBindingExpr("incident.operatingSystem");
- _operatingSystem.setDisabled(_disabled);
+ _operatingSystem.setDisabled(_isDisabled);
_operatingSystem.setModel(TapestryUtils.toSelectModel(_resources.getMessages().get(
"os-values")));
_operatingSystem.useDefaultEncoder(String.class);
@@ -83,23 +135,23 @@
public void configure_urgent()
{
_urgent.setValueBindingExpr("incident.urgent");
- _urgent.setDisabled(_disabled);
+ _urgent.setDisabled(_isDisabled);
}
@Persist
private IncidentData _incident;
@Persist
- private boolean _disabled;
+ private boolean _isDisabled;
public boolean isDisabled()
{
- return _disabled;
+ return _isDisabled;
}
public void setDisabled(boolean disable)
{
- _disabled = disable;
+ _isDisabled = disable;
}
public IncidentData getIncident()
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ValidForm.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ValidForm.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ValidForm.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app1/pages/ValidForm.java Sat Feb 10 03:36:41 2007
@@ -18,6 +18,7 @@
import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.corelib.components.Checkbox;
+import org.apache.tapestry.corelib.components.Label;
import org.apache.tapestry.corelib.components.TextArea;
import org.apache.tapestry.corelib.components.TextField;
import org.apache.tapestry.integration.app1.data.IncidentData;
@@ -26,6 +27,38 @@
@ComponentClass
public class ValidForm
{
+ @Component
+ private Label _l1;
+
+ @Component
+ private Label _l2;
+
+ @Component
+ private Label _l3;
+
+ @Component
+ private Label _l4;
+
+ public void configure_l4()
+ {
+ _l4.setField(_hours);
+ }
+
+ public void configure_l3()
+ {
+ _l3.setField(_urgent);
+ }
+
+ public void configure_l2()
+ {
+ _l2.setField(_message);
+ }
+
+ public void configure_l1()
+ {
+ _l1.setField(_email);
+ }
+
@Component
private TextField<String> _email;
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForActionLink.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForActionLink.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForActionLink.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForActionLink.java Sat Feb 10 03:36:41 2007
@@ -12,22 +12,32 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.integration.app2.pages;
-
-import org.apache.tapestry.annotations.ComponentClass;
-import org.apache.tapestry.annotations.InjectPage;
-import org.apache.tapestry.annotations.OnEvent;
-
-@ComponentClass
-public class TestPageForActionLink
-{
- @InjectPage("ResultPageForActionLink")
- private ResultPageForActionLink resultPage;
-
- @OnEvent(component = "link1")
- public ResultPageForActionLink onClick(int number)
- {
- resultPage.setNumber(number);
- return resultPage;
- }
-}
+package org.apache.tapestry.integration.app2.pages;
+
+import org.apache.tapestry.annotations.Component;
+import org.apache.tapestry.annotations.ComponentClass;
+import org.apache.tapestry.annotations.InjectPage;
+import org.apache.tapestry.annotations.OnEvent;
+import org.apache.tapestry.corelib.components.ActionLink;
+
+@ComponentClass
+public class TestPageForActionLink
+{
+ @Component
+ private ActionLink _link1;
+
+ public void configure_link1()
+ {
+ _link1.setContext(123);
+ }
+
+ @InjectPage("ResultPageForActionLink")
+ private ResultPageForActionLink resultPage;
+
+ @OnEvent(component = "link1")
+ public ResultPageForActionLink onClick(int number)
+ {
+ resultPage.setNumber(number);
+ return resultPage;
+ }
+}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForIf.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForIf.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForIf.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForIf.java Sat Feb 10 03:36:41 2007
@@ -12,25 +12,59 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.integration.app2.pages;
-
-import org.apache.tapestry.annotations.ComponentClass;
-
-@ComponentClass
-public class TestPageForIf
-{
- private boolean property1 = true;
-
- private boolean property2 = false;
-
- public boolean isProperty1()
- {
- return property1;
- }
-
- public boolean isProperty2()
- {
- return property2;
- }
-
-}
+package org.apache.tapestry.integration.app2.pages;
+
+import org.apache.tapestry.annotations.Component;
+import org.apache.tapestry.annotations.ComponentClass;
+import org.apache.tapestry.corelib.components.If;
+
+@ComponentClass
+public class TestPageForIf
+{
+ @Component
+ private If _if1;
+
+ @Component
+ private If _if2;
+
+ @Component
+ private If _if3;
+
+ @Component
+ private If _if4;
+
+ public void configure_if4()
+ {
+ _if4.setTest(isProperty2());
+ }
+
+ public void configure_if3()
+ {
+ _if3.setTest(isProperty1());
+ }
+
+ public void configure_if2()
+ {
+ _if2.setTest(false);
+ }
+
+ public void configure_if1()
+ {
+ _if1.setTest(true);
+ }
+
+ private boolean property1 = true;
+
+ private boolean property2 = false;
+
+ public boolean isProperty1()
+ {
+ return property1;
+ }
+
+ public boolean isProperty2()
+ {
+ return property2;
+ }
+
+}
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpComponentResources.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpComponentResources.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpComponentResources.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpComponentResources.java Sat Feb 10 03:36:41 2007
@@ -1,6 +1,7 @@
package org.apache.tapestry.internal.services;
import java.util.Locale;
+import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.tapestry.AnnotationProvider;
@@ -56,11 +57,6 @@
return false;
}
- public void renderInformalParameters(MarkupWriter writer)
- {
-
- }
-
public Messages getMessages()
{
return null;
@@ -134,6 +130,11 @@
public <T> T coerce(Object value, Class<T> expectedType)
{
return null;
+ }
+
+ public void renderInformalParameters(MarkupWriter writer, Map<String, String> runtimeParameters)
+ {
+
}
}
Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpInstantiator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpInstantiator.java?view=auto&rev=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpInstantiator.java (added)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpInstantiator.java Sat Feb 10 03:36:41 2007
@@ -0,0 +1,34 @@
+// Copyright 2007 The Apache Software Foundation
+//
+// Licensed 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.tapestry.internal.services;
+
+import org.apache.tapestry.internal.InternalComponentResources;
+import org.apache.tapestry.model.ComponentModel;
+import org.apache.tapestry.runtime.Component;
+
+public class NoOpInstantiator implements Instantiator
+{
+
+ public Component newInstance(InternalComponentResources resources)
+ {
+ return null;
+ }
+
+ public ComponentModel getModel()
+ {
+ return null;
+ }
+
+}
Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpInstantiator.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImplTest.java?view=diff&rev=505676&r1=505675&r2=505676
==============================================================================
--- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImplTest.java Sat Feb 10 03:36:41 2007
@@ -14,19 +14,30 @@
package org.apache.tapestry.internal.structure;
+import java.util.Collections;
+import java.util.Map;
+
import org.apache.tapestry.Binding;
import org.apache.tapestry.MarkupWriter;
+import org.apache.tapestry.dom.Element;
import org.apache.tapestry.internal.InternalComponentResources;
+import org.apache.tapestry.internal.bindings.LiteralBinding;
import org.apache.tapestry.internal.services.Instantiator;
+import org.apache.tapestry.internal.services.MarkupWriterImpl;
+import org.apache.tapestry.internal.services.NoOpInstantiator;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.ioc.internal.services.TypeCoercerImpl;
+import org.apache.tapestry.ioc.internal.util.CollectionFactory;
import org.apache.tapestry.ioc.services.TypeCoercer;
import org.apache.tapestry.model.ComponentModel;
+import org.apache.tapestry.model.NoOpComponentModel;
import org.apache.tapestry.model.ParameterModel;
import org.apache.tapestry.runtime.Component;
import org.testng.annotations.Test;
public class InternalComponentResourcesImplTest extends InternalBaseTestCase
{
+ @SuppressWarnings("unchecked")
@Test
public void render_informal_parameters_no_bindings()
{
@@ -44,11 +55,12 @@
InternalComponentResources resources = new InternalComponentResourcesImpl(element, null,
ins, coercer, null);
- resources.renderInformalParameters(writer);
+ resources.renderInformalParameters(writer, Collections.EMPTY_MAP);
verify();
}
+ @SuppressWarnings("unchecked")
@Test
public void render_informal_parameters_skips_formal_parameters()
{
@@ -72,11 +84,12 @@
resources.bindParameter("fred", binding);
- resources.renderInformalParameters(writer);
+ resources.renderInformalParameters(writer, Collections.EMPTY_MAP);
verify();
}
+ @SuppressWarnings("unchecked")
@Test
public void render_an_informal_parameter()
{
@@ -107,8 +120,42 @@
resources.bindParameter("fred", binding);
- resources.renderInformalParameters(writer);
+ resources.renderInformalParameters(writer, Collections.EMPTY_MAP);
verify();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void runtime_informals()
+ {
+ final ComponentModel model = new NoOpComponentModel();
+ Instantiator instantiator = new NoOpInstantiator()
+ {
+
+ @Override
+ public ComponentModel getModel()
+ {
+ return model;
+ }
+
+ };
+ InternalComponentResourcesImpl resources = new InternalComponentResourcesImpl(null, null,
+ instantiator, new TypeCoercerImpl(Collections.EMPTY_SET), null);
+ resources.bindParameter("a", new LiteralBinding(null, "456", null));
+ resources.bindParameter("c", new LiteralBinding(null, "789", null));
+ Map<String, String> runtimeParameters = CollectionFactory.newMap();
+ runtimeParameters.put("id", "123");
+ runtimeParameters.put("a", "x");
+ runtimeParameters.put("b", "3");
+ MarkupWriter writer = new MarkupWriterImpl();
+ writer.element("foo");
+ resources.renderInformalParameters(writer, runtimeParameters);
+ writer.end();
+ Element element = writer.getDocument().getElementById("123");
+ assertNotNull(element);
+ assertEquals(element.getAttribute("a"), "x");
+ assertEquals(element.getAttribute("b"), "3");
+ assertEquals(element.getAttribute("c"), "789");
}
}