[2/2] wicket git commit: WICKET-6471 inputstream has to be closed
WICKET-6471 inputstream has to be closed Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e15993c0 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e15993c0 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e15993c0 Branch: refs/heads/master Commit: e15993c092930fe36ab9c624d286a2043172cb76 Parents: 2ab3e0a Author: Sven Meier Authored: Thu Sep 21 23:29:15 2017 +0200 Committer: Sven Meier Committed: Thu Sep 21 23:30:00 2017 +0200 -- .../main/java/org/apache/wicket/resource/FileSystemResource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/e15993c0/wicket-core/src/main/java/org/apache/wicket/resource/FileSystemResource.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/resource/FileSystemResource.java b/wicket-core/src/main/java/org/apache/wicket/resource/FileSystemResource.java index ee72113..a940b1c 100644 --- a/wicket-core/src/main/java/org/apache/wicket/resource/FileSystemResource.java +++ b/wicket-core/src/main/java/org/apache/wicket/resource/FileSystemResource.java @@ -102,7 +102,7 @@ public class FileSystemResource extends AbstractResource Long startbyte = cycle.getMetaData(CONTENT_RANGE_STARTBYTE); Long endbyte = cycle.getMetaData(CONTENT_RANGE_ENDBYTE); resourceResponse.setWriteCallback( - new PartWriterCallback(getInputStream(), size, startbyte, endbyte)); + new PartWriterCallback(getInputStream(), size, startbyte, endbyte).setClose(true)); return resourceResponse; } catch (IOException e)
wicket git commit: WICKET-6465 prevent unbound during storeTouchedPages with ThreadLocal
Repository: wicket Updated Branches: refs/heads/master 72a5d312a -> 68b24aa78 WICKET-6465 prevent unbound during storeTouchedPages with ThreadLocal This closes #233 Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/68b24aa7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/68b24aa7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/68b24aa7 Branch: refs/heads/master Commit: 68b24aa788b25a67cfb16bee08a85328dad7b91c Parents: 72a5d31 Author: Sven Meier Authored: Wed Sep 13 23:40:14 2017 +0200 Committer: Sven Meier Committed: Thu Sep 14 00:10:01 2017 +0200 -- .../apache/wicket/page/PageStoreManager.java| 63 ++-- 1 file changed, 44 insertions(+), 19 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/68b24aa7/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java b/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java index ae68138..2db301f 100644 --- a/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java +++ b/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java @@ -24,7 +24,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.atomic.AtomicBoolean; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingListener; @@ -65,8 +64,8 @@ public class PageStoreManager extends AbstractPageManager if (MANAGERS.containsKey(applicationName)) { - throw new IllegalStateException("Manager for application with key '" + applicationName - + "' already exists."); + throw new IllegalStateException( + "Manager for application with key '" + applicationName + "' already exists."); } MANAGERS.put(applicationName, this); } @@ -95,14 +94,23 @@ public class PageStoreManager extends AbstractPageManager private transient List afterReadObject; /** -* A flag indicating whether this session entry has been re-set in the Session. -* Web containers intercept {@link javax.servlet.http.HttpSession#setAttribute(String, Object)} -* to detect changes and replicate the session. If the attribute has been already -* bound in the session then it will be first unbound and then re-bound again. -* This flag helps us to detect update operations and skip the default behavior -* of {@link #valueUnbound(HttpSessionBindingEvent)}. +* A flag indicating whether this session entry is being re-set in the Session. +* +* Web containers intercept +* {@link javax.servlet.http.HttpSession#setAttribute(String, Object)} to detect changes and +* replicate the session. If the attribute has been already bound in the session then +* {@link #valueUnbound(HttpSessionBindingEvent)} might get called - this flag +* helps us to ignore the invocation in that case. +* +* @see #valueUnbound(HttpSessionBindingEvent) */ - private final AtomicBoolean updating = new AtomicBoolean(false); + private transient ThreadLocal storingTouchedPages = new ThreadLocal() + { + protected Boolean initialValue() + { + return Boolean.FALSE; + }; + }; /** * Construct. @@ -300,11 +308,19 @@ public class PageStoreManager extends AbstractPageManager * @throws ClassNotFoundException */ @SuppressWarnings("unchecked") - private void readObject(final ObjectInputStream s) throws IOException, - ClassNotFoundException + private void readObject(final ObjectInputStream s) + throws IOException, ClassNotFoundException { s.defaultReadObject(); + storingTouchedPages = new ThreadLocal() + { + protected Boolean initialValue() + { + return Boolean.FALSE; + }; + };
wicket git commit: WICKET-6465 prevent unbound during storeTouchedPages with ThreadLocal
Repository: wicket Updated Branches: refs/heads/wicket-7.x dc6d94879 -> b25984d4e WICKET-6465 prevent unbound during storeTouchedPages with ThreadLocal This closes #233 Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b25984d4 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b25984d4 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b25984d4 Branch: refs/heads/wicket-7.x Commit: b25984d4e9b9d07c5bf2d3e50c90bbb165554409 Parents: dc6d948 Author: Sven Meier Authored: Wed Sep 13 23:44:53 2017 +0200 Committer: Sven Meier Committed: Thu Sep 14 00:08:05 2017 +0200 -- .../apache/wicket/page/PageStoreManager.java| 56 ++-- 1 file changed, 40 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/b25984d4/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java b/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java index 6934e0d..eb999ee 100644 --- a/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java +++ b/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java @@ -24,7 +24,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.atomic.AtomicBoolean; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingListener; @@ -65,8 +64,8 @@ public class PageStoreManager extends AbstractPageManager if (MANAGERS.containsKey(applicationName)) { - throw new IllegalStateException("Manager for application with key '" + applicationName - + "' already exists."); + throw new IllegalStateException( + "Manager for application with key '" + applicationName + "' already exists."); } MANAGERS.put(applicationName, this); } @@ -95,14 +94,23 @@ public class PageStoreManager extends AbstractPageManager private transient List afterReadObject; /** -* A flag indicating whether this session entry has been re-set in the Session. -* Web containers intercept {@link javax.servlet.http.HttpSession#setAttribute(String, Object)} -* to detect changes and replicate the session. If the attribute has been already -* bound in the session then it will be first unbound and then re-bound again. -* This flag helps us to detect update operations and skip the default behavior -* of {@link #valueUnbound(HttpSessionBindingEvent)}. +* A flag indicating whether this session entry is being re-set in the Session. +* +* Web containers intercept +* {@link javax.servlet.http.HttpSession#setAttribute(String, Object)} to detect changes and +* replicate the session. If the attribute has been already bound in the session then +* {@link #valueUnbound(HttpSessionBindingEvent)} might get called - this flag +* helps us to ignore the invocation in that case. +* +* @see #valueUnbound(HttpSessionBindingEvent) */ - private final AtomicBoolean updating = new AtomicBoolean(false); + private transient ThreadLocal storingTouchedPages = new ThreadLocal() + { + protected Boolean initialValue() + { + return Boolean.FALSE; + }; + }; /** * Construct. @@ -291,6 +299,14 @@ public class PageStoreManager extends AbstractPageManager ClassNotFoundException { s.defaultReadObject(); + + storingTouchedPages = new ThreadLocal() + { + protected Boolean initialValue() + { + return Boolean.FALSE; + }; + }; afterReadObject = new ArrayList<>(); @@ -317,15 +333,14 @@ public class PageStoreManager extends AbstractPageManager @Override public void valueBound(HttpSessionBindingEvent event) { - updating.set(false);
wicket git commit: WICKET-6451 enhance support for unmodifiable or null sets
Repository: wicket Updated Branches: refs/heads/master 76460108c -> 10f5f76e5 WICKET-6451 enhance support for unmodifiable or null sets Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/10f5f76e Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/10f5f76e Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/10f5f76e Branch: refs/heads/master Commit: 10f5f76e5d84a85a8aa260b1fd0502bb29a3cc7e Parents: 7646010 Author: Sven Meier Authored: Thu Aug 31 11:28:43 2017 +0200 Committer: Sven Meier Committed: Thu Aug 31 11:28:43 2017 +0200 -- .../wicket/markup/html/form/FormComponent.java | 33 +++- .../html/form/CollectionFormComponentTest.java | 81 +--- 2 files changed, 102 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/10f5f76e/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java index 9d4460e..37722d8 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; @@ -42,12 +43,14 @@ import org.apache.wicket.core.util.lang.WicketObjects; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.html.form.AutoLabelResolver.AutoLabelMarker; import org.apache.wicket.model.IModel; +import org.apache.wicket.model.IObjectClassAwareModel; import org.apache.wicket.model.IPropertyReflectionAwareModel; import org.apache.wicket.model.Model; import org.apache.wicket.util.convert.ConversionException; import org.apache.wicket.util.convert.IConverter; import org.apache.wicket.util.lang.Args; import org.apache.wicket.util.lang.Classes; +import org.apache.wicket.util.lang.Objects; import org.apache.wicket.util.string.StringList; import org.apache.wicket.util.string.StringValue; import org.apache.wicket.util.string.Strings; @@ -1575,7 +1578,7 @@ public abstract class FormComponent extends LabeledWebMarkupContainer impleme /** * Update the model of a {@link FormComponent} containing a {@link Collection}. * -* If the model object does not yet exists, a new {@link ArrayList} is filled with the converted +* If the model object does not yet exists, a new suitable collection is filled with the converted * input and used as the new model object. Otherwise the existing collection is modified * in-place, then {@link Model#setObject(Object)} is called with the same instance: it allows * the Model to be notified of changes even when {@link Model#getObject()} returns a different @@ -1599,7 +1602,14 @@ public abstract class FormComponent extends LabeledWebMarkupContainer impleme Collection collection = formComponent.getModelObject(); if (collection == null) { - collection = new ArrayList<>(convertedInput); + Class hint = null; + if (formComponent.getModel() instanceof IObjectClassAwareModel) { + hint = ((IObjectClassAwareModel)formComponent.getModel()).getObjectClass(); + } + if (hint == null) { + hint = List.class; + } + collection = newCollection(hint, convertedInput); formComponent.setModelObject(collection); } else @@ -1621,7 +1631,7 @@ public abstract class FormComponent extends LabeledWebMarkupContainer impleme logger.debug("An error occurred while trying to modify the collection attached to " + formComponent, unmodifiable); } - collection = new ArrayList<>(convertedInput); + collection = newCollection(collection.getClass(), convertedInput); } try @@ -1645,4 +1655,21 @@ public abstract class FormComponent extends LabeledWebMarkupContainer impleme formComponent.modelChanged(); } } + +
wicket git commit: WICKET-6396 added default isPresent to IModel
Repository: wicket Updated Branches: refs/heads/master 075d8371e -> 22a421a05 WICKET-6396 added default isPresent to IModel Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/22a421a0 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/22a421a0 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/22a421a0 Branch: refs/heads/master Commit: 22a421a05afa53e3311ae05b0c1076047e43e344 Parents: 075d837 Author: Sven Meier Authored: Fri Aug 18 23:44:38 2017 +0200 Committer: Sven Meier Committed: Fri Aug 18 23:44:38 2017 +0200 -- .../java/org/apache/wicket/model/IModel.java| 21 .../org/apache/wicket/model/IModelTest.java | 12 +++ 2 files changed, 33 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/22a421a0/wicket-core/src/main/java/org/apache/wicket/model/IModel.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/model/IModel.java b/wicket-core/src/main/java/org/apache/wicket/model/IModel.java index d33d061..c9db790 100644 --- a/wicket-core/src/main/java/org/apache/wicket/model/IModel.java +++ b/wicket-core/src/main/java/org/apache/wicket/model/IModel.java @@ -348,6 +348,27 @@ public interface IModel extends IDetachable } }; } + + /** +* Returns a IModel, returning whether the contained object is non-null. +* +* @return a new IModel +*/ + default IModel isPresent() { + return new IModel() { + @Override + public Boolean getObject() + { + return IModel.this.getObject() != null; + } + + @Override + public void detach() + { + IModel.this.detach(); + } + }; + } /** * Suppresses generics warning when casting model types. http://git-wip-us.apache.org/repos/asf/wicket/blob/22a421a0/wicket-core/src/test/java/org/apache/wicket/model/IModelTest.java -- diff --git a/wicket-core/src/test/java/org/apache/wicket/model/IModelTest.java b/wicket-core/src/test/java/org/apache/wicket/model/IModelTest.java index c2efe29..8f7b585 100644 --- a/wicket-core/src/test/java/org/apache/wicket/model/IModelTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/model/IModelTest.java @@ -176,6 +176,18 @@ public class IModelTest extends Assert } @Test + public void isPresent() + { + assertThat(Model.of(person).isPresent().getObject(), is(equalTo(true))); + } + + @Test + public void isPresentNot() + { + assertThat(Model.of((Person)null).isPresent().getObject(), is(equalTo(false))); + } + + @Test public void serializableMethodReference() { Person p = new Person();
wicket git commit: WICKET-6432 added factory method for non-model targetChainingModel logs warning now if target is not serializable
Repository: wicket Updated Branches: refs/heads/master c5f758e4a -> f9a9bf9c3 WICKET-6432 added factory method for non-model targetChainingModel logs warning now if target is not serializable Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f9a9bf9c Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f9a9bf9c Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f9a9bf9c Branch: refs/heads/master Commit: f9a9bf9c3fb0b1390b6600d027bb64ae7e4f3c03 Parents: c5f758e Author: Sven Meier Authored: Sun Aug 6 09:24:04 2017 +0200 Committer: Sven Meier Committed: Sun Aug 6 09:24:39 2017 +0200 -- .../java/org/apache/wicket/model/ChainingModel.java | 6 ++ .../apache/wicket/model/CompoundPropertyModel.java | 16 2 files changed, 22 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/f9a9bf9c/wicket-core/src/main/java/org/apache/wicket/model/ChainingModel.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/model/ChainingModel.java b/wicket-core/src/main/java/org/apache/wicket/model/ChainingModel.java index 8d8df3f..fa0ca7a 100644 --- a/wicket-core/src/main/java/org/apache/wicket/model/ChainingModel.java +++ b/wicket-core/src/main/java/org/apache/wicket/model/ChainingModel.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.model; +import java.io.Serializable; + import org.apache.wicket.Session; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,6 +48,10 @@ public class ChainingModel implements IChainingModel + "in models directly as it may lead to serialization problems. " + "If you need to access a property of the session via the model use the " + "page instance as the model object and 'session.attribute' as the path."); + } else if (modelObject instanceof Serializable == false) + { + LOG.warn("It is not a good idea to reference a non-serializable instance " + + "in models directly as it may lead to serialization problems."); } target = modelObject; http://git-wip-us.apache.org/repos/asf/wicket/blob/f9a9bf9c/wicket-core/src/main/java/org/apache/wicket/model/CompoundPropertyModel.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/model/CompoundPropertyModel.java b/wicket-core/src/main/java/org/apache/wicket/model/CompoundPropertyModel.java index 50bd4a0..74bf429 100644 --- a/wicket-core/src/main/java/org/apache/wicket/model/CompoundPropertyModel.java +++ b/wicket-core/src/main/java/org/apache/wicket/model/CompoundPropertyModel.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.model; +import java.io.Serializable; + import org.apache.wicket.Component; /** @@ -155,4 +157,18 @@ public class CompoundPropertyModel extends ChainingModel implements ICompo { return new CompoundPropertyModel<>(model); } + + /** +* Type-infering factory method +* +* @param +* the type of the model's object +* @param object +*model object +* @return {@link CompoundPropertyModel} instance +*/ + public static CompoundPropertyModel of(Z object) + { + return new CompoundPropertyModel<>(object); + } }
wicket git commit: WICKET-6430 deprecate assertListView
Repository: wicket Updated Branches: refs/heads/master 48b2aa128 -> 2354d9deb WICKET-6430 deprecate assertListView Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2354d9de Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2354d9de Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2354d9de Branch: refs/heads/master Commit: 2354d9deb97a382f9d4640e0fb97fe4b22724c45 Parents: 48b2aa1 Author: Sven Meier Authored: Fri Jul 28 13:32:35 2017 +0200 Committer: Sven Meier Committed: Fri Jul 28 13:32:35 2017 +0200 -- .../main/java/org/apache/wicket/util/tester/BaseWicketTester.java | 3 ++- .../src/main/java/org/apache/wicket/util/tester/WicketTester.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/2354d9de/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java index 2d62f11..ddcffb6 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java @@ -1843,7 +1843,8 @@ public class BaseWicketTester *path to {@link ListView} component * @param expectedList *expected list in the model of {@link ListView} -* @Deprecated use {@link WicketTester#assertModelValue(String, Object)} instead +* @deprecated use {@link WicketTester#assertComponent(String, Class) combined with +* {@link WicketTester#assertModelValue(String, Object)} instead */ @Deprecated public void assertListView(String path, List expectedList) http://git-wip-us.apache.org/repos/asf/wicket/blob/2354d9de/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java index 5b1dd76..613bb02 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java @@ -647,7 +647,8 @@ public class WicketTester extends BaseWicketTester *path to a {@link ListView} Component * @param expectedList *expected List in the model of the given {@link ListView} -* @Deprecated use {@link #assertModelValue(String, Object)} instead +* @Deprecated use {@link #assertComponent(String, Class) combined with +* {@link #assertModelValue(String, Object)} instead */ @Deprecated @Override
wicket git commit: WICKET-6430 deprecate assertListView
Repository: wicket Updated Branches: refs/heads/master d7e8fe276 -> 48b2aa128 WICKET-6430 deprecate assertListView Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/48b2aa12 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/48b2aa12 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/48b2aa12 Branch: refs/heads/master Commit: 48b2aa128fa4f56f623170af548d90fad4f48860 Parents: d7e8fe2 Author: Sven Meier Authored: Thu Jul 27 22:00:02 2017 +0200 Committer: Sven Meier Committed: Thu Jul 27 22:00:02 2017 +0200 -- .../main/java/org/apache/wicket/util/tester/BaseWicketTester.java | 2 ++ .../src/main/java/org/apache/wicket/util/tester/WicketTester.java | 2 ++ 2 files changed, 4 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/48b2aa12/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java index 142083e..2d62f11 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java @@ -1843,7 +1843,9 @@ public class BaseWicketTester *path to {@link ListView} component * @param expectedList *expected list in the model of {@link ListView} +* @Deprecated use {@link WicketTester#assertModelValue(String, Object)} instead */ + @Deprecated public void assertListView(String path, List expectedList) { ListView listView = (ListView)getComponentFromLastRenderedPage(path); http://git-wip-us.apache.org/repos/asf/wicket/blob/48b2aa12/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java index 9e905c1..5b1dd76 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java @@ -647,7 +647,9 @@ public class WicketTester extends BaseWicketTester *path to a {@link ListView} Component * @param expectedList *expected List in the model of the given {@link ListView} +* @Deprecated use {@link #assertModelValue(String, Object)} instead */ + @Deprecated @Override public void assertListView(String path, List expectedList) {
wicket git commit: WICKET-6403 add reference to onError on onUpdate
Repository: wicket Updated Branches: refs/heads/master ecd909040 -> eeb0c6de3 WICKET-6403 add reference to onError on onUpdate Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/eeb0c6de Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/eeb0c6de Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/eeb0c6de Branch: refs/heads/master Commit: eeb0c6de3f335073816f6cf0d30925b8d7f333ad Parents: ecd9090 Author: Sven Meier Authored: Wed Jun 21 19:34:43 2017 +0200 Committer: Sven Meier Committed: Wed Jun 21 19:34:43 2017 +0200 -- .../wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java | 3 +++ .../wicket/markup/html/form/FormComponentUpdatingBehavior.java | 4 2 files changed, 7 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/eeb0c6de/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java index 09474d5..a6d5952 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java @@ -195,6 +195,9 @@ public abstract class AjaxFormComponentUpdatingBehavior extends AjaxEventBehavio /** * Listener invoked on the ajax request. This listener is invoked after the component's model * has been updated. +* +* Note: {@link #onError(AjaxRequestTarget, RuntimeException)} is called instead when processing +* of the {@link FormComponent} failed with conversion or validation errors! * * @param target *the current request handler http://git-wip-us.apache.org/repos/asf/wicket/blob/eeb0c6de/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java index 3bdb883..0d5f410 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java @@ -19,6 +19,7 @@ package org.apache.wicket.markup.html.form; import org.apache.wicket.Component; import org.apache.wicket.IRequestListener; import org.apache.wicket.WicketRuntimeException; +import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; @@ -202,6 +203,9 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL /** * Hook method invoked when the component is updated. +* +* Note: {@link #onError(AjaxRequestTarget, RuntimeException)} is called instead when processing +* of the {@link FormComponent} failed with conversion or validation errors! */ protected void onUpdate() {
wicket git commit: WICKET-6386 don't call isPageStateless() prematurely
Repository: wicket Updated Branches: refs/heads/wicket-7.x d0aab2085 -> 348462994 WICKET-6386 don't call isPageStateless() prematurely Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/34846299 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/34846299 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/34846299 Branch: refs/heads/wicket-7.x Commit: 3484629946341cdfca9bb0467ab54af7accc95ea Parents: d0aab20 Author: Sven Meier Authored: Wed Jun 7 19:56:51 2017 +0200 Committer: Sven Meier Committed: Wed Jun 7 19:56:51 2017 +0200 -- .../wicket/request/handler/render/WebPageRenderer.java | 8 +--- 1 file changed, 1 insertion(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/34846299/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java index a59e585..6090df0 100644 --- a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java +++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java @@ -329,16 +329,10 @@ public class WebPageRenderer extends PageRenderer return (compatibleProtocols(currentUrl.getProtocol(), targetUrl.getProtocol())) && (neverRedirect(getRedirectPolicy()) || ((isOnePassRender() && notForcedRedirect(getRedirectPolicy())) || (targetUrl - .equals(currentUrl) && notNewAndNotStatelessPage(isNewPageInstance(), - isPageStateless( || (targetUrl.equals(currentUrl) && isRedirectToRender()) + .equals(currentUrl) && (!isNewPageInstance() && !isPageStateless( || (targetUrl.equals(currentUrl) && isRedirectToRender()) || (shouldPreserveClientUrl(cycle) && notForcedRedirect(getRedirectPolicy(; } - private static boolean notNewAndNotStatelessPage(boolean newPageInstance, boolean pageStateless) - { - return !newPageInstance && !pageStateless; - } - private static boolean neverRedirect(RedirectPolicy redirectPolicy) { return redirectPolicy == RedirectPolicy.NEVER_REDIRECT;
wicket git commit: WICKET-6386 don't call isPageStateless() prematurely
Repository: wicket Updated Branches: refs/heads/master d89357404 -> 3fd9c9836 WICKET-6386 don't call isPageStateless() prematurely Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/3fd9c983 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/3fd9c983 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/3fd9c983 Branch: refs/heads/master Commit: 3fd9c9836e5035ed18b75d31e589b6aeac1740e4 Parents: d893574 Author: Sven Meier Authored: Wed Jun 7 19:56:51 2017 +0200 Committer: Sven Meier Committed: Wed Jun 7 20:01:47 2017 +0200 -- .../wicket/request/handler/render/WebPageRenderer.java | 8 +--- 1 file changed, 1 insertion(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/3fd9c983/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java index c48942b..544fc34 100644 --- a/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java +++ b/wicket-core/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java @@ -329,16 +329,10 @@ public class WebPageRenderer extends PageRenderer return (compatibleProtocols(currentUrl.getProtocol(), targetUrl.getProtocol())) && (neverRedirect(getRedirectPolicy()) || ((isOnePassRender() && notForcedRedirect(getRedirectPolicy())) || (targetUrl - .equals(currentUrl) && notNewAndNotStatelessPage(isNewPageInstance(), - isPageStateless( || (targetUrl.equals(currentUrl) && isRedirectToRender()) + .equals(currentUrl) && (!isNewPageInstance() && !isPageStateless( || (targetUrl.equals(currentUrl) && isRedirectToRender()) || (shouldPreserveClientUrl(cycle) && notForcedRedirect(getRedirectPolicy(; } - private static boolean notNewAndNotStatelessPage(boolean newPageInstance, boolean pageStateless) - { - return !newPageInstance && !pageStateless; - } - private static boolean neverRedirect(RedirectPolicy redirectPolicy) { return redirectPolicy == RedirectPolicy.NEVER_REDIRECT;
wicket git commit: WICKET-6366 check input still on page
Repository: wicket Updated Branches: refs/heads/wicket-6.x 4b2eae7b0 -> f3c246161 WICKET-6366 check input still on page this closes #220 Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f3c24616 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f3c24616 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f3c24616 Branch: refs/heads/wicket-6.x Commit: f3c24616127eee055f233fa81af6148da9478fd2 Parents: 4b2eae7 Author: Sven Meier Authored: Mon Jun 5 14:37:04 2017 +0200 Committer: Sven Meier Committed: Mon Jun 5 14:39:21 2017 +0200 -- .../html/autocomplete/wicket-autocomplete.js| 20 +--- 1 file changed, 13 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/f3c24616/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js index eef836f..37c359a 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js @@ -376,18 +376,20 @@ var attrs = { u: callbackUrl, pre: [ function (attributes) { - // since attrs.c is not set, we have to check existence by ourself - if (!Wicket.$$(elementId)) { + var input = Wicket.$(elementId); + if (!input) { + // WICKET-6366 input might no longer be on page return false; } var activeIsInitial = (document.activeElement === initialElement); - var elementVal = Wicket.$(elementId).value; - var hasMinimumLength = elementVal.length >= minInputLength; + var hasMinimumLength = input.value.length >= minInputLength; var result = hasMinimumLength && activeIsInitial; + if (!result) { hideAutoComplete(); } + return result; }], ep: {}, @@ -676,7 +678,7 @@ } if(elementCount>0){ - if(cfg.preselect === true){ + if (cfg.preselect === true){ var selectedIndex = defaultSelection?defaultSelection:0; for(var ec = 0; ec < elementCount; ec++) { var selectableElement = selectableElements[ec]; @@ -718,8 +720,12 @@ function scheduleEmptyCheck() { window.setTimeout(function() { var input=Wicket.$(elementId); - if (!cfg.showListOnEmptyInput && (input.value === null || input.value === "")) { - hideAutoComplete(); + + // WICKET-6366 input might no longer be on page + if (input) { + if (!cfg.showListOnEmptyInput && (input.value === null || input.value === "")) { + hideAutoComplete(); + } } }, 100); }
wicket git commit: WICKET-6366 check input still on page
Repository: wicket Updated Branches: refs/heads/master 11df645ad -> d89357404 WICKET-6366 check input still on page this closes #220 Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d8935740 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d8935740 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d8935740 Branch: refs/heads/master Commit: d89357404bbef4ed7b5bd8400136ad34512f7ff5 Parents: 11df645 Author: Sven Meier Authored: Mon Jun 5 14:20:20 2017 +0200 Committer: Sven Meier Committed: Mon Jun 5 14:23:21 2017 +0200 -- .../html/autocomplete/wicket-autocomplete.js | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/d8935740/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js index 0a4f8b0..5fa8d2e 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js @@ -357,9 +357,14 @@ attrs.pre = attrs.pre || []; attrs.pre.push(function (attributes) { + var input = Wicket.$(elementId); + if (!input) { + // WICKET-6366 input might no longer be on page + return false; + } + var activeIsInitial = (document.activeElement === initialElement); - var elementVal = Wicket.$(elementId).value; - var hasMinimumLength = elementVal.length >= minInputLength; + var hasMinimumLength = input.value.length >= minInputLength; var result = hasMinimumLength && activeIsInitial; @@ -682,8 +687,12 @@ function scheduleEmptyCheck() { window.setTimeout(function() { var input=Wicket.$(elementId); - if (!cfg.showListOnEmptyInput && (input.value === null || input.value === "")) { - hideAutoComplete(); + + // WICKET-6366 input might no longer be on page + if (input) { + if (!cfg.showListOnEmptyInput && (input.value === null || input.value === "")) { + hideAutoComplete(); + } } }, 100); }
wicket git commit: WICKET-6366 check input still on page
Repository: wicket Updated Branches: refs/heads/wicket-7.x fab4998db -> d0aab2085 WICKET-6366 check input still on page this closes #220 Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d0aab208 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d0aab208 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d0aab208 Branch: refs/heads/wicket-7.x Commit: d0aab20850f8cfefe4aedbac52d84a0a90005a7c Parents: fab4998 Author: Sven Meier Authored: Mon Jun 5 14:20:20 2017 +0200 Committer: Sven Meier Committed: Mon Jun 5 14:20:20 2017 +0200 -- .../html/autocomplete/wicket-autocomplete.js | 17 + 1 file changed, 13 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/d0aab208/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js index 0a4f8b0..5fa8d2e 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js @@ -357,9 +357,14 @@ attrs.pre = attrs.pre || []; attrs.pre.push(function (attributes) { + var input = Wicket.$(elementId); + if (!input) { + // WICKET-6366 input might no longer be on page + return false; + } + var activeIsInitial = (document.activeElement === initialElement); - var elementVal = Wicket.$(elementId).value; - var hasMinimumLength = elementVal.length >= minInputLength; + var hasMinimumLength = input.value.length >= minInputLength; var result = hasMinimumLength && activeIsInitial; @@ -682,8 +687,12 @@ function scheduleEmptyCheck() { window.setTimeout(function() { var input=Wicket.$(elementId); - if (!cfg.showListOnEmptyInput && (input.value === null || input.value === "")) { - hideAutoComplete(); + + // WICKET-6366 input might no longer be on page + if (input) { + if (!cfg.showListOnEmptyInput && (input.value === null || input.value === "")) { + hideAutoComplete(); + } } }, 100); }
wicket git commit: WICKET-6286 don't require attachment for blob download, inline won't work anyway
Repository: wicket Updated Branches: refs/heads/master f295636ab -> 185539efc WICKET-6286 don't require attachment for blob download, inline won't work anyway Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/185539ef Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/185539ef Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/185539ef Branch: refs/heads/master Commit: 185539efcfb38e9f9f16f5a97d2b29cbed0239bf Parents: f295636 Author: Sven Meier Authored: Thu Apr 13 12:45:00 2017 +0200 Committer: Sven Meier Committed: Thu Apr 13 12:45:00 2017 +0200 -- .../main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java | 3 +-- .../java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/185539ef/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java index 7815121..370b77a 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java @@ -73,8 +73,7 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior public enum Location { /** -* The resource will be downloaded into a blob, the resource has to be a -* {@link ContentDisposition#ATTACHMENT}.. +* The resource will be downloaded into a {@code blob}. * * This is recommended for modern browsers. */ http://git-wip-us.apache.org/repos/asf/wicket/blob/185539ef/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js index ec7ae62..f8452ae 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js @@ -106,7 +106,7 @@ if (this.status === 200) { var filename = ""; var disposition = xhr.getResponseHeader("Content-Disposition"); - if (disposition && disposition.indexOf("attachment") !== -1) { + if (disposition) { var matches = /filename[^;=\n]*=(([""]).*?\2|[^;\n]*)/.exec(disposition); if (matches != null && matches[1]) { filename = matches[1].replace(/[""]/g, "");
wicket git commit: WICKET-6322 removed another comp factory
Repository: wicket Updated Branches: refs/heads/master d0974d428 -> 89b1cb163 WICKET-6322 removed another comp factory ... with two lamnbda arguments Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/89b1cb16 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/89b1cb16 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/89b1cb16 Branch: refs/heads/master Commit: 89b1cb163d4d3bd44e2cbf903b5026827181a12d Parents: d0974d4 Author: Sven Meier Authored: Mon Apr 10 19:50:28 2017 +0200 Committer: Sven Meier Committed: Mon Apr 10 19:50:28 2017 +0200 -- .../ajax/markup/html/IndicatingAjaxButton.java | 25 +--- 1 file changed, 1 insertion(+), 24 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/89b1cb16/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxButton.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxButton.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxButton.java index 989c4a2..6c2ee5d 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxButton.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxButton.java @@ -110,27 +110,4 @@ public abstract class IndicatingAjaxButton extends AjaxButton implements IAjaxIn } }; } - - public static IndicatingAjaxButton onSubmit(String id, - SerializableBiConsumer onSubmit, - SerializableBiConsumer onError) - { - Args.notNull(onSubmit, "onSubmit"); - Args.notNull(onError, "onError"); - - return new IndicatingAjaxButton(id) - { - @Override - public void onSubmit(AjaxRequestTarget target) - { - onSubmit.accept(this, target); - } - - @Override - protected void onError(AjaxRequestTarget target) - { - onError.accept(this, target); - } - }; - } -} +} \ No newline at end of file
wicket git commit: WICKET-6350 corrected error message
Repository: wicket Updated Branches: refs/heads/wicket-7.x 24500049d -> c3e475e2e WICKET-6350 corrected error message Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c3e475e2 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c3e475e2 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c3e475e2 Branch: refs/heads/wicket-7.x Commit: c3e475e2e813165968c42f7f71969ba459e6740d Parents: 2450004 Author: Sven Meier Authored: Thu Mar 30 09:07:56 2017 +0200 Committer: Sven Meier Committed: Tue Apr 4 21:33:39 2017 +0200 -- .../java/org/apache/wicket/markup/html/form/FormComponent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/c3e475e2/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java index 32f720d..b9bcf55 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java @@ -1050,7 +1050,7 @@ public abstract class FormComponent extends LabeledWebMarkupContainer impleme if (!required && getType() != null && getType().isPrimitive()) { throw new WicketRuntimeException( - "FormComponent can't be required when the type is primitive class: " + this); + "FormComponent has to be required when the type is primitive class: " + this); } if (required != isRequired()) {
[5/8] wicket git commit: WICKET-6348 use submitter instead of hidden field
WICKET-6348 use submitter instead of hidden field Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/25567ba1 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/25567ba1 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/25567ba1 Branch: refs/heads/master Commit: 25567ba12214e2d32b27fec4789833a5d89cc59a Parents: e7dcf2f Author: Sven Meier Authored: Tue Mar 28 21:34:56 2017 +0200 Committer: Sven Meier Committed: Tue Apr 4 17:30:04 2017 +0200 -- .../apache/wicket/markup/html/form/Check.java | 2 +- .../wicket/markup/html/form/CheckBox.java | 67 ++-- .../wicket/markup/html/form/CheckGroup.java | 66 ++-- .../wicket/markup/html/form/DropDownChoice.java | 69 ++-- .../apache/wicket/markup/html/form/Form.java| 164 +-- .../apache/wicket/markup/html/form/Radio.java | 2 +- .../wicket/markup/html/form/RadioChoice.java| 67 ++-- .../wicket/markup/html/form/RadioGroup.java | 63 ++- .../wicket/markup/html/form/StatelessForm.java | 1 - .../wicket/markup/html/form/SubmitLink.java | 40 ++--- .../form/AjaxFormSubmitTestPage_expected.html | 2 +- .../OnChangeAjaxBehaviorTestPage_expected.html | 2 +- .../CheckGroupDisabledTestPage_expected.html| 2 +- .../html/form/CheckGroupTestPage1_expected.html | 2 +- .../html/form/CheckGroupTestPage2_expected.html | 2 +- .../html/form/CheckGroupTestPage3_expected.html | 2 +- .../html/form/CheckGroupTestPage4_expected.html | 2 +- ...DropDownChoiceTestPage_A_false_expected.html | 2 +- .../DropDownChoiceTestPage_A_true_expected.html | 2 +- ...pDownChoiceTestPage_null_false_expected.html | 2 +- ...opDownChoiceTestPage_null_true_expected.html | 2 +- .../html/form/FormMethodTestPage_expected.html | 4 +- .../RadioGroupDisabledTestPage_expected.html| 2 +- .../html/form/RadioGroupTestPage1_expected.html | 2 +- .../html/form/RadioGroupTestPage3_expected.html | 2 +- .../form/feedback/FeedbackFormPage_result1.html | 2 +- .../form/feedback/FeedbackFormPage_result2.html | 2 +- .../FeedbackIndicatorFormPage_result1.html | 2 +- .../FeedbackIndicatorFormPage_result2.html | 2 +- .../html/form/pageWithParameters_expected.html | 4 +- .../validation/HomePage1_ExpectedResult.html| 2 +- .../EnclosurePageExpectedResult_9-1-1.html | 2 +- .../EnclosurePageExpectedResult_9-1.html| 2 +- .../EnclosurePageExpectedResult_9-2-1.html | 2 +- .../EnclosurePageExpectedResult_9-2.html| 2 +- .../EnclosurePageExpectedResult_9-3-1.html | 2 +- .../EnclosurePageExpectedResult_9-3-2.html | 2 +- .../EnclosurePageExpectedResult_9-3.html| 2 +- .../EnclosurePageExpectedResult_9-4.html| 2 +- .../internal/EnclosurePageExpectedResult_9.html | 2 +- .../tags/InputTagNotVisibleWebPageResult.html | 2 +- .../html/tags/InputTagVisibleWebPageResult.html | 2 +- .../StatelessPageWithForm_expected.html | 2 +- .../yui/calendar/DatesPage1_ExpectedResult.html | 6 +- 44 files changed, 358 insertions(+), 259 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/25567ba1/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java index ed50c80..83fa278 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java @@ -203,7 +203,7 @@ public class Check extends LabeledWebMarkupContainer implements IGenericCompo Form form = group.findParent(Form.class); if (form != null) { - tag.put("onclick", form.getJsForInterfaceUrl(url)); + tag.put("onclick", form.getJsForListenerUrl(url)); } else { http://git-wip-us.apache.org/repos/asf/wicket/blob/25567ba1/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java index 9e25c4b..da8f049 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java @@ -19,6 +19,7 @@ package org.apache.wicket.markup.html.form; impor
[4/8] wicket git commit: WICKET-6348 added javadoc; #getUpdateModel(); restored example
WICKET-6348 added javadoc; #getUpdateModel(); restored example Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8f8ad374 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8f8ad374 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8f8ad374 Branch: refs/heads/master Commit: 8f8ad37458e81d93d3fdaeea0e782a41942176df Parents: e2af756 Author: Sven Meier Authored: Wed Mar 29 20:22:15 2017 +0200 Committer: Sven Meier Committed: Tue Apr 4 17:30:04 2017 +0200 -- .../html/form/SelectionChangeBehavior.java | 130 +++ .../wicket/examples/compref/CheckGroupPage.html | 3 + .../wicket/examples/compref/CheckGroupPage.java | 14 +- 3 files changed, 117 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/8f8ad374/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SelectionChangeBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SelectionChangeBehavior.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SelectionChangeBehavior.java index 8943d12..8298c06 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SelectionChangeBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SelectionChangeBehavior.java @@ -18,10 +18,20 @@ package org.apache.wicket.markup.html.form; import org.apache.wicket.Component; import org.apache.wicket.IRequestListener; +import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.util.lang.Args; +/** + * A behavior to get change notifications when a choice component changes its selection. + * + * Contrary to {@link AjaxFormChoiceComponentUpdatingBehavior} all notification are send via + * standard HTTP requests and the full page is rendered as the response. + * + * @see SelectionChangeBehavior#onSelectionChanged() + */ public class SelectionChangeBehavior extends Behavior implements IRequestListener { @@ -32,29 +42,46 @@ public class SelectionChangeBehavior extends Behavior implements IRequestListene { return false; } - + @Override - public void bind(Component component) + public final void bind(final Component hostComponent) { - this.formComponent = (FormComponent)component; - + Args.notNull(hostComponent, "hostComponent"); + + if (formComponent != null) + { + throw new IllegalStateException("this kind of handler cannot be attached to " + + "multiple components; it is already attached to component " + formComponent + + ", but component " + hostComponent + " wants to be attached too"); + } + + this.formComponent = (FormComponent)hostComponent; + formComponent.setRenderBodyOnly(false); + + // call the callback + onBind(); + } + + protected void onBind() + { } public FormComponent getFormComponent() { return formComponent; } - + @Override public void onComponentTag(Component component, ComponentTag tag) { CharSequence url = component.urlForListener(this, new PageParameters()); String event = getJSEvent(); - - String condition = String.format("if (event.target.name !== '%s') return; ", formComponent.getInputName()); - + + String condition = String.format("if (event.target.name !== '%s') return; ", + formComponent.getInputName()); + Form form = component.findParent(Form.class); if (form != null) { @@ -63,39 +90,85 @@ public class SelectionChangeBehavior extends Behavior implements IRequestListene else { char separator = url.toString().indexOf('?') > -1 ? '&' : '?'; - - tag.put(event, - condition + String.format("window.location.href='%s%s%s=' + %s;", url, separator, formComponent.getInputName(), getJSValue())); + + tag.put(event, condition + String.format("window.location.href='%s%s%s=' + %s;", url, + separator, formComponent.getInputName(), getJSValue())); } }
[2/8] wicket git commit: WICKET-6348 guide update for FormComponentUpdatingBehavior
WICKET-6348 guide update for FormComponentUpdatingBehavior Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ad429c19 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ad429c19 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ad429c19 Branch: refs/heads/master Commit: ad429c19d6dd6486bd01b20ddf1d9bd16bca146e Parents: c1d389d Author: Sven Meier Authored: Thu Mar 30 17:05:14 2017 +0200 Committer: Sven Meier Committed: Tue Apr 4 17:30:04 2017 +0200 -- .../src/main/asciidoc/advanced/advanced_2.adoc | 4 +- .../src/main/asciidoc/forms2/forms2_11.adoc | 2 +- .../asciidoc/modelsforms/modelsforms_6.adoc | 50 3 files changed, 23 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/ad429c19/wicket-user-guide/src/main/asciidoc/advanced/advanced_2.adoc -- diff --git a/wicket-user-guide/src/main/asciidoc/advanced/advanced_2.adoc b/wicket-user-guide/src/main/asciidoc/advanced/advanced_2.adoc index c03c060..0ec6a2f 100644 --- a/wicket-user-guide/src/main/asciidoc/advanced/advanced_2.adoc +++ b/wicket-user-guide/src/main/asciidoc/advanced/advanced_2.adoc @@ -53,9 +53,9 @@ public abstract class Link extends AbstractLink implements IRequestListener . } -Callback URLs can be generated with _Component_'s method _urlFor(PageParameters)_ or with method _urlFor (Behavior, RequestListenerInterface, PageParameters)_ if we are using a callback interface with a behavior (see the following example). +Callback URLs can be generated with _Component_'s method _urlForListener(PageParameters)_ or with method _urlForListener(Behavior, PageParameters)_ if we are using a request listener on a component or behavior respectively (see the following example). -Project _CallbackURLExample_ contains a behavior (class _OnChangeSingleChoiceBehavior_) that implements _org.apache.wicket.IRequestListener_ to update the model of an _AbstractSingleSelectChoice_ component when user changes the selected option (it provides the same functionality of method _wantOnSelectionChangedNotifications_). +Project _CallbackURLExample_ contains a behavior (class _OnChangeSingleChoiceBehavior_) that implements _org.apache.wicket.IRequestListener_ to update the model of an _AbstractSingleSelectChoice_ component when user changes the selected option (it provides the same functionality as _FormComponentUpdatingBehavior_). The following is the implementation of _onRequest()_ provided by _OnSelectionChangedNotifications_: [source,java] http://git-wip-us.apache.org/repos/asf/wicket/blob/ad429c19/wicket-user-guide/src/main/asciidoc/forms2/forms2_11.adoc -- diff --git a/wicket-user-guide/src/main/asciidoc/forms2/forms2_11.adoc b/wicket-user-guide/src/main/asciidoc/forms2/forms2_11.adoc index 9f8a7ed..371350d 100644 --- a/wicket-user-guide/src/main/asciidoc/forms2/forms2_11.adoc +++ b/wicket-user-guide/src/main/asciidoc/forms2/forms2_11.adoc @@ -195,5 +195,5 @@ form.add(new RadioChoice("radioGroup", Model.of(""), fruits)); image::../img/grouped-radiobutton.png[] -Just like CheckBoxMultipleChoice, this component provides the setPrefix and setSuffix methods to configure the prefix and suffix for our options and it supports IChoiceRender as well. In addition, RadioChoice provides the wantOnSelectionChangedNotifications() method to notify the web server when the selected option changes (this is the same method seen for DropDownChoice in paragraph 9.4). +Just like CheckBoxMultipleChoice, this component provides the setPrefix and setSuffix methods to configure the prefix and suffix for our options and it supports IChoiceRender as well. http://git-wip-us.apache.org/repos/asf/wicket/blob/ad429c19/wicket-user-guide/src/main/asciidoc/modelsforms/modelsforms_6.adoc -- diff --git a/wicket-user-guide/src/main/asciidoc/modelsforms/modelsforms_6.adoc b/wicket-user-guide/src/main/asciidoc/modelsforms/modelsforms_6.adoc index f7d4b1c..3a4f39e 100644 --- a/wicket-user-guide/src/main/asciidoc/modelsforms/modelsforms_6.adoc +++ b/wicket-user-guide/src/main/asciidoc/modelsforms/modelsforms_6.adoc @@ -7,7 +7,7 @@ The example page will look like this: image::../img/model-chaining.png[] -What we want to do in this example is to chain the model of the DropDownChoice (which contains the selected Person) with the model of the Form. In this way the Form will work with the selected Person as backing object. The DropDownChoice component can be configured to automatically update its model each time we change the selected item on the client side. All we ha
[6/8] wicket git commit: WICKET-6348 renamed to FormComponentUpdatingBehavior
WICKET-6348 renamed to FormComponentUpdatingBehavior keep deprecated getJsForInterfaceUrl() Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/9bc7ee47 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/9bc7ee47 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/9bc7ee47 Branch: refs/heads/master Commit: 9bc7ee4742715d83cf4d384151cbbb4bd7e2e2d2 Parents: 8f8ad37 Author: Sven Meier Authored: Thu Mar 30 09:44:21 2017 +0200 Committer: Sven Meier Committed: Tue Apr 4 17:30:04 2017 +0200 -- .../apache/wicket/markup/html/form/Form.java| 7 + .../form/FormComponentUpdatingBehavior.java | 218 +++ .../html/form/SelectionChangeBehavior.java | 218 --- .../apache/wicket/util/tester/FormTester.java | 4 +- .../org/apache/wicket/MockPageWithForm.java | 6 +- .../wicket/util/tester/FormTesterTest.java | 6 +- .../extensions/yui/calendar/DatesPage1.java | 4 +- .../apache/wicket/examples/dates/DatesPage.java | 4 +- .../wicket/examples/forminput/FormInput.java| 6 +- .../wicket/examples/tree/AdvancedTreePage.java | 6 +- 10 files changed, 243 insertions(+), 236 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/9bc7ee47/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java index 6edd242..13aadf8 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java @@ -509,6 +509,13 @@ public class Form extends WebMarkupContainer } /** +* @deprecated use {@link #getJsForListenerUrl(CharSequence)} instead. +*/ + public final CharSequence getJsForInterfaceUrl(CharSequence url) { + return getJsForListenerUrl(url); + } + + /** * Generate a piece of JavaScript that submits the form to the given URL. * * Warning: This code should only be called in the rendering phase for form components inside http://git-wip-us.apache.org/repos/asf/wicket/blob/9bc7ee47/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java new file mode 100644 index 000..e57828b --- /dev/null +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java @@ -0,0 +1,218 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.markup.html.form; + +import org.apache.wicket.Component; +import org.apache.wicket.IRequestListener; +import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.util.lang.Args; + +/** + * A behavior to get notifications when a {@link FormComponent} changes its value. + * + * Contrary to {@link AjaxFormComponentUpdatingBehavior} all notification are send via + * standard HTTP requests and the full page is rendered as a response. + * + * @see FormComponentUpdatingBehavior#onUpdate() + */ +public class FormComponentUpdatingBehavior extends Behavior implements IRequestListener +{ + + private FormComponent formComponent; + + @Override + public boolean getStatelessHint(Component component) + { + return false; + } + + @Override + public final void bind(final Component hostComponent) + { + Args.no
[1/8] wicket git commit: WICKET-6348 call all FormComponentUpdatingBehavior on select
Repository: wicket Updated Branches: refs/heads/master e7dcf2f68 -> 137fa9e40 WICKET-6348 call all FormComponentUpdatingBehavior on select Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/137fa9e4 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/137fa9e4 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/137fa9e4 Branch: refs/heads/master Commit: 137fa9e40237e12c2a9566f7701356796d43aaa9 Parents: 75547ab Author: Sven Meier Authored: Tue Apr 4 17:24:19 2017 +0200 Committer: Sven Meier Committed: Tue Apr 4 17:30:04 2017 +0200 -- .../src/main/java/org/apache/wicket/util/tester/FormTester.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/137fa9e4/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java index 93b735c..031aac4 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java @@ -506,9 +506,8 @@ public class FormTester ChoiceSelector choiceSelector = choiceSelectorFactory.create(component); choiceSelector.doSelect(index); - List behaviors = component.getBehaviors(FormComponentUpdatingBehavior.class); - if (behaviors.isEmpty() == false) { - tester.invokeListener(component, behaviors.get(0)); + for (FormComponentUpdatingBehavior updater : component.getBehaviors(FormComponentUpdatingBehavior.class)) { + tester.invokeListener(component, updater); } return this;
[7/8] wicket git commit: WICKET-6348 added javadoc and overridable #getEvent()
WICKET-6348 added javadoc and overridable #getEvent() Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/75547ab9 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/75547ab9 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/75547ab9 Branch: refs/heads/master Commit: 75547ab9eb7f615ec987b93bcfec8df73618148c Parents: ad429c1 Author: Sven Meier Authored: Fri Mar 31 15:07:11 2017 +0200 Committer: Sven Meier Committed: Tue Apr 4 17:30:04 2017 +0200 -- .../form/FormComponentUpdatingBehavior.java | 27 ++-- 1 file changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/75547ab9/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java index 89a2174..3bdb883 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java @@ -28,8 +28,17 @@ import org.apache.wicket.util.lang.Args; /** * A behavior to get notifications when a {@link FormComponent} changes its value. * - * Contrary to {@link AjaxFormComponentUpdatingBehavior} all notification are send via + * Contrary to {@link AjaxFormComponentUpdatingBehavior} all notification are sent via * standard HTTP requests and the full page is rendered as a response. + * + * Notification is triggered by an event suitable for the host component this + * behavior is added to - if needed {@link #getEvent()} can be overridden to change the default + * ({@value change} for {@link DropDownChoice}, {@link ListMultipleChoice} and {@link AbstractTextComponent}, + * {@value click} for anything else). + * + * Note: This behavior has limited support for {@link FormComponent}s outside of a form, i.e. multiple + * choice components ({@link ListMultipleChoice} and {@link RadioGroup}) will send their last selected + * choice only. * * @see FormComponentUpdatingBehavior#onUpdate() */ @@ -93,7 +102,7 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL { CharSequence url = component.urlForListener(this, new PageParameters()); - String event = getJSEvent(); + String event = getEvent(); String condition = String.format("if (event.target.name !== '%s') return; ", formComponent.getInputName()); @@ -101,29 +110,31 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL Form form = component.findParent(Form.class); if (form != null) { - tag.put(event, condition + form.getJsForListenerUrl(url.toString())); + tag.put("on" + event, condition + form.getJsForListenerUrl(url.toString())); } else { char separator = url.toString().indexOf('?') > -1 ? '&' : '?'; - tag.put(event, condition + String.format("window.location.href='%s%s%s=' + %s;", url, + tag.put("on" + event, condition + String.format("window.location.href='%s%s%s=' + %s;", url, separator, formComponent.getInputName(), getJSValue())); } } /** -* Which JavaScript event triggers notification. +* Which JavaScript event triggers notification. +* +* @return {@value change} or {@value click}, depending on the host component */ - private String getJSEvent() + protected String getEvent() { if (formComponent instanceof DropDownChoice || formComponent instanceof ListMultipleChoice|| formComponent instanceof AbstractTextComponent) { - return "onchange"; + return "change"; } else { - return "onclick"; + return "click"; } }
[3/8] wicket git commit: WICKET-6348 move selection change into behavior
WICKET-6348 move selection change into behavior Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e2af7563 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e2af7563 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e2af7563 Branch: refs/heads/master Commit: e2af75630ceaa3da0b7b00a88c87adac3dc7a3f6 Parents: 25567ba Author: Sven Meier Authored: Wed Mar 29 11:40:33 2017 +0200 Committer: Sven Meier Committed: Tue Apr 4 17:30:04 2017 +0200 -- .../apache/wicket/markup/html/form/Check.java | 20 --- .../wicket/markup/html/form/CheckBox.java | 121 +--- .../wicket/markup/html/form/CheckGroup.java | 91 +--- .../wicket/markup/html/form/DropDownChoice.java | 119 +--- .../apache/wicket/markup/html/form/Radio.java | 20 --- .../wicket/markup/html/form/RadioChoice.java| 126 +--- .../wicket/markup/html/form/RadioGroup.java | 94 +--- .../html/form/SelectionChangeBehavior.java | 142 +++ .../wicket/util/tester/BaseWicketTester.java| 25 +++- .../apache/wicket/util/tester/FormTester.java | 27 +--- .../org/apache/wicket/MockPageWithForm.java | 21 +-- .../wicket/util/tester/FormTesterTest.java | 16 +-- .../extensions/yui/calendar/DatesPage1.java | 20 +-- .../yui/calendar/DatesPage1_ExpectedResult.html | 2 +- .../wicket/examples/compref/CheckGroupPage.html | 3 - .../wicket/examples/compref/CheckGroupPage.java | 14 +- .../apache/wicket/examples/dates/DatesPage.java | 14 +- .../wicket/examples/forminput/FormInput.java| 37 ++--- .../wicket/examples/tree/AdvancedTreePage.java | 23 +-- 19 files changed, 213 insertions(+), 722 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/e2af7563/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java index 83fa278..6f7ff26 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java @@ -24,7 +24,6 @@ import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.model.IModel; -import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.util.string.Strings; @@ -195,25 +194,6 @@ public class Check extends LabeledWebMarkupContainer implements IGenericCompo tag.put("checked", "checked"); } - if (group.wantOnSelectionChangedNotifications()) - { - // url that points to this components IOnChangeListener method - CharSequence url = group.urlForListener(new PageParameters()); - - Form form = group.findParent(Form.class); - if (form != null) - { - tag.put("onclick", form.getJsForListenerUrl(url)); - } - else - { - // NOTE: do not encode the url as that would give invalid JavaScript - tag.put("onclick", "window.location.href='" + url + - (url.toString().indexOf('?') > -1 ? "&" : "?") + group.getInputName() + - "=' + this.value;"); - } - } - if (!isActionAuthorized(ENABLE) || !isEnabledInHierarchy() || !group.isEnabledInHierarchy()) { tag.put(ATTR_DISABLED, ATTR_DISABLED); http://git-wip-us.apache.org/repos/asf/wicket/blob/e2af7563/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java index da8f049..f318060 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java @@ -18,11 +18,8 @@ package org.apache.wicket.markup.html.form; import java.util.Locale; -import org.apache.wicket.IRequestListener; -import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.model.IModel; -i
[8/8] wicket git commit: WICKET-6348 small improvements
WICKET-6348 small improvements - check host component type - getFormComponent() final - new onError() - support ListMultipleChoice Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c1d389d0 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c1d389d0 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c1d389d0 Branch: refs/heads/master Commit: c1d389d09ee75f8fcbb58a1ebe9e1d5644563313 Parents: 9bc7ee4 Author: Sven Meier Authored: Thu Mar 30 14:55:00 2017 +0200 Committer: Sven Meier Committed: Tue Apr 4 17:30:04 2017 +0200 -- .../form/FormComponentUpdatingBehavior.java | 73 +++- 1 file changed, 56 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/c1d389d0/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java index e57828b..89a2174 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.form; import org.apache.wicket.Component; import org.apache.wicket.IRequestListener; +import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; @@ -44,18 +45,24 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL } @Override - public final void bind(final Component hostComponent) + public final void bind(final Component component) { - Args.notNull(hostComponent, "hostComponent"); + Args.notNull(component, "component"); + + if (!(component instanceof FormComponent)) + { + throw new WicketRuntimeException("Behavior " + getClass().getName() + + " can only be added to an instance of a FormComponent"); + } if (formComponent != null) { throw new IllegalStateException("this kind of handler cannot be attached to " + "multiple components; it is already attached to component " + formComponent + - ", but component " + hostComponent + " wants to be attached too"); + ", but component " + component + " wants to be attached too"); } - this.formComponent = (FormComponent)hostComponent; + this.formComponent = (FormComponent)component; formComponent.setRenderBodyOnly(false); @@ -63,11 +70,20 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL onBind(); } + /** +* Called when the component was bound to it's host component. You can get the bound host +* component by calling {@link #getFormComponent()}. +*/ protected void onBind() { } - public FormComponent getFormComponent() + /** +* Get the hosting component. +* +* @return hosting component +*/ + public final FormComponent getFormComponent() { return formComponent; } @@ -101,7 +117,7 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL */ private String getJSEvent() { - if (formComponent instanceof DropDownChoice || formComponent instanceof AbstractTextComponent) + if (formComponent instanceof DropDownChoice || formComponent instanceof ListMultipleChoice|| formComponent instanceof AbstractTextComponent) { return "onchange"; } @@ -135,23 +151,30 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL */ private void process() { - formComponent.validate(); - if (formComponent.isValid()) + try { - if (getUpdateModel()) + formComponent.validate(); + if (formComponent.isValid()) { - formComponent.valid(); - formComponent.updateModel(); +
wicket git commit: WICKET-6348 call all FormComponentUpdatingBehavior on select
Repository: wicket Updated Branches: refs/heads/WICKET-6348-selection-change 36e8dcf60 -> 6f814911f WICKET-6348 call all FormComponentUpdatingBehavior on select Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/6f814911 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/6f814911 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/6f814911 Branch: refs/heads/WICKET-6348-selection-change Commit: 6f814911f0d4210ffe5a7aee796a4d0a9eadef40 Parents: 36e8dcf Author: Sven Meier Authored: Tue Apr 4 17:24:19 2017 +0200 Committer: Sven Meier Committed: Tue Apr 4 17:24:19 2017 +0200 -- .../src/main/java/org/apache/wicket/util/tester/FormTester.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/6f814911/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java index 93b735c..031aac4 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java @@ -506,9 +506,8 @@ public class FormTester ChoiceSelector choiceSelector = choiceSelectorFactory.create(component); choiceSelector.doSelect(index); - List behaviors = component.getBehaviors(FormComponentUpdatingBehavior.class); - if (behaviors.isEmpty() == false) { - tester.invokeListener(component, behaviors.get(0)); + for (FormComponentUpdatingBehavior updater : component.getBehaviors(FormComponentUpdatingBehavior.class)) { + tester.invokeListener(component, updater); } return this;
[1/2] wicket git commit: WICKET-6347 renderer might be null
Repository: wicket Updated Branches: refs/heads/master abf1ae634 -> 44a20c5df WICKET-6347 renderer might be null if #newEditor() doesn't create AbstractChoice, the renderer might actually be null Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/44a20c5d Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/44a20c5d Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/44a20c5d Branch: refs/heads/master Commit: 44a20c5df85e636a49f62c87be7377b44e5008ee Parents: 775c40c Author: Sven Meier Authored: Mon Mar 27 18:38:00 2017 +0200 Committer: Sven Meier Committed: Mon Apr 3 17:57:08 2017 +0200 -- .../extensions/ajax/markup/html/AjaxEditableChoiceLabel.java | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/44a20c5d/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java index 221a42f..5dfa693 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java @@ -325,8 +325,11 @@ public class AjaxEditableChoiceLabel extends AjaxEditableLabel choices.detach(); } - renderer.detach(); + if (renderer != null) + { + renderer.detach(); + } super.onDetach(); } -} +} \ No newline at end of file
[2/2] wicket git commit: WICKET-6347 added #detach() to all renderers
WICKET-6347 added #detach() to all renderers Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/775c40c7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/775c40c7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/775c40c7 Branch: refs/heads/master Commit: 775c40c77226517636ba3905dff8b4cc7dd86e60 Parents: abf1ae6 Author: Sven Meier Authored: Mon Mar 27 17:27:20 2017 +0200 Committer: Sven Meier Committed: Mon Apr 3 17:57:08 2017 +0200 -- .../wicket/markup/html/form/AbstractChoice.java | 8 .../wicket/markup/html/form/IChoiceRenderer.java | 15 --- .../ajax/markup/html/AjaxEditableChoiceLabel.java| 3 +++ .../html/autocomplete/AutoCompleteBehavior.java | 7 +++ .../html/autocomplete/AutoCompleteTextField.java | 8 .../html/autocomplete/IAutoCompleteRenderer.java | 11 +-- .../extensions/markup/html/form/palette/Palette.java | 2 ++ .../markup/html/form/select/IOptionRenderer.java | 12 ++-- .../markup/html/form/select/SelectOptions.java | 8 9 files changed, 67 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java index 523116e..fd1cacf 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java @@ -501,4 +501,12 @@ public abstract class AbstractChoice extends FormComponent "This class does not support type-conversion because it is performed " + "exclusively by the IChoiceRenderer assigned to this component"); } + + @Override + protected void onDetach() + { + renderer.detach(); + + super.onDetach(); + }; } http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java index c8345d4..5fcc14e 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java @@ -18,8 +18,8 @@ package org.apache.wicket.markup.html.form; import java.util.List; +import org.apache.wicket.model.IDetachable; import org.apache.wicket.model.IModel; -import org.apache.wicket.util.io.IClusterable; /** * Renders one choice. Separates the 'id' values used for internal representation from 'display @@ -30,7 +30,7 @@ import org.apache.wicket.util.io.IClusterable; * @param *The model object type */ -public interface IChoiceRenderer extends IClusterable +public interface IChoiceRenderer extends IDetachable { /** * Get the value for displaying to an end user. @@ -70,4 +70,13 @@ public interface IChoiceRenderer extends IClusterable * @return A choice from the list that has this {@code id} */ T getObject(String id, IModel> choices); -} + + /** +* Override when needed. +*/ + @Override + default void detach() + { + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java index 2afe6cf..221a42f 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java @@ -324,6 +324,9 @@ public class AjaxEditableChoiceLabel extends AjaxEditableLabel { choices.detach(); } + + renderer.detach(); + super.onDetach(); }
wicket git commit: WICKET-6322 remove lambda factories
Repository: wicket Updated Branches: refs/heads/master f734ad676 -> da937bb0f WICKET-6322 remove lambda factories removed Lambdas; removed factory method with more than one lambda Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/da937bb0 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/da937bb0 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/da937bb0 Branch: refs/heads/master Commit: da937bb0fe990a02a96c389e8904d62cf172a89c Parents: f734ad6 Author: Sven Meier Authored: Mon Apr 3 14:45:16 2017 +0200 Committer: Sven Meier Committed: Mon Apr 3 14:48:34 2017 +0200 -- ...AjaxFormChoiceComponentUpdatingBehavior.java | 35 -- .../form/AjaxFormComponentUpdatingBehavior.java | 38 --- .../ajax/form/AjaxFormSubmitBehavior.java | 36 --- .../wicket/ajax/form/OnChangeAjaxBehavior.java | 36 --- .../java/org/apache/wicket/lambda/Lambdas.java | 316 --- .../apache/wicket/behavior/BehaviorTest.java| 66 .../org/apache/wicket/lambda/LambdasTest.java | 68 .../wicket/examples/compref/LinkPage.java | 4 +- 8 files changed, 68 insertions(+), 531 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/da937bb0/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java index 7fe6c7c..e4e8b79 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormChoiceComponentUpdatingBehavior.java @@ -27,7 +27,6 @@ import org.apache.wicket.markup.html.form.FormComponent; import org.apache.wicket.markup.html.form.RadioChoice; import org.apache.wicket.markup.html.form.RadioGroup; import org.apache.wicket.util.lang.Args; -import org.danekja.java.util.function.serializable.SerializableBiConsumer; import org.danekja.java.util.function.serializable.SerializableConsumer; /** @@ -136,38 +135,4 @@ public abstract class AjaxFormChoiceComponentUpdatingBehavior extends } }; } - - /** -* Creates an {@link AjaxFormChoiceComponentUpdatingBehavior} based on lambda expressions -* -* @param onUpdateChoice -*the {@code SerializableConsumer} which accepts the {@link AjaxRequestTarget} -* @param onError -*the {@code SerializableBiConsumer} which accepts the {@link AjaxRequestTarget} and the -*{@link RuntimeException} -* @return the {@link AjaxFormChoiceComponentUpdatingBehavior} -*/ - public static AjaxFormChoiceComponentUpdatingBehavior onUpdateChoice( - SerializableConsumer onUpdateChoice, - SerializableBiConsumer onError) - { - Args.notNull(onUpdateChoice, "onUpdateChoice"); - Args.notNull(onError, "onError"); - return new AjaxFormChoiceComponentUpdatingBehavior() - { - private static final long serialVersionUID = 1L; - - @Override - protected void onUpdate(AjaxRequestTarget target) - { - onUpdateChoice.accept(target); - } - - @Override - protected void onError(AjaxRequestTarget target, RuntimeException e) - { - onError.accept(target, e); - } - }; - } } http://git-wip-us.apache.org/repos/asf/wicket/blob/da937bb0/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java index 4236692..09474d5 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormComponentUpdatingBehavior.java @@ -26,7 +26,6 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method; import org.apache.wicket.markup.html.form.FormComponent; import org.apache.wicket.markup.html.form.validation.IFormValidator; import org.apache.wicket.util.lang.Args; -import org.danekja.jav
wicket git commit: WICKET-6348 added javadoc and overridable #getEvent()
Repository: wicket Updated Branches: refs/heads/WICKET-6348-selection-change 387e41bd3 -> 36e8dcf60 WICKET-6348 added javadoc and overridable #getEvent() Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/36e8dcf6 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/36e8dcf6 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/36e8dcf6 Branch: refs/heads/WICKET-6348-selection-change Commit: 36e8dcf60dd4a9eae3378fe523414c179cea03e8 Parents: 387e41b Author: Sven Meier Authored: Fri Mar 31 15:07:11 2017 +0200 Committer: Sven Meier Committed: Fri Mar 31 15:07:11 2017 +0200 -- .../form/FormComponentUpdatingBehavior.java | 27 ++-- 1 file changed, 19 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/36e8dcf6/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java index 89a2174..3bdb883 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java @@ -28,8 +28,17 @@ import org.apache.wicket.util.lang.Args; /** * A behavior to get notifications when a {@link FormComponent} changes its value. * - * Contrary to {@link AjaxFormComponentUpdatingBehavior} all notification are send via + * Contrary to {@link AjaxFormComponentUpdatingBehavior} all notification are sent via * standard HTTP requests and the full page is rendered as a response. + * + * Notification is triggered by an event suitable for the host component this + * behavior is added to - if needed {@link #getEvent()} can be overridden to change the default + * ({@value change} for {@link DropDownChoice}, {@link ListMultipleChoice} and {@link AbstractTextComponent}, + * {@value click} for anything else). + * + * Note: This behavior has limited support for {@link FormComponent}s outside of a form, i.e. multiple + * choice components ({@link ListMultipleChoice} and {@link RadioGroup}) will send their last selected + * choice only. * * @see FormComponentUpdatingBehavior#onUpdate() */ @@ -93,7 +102,7 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL { CharSequence url = component.urlForListener(this, new PageParameters()); - String event = getJSEvent(); + String event = getEvent(); String condition = String.format("if (event.target.name !== '%s') return; ", formComponent.getInputName()); @@ -101,29 +110,31 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL Form form = component.findParent(Form.class); if (form != null) { - tag.put(event, condition + form.getJsForListenerUrl(url.toString())); + tag.put("on" + event, condition + form.getJsForListenerUrl(url.toString())); } else { char separator = url.toString().indexOf('?') > -1 ? '&' : '?'; - tag.put(event, condition + String.format("window.location.href='%s%s%s=' + %s;", url, + tag.put("on" + event, condition + String.format("window.location.href='%s%s%s=' + %s;", url, separator, formComponent.getInputName(), getJSValue())); } } /** -* Which JavaScript event triggers notification. +* Which JavaScript event triggers notification. +* +* @return {@value change} or {@value click}, depending on the host component */ - private String getJSEvent() + protected String getEvent() { if (formComponent instanceof DropDownChoice || formComponent instanceof ListMultipleChoice|| formComponent instanceof AbstractTextComponent) { - return "onchange"; + return "change"; } else { - return "onclick"; + return "click"; } }
wicket git commit: WICKET-6348 guide update for FormComponentUpdatingBehavior
Repository: wicket Updated Branches: refs/heads/WICKET-6348-selection-change c52f15fce -> 387e41bd3 WICKET-6348 guide update for FormComponentUpdatingBehavior Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/387e41bd Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/387e41bd Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/387e41bd Branch: refs/heads/WICKET-6348-selection-change Commit: 387e41bd3acc96553733a51a3f72202949f69dc3 Parents: c52f15f Author: Sven Meier Authored: Thu Mar 30 17:05:14 2017 +0200 Committer: Sven Meier Committed: Thu Mar 30 17:05:14 2017 +0200 -- .../src/main/asciidoc/advanced/advanced_2.adoc | 4 +- .../src/main/asciidoc/forms2/forms2_11.adoc | 2 +- .../asciidoc/modelsforms/modelsforms_6.adoc | 50 3 files changed, 23 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/387e41bd/wicket-user-guide/src/main/asciidoc/advanced/advanced_2.adoc -- diff --git a/wicket-user-guide/src/main/asciidoc/advanced/advanced_2.adoc b/wicket-user-guide/src/main/asciidoc/advanced/advanced_2.adoc index c03c060..0ec6a2f 100644 --- a/wicket-user-guide/src/main/asciidoc/advanced/advanced_2.adoc +++ b/wicket-user-guide/src/main/asciidoc/advanced/advanced_2.adoc @@ -53,9 +53,9 @@ public abstract class Link extends AbstractLink implements IRequestListener . } -Callback URLs can be generated with _Component_'s method _urlFor(PageParameters)_ or with method _urlFor (Behavior, RequestListenerInterface, PageParameters)_ if we are using a callback interface with a behavior (see the following example). +Callback URLs can be generated with _Component_'s method _urlForListener(PageParameters)_ or with method _urlForListener(Behavior, PageParameters)_ if we are using a request listener on a component or behavior respectively (see the following example). -Project _CallbackURLExample_ contains a behavior (class _OnChangeSingleChoiceBehavior_) that implements _org.apache.wicket.IRequestListener_ to update the model of an _AbstractSingleSelectChoice_ component when user changes the selected option (it provides the same functionality of method _wantOnSelectionChangedNotifications_). +Project _CallbackURLExample_ contains a behavior (class _OnChangeSingleChoiceBehavior_) that implements _org.apache.wicket.IRequestListener_ to update the model of an _AbstractSingleSelectChoice_ component when user changes the selected option (it provides the same functionality as _FormComponentUpdatingBehavior_). The following is the implementation of _onRequest()_ provided by _OnSelectionChangedNotifications_: [source,java] http://git-wip-us.apache.org/repos/asf/wicket/blob/387e41bd/wicket-user-guide/src/main/asciidoc/forms2/forms2_11.adoc -- diff --git a/wicket-user-guide/src/main/asciidoc/forms2/forms2_11.adoc b/wicket-user-guide/src/main/asciidoc/forms2/forms2_11.adoc index 9f8a7ed..371350d 100644 --- a/wicket-user-guide/src/main/asciidoc/forms2/forms2_11.adoc +++ b/wicket-user-guide/src/main/asciidoc/forms2/forms2_11.adoc @@ -195,5 +195,5 @@ form.add(new RadioChoice("radioGroup", Model.of(""), fruits)); image::../img/grouped-radiobutton.png[] -Just like CheckBoxMultipleChoice, this component provides the setPrefix and setSuffix methods to configure the prefix and suffix for our options and it supports IChoiceRender as well. In addition, RadioChoice provides the wantOnSelectionChangedNotifications() method to notify the web server when the selected option changes (this is the same method seen for DropDownChoice in paragraph 9.4). +Just like CheckBoxMultipleChoice, this component provides the setPrefix and setSuffix methods to configure the prefix and suffix for our options and it supports IChoiceRender as well. http://git-wip-us.apache.org/repos/asf/wicket/blob/387e41bd/wicket-user-guide/src/main/asciidoc/modelsforms/modelsforms_6.adoc -- diff --git a/wicket-user-guide/src/main/asciidoc/modelsforms/modelsforms_6.adoc b/wicket-user-guide/src/main/asciidoc/modelsforms/modelsforms_6.adoc index f7d4b1c..3a4f39e 100644 --- a/wicket-user-guide/src/main/asciidoc/modelsforms/modelsforms_6.adoc +++ b/wicket-user-guide/src/main/asciidoc/modelsforms/modelsforms_6.adoc @@ -7,7 +7,7 @@ The example page will look like this: image::../img/model-chaining.png[] -What we want to do in this example is to chain the model of the DropDownChoice (which contains the selected Person) with the model of the Form. In this way the Form will work with the selected Person as backing object. The DropDownChoice com
wicket git commit: WICKET-6348 small improvements
Repository: wicket Updated Branches: refs/heads/WICKET-6348-selection-change 01d8cffb9 -> c52f15fce WICKET-6348 small improvements - check host component type - getFormComponent() final - new onError() - support ListMultipleChoice Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c52f15fc Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c52f15fc Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c52f15fc Branch: refs/heads/WICKET-6348-selection-change Commit: c52f15fcec4a23c06bdf3de1587d29e6f38fc289 Parents: 01d8cff Author: Sven Meier Authored: Thu Mar 30 14:55:00 2017 +0200 Committer: Sven Meier Committed: Thu Mar 30 14:55:00 2017 +0200 -- .../form/FormComponentUpdatingBehavior.java | 73 +++- 1 file changed, 56 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/c52f15fc/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java index e57828b..89a2174 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.form; import org.apache.wicket.Component; import org.apache.wicket.IRequestListener; +import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; @@ -44,18 +45,24 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL } @Override - public final void bind(final Component hostComponent) + public final void bind(final Component component) { - Args.notNull(hostComponent, "hostComponent"); + Args.notNull(component, "component"); + + if (!(component instanceof FormComponent)) + { + throw new WicketRuntimeException("Behavior " + getClass().getName() + + " can only be added to an instance of a FormComponent"); + } if (formComponent != null) { throw new IllegalStateException("this kind of handler cannot be attached to " + "multiple components; it is already attached to component " + formComponent + - ", but component " + hostComponent + " wants to be attached too"); + ", but component " + component + " wants to be attached too"); } - this.formComponent = (FormComponent)hostComponent; + this.formComponent = (FormComponent)component; formComponent.setRenderBodyOnly(false); @@ -63,11 +70,20 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL onBind(); } + /** +* Called when the component was bound to it's host component. You can get the bound host +* component by calling {@link #getFormComponent()}. +*/ protected void onBind() { } - public FormComponent getFormComponent() + /** +* Get the hosting component. +* +* @return hosting component +*/ + public final FormComponent getFormComponent() { return formComponent; } @@ -101,7 +117,7 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL */ private String getJSEvent() { - if (formComponent instanceof DropDownChoice || formComponent instanceof AbstractTextComponent) + if (formComponent instanceof DropDownChoice || formComponent instanceof ListMultipleChoice|| formComponent instanceof AbstractTextComponent) { return "onchange"; } @@ -135,23 +151,30 @@ public class FormComponentUpdatingBehavior extends Behavior implements IRequestL */ private void process() { - formComponent.validate(); - if (formComponent.isValid()) + try { - if (getUpdateModel()) + formComponent.validate(); + if (formComponent.isValid())
wicket git commit: WICKET-6348 renamed to FormComponentUpdatingBehavior
Repository: wicket Updated Branches: refs/heads/WICKET-6348-selection-change 75ec36271 -> 01d8cffb9 WICKET-6348 renamed to FormComponentUpdatingBehavior keep deprecated getJsForInterfaceUrl() Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/01d8cffb Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/01d8cffb Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/01d8cffb Branch: refs/heads/WICKET-6348-selection-change Commit: 01d8cffb9f8ab3c957a4aa372b53644317d6a479 Parents: 75ec362 Author: Sven Meier Authored: Thu Mar 30 09:44:21 2017 +0200 Committer: Sven Meier Committed: Thu Mar 30 09:44:21 2017 +0200 -- .../apache/wicket/markup/html/form/Form.java| 7 + .../form/FormComponentUpdatingBehavior.java | 218 +++ .../html/form/SelectionChangeBehavior.java | 218 --- .../apache/wicket/util/tester/FormTester.java | 4 +- .../org/apache/wicket/MockPageWithForm.java | 6 +- .../wicket/util/tester/FormTesterTest.java | 6 +- .../extensions/yui/calendar/DatesPage1.java | 4 +- .../apache/wicket/examples/dates/DatesPage.java | 4 +- .../wicket/examples/forminput/FormInput.java| 6 +- .../wicket/examples/tree/AdvancedTreePage.java | 6 +- 10 files changed, 243 insertions(+), 236 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/01d8cffb/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java index 0a68aa7..a562694 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java @@ -509,6 +509,13 @@ public class Form extends WebMarkupContainer } /** +* @deprecated use {@link #getJsForListenerUrl(CharSequence)} instead. +*/ + public final CharSequence getJsForInterfaceUrl(CharSequence url) { + return getJsForListenerUrl(url); + } + + /** * Generate a piece of JavaScript that submits the form to the given URL. * * Warning: This code should only be called in the rendering phase for form components inside http://git-wip-us.apache.org/repos/asf/wicket/blob/01d8cffb/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java new file mode 100644 index 000..e57828b --- /dev/null +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentUpdatingBehavior.java @@ -0,0 +1,218 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.markup.html.form; + +import org.apache.wicket.Component; +import org.apache.wicket.IRequestListener; +import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.util.lang.Args; + +/** + * A behavior to get notifications when a {@link FormComponent} changes its value. + * + * Contrary to {@link AjaxFormComponentUpdatingBehavior} all notification are send via + * standard HTTP requests and the full page is rendered as a response. + * + * @see FormComponentUpdatingBehavior#onUpdate() + */ +public class FormComponentUpdatingBehavior extends Behavior implements IRequestListener +{ + + private FormComponent formComponent; + + @Override + public boolean getStatelessHint(Component component) + { + return false
wicket git commit: WICKET-6350 corrected error message
Repository: wicket Updated Branches: refs/heads/wicket-6.x 1b6ab749a -> ef6288641 WICKET-6350 corrected error message Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ef628864 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ef628864 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ef628864 Branch: refs/heads/wicket-6.x Commit: ef6288641971e5bc346e5515c67b57fb4fee3772 Parents: 1b6ab74 Author: Sven Meier Authored: Thu Mar 30 09:09:45 2017 +0200 Committer: Sven Meier Committed: Thu Mar 30 09:09:45 2017 +0200 -- .../java/org/apache/wicket/markup/html/form/FormComponent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/ef628864/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java index eaadc27..4852f23 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java @@ -1051,7 +1051,7 @@ public abstract class FormComponent extends LabeledWebMarkupContainer impleme if (!required && getType() != null && getType().isPrimitive()) { throw new WicketRuntimeException( - "FormComponent can't be required when the type is primitive class: " + this); + "FormComponent has to be required when the type is primitive class: " + this); } if (required != isRequired()) {
wicket git commit: WICKET-6350 corrected error message
Repository: wicket Updated Branches: refs/heads/master dcb673d09 -> 16c0520c0 WICKET-6350 corrected error message Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/16c0520c Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/16c0520c Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/16c0520c Branch: refs/heads/master Commit: 16c0520c0e99ee4af16e93013d67ae55569332e2 Parents: dcb673d Author: Sven Meier Authored: Thu Mar 30 09:03:56 2017 +0200 Committer: Sven Meier Committed: Thu Mar 30 09:03:56 2017 +0200 -- .../java/org/apache/wicket/markup/html/form/FormComponent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/16c0520c/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java index b3d9277..9d4460e 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java @@ -1050,7 +1050,7 @@ public abstract class FormComponent extends LabeledWebMarkupContainer impleme if (!required && getType() != null && getType().isPrimitive()) { throw new WicketRuntimeException( - "FormComponent can't be required when the type is primitive class: " + this); + "FormComponent has to be required when the type is primitive class: " + this); } if (required != isRequired()) {
wicket git commit: WICKET-6348 added javadoc; #getUpdateModel(); restored example
Repository: wicket Updated Branches: refs/heads/WICKET-6348-selection-change 7f08fab8f -> 75ec36271 WICKET-6348 added javadoc; #getUpdateModel(); restored example Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/75ec3627 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/75ec3627 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/75ec3627 Branch: refs/heads/WICKET-6348-selection-change Commit: 75ec362716674227817906d18c50d530f584041e Parents: 7f08fab Author: Sven Meier Authored: Wed Mar 29 20:22:15 2017 +0200 Committer: Sven Meier Committed: Wed Mar 29 20:22:15 2017 +0200 -- .../html/form/SelectionChangeBehavior.java | 130 +++ .../wicket/examples/compref/CheckGroupPage.html | 3 + .../wicket/examples/compref/CheckGroupPage.java | 14 +- 3 files changed, 117 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/75ec3627/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SelectionChangeBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SelectionChangeBehavior.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SelectionChangeBehavior.java index 8943d12..8298c06 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SelectionChangeBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SelectionChangeBehavior.java @@ -18,10 +18,20 @@ package org.apache.wicket.markup.html.form; import org.apache.wicket.Component; import org.apache.wicket.IRequestListener; +import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.util.lang.Args; +/** + * A behavior to get change notifications when a choice component changes its selection. + * + * Contrary to {@link AjaxFormChoiceComponentUpdatingBehavior} all notification are send via + * standard HTTP requests and the full page is rendered as the response. + * + * @see SelectionChangeBehavior#onSelectionChanged() + */ public class SelectionChangeBehavior extends Behavior implements IRequestListener { @@ -32,29 +42,46 @@ public class SelectionChangeBehavior extends Behavior implements IRequestListene { return false; } - + @Override - public void bind(Component component) + public final void bind(final Component hostComponent) { - this.formComponent = (FormComponent)component; - + Args.notNull(hostComponent, "hostComponent"); + + if (formComponent != null) + { + throw new IllegalStateException("this kind of handler cannot be attached to " + + "multiple components; it is already attached to component " + formComponent + + ", but component " + hostComponent + " wants to be attached too"); + } + + this.formComponent = (FormComponent)hostComponent; + formComponent.setRenderBodyOnly(false); + + // call the callback + onBind(); + } + + protected void onBind() + { } public FormComponent getFormComponent() { return formComponent; } - + @Override public void onComponentTag(Component component, ComponentTag tag) { CharSequence url = component.urlForListener(this, new PageParameters()); String event = getJSEvent(); - - String condition = String.format("if (event.target.name !== '%s') return; ", formComponent.getInputName()); - + + String condition = String.format("if (event.target.name !== '%s') return; ", + formComponent.getInputName()); + Form form = component.findParent(Form.class); if (form != null) { @@ -63,39 +90,85 @@ public class SelectionChangeBehavior extends Behavior implements IRequestListene else { char separator = url.toString().indexOf('?') > -1 ? '&' : '?'; - - tag.put(event, - condition + String.format("window.location.href='%s%s%s=' + %s;", url, separator, formComponent.getInputName(), getJSValue())); + + tag.put(event, condition + String.format("window.location.href='%s%s%s=' + %s;"
wicket git commit: WICKET-6286 use XMLHttpRequest for blob download
Repository: wicket Updated Branches: refs/heads/master c7f2b81e8 -> f6a298a46 WICKET-6286 use XMLHttpRequest for blob download Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/f6a298a4 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/f6a298a4 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/f6a298a4 Branch: refs/heads/master Commit: f6a298a46d97168e35a787c8d889fd374560f757 Parents: c7f2b81 Author: Sven Meier Authored: Wed Mar 29 16:25:41 2017 +0200 Committer: Sven Meier Committed: Wed Mar 29 16:25:41 2017 +0200 -- .../java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/f6a298a4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js index 64839d9..ec7ae62 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js @@ -103,7 +103,7 @@ xhr.open("GET", settings.downloadUrl); xhr.responseType = "blob"; xhr.onload = function() { - if (this.status == 200) { + if (this.status === 200) { var filename = ""; var disposition = xhr.getResponseHeader("Content-Disposition"); if (disposition && disposition.indexOf("attachment") !== -1) {
wicket git commit: WICKET-6286 use XMLHttpRequest for blob download
Repository: wicket Updated Branches: refs/heads/master 8a4e1b3c2 -> c7f2b81e8 WICKET-6286 use XMLHttpRequest for blob download Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c7f2b81e Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c7f2b81e Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c7f2b81e Branch: refs/heads/master Commit: c7f2b81e8bfbedc1cc37c66b256814a86eba69eb Parents: 8a4e1b3 Author: Sven Meier Authored: Wed Mar 29 15:45:41 2017 +0200 Committer: Sven Meier Committed: Wed Mar 29 15:52:07 2017 +0200 -- .../extensions/ajax/wicket-ajaxdownload.js | 23 1 file changed, 14 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/c7f2b81e/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js index b13bbfa..64839d9 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js @@ -97,10 +97,13 @@ } }); } else { - jQuery.ajax({ - type: 'get', - url: settings.downloadUrl, - success: function (response, status, xhr) { + // jquery does not support binary download + var xhr = new XMLHttpRequest(); + + xhr.open("GET", settings.downloadUrl); + xhr.responseType = "blob"; + xhr.onload = function() { + if (this.status == 200) { var filename = ""; var disposition = xhr.getResponseHeader("Content-Disposition"); if (disposition && disposition.indexOf("attachment") !== -1) { @@ -111,7 +114,7 @@ } var type = xhr.getResponseHeader("Content-Type"); - var blob = new Blob([response], {type: type}); + var blob = new Blob([xhr.response], {type: type}); var blobUrl = (window.URL || window.webkitURL).createObjectURL(blob); @@ -129,12 +132,14 @@ }, 100); notifyServer("success"); - }, - - error: function (response, status, xhr) { + } else { notifyServer("failed"); } - }); + }; + xhr.onerror = function() { + notifyServer("failed"); + }; + xhr.send(); } } };
[1/2] wicket git commit: WICKET-6348 use submitter instead of hidden field
Repository: wicket Updated Branches: refs/heads/WICKET-6348-selection-change [created] 7f08fab8f WICKET-6348 use submitter instead of hidden field Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/15573cab Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/15573cab Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/15573cab Branch: refs/heads/WICKET-6348-selection-change Commit: 15573cabcf44768fe2631bb9b4b6dcf5e2b2e494 Parents: 3179d34 Author: Sven Meier Authored: Tue Mar 28 21:34:56 2017 +0200 Committer: Sven Meier Committed: Wed Mar 29 11:33:34 2017 +0200 -- .../apache/wicket/markup/html/form/Check.java | 2 +- .../wicket/markup/html/form/CheckBox.java | 67 ++-- .../wicket/markup/html/form/CheckGroup.java | 66 ++-- .../wicket/markup/html/form/DropDownChoice.java | 69 ++-- .../apache/wicket/markup/html/form/Form.java| 164 +-- .../apache/wicket/markup/html/form/Radio.java | 2 +- .../wicket/markup/html/form/RadioChoice.java| 67 ++-- .../wicket/markup/html/form/RadioGroup.java | 63 ++- .../wicket/markup/html/form/StatelessForm.java | 1 - .../wicket/markup/html/form/SubmitLink.java | 40 ++--- .../form/AjaxFormSubmitTestPage_expected.html | 2 +- .../OnChangeAjaxBehaviorTestPage_expected.html | 2 +- .../CheckGroupDisabledTestPage_expected.html| 2 +- .../html/form/CheckGroupTestPage1_expected.html | 2 +- .../html/form/CheckGroupTestPage2_expected.html | 2 +- .../html/form/CheckGroupTestPage3_expected.html | 2 +- .../html/form/CheckGroupTestPage4_expected.html | 2 +- ...DropDownChoiceTestPage_A_false_expected.html | 2 +- .../DropDownChoiceTestPage_A_true_expected.html | 2 +- ...pDownChoiceTestPage_null_false_expected.html | 2 +- ...opDownChoiceTestPage_null_true_expected.html | 2 +- .../html/form/FormMethodTestPage_expected.html | 4 +- .../RadioGroupDisabledTestPage_expected.html| 2 +- .../html/form/RadioGroupTestPage1_expected.html | 2 +- .../html/form/RadioGroupTestPage3_expected.html | 2 +- .../form/feedback/FeedbackFormPage_result1.html | 2 +- .../form/feedback/FeedbackFormPage_result2.html | 2 +- .../FeedbackIndicatorFormPage_result1.html | 2 +- .../FeedbackIndicatorFormPage_result2.html | 2 +- .../html/form/pageWithParameters_expected.html | 4 +- .../validation/HomePage1_ExpectedResult.html| 2 +- .../EnclosurePageExpectedResult_9-1-1.html | 2 +- .../EnclosurePageExpectedResult_9-1.html| 2 +- .../EnclosurePageExpectedResult_9-2-1.html | 2 +- .../EnclosurePageExpectedResult_9-2.html| 2 +- .../EnclosurePageExpectedResult_9-3-1.html | 2 +- .../EnclosurePageExpectedResult_9-3-2.html | 2 +- .../EnclosurePageExpectedResult_9-3.html| 2 +- .../EnclosurePageExpectedResult_9-4.html| 2 +- .../internal/EnclosurePageExpectedResult_9.html | 2 +- .../tags/InputTagNotVisibleWebPageResult.html | 2 +- .../html/tags/InputTagVisibleWebPageResult.html | 2 +- .../StatelessPageWithForm_expected.html | 2 +- .../yui/calendar/DatesPage1_ExpectedResult.html | 6 +- 44 files changed, 358 insertions(+), 259 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/15573cab/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java index ed50c80..83fa278 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java @@ -203,7 +203,7 @@ public class Check extends LabeledWebMarkupContainer implements IGenericCompo Form form = group.findParent(Form.class); if (form != null) { - tag.put("onclick", form.getJsForInterfaceUrl(url)); + tag.put("onclick", form.getJsForListenerUrl(url)); } else { http://git-wip-us.apache.org/repos/asf/wicket/blob/15573cab/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java index 9e25c4b..da8f049 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java +++ b/wicket-core/src/mai
[2/2] wicket git commit: WICKET-6348 move selection change into behavior
WICKET-6348 move selection change into behavior Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7f08fab8 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7f08fab8 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7f08fab8 Branch: refs/heads/WICKET-6348-selection-change Commit: 7f08fab8fa4ab9146fb0504222bb354a8dd98b46 Parents: 15573ca Author: Sven Meier Authored: Wed Mar 29 11:40:33 2017 +0200 Committer: Sven Meier Committed: Wed Mar 29 11:40:33 2017 +0200 -- .../apache/wicket/markup/html/form/Check.java | 20 --- .../wicket/markup/html/form/CheckBox.java | 121 +--- .../wicket/markup/html/form/CheckGroup.java | 91 +--- .../wicket/markup/html/form/DropDownChoice.java | 119 +--- .../apache/wicket/markup/html/form/Radio.java | 20 --- .../wicket/markup/html/form/RadioChoice.java| 126 +--- .../wicket/markup/html/form/RadioGroup.java | 94 +--- .../html/form/SelectionChangeBehavior.java | 142 +++ .../wicket/util/tester/BaseWicketTester.java| 25 +++- .../apache/wicket/util/tester/FormTester.java | 27 +--- .../org/apache/wicket/MockPageWithForm.java | 21 +-- .../wicket/util/tester/FormTesterTest.java | 16 +-- .../extensions/yui/calendar/DatesPage1.java | 20 +-- .../yui/calendar/DatesPage1_ExpectedResult.html | 2 +- .../wicket/examples/compref/CheckGroupPage.html | 3 - .../wicket/examples/compref/CheckGroupPage.java | 14 +- .../apache/wicket/examples/dates/DatesPage.java | 14 +- .../wicket/examples/forminput/FormInput.java| 37 ++--- .../wicket/examples/tree/AdvancedTreePage.java | 23 +-- 19 files changed, 213 insertions(+), 722 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/7f08fab8/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java index 83fa278..6f7ff26 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java @@ -24,7 +24,6 @@ import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.model.IModel; -import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.util.string.Strings; @@ -195,25 +194,6 @@ public class Check extends LabeledWebMarkupContainer implements IGenericCompo tag.put("checked", "checked"); } - if (group.wantOnSelectionChangedNotifications()) - { - // url that points to this components IOnChangeListener method - CharSequence url = group.urlForListener(new PageParameters()); - - Form form = group.findParent(Form.class); - if (form != null) - { - tag.put("onclick", form.getJsForListenerUrl(url)); - } - else - { - // NOTE: do not encode the url as that would give invalid JavaScript - tag.put("onclick", "window.location.href='" + url + - (url.toString().indexOf('?') > -1 ? "&" : "?") + group.getInputName() + - "=' + this.value;"); - } - } - if (!isActionAuthorized(ENABLE) || !isEnabledInHierarchy() || !group.isEnabledInHierarchy()) { tag.put(ATTR_DISABLED, ATTR_DISABLED); http://git-wip-us.apache.org/repos/asf/wicket/blob/7f08fab8/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java index da8f049..f318060 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBox.java @@ -18,11 +18,8 @@ package org.apache.wicket.markup.html.form; import java.util.Locale; -import org.apache.wicket.IRequestListener; -import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.markup.ComponentTag; import org.apache.
wicket git commit: WICKET-6347 renderer might be null
Repository: wicket Updated Branches: refs/heads/WICKET-6347-detachable-renderers 0bc929d71 -> 24da5e48b WICKET-6347 renderer might be null if #newEditor() doesn't create AbstractChoice, the renderer might actually be null Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/24da5e48 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/24da5e48 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/24da5e48 Branch: refs/heads/WICKET-6347-detachable-renderers Commit: 24da5e48b3410ab46dced342cdd08a15831069bc Parents: 0bc929d Author: Sven Meier Authored: Mon Mar 27 18:38:00 2017 +0200 Committer: Sven Meier Committed: Mon Mar 27 18:38:00 2017 +0200 -- .../extensions/ajax/markup/html/AjaxEditableChoiceLabel.java | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/24da5e48/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java index 221a42f..5dfa693 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java @@ -325,8 +325,11 @@ public class AjaxEditableChoiceLabel extends AjaxEditableLabel choices.detach(); } - renderer.detach(); + if (renderer != null) + { + renderer.detach(); + } super.onDetach(); } -} +} \ No newline at end of file
wicket git commit: WICKET-6347 added #detach() to all renderers
Repository: wicket Updated Branches: refs/heads/WICKET-6347-detachable-renderers [created] 0bc929d71 WICKET-6347 added #detach() to all renderers Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0bc929d7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0bc929d7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0bc929d7 Branch: refs/heads/WICKET-6347-detachable-renderers Commit: 0bc929d71865f052e895fd0918ea297acc7086fa Parents: 3179d34 Author: Sven Meier Authored: Mon Mar 27 17:27:20 2017 +0200 Committer: Sven Meier Committed: Mon Mar 27 17:27:20 2017 +0200 -- .../wicket/markup/html/form/AbstractChoice.java | 8 .../wicket/markup/html/form/IChoiceRenderer.java | 15 --- .../ajax/markup/html/AjaxEditableChoiceLabel.java| 3 +++ .../html/autocomplete/AutoCompleteBehavior.java | 7 +++ .../html/autocomplete/AutoCompleteTextField.java | 8 .../html/autocomplete/IAutoCompleteRenderer.java | 11 +-- .../extensions/markup/html/form/palette/Palette.java | 2 ++ .../markup/html/form/select/IOptionRenderer.java | 12 ++-- .../markup/html/form/select/SelectOptions.java | 8 9 files changed, 67 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/0bc929d7/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java index 523116e..fd1cacf 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java @@ -501,4 +501,12 @@ public abstract class AbstractChoice extends FormComponent "This class does not support type-conversion because it is performed " + "exclusively by the IChoiceRenderer assigned to this component"); } + + @Override + protected void onDetach() + { + renderer.detach(); + + super.onDetach(); + }; } http://git-wip-us.apache.org/repos/asf/wicket/blob/0bc929d7/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java index c8345d4..5fcc14e 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java @@ -18,8 +18,8 @@ package org.apache.wicket.markup.html.form; import java.util.List; +import org.apache.wicket.model.IDetachable; import org.apache.wicket.model.IModel; -import org.apache.wicket.util.io.IClusterable; /** * Renders one choice. Separates the 'id' values used for internal representation from 'display @@ -30,7 +30,7 @@ import org.apache.wicket.util.io.IClusterable; * @param *The model object type */ -public interface IChoiceRenderer extends IClusterable +public interface IChoiceRenderer extends IDetachable { /** * Get the value for displaying to an end user. @@ -70,4 +70,13 @@ public interface IChoiceRenderer extends IClusterable * @return A choice from the list that has this {@code id} */ T getObject(String id, IModel> choices); -} + + /** +* Override when needed. +*/ + @Override + default void detach() + { + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/0bc929d7/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java index 2afe6cf..221a42f 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java @@ -324,6 +324,9 @@ public class AjaxEditableChoiceLabel extends AjaxEditableLabel { choices.detach();
wicket git commit: WICKET-6286 jshint strikes once again, use ===
Repository: wicket Updated Branches: refs/heads/master 10175f1ef -> b53c7921d WICKET-6286 jshint strikes once again, use === Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b53c7921 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b53c7921 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b53c7921 Branch: refs/heads/master Commit: b53c7921d0f2abf8166dd471668b75a2ec8c706e Parents: 10175f1 Author: Sven Meier Authored: Thu Mar 23 15:47:17 2017 +0100 Committer: Sven Meier Committed: Thu Mar 23 15:47:17 2017 +0100 -- .../java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/b53c7921/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js index 7c320c3..b13bbfa 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js @@ -82,7 +82,7 @@ } } }); - } else if (settings.method == 'iframe') { + } else if (settings.method === 'iframe') { var frame = jQuery("").hide().prop("src", settings.downloadUrl).appendTo("body"); checkComplete({ html: function() {
[1/2] wicket git commit: WICKET-6286 javadoc for failure and html
Repository: wicket Updated Branches: refs/heads/master 75d3cc62d -> 10175f1ef WICKET-6286 javadoc for failure and html Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e7c23206 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e7c23206 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e7c23206 Branch: refs/heads/master Commit: e7c23206c89e439b1dc266213e3675428468e0bd Parents: 75d3cc6 Author: Sven Meier Authored: Thu Mar 23 14:01:20 2017 +0100 Committer: Sven Meier Committed: Thu Mar 23 14:01:20 2017 +0100 -- .../java/org/apache/wicket/extensions/ajax/AjaxDownload.java | 6 ++ 1 file changed, 6 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/e7c23206/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java index 7e6c191..804a794 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java @@ -64,6 +64,8 @@ import com.github.openjson.JSONObject; * * * @author svenmeier + * @author Martin Grigorov + * @author Maxim Solodovnik */ public class AjaxDownload extends AbstractDefaultAjaxBehavior { @@ -251,6 +253,10 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior /** * A callback executed when the download of the resource failed for some reason, * e.g. an error at the server side. +* +* Since the HTTP status code of the download is not available to Wicket, any HTML in the resource response +* will be interpreted as a failure HTTP status message. Thus is it not possible to download HTML resources +* via {@link AjaxDownload}. * * @param target The Ajax request handler */
[2/2] wicket git commit: WICKET-6286 added Location.Blob
WICKET-6286 added Location.Blob downloads via Blob and createObjectURL Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/10175f1e Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/10175f1e Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/10175f1e Branch: refs/heads/master Commit: 10175f1ef969ae0feccafc9bf997c78e42c8cc54 Parents: e7c2320 Author: Sven Meier Authored: Thu Mar 23 15:22:15 2017 +0100 Committer: Sven Meier Committed: Thu Mar 23 15:22:15 2017 +0100 -- .../examples/ajax/builtin/AjaxDownloadPage.html | 3 +- .../examples/ajax/builtin/AjaxDownloadPage.java | 48 ++- .../wicket/extensions/ajax/AjaxDownload.java| 9 +++- .../extensions/ajax/wicket-ajaxdownload.js | 49 ++-- 4 files changed, 101 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/10175f1e/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html index 0be7fe2..dd7e3ab 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html @@ -27,7 +27,8 @@ - via an iframe. + for modern browsers. + in an iframe. in a new browser window. in the same window. http://git-wip-us.apache.org/repos/asf/wicket/blob/10175f1e/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java index b589091..6d1aa3e 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java @@ -21,6 +21,7 @@ import java.util.concurrent.TimeUnit; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.extensions.ajax.AjaxDownload; +import org.apache.wicket.extensions.ajax.AjaxDownload.Location; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.request.http.flow.AbortWithHttpErrorCodeException; import org.apache.wicket.request.resource.ContentDisposition; @@ -51,6 +52,8 @@ public class AjaxDownloadPage extends BasePage add(downloadingContainer); initDownload(); + + initDownloadInIframe(); initDownloadInNewWindow(); @@ -67,7 +70,7 @@ public class AjaxDownloadPage extends BasePage // download cannot continue on page refresh downloadingContainer.setVisible(false); } - + private void initDownload() { IResource resource = new ExampleResource("downloaded via ajax") @@ -109,6 +112,49 @@ public class AjaxDownloadPage extends BasePage } }); } + + private void initDownloadInIframe() + { + IResource resource = new ExampleResource("downloaded via ajax in iframe") + .setContentDisposition(ContentDisposition.ATTACHMENT); + + final AjaxDownload download = new AjaxDownload(resource) { + + @Override + protected void onBeforeDownload(AjaxRequestTarget target) + { + downloadingContainer.setVisible(true); + target.add(downloadingContainer); + } + + @Override + protected void onDownloadSuccess(AjaxRequestTarget target) + { + downloadingContainer.setVisible(false); + target.add(downloadingContainer); + } + + @Override + protected void onDownloadFailed(AjaxRequestTarget target) + { + downloadingContainer.setVisible(false); + target.add(downloadingContainer); + +
wicket git commit: re-add inadvertently deleted cdi example
Repository: wicket Updated Branches: refs/heads/master d174a6ea3 -> 75d3cc62d re-add inadvertently deleted cdi example Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/75d3cc62 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/75d3cc62 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/75d3cc62 Branch: refs/heads/master Commit: 75d3cc62d42f30036b2b7aa0fde3f7324d4e3b2b Parents: d174a6e Author: Sven Meier Authored: Thu Mar 23 11:26:34 2017 +0100 Committer: Sven Meier Committed: Thu Mar 23 11:26:34 2017 +0100 -- wicket-examples/src/main/webapp/WEB-INF/web.xml | 21 1 file changed, 21 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/75d3cc62/wicket-examples/src/main/webapp/WEB-INF/web.xml -- diff --git a/wicket-examples/src/main/webapp/WEB-INF/web.xml b/wicket-examples/src/main/webapp/WEB-INF/web.xml index b26c571..e23b1a1 100644 --- a/wicket-examples/src/main/webapp/WEB-INF/web.xml +++ b/wicket-examples/src/main/webapp/WEB-INF/web.xml @@ -796,6 +796,27 @@ + + +CdiApplication + org.apache.wicket.protocol.http.WicketFilter + +applicationClassName + org.apache.wicket.examples.cdi.CdiApplication + + + +CdiApplication +/cdi/* + + + + + org.jboss.weld.environment.servlet.Listener + + + + BeanValidation
wicket git commit: WICKET-6286 follow jshint
Repository: wicket Updated Branches: refs/heads/master 399089927 -> d174a6ea3 WICKET-6286 follow jshint Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d174a6ea Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d174a6ea Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d174a6ea Branch: refs/heads/master Commit: d174a6ea38503c88f471154961fb372a56c6c9aa Parents: 3990899 Author: Sven Meier Authored: Tue Mar 21 23:54:09 2017 +0100 Committer: Sven Meier Committed: Tue Mar 21 23:54:09 2017 +0100 -- .../java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/d174a6ea/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js index 0c232cf..ec81ca4 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js @@ -77,7 +77,7 @@ }, dismiss: function(result) { - if (result == "failed") { + if (result === "failed") { wo.close(); } }
[2/7] wicket git commit: WICKET-6286 renamed url settings; explained cookie path
WICKET-6286 renamed url settings; explained cookie path Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0957a2b0 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0957a2b0 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0957a2b0 Branch: refs/heads/master Commit: 0957a2b0ec02b09312bfb9f8d5e8aaf9458edb6d Parents: 5578e69 Author: Sven Meier Authored: Thu Jan 5 09:12:20 2017 +0100 Committer: Sven Meier Committed: Tue Mar 21 23:23:16 2017 +0100 -- .../java/org/apache/wicket/extensions/ajax/AjaxDownload.java | 7 ++- .../org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/0957a2b0/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java index a879d5b..11c97d4 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java @@ -193,7 +193,7 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior JSONObject settings = new JSONObject(); settings.put("attributes", new JsonFunction(renderAjaxAttributes(getComponent(; settings.put("name", getName()); - settings.put("url", url); + settings.put("downloadUrl", url); target.appendJavaScript(String.format("Wicket.AjaxDownload.initiate(%s);", settings)); @@ -289,7 +289,12 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior private static Cookie cookie(String name) { Cookie cookie = new Cookie(name, "complete"); + + // has to be on root, otherwise JavaScript will not be able to access the + // cookie when it is set from a different path - which is the case when a + // ResourceReference is used cookie.setPath("/"); + return cookie; } } http://git-wip-us.apache.org/repos/asf/wicket/blob/0957a2b0/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js index 52471df..a383fa8 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js @@ -28,7 +28,7 @@ Wicket.AjaxDownload = { initiate : function(settings) { - var frame = jQuery("").hide().prop("src", settings.url).appendTo("body"); + var frame = jQuery("").hide().prop("src", settings.downloadUrl).appendTo("body"); var checkComplete = function() { var result;
[6/7] wicket git commit: WICKET-6286 Add support for success callback to 'NewWindow' location
WICKET-6286 Add support for success callback to 'NewWindow' location Add 'onDownloadCompleted()' callback that is executed after any success or failure callback. Like in jQuery - do something in all cases. WICKET-6340 Use XHTML friendly markup when creating the iframe Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a7c01094 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a7c01094 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a7c01094 Branch: refs/heads/master Commit: a7c01094b369c95316ee103f364f04f57cbba1ad Parents: 27bb0bb Author: Martin Tzvetanov Grigorov Authored: Mon Mar 20 17:26:23 2017 +0100 Committer: Sven Meier Committed: Tue Mar 21 23:23:17 2017 +0100 -- .../examples/ajax/builtin/AjaxDownloadPage.java | 9 ++- .../wicket/extensions/ajax/AjaxDownload.java| 28 +++- .../extensions/ajax/wicket-ajaxdownload.js | 24 ++--- 3 files changed, 50 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/a7c01094/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java index 3a7ccb5..b339b64 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java @@ -252,8 +252,15 @@ public class AjaxDownloadPage extends BasePage downloadingContainer.setVisible(false); target.add(downloadingContainer); } + + @Override + protected void onDownloadCompleted(AjaxRequestTarget target) + { + downloadingContainer.setVisible(false); + target.add(downloadingContainer); + } }; - download.setLocation(AjaxDownload.Location.NewWindow); + download.setLocation(AjaxDownload.Location.SameWindow); add(download); add(new AjaxLink("downloadInNewWindow") http://git-wip-us.apache.org/repos/asf/wicket/blob/a7c01094/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java index aacbfd9..34595e6 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java @@ -72,18 +72,23 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior * The resource will be downloaded via a temporary created iframe. * This is recommended when there are resources in the DOM which will be * closed automatically on JavaScript unload event, like WebSockets. +* Supports both success and failure callbacks! */ IFrame, /** * The resource will be downloaded by changing the location of the current DOM document. * Note: This will trigger JavaScript unload event on the page! +* Supports only success callback, i.e. it is not possible to detect whether +* the download has finished successfully or not. */ - Self, + SameWindow, /** * The resource will be downloaded in a new browser window by using JavaScript * window.open() API. +* Supports only success callback, i.e. it is not possible to detect whether +* the download has finished successfully or not. */ NewWindow } @@ -230,14 +235,34 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior { } + /** +* A callback executed when the download of the resource finished successfully. +* +* @param target The Ajax request handler +*/ protected void onDownloadSuccess(AjaxRequestTarget target) { } + /** +* A callback executed when the download of the resource failed for some reason, +* e.g. an error a
[4/7] wicket git commit: WICKET-6286 Add wicket-ajaxdownload.js to the JS Lint checked files list.
WICKET-6286 Add wicket-ajaxdownload.js to the JS Lint checked files list. Remove tree.js - it has been deleted long time ago Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b9349443 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b9349443 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b9349443 Branch: refs/heads/master Commit: b93494439359946021d2595a47a20b1fac65356c Parents: 0957a2b Author: Martin Tzvetanov Grigorov Authored: Tue Jan 31 22:49:18 2017 +0100 Committer: Sven Meier Committed: Tue Mar 21 23:23:16 2017 +0100 -- testing/wicket-js-tests/Gruntfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/b9349443/testing/wicket-js-tests/Gruntfile.js -- diff --git a/testing/wicket-js-tests/Gruntfile.js b/testing/wicket-js-tests/Gruntfile.js index 03d0801..6cb79bd 100644 --- a/testing/wicket-js-tests/Gruntfile.js +++ b/testing/wicket-js-tests/Gruntfile.js @@ -28,8 +28,8 @@ module.exports = function(grunt) { ], extensionsJs = [ "../../wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/progressbar.js", + "../../wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js", "../../wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/palette.js", - "../../wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tree/res/tree.js", "../../wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js", "../../wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/modal/res/modal.js", "../../wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/wicket-filterform.js"
[3/7] wicket git commit: WICKET-6286 ajax download
d; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.request.http.flow.AbortWithHttpErrorCodeException; +import org.apache.wicket.request.resource.ContentDisposition; +import org.apache.wicket.request.resource.IResource; +import org.apache.wicket.request.resource.ResourceReference; +import org.apache.wicket.request.resource.ResourceStreamResource; +import org.apache.wicket.util.resource.IResourceStream; +import org.apache.wicket.util.resource.StringResourceStream; +import org.apache.wicket.util.time.Duration; + +import java.util.concurrent.TimeUnit; + +/** + * Ajax download. + * + * @author svenmeier + */ +public class AjaxDownloadPage extends BasePage +{ + private WebMarkupContainer downloadingContainer; + + /** +* Constructor +*/ + public AjaxDownloadPage() + { + downloadingContainer = new WebMarkupContainer("downloading"); + downloadingContainer.setOutputMarkupPlaceholderTag(true); + downloadingContainer.setVisible(false); + add(downloadingContainer); + + initDownload(); + + initDownloadFailure(); + + initDownloadReference(); + } + + private void initDownload() + { + IResource resource = new ResourceStreamResource() { + protected IResourceStream getResourceStream() { + // simulate delay + try + { + TimeUnit.MILLISECONDS.sleep(5000); + } + catch (InterruptedException e) + { + } + + return new StringResourceStream("downloaded via ajax"); + }; + + }.setFileName("File-from-IResource.txt").setContentDisposition(ContentDisposition.ATTACHMENT).setCacheDuration(Duration.NONE); + + final AjaxDownload download = new AjaxDownload(resource) { + + @Override + protected void onBeforeDownload(AjaxRequestTarget target) + { + downloadingContainer.setVisible(true); + target.add(downloadingContainer); + } + + @Override + protected void onDownloadSuccess(AjaxRequestTarget target) + { + downloadingContainer.setVisible(false); + target.add(downloadingContainer); + } + + @Override + protected void onDownloadFailed(AjaxRequestTarget target) + { + downloadingContainer.setVisible(false); + target.add(downloadingContainer); + } + }; + add(download); + + add(new AjaxLink("download") + { + @Override + public void onClick(AjaxRequestTarget target) + { + download.initiate(target); + } + }); + } + + private void initDownloadFailure() + { + IResource resource = new ResourceStreamResource() { + protected IResourceStream getResourceStream() { + // simulate delay + try + { + TimeUnit.MILLISECONDS.sleep(2000); + } + catch (InterruptedException e) + { + } + + throw new AbortWithHttpErrorCodeException(500); + }; + + }.setFileName("file").setContentDisposition(ContentDisposition.ATTACHMENT).setCacheDuration(Duration.NONE); + + final AjaxDownload download = new AjaxDownload(resource) { + + @Override + protected void onBeforeDownload(AjaxRequestTarget target) + { + downloadingContainer.setVisible(true); + target.add(downloadingContainer); + } + + @Override + protected void onDownloadSuccess(Ajax
[1/7] wicket git commit: WICKET-6286 Add setting to control how to download the resource - via iframe (default) or via document.location
Repository: wicket Updated Branches: refs/heads/master fd6befd02 -> 399089927 WICKET-6286 Add setting to control how to download the resource - via iframe (default) or via document.location Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ab5675ec Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ab5675ec Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ab5675ec Branch: refs/heads/master Commit: ab5675ec9a364cf2b1fe483219863d233e593cba Parents: b934944 Author: Martin Tzvetanov Grigorov Authored: Tue Jan 31 22:52:09 2017 +0100 Committer: Sven Meier Committed: Tue Mar 21 23:23:16 2017 +0100 -- .../wicket/extensions/ajax/AjaxDownload.java| 29 ++ .../extensions/ajax/wicket-ajaxdownload.js | 40 +--- 2 files changed, 55 insertions(+), 14 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/ab5675ec/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java index 11c97d4..0b941de 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java @@ -40,6 +40,8 @@ import org.apache.wicket.request.resource.ResourceReference; import org.apache.wicket.resource.JQueryPluginResourceReference; import org.apache.wicket.util.lang.Args; +import java.util.Locale; + /** * Download resources via Ajax. * @@ -65,6 +67,21 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior { private static final long serialVersionUID = 1L; + public enum Location { + /** +* The resource will be downloaded via a temporary created iframe. +* This is recommended when there are resources in the DOM which will be +* closed automatically on JavaScript unload event, like WebSockets. +*/ + IFrame, + + /** +* The resource will be downloaded by changing the location of the current DOM document. +* Note: This will trigger JavaScript unload event on the page! +*/ + Self + } + /** * Name of parameter used to transfer the download identifier to the resource. * @@ -81,6 +98,8 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior private PageParameters resourceParameters; + private Location location = Location.IFrame; + /** * Download of a {@link Resource}. * @@ -194,6 +213,7 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior settings.put("attributes", new JsonFunction(renderAjaxAttributes(getComponent(; settings.put("name", getName()); settings.put("downloadUrl", url); + settings.put("method", location.name().toLowerCase(Locale.ENGLISH)); target.appendJavaScript(String.format("Wicket.AjaxDownload.initiate(%s);", settings)); @@ -231,6 +251,15 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior } } + public final Location getLocation() { + return location; + } + + public AjaxDownload setLocation(final Location location) { + this.location = Args.notNull(location, "location"); + return this; + } + /** * Identifying name of this behavior. */ http://git-wip-us.apache.org/repos/asf/wicket/blob/ab5675ec/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js index a383fa8..b821883 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js @@ -27,15 +27,13 @@ Wicket.AjaxDownload = { initiate : function(settings) { - - var frame = jQuery("").hide().prop("src", settings.downloadUrl).appendTo("body"); - - var checkComplete = function() { + + var checkComplete = function (frame) {
[5/7] wicket git commit: WICKET-6286 Add Location.NewWindow - downloads the resource in a new browser window/tab
WICKET-6286 Add Location.NewWindow - downloads the resource in a new browser window/tab Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/27bb0bbf Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/27bb0bbf Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/27bb0bbf Branch: refs/heads/master Commit: 27bb0bbfd888abb6caefaefa63b03e7c02865c22 Parents: ab5675e Author: Martin Tzvetanov Grigorov Authored: Tue Mar 7 22:05:48 2017 +0100 Committer: Sven Meier Committed: Tue Mar 21 23:23:17 2017 +0100 -- .../examples/ajax/builtin/AjaxDownloadPage.html | 6 ++ .../examples/ajax/builtin/AjaxDownloadPage.java | 62 +++- .../wicket/extensions/ajax/AjaxDownload.java| 8 ++- .../extensions/ajax/wicket-ajaxdownload.js | 7 ++- 4 files changed, 77 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/27bb0bbf/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html index 2764b25..670c736 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html @@ -34,6 +34,12 @@ This download fails. A resource reference can be used too. + +This example demonstrates a download +initiated via Ajax and serving the response in a new browser window. + + + Preparing download ... http://git-wip-us.apache.org/repos/asf/wicket/blob/27bb0bbf/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java index a23368c..3a7ccb5 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java @@ -51,10 +51,12 @@ public class AjaxDownloadPage extends BasePage add(downloadingContainer); initDownload(); - + initDownloadFailure(); - + initDownloadReference(); + + initDownloadInNewWindow(); } private void initDownload() @@ -209,7 +211,61 @@ public class AjaxDownloadPage extends BasePage } }); } - + + private void initDownloadInNewWindow() + { + IResource resource = new ResourceStreamResource() { + protected IResourceStream getResourceStream() { + // simulate delay + try + { + TimeUnit.MILLISECONDS.sleep(5000); + } + catch (InterruptedException e) + { + } + + return new StringResourceStream("downloaded via ajax in a new browser window"); + }; + + }.setFileName("File-from-IResource.txt").setContentDisposition(ContentDisposition.INLINE).setCacheDuration(Duration.NONE); + + final AjaxDownload download = new AjaxDownload(resource) { + + @Override + protected void onBeforeDownload(AjaxRequestTarget target) + { + downloadingContainer.setVisible(true); + target.add(downloadingContainer); + } + + @Override + protected void onDownloadSuccess(AjaxRequestTarget target) + { + downloadingContainer.setVisible(false); + target.add(downloadingContainer); + } + + @Override + protected void onDownloadFailed(AjaxRequestTarget target) + { + downloadingContainer.setVisible(false); + target.add(downloadingContainer); + } + }; + download.setLocation(AjaxDownload.Locatio
[7/7] wicket git commit: WICKET-6286 support failure callback for NewWindow too
WICKET-6286 support failure callback for NewWindow too Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/39908992 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/39908992 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/39908992 Branch: refs/heads/master Commit: 3990899278e2dc5a2c60eac9acf71af9716d018c Parents: a7c0109 Author: Sven Meier Authored: Tue Mar 21 23:09:53 2017 +0100 Committer: Sven Meier Committed: Tue Mar 21 23:23:17 2017 +0100 -- .../examples/ajax/builtin/AjaxDownloadPage.html | 18 +- .../examples/ajax/builtin/AjaxDownloadPage.java | 164 +++ wicket-examples/src/main/webapp/WEB-INF/web.xml | 21 --- .../wicket/extensions/ajax/AjaxDownload.java| 42 +++-- .../extensions/ajax/wicket-ajaxdownload.js | 54 -- 5 files changed, 163 insertions(+), 136 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/39908992/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html index 670c736..0be7fe2 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.html @@ -23,23 +23,19 @@ -This example demonstrates a download initiated via Ajax. + All links below initiate a download of a resource via Ajax (failing every third time): - -This download fails. - - - -A resource reference can be used too. - + + via an iframe. + in a new browser window. + in the same window. + -This example demonstrates a download -initiated via Ajax and serving the response in a new browser window. + Alternatively a resource reference can be used too. - Preparing download ... http://git-wip-us.apache.org/repos/asf/wicket/blob/39908992/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java index b339b64..b589091 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/AjaxDownloadPage.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.examples.ajax.builtin; +import java.util.concurrent.TimeUnit; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.extensions.ajax.AjaxDownload; @@ -29,8 +31,6 @@ import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.resource.StringResourceStream; import org.apache.wicket.util.time.Duration; -import java.util.concurrent.TimeUnit; - /** * Ajax download. * @@ -52,30 +52,26 @@ public class AjaxDownloadPage extends BasePage initDownload(); - initDownloadFailure(); + initDownloadInNewWindow(); - initDownloadReference(); + initDownloadInSameWindow(); - initDownloadInNewWindow(); + initDownloadReference(); } + @Override + protected void onConfigure() + { + super.onConfigure(); + + // download cannot continue on page refresh + downloadingContainer.setVisible(false); + } + private void initDownload() { - IResource resource = new ResourceStreamResource() { - protected IResourceStream getResourceStream() { - // simulate delay - try - { - TimeUnit.MILLISECONDS.sleep(5000); - } - catch (InterruptedException e) - { - } - - return new StringResourceStream("downloaded via ajax"); - }; - - }.setFileName("File-from-IResource.txt").setContentDisposition(ContentDisposition.ATTACHMENT).setCacheDuration(Duration.NONE); + IResource resource = new ExampleResource("down
wicket git commit: WICKET-6340 improve support for XHTML markup
Repository: wicket Updated Branches: refs/heads/wicket-6.x 9f2ca1478 -> 1b6ab749a WICKET-6340 improve support for XHTML markup Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/1b6ab749 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/1b6ab749 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/1b6ab749 Branch: refs/heads/wicket-6.x Commit: 1b6ab749a79e9a921f50c296ab48a06cef43f3f1 Parents: 9f2ca14 Author: Sven Meier Authored: Fri Mar 17 21:23:04 2017 +0100 Committer: Sven Meier Committed: Fri Mar 17 21:34:47 2017 +0100 -- .../org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js | 5 +++-- .../java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js| 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/1b6ab749/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js index a8dd7bb..89801c1 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js @@ -90,8 +90,9 @@ msg = msg.replace(//g, ">"); msg = msg.replace(/\n/g, ""); - msg = msg.replace(/ /g, "Â "); - msg = msg.replace(/\t/g, ""); + // WICKET-6340 do not use nbsp, it may not be defined in XHTML markup + msg = msg.replace(/ /g, "Â "); + msg = msg.replace(/\t/g, ""); if (typeof(label) !== "undefined") { msg = "" + label + "" + msg; http://git-wip-us.apache.org/repos/asf/wicket/blob/1b6ab749/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js index b2265a8..2f6bf59 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js @@ -68,8 +68,9 @@ * @param iframeName {String} the value of the iframe's name attribute */ createIFrame = function (iframeName) { + // WICKET-6340 properly close tag for XHTML markup var $iframe = jQuery(''); + '" src="about:blank" style="position: absolute; top: -px; left: -px;">'); return $iframe[0]; };
wicket git commit: WICKET-6340 improve support for XHTML markup
Repository: wicket Updated Branches: refs/heads/wicket-7.x a71cf5538 -> 94b07c6c1 WICKET-6340 improve support for XHTML markup Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/94b07c6c Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/94b07c6c Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/94b07c6c Branch: refs/heads/wicket-7.x Commit: 94b07c6c1070ea88bba0c269e2f5fe4d80ebea05 Parents: a71cf55 Author: Sven Meier Authored: Fri Mar 17 21:23:04 2017 +0100 Committer: Sven Meier Committed: Fri Mar 17 21:23:04 2017 +0100 -- .../org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js | 5 +++-- .../java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js| 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/94b07c6c/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js index 4287410..58425c3 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js @@ -90,8 +90,9 @@ msg = msg.replace(//g, ">"); msg = msg.replace(/\n/g, ""); - msg = msg.replace(/ /g, "Â "); - msg = msg.replace(/\t/g, ""); + // WICKET-6340 do not use nbsp, it may not be defined in XHTML markup + msg = msg.replace(/ /g, "Â "); + msg = msg.replace(/\t/g, ""); if (typeof(label) !== "undefined") { msg = "" + label + "" + msg; http://git-wip-us.apache.org/repos/asf/wicket/blob/94b07c6c/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js index f0c5c12..0f25238 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js @@ -68,8 +68,9 @@ * @param iframeName {String} the value of the iframe's name attribute */ createIFrame = function (iframeName) { + // WICKET-6340 properly close tag for XHTML markup var $iframe = jQuery(''); + '" src="about:blank" style="position: absolute; top: -px; left: -px;">'); return $iframe[0]; };
wicket git commit: WICKET-6340 improve support for XHTML markup
Repository: wicket Updated Branches: refs/heads/master fb5a2fa2f -> 1421ea2dc WICKET-6340 improve support for XHTML markup Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/1421ea2d Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/1421ea2d Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/1421ea2d Branch: refs/heads/master Commit: 1421ea2dc9207143cdadb735f3c79421674d924d Parents: fb5a2fa Author: Sven Meier Authored: Fri Mar 17 21:23:04 2017 +0100 Committer: Sven Meier Committed: Fri Mar 17 21:24:41 2017 +0100 -- .../org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js | 5 +++-- .../java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js| 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/1421ea2d/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js index 4287410..58425c3 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js @@ -90,8 +90,9 @@ msg = msg.replace(//g, ">"); msg = msg.replace(/\n/g, ""); - msg = msg.replace(/ /g, "Â "); - msg = msg.replace(/\t/g, ""); + // WICKET-6340 do not use nbsp, it may not be defined in XHTML markup + msg = msg.replace(/ /g, "Â "); + msg = msg.replace(/\t/g, ""); if (typeof(label) !== "undefined") { msg = "" + label + "" + msg; http://git-wip-us.apache.org/repos/asf/wicket/blob/1421ea2d/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js index f0c5c12..0f25238 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js @@ -68,8 +68,9 @@ * @param iframeName {String} the value of the iframe's name attribute */ createIFrame = function (iframeName) { + // WICKET-6340 properly close tag for XHTML markup var $iframe = jQuery(''); + '" src="about:blank" style="position: absolute; top: -px; left: -px;">'); return $iframe[0]; };
wicket git commit: WICKET-6212 CheckBoxMultipleChoice with getAdditionalAttributesForLabel() as RadioChoice
Repository: wicket Updated Branches: refs/heads/wicket-7.x 0eb634809 -> a71cf5538 WICKET-6212 CheckBoxMultipleChoice with getAdditionalAttributesForLabel() as RadioChoice Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a71cf553 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a71cf553 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a71cf553 Branch: refs/heads/wicket-7.x Commit: a71cf55380567fea894d3dd31fd5f24d5e83b004 Parents: 0eb6348 Author: Sven Meier Authored: Tue Mar 14 10:43:33 2017 +0100 Committer: Sven Meier Committed: Tue Mar 14 10:45:45 2017 +0100 -- .../html/form/CheckBoxMultipleChoice.java | 68 .../wicket/markup/html/form/RadioChoice.java| 22 +++ .../html/form/CheckBoxMultipleChoiceTest.java | 62 +++--- 3 files changed, 121 insertions(+), 31 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/a71cf553/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java index 35d0905..ff403a1 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java @@ -421,19 +421,43 @@ public class CheckBoxMultipleChoice extends ListMultipleChoice final CharSequence escaped = (getEscapeModelStrings() ? Strings.escapeMarkup(display) : display); + // Allows user to add attributes to the tag + IValueMap labelAttrs = getAdditionalAttributesForLabel(index, choice); + StringBuilder extraLabelAttributes = new StringBuilder(); + if (labelAttrs != null) + { + for (Map.Entry attr : labelAttrs.entrySet()) + { + extraLabelAttributes.append(' ') + .append(Strings.escapeMarkup(attr.getKey())) + .append("=\"") + .append(Strings.escapeMarkup(attr.getValue().toString())) + .append('"'); + } + } + switch (labelPosition) { case BEFORE: - buffer.append("").append(escaped).append(""); - break; - case WRAP_AFTER: - buffer.append(""); + buffer.append("') + .append(escaped) + .append(""); break; case WRAP_BEFORE: - buffer.append(""); - buffer.append(escaped).append(' '); + buffer.append("') + .append(escaped) + .append(' '); + break; + case WRAP_AFTER: + buffer.append("'); break; } @@ -499,12 +523,18 @@ public class CheckBoxMultipleChoice extends ListMultipleChoice buffer.append(""); break; case WRAP_AFTER: - buffer.append(' ').append(escaped).append(""); + buffer.append(' ') + .append(escaped) + .append(""); break; case AFTER: - buffer.append("").append(escaped).append(""); + buffer.append("') + .append(escaped) + .append(""); break; } @@ -
wicket git commit: WICKET-6212 CheckBoxMultipleChoice with getAdditionalAttributesForLabel() as RadioChoice
Repository: wicket Updated Branches: refs/heads/wicket-6.x e2f8fc98b -> 9f2ca1478 WICKET-6212 CheckBoxMultipleChoice with getAdditionalAttributesForLabel() as RadioChoice Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/9f2ca147 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/9f2ca147 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/9f2ca147 Branch: refs/heads/wicket-6.x Commit: 9f2ca1478b5fcc63798ca383bae56891b477c4b7 Parents: e2f8fc9 Author: Sven Meier Authored: Tue Mar 14 10:43:33 2017 +0100 Committer: Sven Meier Committed: Tue Mar 14 11:04:11 2017 +0100 -- .../html/form/CheckBoxMultipleChoice.java | 68 .../wicket/markup/html/form/RadioChoice.java| 22 +++ .../html/form/CheckBoxMultipleChoiceTest.java | 62 +++--- 3 files changed, 121 insertions(+), 31 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/9f2ca147/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java index 3563779..435c402 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java @@ -420,19 +420,43 @@ public class CheckBoxMultipleChoice extends ListMultipleChoice final CharSequence escaped = (getEscapeModelStrings() ? Strings.escapeMarkup(display) : display); + // Allows user to add attributes to the tag + IValueMap labelAttrs = getAdditionalAttributesForLabel(index, choice); + StringBuilder extraLabelAttributes = new StringBuilder(); + if (labelAttrs != null) + { + for (Map.Entry attr : labelAttrs.entrySet()) + { + extraLabelAttributes.append(' ') + .append(Strings.escapeMarkup(attr.getKey())) + .append("=\"") + .append(Strings.escapeMarkup(attr.getValue().toString())) + .append('"'); + } + } + switch (labelPosition) { case BEFORE: - buffer.append("").append(escaped).append(""); - break; - case WRAP_AFTER: - buffer.append(""); + buffer.append("') + .append(escaped) + .append(""); break; case WRAP_BEFORE: - buffer.append(""); - buffer.append(escaped).append(' '); + buffer.append("') + .append(escaped) + .append(' '); + break; + case WRAP_AFTER: + buffer.append("'); break; } @@ -491,12 +515,18 @@ public class CheckBoxMultipleChoice extends ListMultipleChoice buffer.append(""); break; case WRAP_AFTER: - buffer.append(' ').append(escaped).append(""); + buffer.append(' ') + .append(escaped) + .append(""); break; case AFTER: - buffer.append("").append(escaped).append(""); + buffer.append("') + .append(escaped) + .append(""); break; } @@ -
wicket git commit: WICKET-6212 CheckBoxMultipleChoice with getAdditionalAttributesForLabel() as RadioChoice
Repository: wicket Updated Branches: refs/heads/master e04e92a75 -> fb5a2fa2f WICKET-6212 CheckBoxMultipleChoice with getAdditionalAttributesForLabel() as RadioChoice Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/fb5a2fa2 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/fb5a2fa2 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/fb5a2fa2 Branch: refs/heads/master Commit: fb5a2fa2f927dd6f6bc774731b591becbbb65121 Parents: e04e92a Author: Sven Meier Authored: Tue Mar 14 10:43:33 2017 +0100 Committer: Sven Meier Committed: Tue Mar 14 11:21:06 2017 +0100 -- .../html/form/CheckBoxMultipleChoice.java | 68 .../wicket/markup/html/form/RadioChoice.java| 22 +++ .../html/form/CheckBoxMultipleChoiceTest.java | 62 +++--- 3 files changed, 121 insertions(+), 31 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/fb5a2fa2/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java index 7823b31..f1c3520 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckBoxMultipleChoice.java @@ -421,19 +421,43 @@ public class CheckBoxMultipleChoice extends ListMultipleChoice final CharSequence escaped = (getEscapeModelStrings() ? Strings.escapeMarkup(display) : display); + // Allows user to add attributes to the tag + IValueMap labelAttrs = getAdditionalAttributesForLabel(index, choice); + StringBuilder extraLabelAttributes = new StringBuilder(); + if (labelAttrs != null) + { + for (Map.Entry attr : labelAttrs.entrySet()) + { + extraLabelAttributes.append(' ') + .append(Strings.escapeMarkup(attr.getKey())) + .append("=\"") + .append(Strings.escapeMarkup(attr.getValue().toString())) + .append('"'); + } + } + switch (labelPosition) { case BEFORE: - buffer.append("").append(escaped).append(""); - break; - case WRAP_AFTER: - buffer.append(""); + buffer.append("') + .append(escaped) + .append(""); break; case WRAP_BEFORE: - buffer.append(""); - buffer.append(escaped).append(' '); + buffer.append("') + .append(escaped) + .append(' '); + break; + case WRAP_AFTER: + buffer.append("'); break; } @@ -494,12 +518,18 @@ public class CheckBoxMultipleChoice extends ListMultipleChoice buffer.append(""); break; case WRAP_AFTER: - buffer.append(' ').append(escaped).append(""); + buffer.append(' ') + .append(escaped) + .append(""); break; case AFTER: - buffer.append("").append(escaped).append(""); + buffer.append("') + .append(escaped) + .append(""); break; } @@ -509,6 +5
wicket git commit: WICKET-6335 call factory methods from #onInitialize()
Repository: wicket Updated Branches: refs/heads/master befa7f0f7 -> 247ef2996 WICKET-6335 call factory methods from #onInitialize() Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/247ef299 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/247ef299 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/247ef299 Branch: refs/heads/master Commit: 247ef29967c2d50ccf0925d28edf641610f5c30c Parents: befa7f0 Author: Sven Meier Authored: Sun Mar 12 19:38:00 2017 +0100 Committer: Sven Meier Committed: Sun Mar 12 19:38:00 2017 +0100 -- .../wicket/extensions/markup/html/repeater/tree/Node.java | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/247ef299/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java index e48a34c..1d9f957 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java @@ -72,12 +72,19 @@ public abstract class Node extends Panel super(id, model); this.tree = tree; + } + + @Override + protected void onInitialize() + { + super.onInitialize(); + MarkupContainer junction = createJunctionComponent("junction"); junction.add(new StyleBehavior()); add(junction); - Component content = createContent(CONTENT_ID, model); + Component content = createContent(CONTENT_ID, getModel()); if (!content.getId().equals(CONTENT_ID)) { throw new IllegalArgumentException(
wicket git commit: WICKET-6325 ART is a mandatory parameter now
Repository: wicket Updated Branches: refs/heads/master 1d8a9c780 -> 3bb858f96 WICKET-6325 ART is a mandatory parameter now Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/3bb858f9 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/3bb858f9 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/3bb858f9 Branch: refs/heads/master Commit: 3bb858f96b2754f3386055f6b21e30c56d79b9be Parents: 1d8a9c7 Author: Sven Meier Authored: Thu Feb 23 15:35:25 2017 +0100 Committer: Sven Meier Committed: Thu Feb 23 15:35:25 2017 +0100 -- .../content/CheckedSelectableFolderContent.java | 2 +- .../tree/content/EditableFolderContent.java | 2 +- .../content/MultiSelectableFolderContent.java | 2 +- .../tree/content/SelectableFolderContent.java | 4 +- .../markup/html/repeater/tree/AbstractTree.java | 21 --- .../markup/html/repeater/tree/NestedTree.java | 65 +++- .../markup/html/repeater/tree/TableTree.java| 38 ++-- .../html/repeater/util/TreeModelProvider.java | 5 +- 8 files changed, 72 insertions(+), 67 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/3bb858f9/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/CheckedSelectableFolderContent.java -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/CheckedSelectableFolderContent.java b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/CheckedSelectableFolderContent.java index 9ca44d3..6dd1532 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/CheckedSelectableFolderContent.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/CheckedSelectableFolderContent.java @@ -63,7 +63,7 @@ public class CheckedSelectableFolderContent extends SelectableFolderContent foo = foo.getParent(); } - tree.updateBranch(foo, Optional.of(target)); + tree.updateBranch(foo, target); } /** http://git-wip-us.apache.org/repos/asf/wicket/blob/3bb858f9/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/EditableFolderContent.java -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/EditableFolderContent.java b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/EditableFolderContent.java index 280857b..3792c86 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/EditableFolderContent.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/EditableFolderContent.java @@ -84,7 +84,7 @@ public class EditableFolderContent extends Content /** * update whole node in case we're located inside TableTree */ - tree.updateNode(model.getObject(), Optional.of(target)); + tree.updateNode(model.getObject(), target); } }; } http://git-wip-us.apache.org/repos/asf/wicket/blob/3bb858f9/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/MultiSelectableFolderContent.java -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/MultiSelectableFolderContent.java b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/MultiSelectableFolderContent.java index 2e70744..9106365 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/MultiSelectableFolderContent.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/MultiSelectableFolderContent.java @@ -64,7 +64,7 @@ public class MultiSelectableFolderContent extends Content selected.add(foo); } - tree.updateNode(foo, targetOptional); + targetOptional.ifPresent(target -> tree.updateNode(foo, target)); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/3bb858f9/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/SelectableFolderContent.java -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/tree
wicket git commit: WICKET-6324 optional for all callbacks
Repository: wicket Updated Branches: refs/heads/master d71d384a0 -> 1d8a9c780 WICKET-6324 optional for all callbacks Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/1d8a9c78 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/1d8a9c78 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/1d8a9c78 Branch: refs/heads/master Commit: 1d8a9c780756130fad77135aa54717552bdd41c9 Parents: d71d384 Author: Sven Meier Authored: Thu Feb 23 12:39:54 2017 +0100 Committer: Sven Meier Committed: Thu Feb 23 12:39:54 2017 +0100 -- .../markup/html/form/AjaxFallbackButton.java| 14 ++-- .../java/org/apache/wicket/ajax/HomePage.java | 5 -- .../wicket/ajax/form/AjaxFormSubmitTest.java| 76 .../ajax/form/AjaxFormSubmitTestPage.java | 50 + .../form/AjaxFormSubmitTestPage_expected.html | 14 ++-- .../html/form/FormWithMultipleButtonsTest.java | 5 -- .../devutils/inspector/EnhancedPageView.java| 7 +- 7 files changed, 115 insertions(+), 56 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/1d8a9c78/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java index 8fd7ad8..f24dd22 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java @@ -73,19 +73,19 @@ public abstract class AjaxFallbackButton extends Button @Override protected void onSubmit(AjaxRequestTarget target) { - AjaxFallbackButton.this.onSubmit(Optional.ofNullable(target)); + AjaxFallbackButton.this.onSubmit(Optional.of(target)); } @Override protected void onAfterSubmit(AjaxRequestTarget target) { - AjaxFallbackButton.this.onAfterSubmit(target); + AjaxFallbackButton.this.onAfterSubmit(Optional.of(target)); } @Override protected void onError(AjaxRequestTarget target) { - AjaxFallbackButton.this.onError(target); + AjaxFallbackButton.this.onError(Optional.of(target)); } @Override @@ -119,7 +119,7 @@ public abstract class AjaxFallbackButton extends Button * @param target * @param form */ - protected void onError(AjaxRequestTarget target) + protected void onError(Optional target) { } @@ -128,7 +128,7 @@ public abstract class AjaxFallbackButton extends Button { if (getRequestCycle().find(AjaxRequestTarget.class).isPresent() == false) { - onError(null); + onError(Optional.empty()); } } @@ -152,7 +152,7 @@ public abstract class AjaxFallbackButton extends Button { if (getRequestCycle().find(AjaxRequestTarget.class).isPresent() == false) { - onAfterSubmit(null); + onAfterSubmit(Optional.empty()); } } @@ -188,7 +188,7 @@ public abstract class AjaxFallbackButton extends Button *ajax target if this linked was invoked using ajax, null otherwise * @param form */ - protected void onAfterSubmit(final AjaxRequestTarget target) + protected void onAfterSubmit(final Optional target) { } http://git-wip-us.apache.org/repos/asf/wicket/blob/1d8a9c78/wicket-core/src/test/java/org/apache/wicket/ajax/HomePage.java -- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/HomePage.java b/wicket-core/src/test/java/org/apache/wicket/ajax/HomePage.java index d8ed36b..bc0b5cb 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/HomePage.java +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/HomePage.java @@ -104,11 +104,6 @@ public class HomePage extends WebPage listView.removeAll(); targetOptional.ifPresent(target -> target.add(listViewContainer)); } - -
wicket git commit: WICKET-6322 remove lambda component factories
Repository: wicket Updated Branches: refs/heads/master 94759c0ab -> 7a72a623e WICKET-6322 remove lambda component factories Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7a72a623 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7a72a623 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7a72a623 Branch: refs/heads/master Commit: 7a72a623e420905f963445d74881362252d29993 Parents: 94759c0 Author: Sven Meier Authored: Mon Feb 20 18:15:51 2017 +0100 Committer: Sven Meier Committed: Mon Feb 20 18:15:51 2017 +0100 -- .../wicket/ajax/markup/html/AjaxLink.java | 54 .../ajax/markup/html/form/AjaxButton.java | 64 - .../ajax/markup/html/form/AjaxCheckBox.java | 28 .../ajax/markup/html/form/AjaxSubmitLink.java | 64 - .../java/org/apache/wicket/lambda/Lambdas.java | 129 --- .../apache/wicket/markup/html/form/Button.java | 65 +- .../apache/wicket/markup/html/link/Link.java| 29 + .../wicket/examples/ajax/builtin/LinksPage.java | 28 ++-- .../examples/ajax/builtin/WorldClockPage.java | 14 +- .../wicket/examples/authorization/Index.java| 6 +- .../pages/AnnotationsPanelsPage.java| 24 ++-- .../examples/captcha/AbstractCaptchaForm.java | 13 +- .../examples/cdi/AutoConversationPage1.java | 16 ++- .../wicket/examples/cdi/ConversationPage1.java | 20 ++- .../wicket/examples/cdi/ConversationPage2.java | 8 +- .../wicket/examples/cdi/InjectionPage.java | 8 +- .../wicket/examples/compref/LinkPage.java | 18 ++- .../examples/compref/NonBookmarkablePage.java | 6 +- .../events/DecoupledAjaxUpdatePage.java | 10 +- .../wicket/examples/forminput/FormInput.java| 21 +-- .../apache/wicket/examples/guice/HomePage.java | 9 +- .../apache/wicket/examples/hangman/Lose.java| 13 +- .../org/apache/wicket/examples/hangman/Win.java | 13 +- .../wicket/examples/kittenCaptcha/HomePage.java | 31 +++-- .../apache/wicket/examples/linkomatic/Home.java | 86 + .../wicket/examples/repeater/OIRPage.java | 16 ++- .../examples/repeater/RefreshingPage.java | 11 +- .../wicket/examples/stateless/StatefulPage.java | 17 ++- .../template/border/TemplateBorder.java | 21 +-- .../template/pageinheritance/TemplatePage.java | 21 +-- .../wicket/examples/tree/AdvancedTreePage.java | 29 - .../wicket/examples/upload/UploadPage.java | 13 +- 32 files changed, 336 insertions(+), 569 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/7a72a623/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java index 483c2b4..67c731e 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java @@ -24,9 +24,6 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.html.link.AbstractLink; import org.apache.wicket.model.IModel; -import org.apache.wicket.util.lang.Args; -import org.danekja.java.util.function.serializable.SerializableBiConsumer; -import org.danekja.java.util.function.serializable.SerializableConsumer; /** * A component that allows a trigger request to be triggered via html anchor tag @@ -143,57 +140,6 @@ public abstract class AjaxLink extends AbstractLink implements IAjaxLink, IGe @Override public abstract void onClick(final AjaxRequestTarget target); - /** -* Creates an {@link AjaxLink} based on lambda expressions -* -* @param id -*the id of the ajax link -* @param onClick -*the {@code SerializableConsumer} which accepts the {@link AjaxRequestTarget} -* @return the {@link AjaxLink} -*/ - public static AjaxLink onClick(String id, - SerializableConsumer onClick) - { - Args.notNull(onClick, "onClick"); - - return new AjaxLink(id) - { - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) - { - onClick.accept(target); - } - }; - } - - /** -* Creates an {@link AjaxLink} based on lambda expressions -* -* @param id -
[2/2] wicket git commit: Minor guide fixes
Minor guide fixes This closes #213 Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/da071f7a Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/da071f7a Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/da071f7a Branch: refs/heads/master Commit: da071f7a6294bbedbb6848f6dd19232eee534e97 Parents: 77602c0 Author: Tim Fleming Authored: Sat Feb 18 02:01:48 2017 -0600 Committer: Sven Meier Committed: Sat Feb 18 11:10:28 2017 +0100 -- .../src/main/asciidoc/helloWorld/helloWorld_2.adoc | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/da071f7a/wicket-user-guide/src/main/asciidoc/helloWorld/helloWorld_2.adoc -- diff --git a/wicket-user-guide/src/main/asciidoc/helloWorld/helloWorld_2.adoc b/wicket-user-guide/src/main/asciidoc/helloWorld/helloWorld_2.adoc index 45e5226..ade0c59 100644 --- a/wicket-user-guide/src/main/asciidoc/helloWorld/helloWorld_2.adoc +++ b/wicket-user-guide/src/main/asciidoc/helloWorld/helloWorld_2.adoc @@ -1,5 +1,5 @@ -In this chapter we will see a classic Hello World! example implemented using a Wicket page with a built-in component called _Label_ (the code is from project the HelloWorldExample). Since this is the first example of the guide, before looking at Java code we will go through the common artifacts needed to build a Wicket application from scratch. +In this chapter we will see a classic Hello World! example implemented using a Wicket page with a built-in component called _Label_ (the code is from the HelloWorldExample project). Since this is the first example of the guide, before looking at Java code we will go through the common artifacts needed to build a Wicket application from scratch. NOTE: All the example projects presented in this document have been generated using Maven and the utility page at http://wicket.apache.org/start/quickstart.html[http://wicket.apache.org/start/quickstart.html] . *Appendix A* contains the instructions needed to use these projects and build a quickstart application using Apache Maven. All the artifacts used in the next example (files web.xml, HomePage.class and HomePage.html) are automatically generated by Maven. @@ -60,7 +60,7 @@ Class _Application_ comes with a set of configuration methods that we can overri public abstract Class getHomePage() -As you may guess from its name, this method specifies which page to use as homepage for our application. +As you may guess from its name, this method specifies which page to use as a homepage for our application. Another important method is _init()_: [source,java] @@ -68,9 +68,9 @@ Another important method is _init()_: protected void init() -This method is called when our application is loaded by the web server (Tomcat, Jetty, etc...) and is the ideal place to put our configuration code. The _Application_ class exposes its settings grouping them into interfaces (you can find them in package _org.apache.wicket.settings_). We can access these interfaces through getter methods that will be gradually introduced in the next chapters when we will cover the related settings. +This method is called when our application is loaded by the web server (Tomcat, Jetty, etc...) and is the ideal place to put our configuration code. The _Application_ class exposes its settings grouping them into interfaces (you can find them in package _org.apache.wicket.settings_). We can access these interfaces through getter methods, which will be gradually introduced in the next chapters when covering related settings. -The current application's instance can be retrieved at any time calling static method _Application.get()_ in our code. We will give more details about this method in <>. The content of the application class from project HelloWorldExample is the following: +The current application's instance can be retrieved at any time by calling static method _Application.get()_ in our code. We will give more details about this method in <>. The content of the application class from the HelloWorldExample project is the following: [source,java] @@ -91,8 +91,8 @@ public class WicketApplication extends WebApplication } -Since this is a very basic example of a Wicket application, we don't need to specify anything inside the _init_ method. The home page of the application is the _HomePage_ class. In the next paragraph we will see how this page is implemented and which conventions we have to follow to create a page in Wicket. +Since this is a very basic example of a Wicket application, we don't need to specify anything inside the _init_ method. The home page of the application is the _Hom
[1/2] wicket git commit: Minor fixes to guide documentation
Repository: wicket Updated Branches: refs/heads/master 05a174130 -> da071f7a6 Minor fixes to guide documentation Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/77602c0d Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/77602c0d Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/77602c0d Branch: refs/heads/master Commit: 77602c0deba29966e17beba8451de6046e5e6acc Parents: 05a1741 Author: Tim Fleming Authored: Sat Feb 18 00:15:28 2017 -0600 Committer: Tim Fleming Committed: Sat Feb 18 00:15:28 2017 -0600 -- wicket-user-guide/src/main/asciidoc/contributing.adoc| 4 ++-- wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_1.adoc | 6 +++--- wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_2.adoc | 6 +++--- wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_3.adoc | 4 ++-- wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_4.adoc | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/77602c0d/wicket-user-guide/src/main/asciidoc/contributing.adoc -- diff --git a/wicket-user-guide/src/main/asciidoc/contributing.adoc b/wicket-user-guide/src/main/asciidoc/contributing.adoc index 61c220b..fab207f 100644 --- a/wicket-user-guide/src/main/asciidoc/contributing.adoc +++ b/wicket-user-guide/src/main/asciidoc/contributing.adoc @@ -13,13 +13,13 @@ git clone https://github.com/apache/wicket.git * To preview your changes run _mvn clean package -P guide_ in the `wicket/wicket-user-guide` folder (in eclipse use a run configuration) -* Navigate to _wicket/wicket-user-guide/target/guide/8.x_ and open one of the following files a browser / pdf viewer: +* Navigate to _wicket/wicket-user-guide/target/guide/8.x_ and open one of the following files in a browser / pdf viewer: ** _guide/single.html_ (single page version) ** _guide/single.pdf_ (single page pdf version) * Create a ticket in Apache Wicket's https://issues.apache.org/jira/browse/WICKET[JIRA] -* *Commit and push the changes* to your forked Apacke Wicket's GIT repository and *create a pull request* on github +* *Commit and push the changes* to your forked Apache Wicket's GIT repository and *create a pull request* on github *Thank you!* http://git-wip-us.apache.org/repos/asf/wicket/blob/77602c0d/wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_1.adoc -- diff --git a/wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_1.adoc b/wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_1.adoc index 1922670..54f33c9 100644 --- a/wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_1.adoc +++ b/wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_1.adoc @@ -1,10 +1,10 @@ ...but we all hate spaghetti code! That's why in the first half of the 2000s we have seen the birth of so many web frameworks. Their mission was to separate our business code from presentation layer (like JSP pages). -Some of theme (like Struts, Spring MVC, Velocity, etc...) have become widely adopted and they made the MVC pattern very popular among developers. -However, none of these frameworks offers a real object-oriented (OO) abstraction for web pages and we still have to take care of web-related tasks such as HTTP request/response handling, URLs mapping, storing data into user session and so on. +Some of them (like Struts, Spring MVC, Velocity, etc...) have become widely adopted and they made the MVC pattern very popular among developers. +However, none of these frameworks offers a real object-oriented (OO) abstraction for web pages and we still have to take care of web-related tasks such as HTTP request/response handling, URL mapping, storing data into user sessions and so on. -The biggest limit of MVC frameworks is that they don't do much to overcome the impedance mismatch between the stateless nature of HTTP protocol and the need of our web applications of handling a (very complex) state. +The biggest limit of MVC frameworks is that they don't do much to overcome the impedance mismatch between the stateless nature of HTTP protocol and the need for our web applications to handle (a very complex) state. To overcome these limits developers have started to adopt a new generation of component oriented web frameworks designed to provide a completely different approach to web development. http://git-wip-us.apache.org/repos/asf/wicket/blob/77602c0d/wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_2.adoc -- diff --git a/wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_2.adoc b/wicket-user-guide/src/main/asciidoc/whyLearn/whyLearn_2.ad
wicket git commit: experimenting with suspension of requestCycle via servlet 3 async
Repository: wicket Updated Branches: refs/heads/suspend_request_cycle [created] 64f746fba experimenting with suspension of requestCycle via servlet 3 async Notes: - enabled async-supported in web.xml for ComponentReferenceApplication - LinkPage shows usage of RequestCycle#suspend() - pageAccessSynchronizer uses the requestCycle instead of the thread now, since two threads might process a page (PageAccessSynchronizerTest still fails) - ServletWebRequest must not call httpServletRequest#getContextPath(), since it returns null during async processing Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/64f746fb Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/64f746fb Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/64f746fb Branch: refs/heads/suspend_request_cycle Commit: 64f746fba8bb0235dd870e2a9d2ba1eaa192ada5 Parents: 05a1741 Author: Sven Meier Authored: Fri Feb 17 18:30:51 2017 +0100 Committer: Sven Meier Committed: Fri Feb 17 19:58:44 2017 +0100 -- .../wicket/page/PageAccessSynchronizer.java | 45 +++--- .../http/servlet/ServletWebRequest.java | 2 +- .../wicket/request/cycle/RequestCycle.java | 153 ++- .../wicket/examples/compref/LinkPage.java | 15 ++ wicket-examples/src/main/webapp/WEB-INF/web.xml | 22 +-- 5 files changed, 191 insertions(+), 46 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/64f746fb/wicket-core/src/main/java/org/apache/wicket/page/PageAccessSynchronizer.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/page/PageAccessSynchronizer.java b/wicket-core/src/main/java/org/apache/wicket/page/PageAccessSynchronizer.java index 86fbb8b..df359e6 100644 --- a/wicket-core/src/main/java/org/apache/wicket/page/PageAccessSynchronizer.java +++ b/wicket-core/src/main/java/org/apache/wicket/page/PageAccessSynchronizer.java @@ -23,6 +23,7 @@ import java.util.concurrent.ConcurrentMap; import java.util.function.Supplier; import org.apache.wicket.Application; +import org.apache.wicket.request.cycle.RequestCycle; import org.apache.wicket.settings.ExceptionSettings.ThreadDumpStrategy; import org.apache.wicket.util.LazyInitializer; import org.apache.wicket.util.lang.Threads; @@ -93,8 +94,8 @@ public class PageAccessSynchronizer implements Serializable */ public void lockPage(int pageId) throws CouldNotLockPageException { - final Thread thread = Thread.currentThread(); - final PageLock lock = new PageLock(pageId, thread); + final RequestCycle cycle = RequestCycle.get(); + final PageLock lock = new PageLock(pageId, cycle); final Time start = Time.now(); boolean locked = false; @@ -110,12 +111,12 @@ public class PageAccessSynchronizer implements Serializable if (isDebugEnabled) { logger.debug("'{}' attempting to acquire lock to page with id '{}'", - thread.getName(), pageId); + cycle.getStartTime(), pageId); } previous = locks.get().putIfAbsent(pageId, lock); - if (previous == null || previous.thread == thread) + if (previous == null || previous.cycle == cycle) { // first thread to acquire lock or lock is already owned by this thread locked = true; @@ -134,7 +135,7 @@ public class PageAccessSynchronizer implements Serializable { if (isDebugEnabled) { - logger.debug("{} acquired lock to page {}", thread.getName(), pageId); + logger.debug("{} acquired lock to page {}", cycle.getStartTime(), pageId); } } else @@ -144,8 +145,8 @@ public class PageAccessSynchronizer implements Serializable logger.warn( "Thread '{}' failed to acquire lock to page with id '{}', attempted for {} out of allowed {}." + " The thread that holds the lock has name '{}'.", - thread.getName(), pageId, start.elapsedSince(), timeout, - previous.thread.getName()); + cycle.getStartTime(), pageId, start.elapsedSince(), timeout, +
[2/2] wicket git commit: WICKET-6137 renamed ..ListenerInterface.. methods to ..Listener..
WICKET-6137 renamed ..ListenerInterface.. methods to ..Listener.. Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/5b37aedc Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/5b37aedc Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/5b37aedc Branch: refs/heads/master Commit: 5b37aedcb89b3c0a1976f4003ac4779e2f78963a Parents: 9ec235f Author: Sven Meier Authored: Mon Jan 30 17:52:11 2017 +0100 Committer: Sven Meier Committed: Mon Jan 30 17:52:26 2017 +0100 -- .../main/java/org/apache/wicket/Component.java | 10 .../apache/wicket/RequestListenerInterface.java | 4 ++-- .../org/apache/wicket/behavior/Behavior.java| 8 +++ .../request/handler/ListenerRequestHandler.java | 6 ++--- .../request/handler/logger/ListenerLogData.java | 1 - .../mapper/AbstractBookmarkableMapper.java | 2 +- .../core/request/mapper/BookmarkableMapper.java | 2 +- .../core/request/mapper/MountedMapper.java | 2 +- .../core/request/mapper/PackageMapper.java | 2 +- .../core/request/mapper/PageInstanceMapper.java | 2 +- .../apache/wicket/markup/html/image/Image.java | 4 ++-- .../component/IRequestableComponent.java| 2 +- .../apache/wicket/settings/PageSettings.java| 18 +++ .../wicket/settings/RequestCycleSettings.java | 2 +- .../java/org/apache/wicket/ComponentTest.java | 4 ++-- .../java/org/apache/wicket/MockComponent.java | 7 +- .../request/mapper/BookmarkableMapperTest.java | 10 .../core/request/mapper/MountedMapperTest.java | 24 +--- .../core/request/mapper/PackageMapperTest.java | 10 .../PageExpirationRecoveryTest.java | 8 +++ ...LazyIsPageStatelessRedirectToBufferTest.java | 2 +- 21 files changed, 59 insertions(+), 71 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/5b37aedc/wicket-core/src/main/java/org/apache/wicket/Component.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java b/wicket-core/src/main/java/org/apache/wicket/Component.java index f732463..5f8b209 100644 --- a/wicket-core/src/main/java/org/apache/wicket/Component.java +++ b/wicket-core/src/main/java/org/apache/wicket/Component.java @@ -2085,7 +2085,7 @@ public abstract class Component */ public final boolean isStateless() { - if ((isVisibleInHierarchy() && isEnabledInHierarchy()) == false && canCallListenerInterface() == false) + if ((isVisibleInHierarchy() && isEnabledInHierarchy()) == false && canCallListener() == false) { // the component is either invisible or disabled and it can't call listeners // then pretend the component is stateless @@ -2233,7 +2233,7 @@ public abstract class Component { // only process feedback panel when we are about to be rendered. // setRenderingFlag is false in case prepareForRender is called only to build component - // hierarchy (i.e. in BookmarkableListenerInterfaceRequestHandler). + // hierarchy (i.e. in BookmarkableListenerRequestHandler). // prepareForRender(true) is always called before the actual rendering is done so // that's where feedback panels gather the messages @@ -4494,7 +4494,7 @@ public abstract class Component * * @return {@literal true} iff the listener method can be invoked on this component */ - public boolean canCallListenerInterface() + public boolean canCallListener() { return isEnabledInHierarchy() && isVisibleInHierarchy(); } @@ -4582,10 +4582,10 @@ public abstract class Component } @Override - public boolean canCallListenerInterfaceAfterExpiry() + public boolean canCallListenerAfterExpiry() { return getApplication().getPageSettings() - .getCallListenerInterfaceAfterExpiry() || isStateless(); + .getCallListenerAfterExpiry() || isStateless(); } /** * This method is called whenever a component is re-added to the page's component tree, if it http://git-wip-us.apache.org/repos/asf/wicket/blob/5b37aedc/wicket-core/src/main/java/org/apache/wicket/RequestListenerInterface.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/RequestListenerInterface.java b/wicket-core/src/main/java/org/apache/wicket/RequestListenerInterface.java index fa1e69e..37f04f8 100644 --- a/wicket-core/src/m
[1/2] wicket git commit: WICKET-6137 renamed BookmarkableListenerInterfaceRequestHandler to BookmarkableListenerRequestHandler
Repository: wicket Updated Branches: refs/heads/master 8342e4ef9 -> 5b37aedcb WICKET-6137 renamed BookmarkableListenerInterfaceRequestHandler to BookmarkableListenerRequestHandler Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/9ec235f9 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/9ec235f9 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/9ec235f9 Branch: refs/heads/master Commit: 9ec235f9f5c47112528cedcadb4cf5ae19172866 Parents: 8342e4e Author: Sven Meier Authored: Mon Jan 30 17:19:54 2017 +0100 Committer: Sven Meier Committed: Mon Jan 30 17:19:54 2017 +0100 -- .../main/java/org/apache/wicket/Component.java | 4 +- ...markableListenerInterfaceRequestHandler.java | 170 --- .../BookmarkableListenerRequestHandler.java | 170 +++ .../mapper/AbstractBookmarkableMapper.java | 6 +- .../request/mapper/BookmarkableMapperTest.java | 6 +- .../core/request/mapper/CryptoMapperTest.java | 6 +- .../core/request/mapper/MountedMapperTest.java | 6 +- .../core/request/mapper/PackageMapperTest.java | 6 +- 8 files changed, 187 insertions(+), 187 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/9ec235f9/wicket-core/src/main/java/org/apache/wicket/Component.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java b/wicket-core/src/main/java/org/apache/wicket/Component.java index a6aa54f..f732463 100644 --- a/wicket-core/src/main/java/org/apache/wicket/Component.java +++ b/wicket-core/src/main/java/org/apache/wicket/Component.java @@ -31,7 +31,7 @@ import org.apache.wicket.authorization.IAuthorizationStrategy; import org.apache.wicket.authorization.UnauthorizedActionException; import org.apache.wicket.authorization.strategies.page.SimplePageAuthorizationStrategy; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler; +import org.apache.wicket.core.request.handler.BookmarkableListenerRequestHandler; import org.apache.wicket.core.request.handler.ListenerRequestHandler; import org.apache.wicket.core.request.handler.PageAndComponentProvider; import org.apache.wicket.core.util.lang.WicketObjects; @@ -3392,7 +3392,7 @@ public abstract class Component if (page.isPageStateless() || (page.isBookmarkable() && page.wasCreatedBookmarkable())) { - return new BookmarkableListenerInterfaceRequestHandler(provider, id); + return new BookmarkableListenerRequestHandler(provider, id); } else { http://git-wip-us.apache.org/repos/asf/wicket/blob/9ec235f9/wicket-core/src/main/java/org/apache/wicket/core/request/handler/BookmarkableListenerInterfaceRequestHandler.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/BookmarkableListenerInterfaceRequestHandler.java b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/BookmarkableListenerInterfaceRequestHandler.java deleted file mode 100644 index 772e215..000 --- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/BookmarkableListenerInterfaceRequestHandler.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.wicket.core.request.handler; - -import org.apache.wicket.IRequestListener; -import org.apache.wicket.request.IRequestCycle; -import org.apache.wicket.request.component.IRequestableComponent; -import org.apache.wicket.request.component.IRequestablePage; -import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.wicket.util.lang.Args; - -/** - * Request handler for bookmarkable pages with an {@link IRequestListener}. This handler is only used to - * generate URLs. Rendering is always ha
wicket git commit: WICKET-6137 renamed ListenerInterfaceRequestHandler to ListenerRequestHandler
Repository: wicket Updated Branches: refs/heads/master 16e44ce98 -> 8342e4ef9 WICKET-6137 renamed ListenerInterfaceRequestHandler to ListenerRequestHandler there isn't a ..ListenerInterface any more Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8342e4ef Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8342e4ef Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8342e4ef Branch: refs/heads/master Commit: 8342e4ef9acd442ddfe7ad78d04838d17c1b9fec Parents: 16e44ce Author: Sven Meier Authored: Mon Jan 30 16:50:26 2017 +0100 Committer: Sven Meier Committed: Mon Jan 30 16:50:26 2017 +0100 -- .../main/java/org/apache/wicket/Component.java | 4 +- ...markableListenerInterfaceRequestHandler.java | 2 +- .../ListenerInterfaceRequestHandler.java| 327 --- .../request/handler/ListenerRequestHandler.java | 327 +++ .../logger/ListenerInterfaceLogData.java| 214 .../request/handler/logger/ListenerLogData.java | 214 .../mapper/AbstractBookmarkableMapper.java | 4 +- .../core/request/mapper/MountedMapper.java | 6 +- .../core/request/mapper/PageInstanceMapper.java | 8 +- .../wicket/util/tester/BaseWicketTester.java| 6 +- .../org/apache/wicket/BehaviorRequestTest.java | 4 +- .../ComponentWithLazyModelCreationTest.java | 4 +- .../ListenerInterfaceRequestHandlerTest.java| 208 .../handler/ListenerRequestHandlerTest.java | 208 .../request/mapper/BookmarkableMapperTest.java | 18 +- .../core/request/mapper/CryptoMapperTest.java | 14 +- .../core/request/mapper/MountedMapperTest.java | 26 +- .../core/request/mapper/PackageMapperTest.java | 18 +- .../request/mapper/PageInstanceMapperTest.java | 16 +- .../wicket/examples/ajax/prototype/Index.java | 5 +- 20 files changed, 816 insertions(+), 817 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/8342e4ef/wicket-core/src/main/java/org/apache/wicket/Component.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java b/wicket-core/src/main/java/org/apache/wicket/Component.java index 97262ed..a6aa54f 100644 --- a/wicket-core/src/main/java/org/apache/wicket/Component.java +++ b/wicket-core/src/main/java/org/apache/wicket/Component.java @@ -32,7 +32,7 @@ import org.apache.wicket.authorization.UnauthorizedActionException; import org.apache.wicket.authorization.strategies.page.SimplePageAuthorizationStrategy; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler; -import org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler; +import org.apache.wicket.core.request.handler.ListenerRequestHandler; import org.apache.wicket.core.request.handler.PageAndComponentProvider; import org.apache.wicket.core.util.lang.WicketObjects; import org.apache.wicket.core.util.string.ComponentStrings; @@ -3396,7 +3396,7 @@ public abstract class Component } else { - return new ListenerInterfaceRequestHandler(provider, id); + return new ListenerRequestHandler(provider, id); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/8342e4ef/wicket-core/src/main/java/org/apache/wicket/core/request/handler/BookmarkableListenerInterfaceRequestHandler.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/BookmarkableListenerInterfaceRequestHandler.java b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/BookmarkableListenerInterfaceRequestHandler.java index b3de191..772e215 100644 --- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/BookmarkableListenerInterfaceRequestHandler.java +++ b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/BookmarkableListenerInterfaceRequestHandler.java @@ -25,7 +25,7 @@ import org.apache.wicket.util.lang.Args; /** * Request handler for bookmarkable pages with an {@link IRequestListener}. This handler is only used to - * generate URLs. Rendering is always handled by {@link ListenerInterfaceRequestHandler}. + * generate URLs. Rendering is always handled by {@link ListenerRequestHandler}. * * @author Matej Knopp */ http://git-wip-us.apache.org/repos/asf/wicket/blob/8342e4ef/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandler.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/core
[4/4] wicket git commit: Create SignInPage_pl.html
Create SignInPage_pl.html Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/be61299c Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/be61299c Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/be61299c Branch: refs/heads/master Commit: be61299c46780bb0a260f5c4900b2395a3ef9039 Parents: 5e23a2e Author: jac-czerwinski Authored: Sat Jan 21 15:19:44 2017 +0100 Committer: Sven Meier Committed: Sat Jan 21 20:25:11 2017 +0100 -- .../authroles/authentication/pages/SignInPage_pl.html | 12 1 file changed, 12 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/be61299c/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignInPage_pl.html -- diff --git a/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignInPage_pl.html b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignInPage_pl.html new file mode 100644 index 000..e20dbb3 --- /dev/null +++ b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignInPage_pl.html @@ -0,0 +1,12 @@ + +http://wicket.apache.org";> + +Zaloguj siÄ™ + + + Zaloguj siÄ™ + + + + +
[2/4] wicket git commit: Create SignInPanel_pl.properties
Create SignInPanel_pl.properties Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/5e23a2e7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/5e23a2e7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/5e23a2e7 Branch: refs/heads/master Commit: 5e23a2e793d96f3cd838d0146ab6ae970f975928 Parents: b837403 Author: jac-czerwinski Authored: Sat Jan 21 15:19:00 2017 +0100 Committer: Sven Meier Committed: Sat Jan 21 20:25:11 2017 +0100 -- .../authentication/panel/SignInPanel_pl.properties | 15 +++ 1 file changed, 15 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/5e23a2e7/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel_pl.properties -- diff --git a/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel_pl.properties b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel_pl.properties new file mode 100644 index 000..3282a15 --- /dev/null +++ b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel_pl.properties @@ -0,0 +1,15 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +signInFailed = Bl\u0105d podczas logowania
[3/4] wicket git commit: Create SignOutPage_pl.html
Create SignOutPage_pl.html Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/6c4d17d7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/6c4d17d7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/6c4d17d7 Branch: refs/heads/master Commit: 6c4d17d756a458ebdd50085c20e6d38c4f15f078 Parents: be61299 Author: jac-czerwinski Authored: Sat Jan 21 15:20:25 2017 +0100 Committer: Sven Meier Committed: Sat Jan 21 20:25:11 2017 +0100 -- .../authentication/pages/SignOutPage_pl.html| 25 1 file changed, 25 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/6c4d17d7/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignOutPage_pl.html -- diff --git a/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignOutPage_pl.html b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignOutPage_pl.html new file mode 100644 index 000..0876c87 --- /dev/null +++ b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignOutPage_pl.html @@ -0,0 +1,25 @@ + + + + +Wylogowanie + + + Do widzenia + +
[1/4] wicket git commit: Create SignInPanel_pl.html
Repository: wicket Updated Branches: refs/heads/master 7596d9571 -> 6c4d17d75 Create SignInPanel_pl.html This closes #204 Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b8374033 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b8374033 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b8374033 Branch: refs/heads/master Commit: b8374033c8deb193563783c2f8cb9fa29139bedb Parents: 7596d95 Author: jac-czerwinski Authored: Sat Jan 21 15:18:24 2017 +0100 Committer: Sven Meier Committed: Sat Jan 21 20:24:51 2017 +0100 -- .../authentication/panel/SignInPanel_pl.html| 42 1 file changed, 42 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/b8374033/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel_pl.html -- diff --git a/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel_pl.html b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel_pl.html new file mode 100644 index 000..570aec9 --- /dev/null +++ b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/panel/SignInPanel_pl.html @@ -0,0 +1,42 @@ + + +http://wicket.apache.org";> + +Wicket Examples - signin2 + + + + + + + + + Użytkownik: + + Hasło: + +Pamiętaj mnie + + + + + + + + +
wicket git commit: added german markups
Repository: wicket Updated Branches: refs/heads/master 31727f854 -> 7596d9571 added german markups Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7596d957 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7596d957 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7596d957 Branch: refs/heads/master Commit: 7596d9571e4c1c76768e4a7a7cc8293d63927115 Parents: 31727f8 Author: Sven Meier Authored: Sat Jan 21 20:21:49 2017 +0100 Committer: Sven Meier Committed: Sat Jan 21 20:21:49 2017 +0100 -- .../authentication/pages/SignInPage_de.html | 12 ++ .../authentication/pages/SignOutPage_de.html| 25 2 files changed, 37 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/7596d957/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignInPage_de.html -- diff --git a/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignInPage_de.html b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignInPage_de.html new file mode 100644 index 000..e4e6fca --- /dev/null +++ b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignInPage_de.html @@ -0,0 +1,12 @@ + +http://wicket.apache.org";> + +Anmelden + + + Anmelden + + + + + http://git-wip-us.apache.org/repos/asf/wicket/blob/7596d957/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignOutPage_de.html -- diff --git a/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignOutPage_de.html b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignOutPage_de.html new file mode 100644 index 000..b9d8b2f --- /dev/null +++ b/wicket-auth-roles/src/main/java/org/apache/wicket/authroles/authentication/pages/SignOutPage_de.html @@ -0,0 +1,25 @@ + + + + +Abmeldung + + + Auf Wiedersehen! + +
wicket git commit: WICKET-6307 test type of onsubmit
Repository: wicket Updated Branches: refs/heads/wicket-6.x 5ffde6c66 -> 27c3808d4 WICKET-6307 test type of onsubmit Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/27c3808d Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/27c3808d Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/27c3808d Branch: refs/heads/wicket-6.x Commit: 27c3808d4c8ecbe440755d1eb3f3598f4db186d4 Parents: 5ffde6c Author: Sven Meier Authored: Wed Jan 18 14:30:47 2017 +0100 Committer: Sven Meier Committed: Wed Jan 18 14:34:54 2017 +0100 -- .../main/java/org/apache/wicket/markup/html/form/SubmitLink.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/27c3808d/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java index f9ec2ad..afc01f8 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java @@ -214,7 +214,7 @@ public class SubmitLink extends AbstractSubmitLink { sb.append("var ff=f;"); } - sb.append("if (ff.onsubmit != undefined) { if (ff.onsubmit()==false) return false; }"); + sb.append("if (typeof ff.onsubmit === 'function') { if (ff.onsubmit()==false) return false; }"); } sb.append("f.submit();e.value='';e.name='';return false;"); return sb.toString();
wicket git commit: WICKET-6307 test type of onsubmit
Repository: wicket Updated Branches: refs/heads/wicket-7.x 1afbe2cd3 -> 76cfa2672 WICKET-6307 test type of onsubmit Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/76cfa267 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/76cfa267 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/76cfa267 Branch: refs/heads/wicket-7.x Commit: 76cfa2672ff926378637f42fe2767e216e185682 Parents: 1afbe2c Author: Sven Meier Authored: Wed Jan 18 14:30:47 2017 +0100 Committer: Sven Meier Committed: Wed Jan 18 14:34:20 2017 +0100 -- .../main/java/org/apache/wicket/markup/html/form/SubmitLink.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/76cfa267/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java index 82428a4..d5de8be 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java @@ -221,7 +221,7 @@ public class SubmitLink extends AbstractSubmitLink { sb.append("var ff=f;"); } - sb.append("if (ff.onsubmit != undefined) { if (ff.onsubmit()==false) return false; }"); + sb.append("if (typeof ff.onsubmit === 'function') { if (ff.onsubmit()==false) return false; }"); } sb.append("f.submit();e.value='';e.name='';return false;"); return sb.toString();
wicket git commit: WICKET-6307 test type of onsubmit
Repository: wicket Updated Branches: refs/heads/master 18acedc4c -> 81c65b611 WICKET-6307 test type of onsubmit Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/81c65b61 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/81c65b61 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/81c65b61 Branch: refs/heads/master Commit: 81c65b611e1c7f9533d26a03cf72594cc13afc1b Parents: 18acedc Author: Sven Meier Authored: Wed Jan 18 14:30:47 2017 +0100 Committer: Sven Meier Committed: Wed Jan 18 14:30:47 2017 +0100 -- .../main/java/org/apache/wicket/markup/html/form/SubmitLink.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/81c65b61/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java index 82428a4..d5de8be 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java @@ -221,7 +221,7 @@ public class SubmitLink extends AbstractSubmitLink { sb.append("var ff=f;"); } - sb.append("if (ff.onsubmit != undefined) { if (ff.onsubmit()==false) return false; }"); + sb.append("if (typeof ff.onsubmit === 'function') { if (ff.onsubmit()==false) return false; }"); } sb.append("f.submit();e.value='';e.name='';return false;"); return sb.toString();
wicket git commit: WICKET-6286 renamed url settings; explained cookie path
Repository: wicket Updated Branches: refs/heads/WICKET-6286-ajax-download 0b7937185 -> e1659c4f7 WICKET-6286 renamed url settings; explained cookie path Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e1659c4f Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e1659c4f Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e1659c4f Branch: refs/heads/WICKET-6286-ajax-download Commit: e1659c4f75e4819c6599f4e25022f46398cc55d5 Parents: 0b79371 Author: Sven Meier Authored: Thu Jan 5 09:12:20 2017 +0100 Committer: Sven Meier Committed: Thu Jan 5 09:12:20 2017 +0100 -- .../java/org/apache/wicket/extensions/ajax/AjaxDownload.java | 7 ++- .../org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/e1659c4f/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java index a879d5b..11c97d4 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxDownload.java @@ -193,7 +193,7 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior JSONObject settings = new JSONObject(); settings.put("attributes", new JsonFunction(renderAjaxAttributes(getComponent(; settings.put("name", getName()); - settings.put("url", url); + settings.put("downloadUrl", url); target.appendJavaScript(String.format("Wicket.AjaxDownload.initiate(%s);", settings)); @@ -289,7 +289,12 @@ public class AjaxDownload extends AbstractDefaultAjaxBehavior private static Cookie cookie(String name) { Cookie cookie = new Cookie(name, "complete"); + + // has to be on root, otherwise JavaScript will not be able to access the + // cookie when it is set from a different path - which is the case when a + // ResourceReference is used cookie.setPath("/"); + return cookie; } } http://git-wip-us.apache.org/repos/asf/wicket/blob/e1659c4f/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js -- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js index 52471df..a383fa8 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js @@ -28,7 +28,7 @@ Wicket.AjaxDownload = { initiate : function(settings) { - var frame = jQuery("").hide().prop("src", settings.url).appendTo("body"); + var frame = jQuery("").hide().prop("src", settings.downloadUrl).appendTo("body"); var checkComplete = function() { var result;
wicket git commit: WICKET-6286 ajax download
es.ajax.builtin; + +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.markup.html.AjaxLink; +import org.apache.wicket.extensions.ajax.AjaxDownload; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.request.http.flow.AbortWithHttpErrorCodeException; +import org.apache.wicket.request.resource.ContentDisposition; +import org.apache.wicket.request.resource.IResource; +import org.apache.wicket.request.resource.ResourceReference; +import org.apache.wicket.request.resource.ResourceStreamResource; +import org.apache.wicket.util.resource.IResourceStream; +import org.apache.wicket.util.resource.StringResourceStream; +import org.apache.wicket.util.time.Duration; + +/** + * Ajax download. + * + * @author svenmeier + */ +public class AjaxDownloadPage extends BasePage +{ + private WebMarkupContainer downloadingContainer; + + /** +* Constructor +*/ + public AjaxDownloadPage() + { + downloadingContainer = new WebMarkupContainer("downloading"); + downloadingContainer.setOutputMarkupPlaceholderTag(true); + downloadingContainer.setVisible(false); + add(downloadingContainer); + + initDownload(); + + initDownloadFailure(); + + initDownloadReference(); + } + + private void initDownload() + { + IResource resource = new ResourceStreamResource() { + protected IResourceStream getResourceStream() { + // simulate delay + try + { + Thread.sleep(5000); + } + catch (InterruptedException e) + { + } + + return new StringResourceStream("downloaded via ajax"); + }; + + }.setFileName("file").setContentDisposition(ContentDisposition.ATTACHMENT).setCacheDuration(Duration.NONE); + + final AjaxDownload download = new AjaxDownload(resource) { + + @Override + protected void onBeforeDownload(AjaxRequestTarget target) + { + downloadingContainer.setVisible(true); + target.add(downloadingContainer); + } + + @Override + protected void onDownloadSuccess(AjaxRequestTarget target) + { + downloadingContainer.setVisible(false); + target.add(downloadingContainer); + } + + @Override + protected void onDownloadFailed(AjaxRequestTarget target) + { + downloadingContainer.setVisible(false); + target.add(downloadingContainer); + } + }; + add(download); + + add(new AjaxLink("download") + { + @Override + public void onClick(AjaxRequestTarget target) + { + download.initiate(target); + } + }); + } + + private void initDownloadFailure() + { + IResource resource = new ResourceStreamResource() { + protected IResourceStream getResourceStream() { + // simulate delay + try + { + Thread.sleep(2000); + } + catch (InterruptedException e) + { + } + + throw new AbortWithHttpErrorCodeException(500); + }; + + }.setFileName("file").setContentDisposition(ContentDisposition.ATTACHMENT).setCacheDuration(Duration.NONE); + + final AjaxDownload download = new AjaxDownload(resource) { + + @Override + protected void onBeforeDownload(AjaxRequestTarget target) + { + downloadingContainer.setVisible(true); + target.add(downloadingContainer); +
wicket git commit: WICKET-6295 fallback to home page
Repository: wicket Updated Branches: refs/heads/wicket-6.x 0519f72b4 -> 5ce4f3e70 WICKET-6295 fallback to home page Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/5ce4f3e7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/5ce4f3e7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/5ce4f3e7 Branch: refs/heads/wicket-6.x Commit: 5ce4f3e7051fcbc5039f4cc6ad485e10adde0913 Parents: 0519f72 Author: Sven Meier Authored: Wed Dec 14 21:13:36 2016 +0100 Committer: Sven Meier Committed: Wed Dec 14 21:13:36 2016 +0100 -- .../java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java | 3 +++ 1 file changed, 3 insertions(+) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/5ce4f3e7/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java index 3f82bf0..5212a8b 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java @@ -111,6 +111,9 @@ public class BrowserInfoPage extends WebPage protected void afterSubmit() { continueToOriginalDestination(); + + // switch to home page if no original destination was intercepted + setResponsePage(getApplication().getHomePage()); } }; add(browserInfoForm);
wicket git commit: WICKET-6295 fallback to home page a previous request might have consumed the original destination - this could happen if the meta refresh fires but the user is still able to link on
Repository: wicket Updated Branches: refs/heads/wicket-6.x ae7a0f8b9 -> 0519f72b4 WICKET-6295 fallback to home page a previous request might have consumed the original destination - this could happen if the meta refresh fires but the user is still able to link on the link Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0519f72b Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0519f72b Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0519f72b Branch: refs/heads/wicket-6.x Commit: 0519f72b4d57e6443b8a8d5805955fd0a516135c Parents: ae7a0f8 Author: Sven Meier Authored: Mon Dec 12 22:31:11 2016 +0100 Committer: Sven Meier Committed: Mon Dec 12 22:31:11 2016 +0100 -- .../markup/html/pages/BrowserInfoPage.java | 72 ++-- 1 file changed, 37 insertions(+), 35 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/0519f72b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java index 373cbb5..3f82bf0 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java @@ -20,15 +20,13 @@ import org.apache.wicket.AttributeModifier; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.OnLoadHeaderItem; import org.apache.wicket.markup.html.WebComponent; -import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; -import org.apache.wicket.protocol.http.ClientProperties; import org.apache.wicket.protocol.http.WebSession; import org.apache.wicket.protocol.http.request.WebClientInfo; -import org.apache.wicket.request.cycle.RequestCycle; import org.apache.wicket.settings.IRequestCycleSettings; /** @@ -53,28 +51,11 @@ public class BrowserInfoPage extends WebPage private BrowserInfoForm browserInfoForm; /** -* Bookmarkable constructor. This is not for normal framework client use. It will be called -* whenever JavaScript is not supported, and the browser info page's meta refresh fires to this -* page. Prior to this, the other constructor should already have been called. +* Bookmarkable constructor. */ public BrowserInfoPage() { initComps(); - RequestCycle requestCycle = getRequestCycle(); - WebSession session = (WebSession)getSession(); - WebClientInfo clientInfo = session.getClientInfo(); - if (clientInfo == null) - { - clientInfo = new WebClientInfo(requestCycle); - getSession().setClientInfo(clientInfo); - } - else - { - ClientProperties properties = clientInfo.getProperties(); - properties.setJavaEnabled(false); - } - - continueToOriginalDestination(); } @Override @@ -97,20 +78,18 @@ public class BrowserInfoPage extends WebPage */ private void initComps() { - WebComponent meta = new WebComponent("meta"); - - final IModel urlModel = new LoadableDetachableModel() - { - private static final long serialVersionUID = 1L; - + final IModel info = new LoadableDetachableModel() { @Override - protected String load() + protected WebClientInfo load() { - CharSequence url = urlFor(BrowserInfoPage.class, null); - return url.toString(); + return new WebClientInfo(getRequestCycle()); } }; + final ContinueLink link = new ContinueLink("link", info); + add(link); + + WebComponent meta = new WebComponent("meta"); meta.add(AttributeModifier.replace("content", new AbstractReadOnlyModel() { private static final long serialVersionUID = 1L; @@ -118,14 +97,11 @@ public class BrowserInfoPage extends WebPage @Override
wicket git commit: Revert "WICKET-6295 fallback to home page"
Repository: wicket Updated Branches: refs/heads/wicket-6.x 7b239ca45 -> ae7a0f8b9 Revert "WICKET-6295 fallback to home page" This reverts commit 7b239ca45a876a9b90da6e90001bcbb36578574b. Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ae7a0f8b Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ae7a0f8b Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ae7a0f8b Branch: refs/heads/wicket-6.x Commit: ae7a0f8b925d97eec6c7a6a9d71d6cd92035b3b8 Parents: 7b239ca Author: Sven Meier Authored: Fri Dec 9 15:56:50 2016 +0100 Committer: Sven Meier Committed: Fri Dec 9 15:56:50 2016 +0100 -- .../markup/html/pages/BrowserInfoPage.java | 24 1 file changed, 15 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/ae7a0f8b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java index 507cd9e..373cbb5 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java @@ -25,12 +25,14 @@ import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; +import org.apache.wicket.protocol.http.ClientProperties; import org.apache.wicket.protocol.http.WebSession; import org.apache.wicket.protocol.http.request.WebClientInfo; import org.apache.wicket.request.cycle.RequestCycle; import org.apache.wicket.settings.IRequestCycleSettings; /** + * * This page uses a form post right after the page has loaded in the browser, using JavaScript or * alternative means to detect and pass on settings to the embedded form. The form submit method * updates this session's {@link org.apache.wicket.core.request.ClientInfo} object and then redirects to @@ -51,24 +53,28 @@ public class BrowserInfoPage extends WebPage private BrowserInfoForm browserInfoForm; /** -* This constructor will be called twice, once to display the initial page and additionally when JavaScript -* is not enabled and the meta refresh fires or the user clicks the link instead. +* Bookmarkable constructor. This is not for normal framework client use. It will be called +* whenever JavaScript is not supported, and the browser info page's meta refresh fires to this +* page. Prior to this, the other constructor should already have been called. */ public BrowserInfoPage() { initComps(); RequestCycle requestCycle = getRequestCycle(); WebSession session = (WebSession)getSession(); - WebClientInfo clientInfo = session.getClientInfo(); - if (clientInfo != null) + if (clientInfo == null) { - // clientInfo is already present so continue - continueToOriginalDestination(); - - // switch to home page if no original destination was intercepted - setResponsePage(getApplication().getHomePage()); + clientInfo = new WebClientInfo(requestCycle); + getSession().setClientInfo(clientInfo); } + else + { + ClientProperties properties = clientInfo.getProperties(); + properties.setJavaEnabled(false); + } + + continueToOriginalDestination(); } @Override
wicket git commit: WICKET-6295 fallback to home page a previous request might have consumed the original destination - this could happen if the meta refresh fires but the user is still able to link on
Repository: wicket Updated Branches: refs/heads/wicket-6.x e493b0435 -> 7b239ca45 WICKET-6295 fallback to home page a previous request might have consumed the original destination - this could happen if the meta refresh fires but the user is still able to link on the link Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7b239ca4 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7b239ca4 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7b239ca4 Branch: refs/heads/wicket-6.x Commit: 7b239ca45a876a9b90da6e90001bcbb36578574b Parents: e493b04 Author: Sven Meier Authored: Thu Dec 8 16:29:29 2016 +0100 Committer: Sven Meier Committed: Thu Dec 8 16:29:29 2016 +0100 -- .../markup/html/pages/BrowserInfoPage.java | 24 1 file changed, 9 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/7b239ca4/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java index 373cbb5..507cd9e 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java @@ -25,14 +25,12 @@ import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; -import org.apache.wicket.protocol.http.ClientProperties; import org.apache.wicket.protocol.http.WebSession; import org.apache.wicket.protocol.http.request.WebClientInfo; import org.apache.wicket.request.cycle.RequestCycle; import org.apache.wicket.settings.IRequestCycleSettings; /** - * * This page uses a form post right after the page has loaded in the browser, using JavaScript or * alternative means to detect and pass on settings to the embedded form. The form submit method * updates this session's {@link org.apache.wicket.core.request.ClientInfo} object and then redirects to @@ -53,28 +51,24 @@ public class BrowserInfoPage extends WebPage private BrowserInfoForm browserInfoForm; /** -* Bookmarkable constructor. This is not for normal framework client use. It will be called -* whenever JavaScript is not supported, and the browser info page's meta refresh fires to this -* page. Prior to this, the other constructor should already have been called. +* This constructor will be called twice, once to display the initial page and additionally when JavaScript +* is not enabled and the meta refresh fires or the user clicks the link instead. */ public BrowserInfoPage() { initComps(); RequestCycle requestCycle = getRequestCycle(); WebSession session = (WebSession)getSession(); + WebClientInfo clientInfo = session.getClientInfo(); - if (clientInfo == null) + if (clientInfo != null) { - clientInfo = new WebClientInfo(requestCycle); - getSession().setClientInfo(clientInfo); + // clientInfo is already present so continue + continueToOriginalDestination(); + + // switch to home page if no original destination was intercepted + setResponsePage(getApplication().getHomePage()); } - else - { - ClientProperties properties = clientInfo.getProperties(); - properties.setJavaEnabled(false); - } - - continueToOriginalDestination(); } @Override
wicket git commit: WICKET-6056 make it easier to gather more properties
Repository: wicket Updated Branches: refs/heads/wicket-7.x 3db582cfe -> 5bfa280b2 WICKET-6056 make it easier to gather more properties Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/5bfa280b Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/5bfa280b Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/5bfa280b Branch: refs/heads/wicket-7.x Commit: 5bfa280b2b7fb9dc7861d582a9c6e37d106be879 Parents: 3db582c Author: Sven Meier Authored: Thu Nov 24 16:32:22 2016 +0100 Committer: Sven Meier Committed: Tue Dec 6 15:09:25 2016 +0100 -- .../wicket/ajax/AjaxClientInfoBehavior.java | 47 +++- .../markup/html/pages/BrowserInfoForm.html | 16 -- .../markup/html/pages/BrowserInfoForm.java | 47 ++-- .../markup/html/pages/BrowserInfoPage.java | 44 +++ .../markup/html/pages/wicket-browser-info.js| 11 +++- .../wicket/protocol/http/ClientProperties.java | 57 +++- .../protocol/http/request/WebClientInfo.java| 39 -- .../ajaxhellobrowser/AjaxHelloBrowser.java | 27 -- .../ExtendedClientProperties.java | 49 + 9 files changed, 206 insertions(+), 131 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/5bfa280b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java index a2fc41a..16ac6e6 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java @@ -22,7 +22,6 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; import org.apache.wicket.markup.html.pages.BrowserInfoForm; -import org.apache.wicket.protocol.http.ClientProperties; import org.apache.wicket.protocol.http.request.WebClientInfo; import org.apache.wicket.request.IRequestParameters; import org.apache.wicket.request.cycle.RequestCycle; @@ -62,50 +61,20 @@ public class AjaxClientInfoBehavior extends AbstractAjaxTimerBehavior stop(target); RequestCycle requestCycle = RequestCycle.get(); - IRequestParameters requestParameters = requestCycle.getRequest().getRequestParameters(); - String navigatorAppName = requestParameters.getParameterValue("navigatorAppName").toString("N/A"); - String navigatorAppVersion = requestParameters.getParameterValue("navigatorAppVersion").toString("N/A"); - String navigatorAppCodeName = requestParameters.getParameterValue("navigatorAppCodeName").toString("N/A"); - boolean navigatorCookieEnabled = requestParameters.getParameterValue("navigatorCookieEnabled").toBoolean(false); - Boolean navigatorJavaEnabled = requestParameters.getParameterValue("navigatorJavaEnabled").toBoolean(false); - String navigatorLanguage = requestParameters.getParameterValue("navigatorLanguage").toString("N/A"); - String navigatorPlatform = requestParameters.getParameterValue("navigatorPlatform").toString("N/A"); - String navigatorUserAgent = requestParameters.getParameterValue("navigatorUserAgent").toString("N/A"); - int screenWidth = requestParameters.getParameterValue("screenWidth").toInt(-1); - int screenHeight = requestParameters.getParameterValue("screenHeight").toInt(-1); - int screenColorDepth = requestParameters.getParameterValue("screenColorDepth").toInt(-1); - String utcOffset = requestParameters.getParameterValue("utcOffset").toString("N/A"); - String utcDSTOffset = requestParameters.getParameterValue("utcDSTOffset").toString("N/A"); - int browserWidth = requestParameters.getParameterValue("browserWidth").toInt(-1); - int browserHeight = requestParameters.getParameterValue("browserHeight").toInt(-1); - String hostname = requestParameters.getParameterValue("hostname").toString("N/A"); - WebClientInfo clientInfo = new WebClientInfo(requestCycle); + IRequestParameters requestParameters = requestCycle.getRequest().getRequestParameters(); + WebClientInfo clientInfo = newWebClientInfo(requestCycle); + clientInfo.getProperties().read(requestParameters); Session.get().setClientInfo(clientInfo); - ClientPropertie
wicket git commit: WICKET-6292 revert WICKET-6041 - should not access parameters before handling multipart
Repository: wicket Updated Branches: refs/heads/master b8e1d5ce8 -> 3824853be WICKET-6292 revert WICKET-6041 - should not access parameters before handling multipart This reverts commit ba393ffa2bf6480d4981e4b48c7aa6a19bd5b9c6. This reverts commit ece7575f5ea74ec27f88618fd287e4348aa9cc35. Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/3824853b Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/3824853b Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/3824853b Branch: refs/heads/master Commit: 3824853be87af927dcde0b9cc6761f59738051a9 Parents: b8e1d5c Author: Sven Meier Authored: Tue Dec 6 12:46:17 2016 +0100 Committer: Sven Meier Committed: Tue Dec 6 14:29:21 2016 +0100 -- .../apache/wicket/markup/html/form/Form.java| 91 +--- .../markup/html/form/NestedFormsTest.java | 79 - 2 files changed, 41 insertions(+), 129 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/3824853b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java index a197dd8..e8b61e7 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java @@ -24,6 +24,8 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import javax.servlet.http.HttpServletRequest; + import org.apache.commons.fileupload.FileUploadBase; import org.apache.commons.fileupload.FileUploadException; import org.apache.wicket.Component; @@ -70,8 +72,6 @@ import org.apache.wicket.util.visit.Visits; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.http.HttpServletRequest; - /** * Container for {@link FormComponent}s (such as {@link CheckBox}es, {@link ListChoice}s or @@ -739,15 +739,10 @@ public class Form extends WebMarkupContainer * * @see Form#validate() */ - public final void onFormSubmitted(final IFormSubmitter submitter) + public final void onFormSubmitted(IFormSubmitter submitter) { - final IFormSubmitter actualSubmitter = submitter != null ? submitter : - findActualSubmitter(); - //find the actual form to process - final Form formToProcess = findFormToProcess(actualSubmitter); - - formToProcess.markFormsSubmitted(); - + markFormsSubmitted(); + if (handleMultiPart()) { // Tells FormComponents that a new user input has come @@ -762,19 +757,49 @@ public class Form extends WebMarkupContainer } else { + // First, see if the processing was triggered by a Wicket IFormSubmittingComponent + if (submitter == null) + { + submitter = findSubmittingButton(); + + if (submitter instanceof IFormSubmittingComponent) + { + IFormSubmittingComponent submittingComponent = (IFormSubmittingComponent)submitter; + Component component = (Component)submitter; + + if (!component.isVisibleInHierarchy()) + { + throw new WicketRuntimeException("Submit Button " + + submittingComponent.getInputName() + " (path=" + + component.getPageRelativePath() + ") is not visible"); + } + + if (!component.isEnabledInHierarchy()) + { + throw new WicketRuntimeException("Submit Button " + + submittingComponent.getInputName() + " (path=" + + component.getPageRelativePath() + ") is not enabled"); + } + } + } +
wicket git commit: WICKET-6056 make it easier to gather more properties
Repository: wicket Updated Branches: refs/heads/master 0914576ad -> 81684f93d WICKET-6056 make it easier to gather more properties Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/81684f93 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/81684f93 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/81684f93 Branch: refs/heads/master Commit: 81684f93dde752bed5208353a035a524430d08be Parents: 0914576 Author: Sven Meier Authored: Thu Nov 24 16:32:22 2016 +0100 Committer: Sven Meier Committed: Sat Dec 3 20:05:07 2016 +0100 -- .../wicket/ajax/AjaxClientInfoBehavior.java | 47 +++- .../markup/html/pages/BrowserInfoForm.html | 16 -- .../markup/html/pages/BrowserInfoForm.java | 47 ++-- .../markup/html/pages/BrowserInfoPage.java | 43 +++ .../markup/html/pages/wicket-browser-info.js| 11 +++- .../wicket/protocol/http/ClientProperties.java | 57 +++- .../protocol/http/request/WebClientInfo.java| 39 -- .../ajaxhellobrowser/AjaxHelloBrowser.java | 36 +++-- .../ExtendedClientProperties.java | 49 + 9 files changed, 214 insertions(+), 131 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/81684f93/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java index 164c551..f51f8a4 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java @@ -22,7 +22,6 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; import org.apache.wicket.markup.html.pages.BrowserInfoForm; -import org.apache.wicket.protocol.http.ClientProperties; import org.apache.wicket.protocol.http.request.WebClientInfo; import org.apache.wicket.request.IRequestParameters; import org.apache.wicket.request.cycle.RequestCycle; @@ -66,50 +65,20 @@ public class AjaxClientInfoBehavior extends AbstractAjaxTimerBehavior stop(target); RequestCycle requestCycle = RequestCycle.get(); + IRequestParameters requestParameters = requestCycle.getRequest().getRequestParameters(); - String navigatorAppName = requestParameters.getParameterValue("navigatorAppName").toString("N/A"); - String navigatorAppVersion = requestParameters.getParameterValue("navigatorAppVersion").toString("N/A"); - String navigatorAppCodeName = requestParameters.getParameterValue("navigatorAppCodeName").toString("N/A"); - boolean navigatorCookieEnabled = requestParameters.getParameterValue("navigatorCookieEnabled").toBoolean(false); - Boolean navigatorJavaEnabled = requestParameters.getParameterValue("navigatorJavaEnabled").toBoolean(false); - String navigatorLanguage = requestParameters.getParameterValue("navigatorLanguage").toString("N/A"); - String navigatorPlatform = requestParameters.getParameterValue("navigatorPlatform").toString("N/A"); - String navigatorUserAgent = requestParameters.getParameterValue("navigatorUserAgent").toString("N/A"); - int screenWidth = requestParameters.getParameterValue("screenWidth").toInt(-1); - int screenHeight = requestParameters.getParameterValue("screenHeight").toInt(-1); - int screenColorDepth = requestParameters.getParameterValue("screenColorDepth").toInt(-1); - String utcOffset = requestParameters.getParameterValue("utcOffset").toString("N/A"); - String utcDSTOffset = requestParameters.getParameterValue("utcDSTOffset").toString("N/A"); - int browserWidth = requestParameters.getParameterValue("browserWidth").toInt(-1); - int browserHeight = requestParameters.getParameterValue("browserHeight").toInt(-1); - String hostname = requestParameters.getParameterValue("hostname").toString("N/A"); - - WebClientInfo clientInfo = new WebClientInfo(requestCycle); + WebClientInfo clientInfo = newWebClientInfo(requestCycle); + clientInfo.getProperties().read(requestParameters); Session.get().setClientInfo(clientInfo); - ClientProperties properties = clientInfo.getProperties(); - properties.setJavaScriptEnabled(true); - -
wicket git commit: WICKET-6056 constructor argument instead of factory method, requires to subclass ClientProperties only
Repository: wicket Updated Branches: refs/heads/WICKET-6056-client-properties 44e1e4303 -> a81272f5e WICKET-6056 constructor argument instead of factory method, requires to subclass ClientProperties only Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a81272f5 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a81272f5 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a81272f5 Branch: refs/heads/WICKET-6056-client-properties Commit: a81272f5ea7771e9ef84939e2af91ba055180c15 Parents: 44e1e43 Author: Sven Meier Authored: Tue Nov 29 17:03:30 2016 +0100 Committer: Sven Meier Committed: Tue Nov 29 17:03:30 2016 +0100 -- .../protocol/http/request/WebClientInfo.java| 35 --- .../ajaxhellobrowser/AjaxHelloBrowser.java | 2 +- .../ajaxhellobrowser/ExtendedClientInfo.java| 61 .../ExtendedClientProperties.java | 49 4 files changed, 78 insertions(+), 69 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/a81272f5/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java index 5561226..2b0747c 100644 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java @@ -62,8 +62,19 @@ public class WebClientInfo extends ClientInfo */ public WebClientInfo(RequestCycle requestCycle) { + this(requestCycle, new ClientProperties()); + } + + /** +* Construct. +* +* @param requestCycle +*the request cycle +*/ + public WebClientInfo(RequestCycle requestCycle, ClientProperties properties) + { this(requestCycle, ((ServletWebRequest)requestCycle.getRequest()).getContainerRequest() - .getHeader("User-Agent")); + .getHeader("User-Agent"), properties); } /** @@ -76,11 +87,26 @@ public class WebClientInfo extends ClientInfo */ public WebClientInfo(final RequestCycle requestCycle, final String userAgent) { + this(requestCycle, userAgent, new ClientProperties()); + } + + /** +* Construct. +* +* @param requestCycle +*the request cycle +* @param userAgent +*The User-Agent string +* @param properties +*properties of client +*/ + public WebClientInfo(final RequestCycle requestCycle, final String userAgent, final ClientProperties properties) + { super(); this.userAgent = userAgent; - properties = newClientProperties(); + this.properties = properties; properties.setRemoteAddress(getRemoteAddr(requestCycle)); init(); @@ -96,11 +122,6 @@ public class WebClientInfo extends ClientInfo return properties; } - protected ClientProperties newClientProperties() - { - return new ClientProperties(); - } - /** * returns the user agent string. * http://git-wip-us.apache.org/repos/asf/wicket/blob/a81272f5/wicket-examples/src/main/java/org/apache/wicket/examples/ajaxhellobrowser/AjaxHelloBrowser.java -- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajaxhellobrowser/AjaxHelloBrowser.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajaxhellobrowser/AjaxHelloBrowser.java index 258103c..8a44d21 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajaxhellobrowser/AjaxHelloBrowser.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajaxhellobrowser/AjaxHelloBrowser.java @@ -97,7 +97,7 @@ public class AjaxHelloBrowser extends WicketExamplePage @Override protected WebClientInfo newWebClientInfo(RequestCycle requestCycle) { - return new ExtendedClientInfo(requestCycle); + return new WebClientInfo(requestCycle, new ExtendedClientProperties()); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/a81272f5/wicket-examples/src/main/java/org/apache/wicket/
wicket git commit: WICKET-6056 delay setting info into session until it is fully read
Repository: wicket Updated Branches: refs/heads/WICKET-6056-client-properties a7a46269d -> 44e1e4303 WICKET-6056 delay setting info into session until it is fully read Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/44e1e430 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/44e1e430 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/44e1e430 Branch: refs/heads/WICKET-6056-client-properties Commit: 44e1e4303ee184d93f788557a442444c39bc6a46 Parents: a7a4626 Author: Sven Meier Authored: Tue Nov 29 16:49:16 2016 +0100 Committer: Sven Meier Committed: Tue Nov 29 16:49:16 2016 +0100 -- .../wicket/ajax/AjaxClientInfoBehavior.java | 8 +--- .../markup/html/pages/BrowserInfoForm.java | 1 - .../markup/html/pages/BrowserInfoPage.java | 30 +++- .../wicket/protocol/http/ClientProperties.java | 49 +++- .../ajaxhellobrowser/AjaxHelloBrowser.java | 2 +- .../ajaxhellobrowser/ExtendedClientInfo.java| 13 -- 6 files changed, 47 insertions(+), 56 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/44e1e430/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java index e16317a..f51f8a4 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java @@ -22,7 +22,6 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; import org.apache.wicket.markup.html.pages.BrowserInfoForm; -import org.apache.wicket.protocol.http.ClientProperties; import org.apache.wicket.protocol.http.request.WebClientInfo; import org.apache.wicket.request.IRequestParameters; import org.apache.wicket.request.cycle.RequestCycle; @@ -66,15 +65,12 @@ public class AjaxClientInfoBehavior extends AbstractAjaxTimerBehavior stop(target); RequestCycle requestCycle = RequestCycle.get(); - IRequestParameters requestParameters = requestCycle.getRequest().getRequestParameters(); + IRequestParameters requestParameters = requestCycle.getRequest().getRequestParameters(); WebClientInfo clientInfo = newWebClientInfo(requestCycle); + clientInfo.getProperties().read(requestParameters); Session.get().setClientInfo(clientInfo); - ClientProperties properties = clientInfo.getProperties(); - - properties.read(requestParameters); - onClientInfo(target, clientInfo); } http://git-wip-us.apache.org/repos/asf/wicket/blob/44e1e430/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java index d78cb95..51ef702 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java @@ -20,7 +20,6 @@ import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.GenericPanel; -import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.protocol.http.ClientProperties; import org.apache.wicket.request.resource.JavaScriptResourceReference; http://git-wip-us.apache.org/repos/asf/wicket/blob/44e1e430/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java index dc93bce..8d2cdc8 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java @@ -49,7 +49,7 @@ public class BrowserInfoPage extends WebPage private static final long serialVersionUID = 1L; private BrowserInfoForm browserInfoForm; - + /** * Bo
wicket git commit: WICKET-6056 show extended client properties usage
Repository: wicket Updated Branches: refs/heads/WICKET-6056-client-properties 954f27754 -> a7a46269d WICKET-6056 show extended client properties usage Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a7a46269 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a7a46269 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a7a46269 Branch: refs/heads/WICKET-6056-client-properties Commit: a7a46269d58a932e30b04c331d0e7230e58ac198 Parents: 954f277 Author: Sven Meier Authored: Fri Nov 25 21:14:20 2016 +0100 Committer: Sven Meier Committed: Fri Nov 25 21:14:20 2016 +0100 -- .../markup/html/pages/wicket-browser-info.js| 5 ++ .../wicket/protocol/http/ClientProperties.java | 29 +- .../ajaxhellobrowser/AjaxHelloBrowser.java | 36 +++-- .../ajaxhellobrowser/ExtendedClientInfo.java| 56 4 files changed, 109 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/a7a46269/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js index 5832fa0..cd0da94 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/wicket-browser-info.js @@ -63,6 +63,11 @@ info.browserWidth = window.innerWidth || document.body.offsetWidth; info.browserHeight = window.innerHeight || document.body.offsetHeight; info.hostname = window.location.hostname; + + if (Wicket.BrowserInfo.collectExtraInfo) { + Wicket.BrowserInfo.collectExtraInfo(info); + } + return info; }, http://git-wip-us.apache.org/repos/asf/wicket/blob/a7a46269/wicket-core/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java index 3d5b54a..109d175 100644 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java @@ -17,6 +17,7 @@ package org.apache.wicket.protocol.http; import java.lang.reflect.Field; +import java.lang.reflect.Modifier; import java.util.Collection; import java.util.TimeZone; @@ -78,16 +79,15 @@ public class ClientProperties implements IClusterable private int screenColorDepth = -1; private int screenHeight = -1; private int screenWidth = -1; - /** Cached timezone for repeating calls to {@link #getTimeZone()} */ - private TimeZone timeZone; private String utcDSTOffset; - private String utcOffset; - private String hostname; private boolean javaScriptEnabled; + /** Cached timezone for repeating calls to {@link #getTimeZone()} */ + private transient TimeZone timeZone; + /** * @return The browser height at the time it was measured */ @@ -731,15 +731,19 @@ public class ClientProperties implements IClusterable { StringBuilder b = new StringBuilder(); - Field[] fields = ClientProperties.class.getDeclaredFields(); + Class clazz = getClass(); + while (clazz != Object.class) { + Field[] fields = clazz.getDeclaredFields(); - for (Field field : fields) - { - // Ignore these fields - if (field.getName().equals("serialVersionUID") == false && - field.getName().startsWith("class$") == false && - field.getName().startsWith("timeZone") == false) + for (Field field : fields) { + // Ignore these fields + if (Modifier.isStatic(field.getModifiers()) || + Modifier.isTransient(field.getModifiers()) || + field.isSynthetic()) + { + continue; + }
wicket git commit: WICKET-6056 added factory methods for clientInfo
Repository: wicket Updated Branches: refs/heads/WICKET-6056-client-properties d6235ba55 -> 954f27754 WICKET-6056 added factory methods for clientInfo Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/954f2775 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/954f2775 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/954f2775 Branch: refs/heads/WICKET-6056-client-properties Commit: 954f27754ea3841173871cc56e58966d63c95226 Parents: d6235ba Author: Sven Meier Authored: Thu Nov 24 18:05:40 2016 +0100 Committer: Sven Meier Committed: Thu Nov 24 18:05:40 2016 +0100 -- .../wicket/ajax/AjaxClientInfoBehavior.java | 7 +- .../markup/html/pages/BrowserInfoForm.java | 3 +-- .../markup/html/pages/BrowserInfoPage.java | 23 +--- .../protocol/http/request/WebClientInfo.java| 16 ++ 4 files changed, 39 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/954f2775/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java index ca39644..e16317a 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java @@ -68,7 +68,7 @@ public class AjaxClientInfoBehavior extends AbstractAjaxTimerBehavior RequestCycle requestCycle = RequestCycle.get(); IRequestParameters requestParameters = requestCycle.getRequest().getRequestParameters(); - WebClientInfo clientInfo = new WebClientInfo(requestCycle); + WebClientInfo clientInfo = newWebClientInfo(requestCycle); Session.get().setClientInfo(clientInfo); ClientProperties properties = clientInfo.getProperties(); @@ -78,6 +78,11 @@ public class AjaxClientInfoBehavior extends AbstractAjaxTimerBehavior onClientInfo(target, clientInfo); } + protected WebClientInfo newWebClientInfo(RequestCycle requestCycle) + { + return new WebClientInfo(requestCycle); + } + /** * A callback method invoked when the client info is collected. * http://git-wip-us.apache.org/repos/asf/wicket/blob/954f2775/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java index 5a659e9..d78cb95 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoForm.java @@ -64,8 +64,7 @@ public class BrowserInfoForm extends GenericPanel */ protected Form createForm(String componentId, IModel properties) { - Form form = new Form(componentId, - new CompoundPropertyModel(properties)) + Form form = new Form(componentId, properties) { private static final long serialVersionUID = 1L; http://git-wip-us.apache.org/repos/asf/wicket/blob/954f2775/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java index e7143d7..dc93bce 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/pages/BrowserInfoPage.java @@ -22,8 +22,11 @@ import org.apache.wicket.markup.head.OnLoadHeaderItem; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.model.IModel; +import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.protocol.http.ClientProperties; import org.apache.wicket.protocol.http.WebSession; +import org.apache.wicket.protocol.http.request.WebClientInfo; +import org.apache.wicket.request.cycle.RequestCycle; /** * This page uses a form post right after the page has loaded in the browser, using JavaScript or @@ -70,17 +73,26 @@ public class BrowserInfoPage extends WebPage return fals
wicket git commit: WICKET-6056 make it easier to gather more properties
Repository: wicket Updated Branches: refs/heads/WICKET-6056-client-properties [created] d6235ba55 WICKET-6056 make it easier to gather more properties Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d6235ba5 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d6235ba5 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d6235ba5 Branch: refs/heads/WICKET-6056-client-properties Commit: d6235ba555657b44af58fd3bb2a5da67ca5b931f Parents: ce66c24 Author: Sven Meier Authored: Thu Nov 24 16:32:22 2016 +0100 Committer: Sven Meier Committed: Thu Nov 24 16:36:02 2016 +0100 -- .../wicket/ajax/AjaxClientInfoBehavior.java | 36 +--- .../markup/html/pages/BrowserInfoForm.html | 16 --- .../markup/html/pages/BrowserInfoForm.java | 43 ++- .../markup/html/pages/wicket-browser-info.js| 6 ++- .../wicket/protocol/http/ClientProperties.java | 45 +++- 5 files changed, 54 insertions(+), 92 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/d6235ba5/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java index 164c551..ca39644 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AjaxClientInfoBehavior.java @@ -67,45 +67,13 @@ public class AjaxClientInfoBehavior extends AbstractAjaxTimerBehavior RequestCycle requestCycle = RequestCycle.get(); IRequestParameters requestParameters = requestCycle.getRequest().getRequestParameters(); - String navigatorAppName = requestParameters.getParameterValue("navigatorAppName").toString("N/A"); - String navigatorAppVersion = requestParameters.getParameterValue("navigatorAppVersion").toString("N/A"); - String navigatorAppCodeName = requestParameters.getParameterValue("navigatorAppCodeName").toString("N/A"); - boolean navigatorCookieEnabled = requestParameters.getParameterValue("navigatorCookieEnabled").toBoolean(false); - Boolean navigatorJavaEnabled = requestParameters.getParameterValue("navigatorJavaEnabled").toBoolean(false); - String navigatorLanguage = requestParameters.getParameterValue("navigatorLanguage").toString("N/A"); - String navigatorPlatform = requestParameters.getParameterValue("navigatorPlatform").toString("N/A"); - String navigatorUserAgent = requestParameters.getParameterValue("navigatorUserAgent").toString("N/A"); - int screenWidth = requestParameters.getParameterValue("screenWidth").toInt(-1); - int screenHeight = requestParameters.getParameterValue("screenHeight").toInt(-1); - int screenColorDepth = requestParameters.getParameterValue("screenColorDepth").toInt(-1); - String utcOffset = requestParameters.getParameterValue("utcOffset").toString("N/A"); - String utcDSTOffset = requestParameters.getParameterValue("utcDSTOffset").toString("N/A"); - int browserWidth = requestParameters.getParameterValue("browserWidth").toInt(-1); - int browserHeight = requestParameters.getParameterValue("browserHeight").toInt(-1); - String hostname = requestParameters.getParameterValue("hostname").toString("N/A"); WebClientInfo clientInfo = new WebClientInfo(requestCycle); Session.get().setClientInfo(clientInfo); ClientProperties properties = clientInfo.getProperties(); - properties.setJavaScriptEnabled(true); - - properties.setNavigatorAppCodeName(navigatorAppCodeName); - properties.setNavigatorAppName(navigatorAppName); - properties.setNavigatorAppVersion(navigatorAppVersion); - properties.setNavigatorCookieEnabled(navigatorCookieEnabled); - properties.setNavigatorJavaEnabled(navigatorJavaEnabled); - properties.setNavigatorLanguage(navigatorLanguage); - properties.setNavigatorPlatform(navigatorPlatform); - properties.setNavigatorUserAgent(navigatorUserAgent); - properties.setScreenWidth(screenWidth); - properties.setScreenHeight(screenHeight); - properties.setScreenColorDepth(screenColorDepth); - properties.setUtcOffset(utcOffset); - properties.setUtcDSTOffset(utcDSTOffset); - properties.setBrowserWidth(bro
wicket git commit: WICKET-6278 no functional change
Repository: wicket Updated Branches: refs/heads/master 4b600a200 -> 51b934007 WICKET-6278 no functional change Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/51b93400 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/51b93400 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/51b93400 Branch: refs/heads/master Commit: 51b934007a19a51bcb8e56d3c28101dd5f92e6db Parents: 4b600a2 Author: Sven Meier Authored: Thu Nov 17 16:54:09 2016 +0100 Committer: Sven Meier Committed: Thu Nov 17 16:54:09 2016 +0100 -- .../java/org/apache/wicket/util/tester/TagTester.java | 2 ++ .../org/apache/wicket/util/tester/TagTesterTest.java| 12 +++- 2 files changed, 13 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/51b93400/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java index 610b181..ca851ae 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java @@ -399,6 +399,8 @@ public class TagTester *the markup to look for the tag to create the TagTester from the value *which the attribute must have * @return the TagTester which matches the tag by name in the markup +* +* @deprecated use {@link #createTagByName(String, String)} instead */ @Deprecated public static TagTester createTagByAttribute(String markup, String tagName) http://git-wip-us.apache.org/repos/asf/wicket/blob/51b93400/wicket-core/src/test/java/org/apache/wicket/util/tester/TagTesterTest.java -- diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/TagTesterTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/TagTesterTest.java index f992310..d4fe36e 100644 --- a/wicket-core/src/test/java/org/apache/wicket/util/tester/TagTesterTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/TagTesterTest.java @@ -39,7 +39,17 @@ public class TagTesterTest extends Assert ""; // WICKET-5874 - private static final String NON_CLOSED_INPUT = ""; + private static final String NON_CLOSED_INPUT = ""; + + /** +* WICKET-6278 +*/ + @Test + public void tagNoRequiredClose() { + TagTester tester = TagTester.createTagByAttribute(NON_CLOSED_INPUT, "wicket:id", "p"); + + assertEquals("", tester.getValue()); + } /** * https://issues.apache.org/jira/browse/WICKET-5874
wicket git commit: WICKET-6278 improved support for void elements
Repository: wicket Updated Branches: refs/heads/wicket-6.x 13e5d202c -> c6f3efb72 WICKET-6278 improved support for void elements Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c6f3efb7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c6f3efb7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c6f3efb7 Branch: refs/heads/wicket-6.x Commit: c6f3efb72f830088f4fa22f7d9a27a5a2b1f3136 Parents: 13e5d20 Author: Sven Meier Authored: Thu Nov 17 16:53:27 2016 +0100 Committer: Sven Meier Committed: Thu Nov 17 17:01:56 2016 +0100 -- .../apache/wicket/util/tester/TagTester.java| 319 +++ .../wicket/util/tester/TagTesterTest.java | 12 +- 2 files changed, 132 insertions(+), 199 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/c6f3efb7/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java index 3220cae..310530b 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java @@ -17,8 +17,9 @@ package org.apache.wicket.util.tester; import java.util.ArrayList; +import java.util.Collections; import java.util.List; -import java.util.Map; +import java.util.Stack; import java.util.regex.Pattern; import org.apache.wicket.WicketRuntimeException; @@ -359,6 +360,11 @@ public class TagTester */ public String getValue() { + if (openTag == closeTag) + { + return null; + } + int openPos = openTag.getPos() + openTag.getLength(); int closePos = closeTag.getPos(); @@ -370,85 +376,40 @@ public class TagTester * that it will return the first tag which matches the criteria. * * @param markup -*the markup to look for the tag to create the TagTester from -*the value which the attribute must have +*the markup to look for the tag to create the TagTester from the value +*which the attribute must have * @return the TagTester which matches the tag by name in the markup */ - public static TagTester createTagByAttribute(String markup, String tagName) + public static TagTester createTagByName(String markup, final String tagName) { - TagTester tester = null; - - if (Strings.isEmpty(markup) == false && Strings.isEmpty(tagName) == false) - { - try - { - // remove the CDATA and - // the id attribute of the component because it is often the same as the element's id - markup = AJAX_COMPONENT_CDATA_OPEN.matcher(markup).replaceAll(""); - markup = AJAX_COMPONENT_CDATA_CLOSE.matcher(markup).replaceAll(""); - - XmlPullParser parser = new XmlPullParser(); - parser.parse(markup); - - XmlTag elm; - XmlTag openTag = null; - XmlTag closeTag = null; - int level = 0; - while ((elm = parser.nextTag()) != null && closeTag == null) - { - XmlTag xmlTag = elm; - - String xmlTagName = xmlTag.getName(); - if (openTag == null && xmlTagName.equalsIgnoreCase(tagName)) - { - if (xmlTag.isOpen()) - { - openTag = xmlTag; - } - else if (xmlTag.isOpenClose()) - { - openTag = xmlTag; - closeTag = xmlTag; - } - } - else if (openTag != null) - { - String openTagName = openTag.getName(); -
wicket git commit: WICKET-6278 improved support for void elements
Repository: wicket Updated Branches: refs/heads/wicket-7.x bcd212963 -> e49460fc3 WICKET-6278 improved support for void elements Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e49460fc Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e49460fc Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e49460fc Branch: refs/heads/wicket-7.x Commit: e49460fc383fafdf719451b1a2f24c2764e1c482 Parents: bcd2129 Author: Sven Meier Authored: Thu Nov 17 16:53:27 2016 +0100 Committer: Sven Meier Committed: Thu Nov 17 16:53:27 2016 +0100 -- .../apache/wicket/util/tester/TagTester.java| 319 +++ .../wicket/util/tester/TagTesterTest.java | 12 +- 2 files changed, 132 insertions(+), 199 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/e49460fc/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java index c6818f6..f54d820 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java @@ -17,8 +17,9 @@ package org.apache.wicket.util.tester; import java.util.ArrayList; +import java.util.Collections; import java.util.List; -import java.util.Map; +import java.util.Stack; import java.util.regex.Pattern; import org.apache.wicket.WicketRuntimeException; @@ -359,6 +360,11 @@ public class TagTester */ public String getValue() { + if (openTag == closeTag) + { + return null; + } + int openPos = openTag.getPos() + openTag.getLength(); int closePos = closeTag.getPos(); @@ -370,85 +376,40 @@ public class TagTester * that it will return the first tag which matches the criteria. * * @param markup -*the markup to look for the tag to create the TagTester from -*the value which the attribute must have +*the markup to look for the tag to create the TagTester from the value +*which the attribute must have * @return the TagTester which matches the tag by name in the markup */ - public static TagTester createTagByAttribute(String markup, String tagName) + public static TagTester createTagByName(String markup, final String tagName) { - TagTester tester = null; - - if (Strings.isEmpty(markup) == false && Strings.isEmpty(tagName) == false) - { - try - { - // remove the CDATA and - // the id attribute of the component because it is often the same as the element's id - markup = AJAX_COMPONENT_CDATA_OPEN.matcher(markup).replaceAll(""); - markup = AJAX_COMPONENT_CDATA_CLOSE.matcher(markup).replaceAll(""); - - XmlPullParser parser = new XmlPullParser(); - parser.parse(markup); - - XmlTag elm; - XmlTag openTag = null; - XmlTag closeTag = null; - int level = 0; - while ((elm = parser.nextTag()) != null && closeTag == null) - { - XmlTag xmlTag = elm; - - String xmlTagName = xmlTag.getName(); - if (openTag == null && xmlTagName.equalsIgnoreCase(tagName)) - { - if (xmlTag.isOpen()) - { - openTag = xmlTag; - } - else if (xmlTag.isOpenClose()) - { - openTag = xmlTag; - closeTag = xmlTag; - } - } - else if (openTag != null) - { - String openTagName = openTag.getName(); -
wicket git commit: WICKET-6276: simple compilefix with generics parameter
Repository: wicket Updated Branches: refs/heads/master 21837bccc -> a42a27b5d WICKET-6276: simple compilefix with generics parameter Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a42a27b5 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a42a27b5 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a42a27b5 Branch: refs/heads/master Commit: a42a27b5df594678433ce37ff918103d6924946f Parents: 21837bc Author: Sven Meier Authored: Tue Nov 15 21:59:50 2016 +0100 Committer: Sven Meier Committed: Tue Nov 15 22:02:20 2016 +0100 -- .../src/test/java/org/apache/wicket/model/LambdaModelTest.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/a42a27b5/wicket-core/src/test/java/org/apache/wicket/model/LambdaModelTest.java -- diff --git a/wicket-core/src/test/java/org/apache/wicket/model/LambdaModelTest.java b/wicket-core/src/test/java/org/apache/wicket/model/LambdaModelTest.java index 5533a07..3a51a02 100644 --- a/wicket-core/src/test/java/org/apache/wicket/model/LambdaModelTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/model/LambdaModelTest.java @@ -23,7 +23,6 @@ import static org.junit.Assert.assertThat; import org.apache.wicket.core.util.lang.WicketObjects; import org.apache.wicket.model.lambda.Person; -import org.danekja.java.util.function.serializable.SerializableConsumer; import org.junit.Test; /** @@ -44,9 +43,9 @@ public class LambdaModelTest public void explicitLambdas() { Person person = new Person(); - IModel personNameModel = LambdaModel.of( + IModel personNameModel = LambdaModel.of( () -> person.getName(), - (SerializableConsumer) (name) -> person.setName(name)); + (name) -> person.setName(name)); check(personNameModel); }
wicket git commit: WICKET-6270 check name of uploaded file is not empty
Repository: wicket Updated Branches: refs/heads/master b30709dd8 -> 2135f7b7d WICKET-6270 check name of uploaded file is not empty Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2135f7b7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2135f7b7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2135f7b7 Branch: refs/heads/master Commit: 2135f7b7d2e77d1c7a70cb03da744e0f4ef2de29 Parents: b30709d Author: Sven Meier Authored: Mon Nov 7 19:20:07 2016 +0100 Committer: Sven Meier Committed: Mon Nov 7 19:20:07 2016 +0100 -- .../html/form/upload/FileUploadField.java | 6 ++- .../http/mock/MockHttpServletRequest.java | 51 +++- .../apache/wicket/util/tester/FormTester.java | 2 +- .../html/form/upload/FileUploadFieldTest.java | 41 +--- 4 files changed, 68 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/2135f7b7/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java index e604fae..5a8f288 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java @@ -27,6 +27,7 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.protocol.http.IMultipartWebRequest; import org.apache.wicket.request.Request; import org.apache.wicket.util.convert.ConversionException; +import org.apache.wicket.util.string.Strings; /** * Form component that corresponds to a . When a FileInput @@ -111,7 +112,10 @@ public class FileUploadField extends FormComponent> { for (FileItem item : fileItems) { - fileUploads.add(new FileUpload(item)); + // WICKET-6270 detect empty field by missing file name + if (Strings.isEmpty(item.getName()) == false) { + fileUploads.add(new FileUpload(item)); + } } } } http://git-wip-us.apache.org/repos/asf/wicket/blob/2135f7b7/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java index eb13006..44ee8d4 100755 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java @@ -67,7 +67,6 @@ import org.apache.wicket.util.encoding.UrlDecoder; import org.apache.wicket.util.encoding.UrlEncoder; import org.apache.wicket.util.file.File; import org.apache.wicket.util.io.IOUtils; -import org.apache.wicket.util.lang.Args; import org.apache.wicket.util.string.StringValue; import org.apache.wicket.util.string.Strings; import org.apache.wicket.util.value.ValueMap; @@ -265,19 +264,19 @@ public class MockHttpServletRequest implements HttpServletRequest */ public void addFile(String fieldName, File file, String contentType) { - Args.notNull(file, "file"); - - if (file.exists() == false) - { - throw new IllegalArgumentException( - "File does not exists. You must provide an existing file: " - + file.getAbsolutePath()); - } + if (file != null) { + if (file.exists() == false) + { + throw new IllegalArgumentException( + "File does not exists. You must provide an existing file: " + + file.getAbsolutePath()); + } - if (file.isFile() == false) - { - throw new IllegalArgumentException( - "You can only add a File, which is not a directory. Only files can be uploaded."); + if (file.isFile() == false) +
wicket git commit: WICKET-6270 check name of uploaded file is not empty
Repository: wicket Updated Branches: refs/heads/wicket-6.x 7d164c618 -> 3a6eb04ca WICKET-6270 check name of uploaded file is not empty Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/3a6eb04c Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/3a6eb04c Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/3a6eb04c Branch: refs/heads/wicket-6.x Commit: 3a6eb04ca17789b859e6efea067ea4bfddafa2c8 Parents: 7d164c6 Author: Sven Meier Authored: Mon Nov 7 19:20:07 2016 +0100 Committer: Sven Meier Committed: Mon Nov 7 19:27:47 2016 +0100 -- .../html/form/upload/FileUploadField.java | 6 ++- .../http/mock/MockHttpServletRequest.java | 51 +++- .../apache/wicket/util/tester/FormTester.java | 2 +- .../html/form/upload/FileUploadFieldTest.java | 41 +--- 4 files changed, 68 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/3a6eb04c/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java index 07f81f3..512e472 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java @@ -26,6 +26,7 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.protocol.http.IMultipartWebRequest; import org.apache.wicket.request.Request; import org.apache.wicket.util.convert.ConversionException; +import org.apache.wicket.util.string.Strings; import org.apache.wicket.util.upload.FileItem; /** @@ -110,7 +111,10 @@ public class FileUploadField extends FormComponent> { for (FileItem item : fileItems) { - fileUploads.add(new FileUpload(item)); + // WICKET-6270 detect empty field by missing file name + if (Strings.isEmpty(item.getName()) == false) { + fileUploads.add(new FileUpload(item)); + } } } } http://git-wip-us.apache.org/repos/asf/wicket/blob/3a6eb04c/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java index bc014f6..989c7f7 100755 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java @@ -56,7 +56,6 @@ import org.apache.wicket.util.encoding.UrlDecoder; import org.apache.wicket.util.encoding.UrlEncoder; import org.apache.wicket.util.file.File; import org.apache.wicket.util.io.IOUtils; -import org.apache.wicket.util.lang.Args; import org.apache.wicket.util.string.StringValue; import org.apache.wicket.util.string.Strings; import org.apache.wicket.util.upload.FileUploadBase; @@ -245,19 +244,19 @@ public class MockHttpServletRequest implements HttpServletRequest */ public void addFile(String fieldName, File file, String contentType) { - Args.notNull(file, "file"); - - if (file.exists() == false) - { - throw new IllegalArgumentException( - "File does not exists. You must provide an existing file: " + - file.getAbsolutePath()); - } + if (file != null) { + if (file.exists() == false) + { + throw new IllegalArgumentException( + "File does not exists. You must provide an existing file: " + + file.getAbsolutePath()); + } - if (file.isFile() == false) - { - throw new IllegalArgumentException( - "You can only add a File, which is not a directory. Only files can be uploaded."); + if (file.isFile() == false) + {
wicket git commit: WICKET-6270 check name of uploaded file is not empty
Repository: wicket Updated Branches: refs/heads/wicket-7.x 423a93f20 -> 34d8ead09 WICKET-6270 check name of uploaded file is not empty Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/34d8ead0 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/34d8ead0 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/34d8ead0 Branch: refs/heads/wicket-7.x Commit: 34d8ead0926269af5392d8d55cc2a001e9c3ecc3 Parents: 423a93f Author: Sven Meier Authored: Mon Nov 7 19:20:07 2016 +0100 Committer: Sven Meier Committed: Mon Nov 7 19:21:03 2016 +0100 -- .../html/form/upload/FileUploadField.java | 6 ++- .../http/mock/MockHttpServletRequest.java | 51 +++- .../apache/wicket/util/tester/FormTester.java | 2 +- .../html/form/upload/FileUploadFieldTest.java | 41 +--- 4 files changed, 68 insertions(+), 32 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/34d8ead0/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java index e604fae..5a8f288 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java @@ -27,6 +27,7 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.protocol.http.IMultipartWebRequest; import org.apache.wicket.request.Request; import org.apache.wicket.util.convert.ConversionException; +import org.apache.wicket.util.string.Strings; /** * Form component that corresponds to a . When a FileInput @@ -111,7 +112,10 @@ public class FileUploadField extends FormComponent> { for (FileItem item : fileItems) { - fileUploads.add(new FileUpload(item)); + // WICKET-6270 detect empty field by missing file name + if (Strings.isEmpty(item.getName()) == false) { + fileUploads.add(new FileUpload(item)); + } } } } http://git-wip-us.apache.org/repos/asf/wicket/blob/34d8ead0/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java index a7bd476..05c5c1b 100755 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java @@ -65,7 +65,6 @@ import org.apache.wicket.util.encoding.UrlDecoder; import org.apache.wicket.util.encoding.UrlEncoder; import org.apache.wicket.util.file.File; import org.apache.wicket.util.io.IOUtils; -import org.apache.wicket.util.lang.Args; import org.apache.wicket.util.string.StringValue; import org.apache.wicket.util.string.Strings; import org.apache.wicket.util.value.ValueMap; @@ -255,19 +254,19 @@ public class MockHttpServletRequest implements HttpServletRequest */ public void addFile(String fieldName, File file, String contentType) { - Args.notNull(file, "file"); - - if (file.exists() == false) - { - throw new IllegalArgumentException( - "File does not exists. You must provide an existing file: " - + file.getAbsolutePath()); - } + if (file != null) { + if (file.exists() == false) + { + throw new IllegalArgumentException( + "File does not exists. You must provide an existing file: " + + file.getAbsolutePath()); + } - if (file.isFile() == false) - { - throw new IllegalArgumentException( - "You can only add a File, which is not a directory. Only files can be uploaded."); + if (file.isFile() == false) +
[1/2] wicket git commit: WICKET-6260 let WebRequest detect Ajax request
Repository: wicket Updated Branches: refs/heads/master 3e765bae3 -> 7a0ee57bb WICKET-6260 let WebRequest detect Ajax request WebRequest#isAjax() no longer touches the request body, thus it can safely be asked Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/4e15acc2 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/4e15acc2 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/4e15acc2 Branch: refs/heads/master Commit: 4e15acc29fdb3e41f239669a8eafe54115e68263 Parents: 3e765ba Author: Sven Meier Authored: Wed Oct 26 10:19:18 2016 +0200 Committer: Sven Meier Committed: Mon Oct 31 14:35:37 2016 +0100 -- .../wicket/protocol/http/WebApplication.java| 23 .../protocol/http/WebApplicationTest.java | 58 2 files changed, 69 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/4e15acc2/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java index 56263ed..bc41b12 100644 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java @@ -555,12 +555,21 @@ public abstract class WebApplication extends Application */ WebRequest createWebRequest(HttpServletRequest servletRequest, final String filterPath) { + if (hasFilterFactoryManager()) + { + for (AbstractRequestWrapperFactory factory : getFilterFactoryManager()) + { + servletRequest = factory.getWrapper(servletRequest); + } + } + + WebRequest webRequest = newWebRequest(servletRequest, filterPath); + if (servletRequest.getCharacterEncoding() == null) { try { - String wicketAjaxHeader = servletRequest.getHeader(WebRequest.HEADER_AJAX); - if (Strings.isTrue(wicketAjaxHeader)) + if (webRequest.isAjax()) { // WICKET-3908, WICKET-1816: Forms submitted with Ajax are always UTF-8 encoded servletRequest.setCharacterEncoding(CharEncoding.UTF_8); @@ -577,16 +586,6 @@ public abstract class WebApplication extends Application } } - if (hasFilterFactoryManager()) - { - for (AbstractRequestWrapperFactory factory : getFilterFactoryManager()) - { - servletRequest = factory.getWrapper(servletRequest); - } - } - - WebRequest webRequest = newWebRequest(servletRequest, filterPath); - return webRequest; } http://git-wip-us.apache.org/repos/asf/wicket/blob/4e15acc2/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebApplicationTest.java -- diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebApplicationTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebApplicationTest.java index 0b51703..ba6b175 100644 --- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebApplicationTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/WebApplicationTest.java @@ -17,9 +17,15 @@ package org.apache.wicket.protocol.http; import java.nio.charset.Charset; +import java.util.Enumeration; import java.util.Iterator; import java.util.Locale; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; + +import org.apache.wicket.mock.MockRequestParameters; +import org.apache.wicket.protocol.http.mock.MockHttpServletRequest; import org.apache.wicket.request.IRequestHandler; import org.apache.wicket.request.IRequestMapper; import org.apache.wicket.request.Request; @@ -42,6 +48,58 @@ public class WebApplicationTest extends WicketTestCase private static final String MOUNT_PATH_4 = "mount/path/4"; /** +* WICKET-6260 +*/ + @Test + public void testBodyNotReadBeforeApplicationSetsCharacterEncoding() throws Exception { + WebApplication application = tester.getApplication(); + + HttpServletRequest request = new MockHttpServletRequest(app