You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/01/31 15:17:58 UTC
isis git commit: ISIS-1020 Use Wicket-Select2 from WicketStuff
instead of the non-maintained original one
Repository: isis
Updated Branches:
refs/heads/ISIS-1020-problems-with-select2 [created] 5013f0b0b
ISIS-1020 Use Wicket-Select2 from WicketStuff instead of the non-maintained original one
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/5013f0b0
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/5013f0b0
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/5013f0b0
Branch: refs/heads/ISIS-1020-problems-with-select2
Commit: 5013f0b0b40153fdf6181373750daa14bd793217
Parents: 40c6a45
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sat Jan 31 16:17:08 2015 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Sat Jan 31 16:17:08 2015 +0200
----------------------------------------------------------------------
.../wicket/viewer/IsisWicketApplication.java | 2 +-
component/viewer/wicket/pom.xml | 8 +--
component/viewer/wicket/ui/pom.xml | 4 +-
.../reference/EntityLinkSelect2Panel.java | 3 +-
.../scalars/reference/ReferencePanel.java | 6 +-
.../ObjectAdapterMementoProviderAbstract.java | 5 +-
.../widgets/breadcrumbs/BreadcrumbPanel.java | 70 ++++++++++----------
.../select2/Select2BootstrapCssReference.java | 5 +-
.../widgets/select2/Select2ChoiceUtil.java | 32 ++++++++-
.../valuechoices/ValueChoicesSelect2Panel.java | 4 +-
10 files changed, 82 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/5013f0b0/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 319d42f..9da8625 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -42,7 +42,6 @@ import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Module;
-import com.vaynberg.wicket.select2.ApplicationSettings;
import org.apache.wicket.Application;
import org.apache.wicket.ConverterLocator;
import org.apache.wicket.IConverterLocator;
@@ -64,6 +63,7 @@ import org.apache.wicket.settings.IRequestCycleSettings.RenderStrategy;
import org.apache.wicket.util.time.Duration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.wicketstuff.select2.ApplicationSettings;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
http://git-wip-us.apache.org/repos/asf/isis/blob/5013f0b0/component/viewer/wicket/pom.xml
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/pom.xml b/component/viewer/wicket/pom.xml
index ff3a1f0..9c9148d 100644
--- a/component/viewer/wicket/pom.xml
+++ b/component/viewer/wicket/pom.xml
@@ -47,8 +47,8 @@
<wicket-bootstrap.version>0.9.7</wicket-bootstrap.version>
<wicket-source.version>6.0.0.8</wicket-source.version>
- <wicket-select2.version>2.2.3</wicket-select2.version>
- <select2.version>3.5.1</select2.version>
+ <wicket-select2.version>6.18.0</wicket-select2.version>
+ <select2.version>3.5.2</select2.version>
</properties>
<!-- used in Site generation for relative references. -->
@@ -269,8 +269,8 @@
<!-- Wicket-Select2 -->
<dependency>
- <groupId>com.vaynberg.wicket.select2</groupId>
- <artifactId>wicket-select2</artifactId>
+ <groupId>org.wicketstuff</groupId>
+ <artifactId>wicketstuff-select2</artifactId>
<version>${wicket-select2.version}</version>
<exclusions>
<exclusion>
http://git-wip-us.apache.org/repos/asf/isis/blob/5013f0b0/component/viewer/wicket/ui/pom.xml
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/pom.xml b/component/viewer/wicket/ui/pom.xml
index 11e676d..8b6d116 100644
--- a/component/viewer/wicket/ui/pom.xml
+++ b/component/viewer/wicket/ui/pom.xml
@@ -96,8 +96,8 @@
<artifactId>wicket-guice</artifactId>
</dependency>
<dependency>
- <groupId>com.vaynberg.wicket.select2</groupId>
- <artifactId>wicket-select2</artifactId>
+ <groupId>org.wicketstuff</groupId>
+ <artifactId>wicketstuff-select2</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/isis/blob/5013f0b0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/EntityLinkSelect2Panel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/EntityLinkSelect2Panel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/EntityLinkSelect2Panel.java
index aab5d83..ea32d71 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/EntityLinkSelect2Panel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/EntityLinkSelect2Panel.java
@@ -19,7 +19,6 @@
package org.apache.isis.viewer.wicket.ui.components.scalars.reference;
-import com.vaynberg.wicket.select2.Select2Choice;
import org.apache.wicket.markup.html.form.FormComponentPanel;
@@ -42,7 +41,7 @@ class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAdapter> i
/**
* Necessary because {@link FormComponentPanel} overrides this as <tt>true</tt>, whereas we want to
- * report on the state of the underlying {@link Select2Choice}.
+ * report on the state of the underlying {@link org.wicketstuff.select2.Select2Choice}.
*/
@Override
public boolean checkRequired() {
http://git-wip-us.apache.org/repos/asf/isis/blob/5013f0b0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index 34c8f38..bbc4151 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -22,9 +22,6 @@ package org.apache.isis.viewer.wicket.ui.components.scalars.reference;
import javax.inject.Inject;
import java.util.List;
import com.google.common.collect.Lists;
-import com.vaynberg.wicket.select2.ChoiceProvider;
-import com.vaynberg.wicket.select2.Select2Choice;
-import com.vaynberg.wicket.select2.Settings;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
@@ -36,6 +33,9 @@ import org.apache.wicket.model.Model;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;
import org.apache.wicket.validation.ValidationError;
+import org.wicketstuff.select2.ChoiceProvider;
+import org.wicketstuff.select2.Select2Choice;
+import org.wicketstuff.select2.Settings;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
http://git-wip-us.apache.org/repos/asf/isis/blob/5013f0b0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/ObjectAdapterMementoProviderAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/ObjectAdapterMementoProviderAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/ObjectAdapterMementoProviderAbstract.java
index ef7fb78..bda83fc 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/ObjectAdapterMementoProviderAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/ObjectAdapterMementoProviderAbstract.java
@@ -22,9 +22,10 @@ import java.util.Locale;
import com.google.common.base.Function;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
-import com.vaynberg.wicket.select2.TextChoiceProvider;
import org.apache.wicket.Session;
import org.apache.wicket.util.convert.IConverter;
+import org.wicketstuff.select2.Response;
+import org.wicketstuff.select2.TextChoiceProvider;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
@@ -76,7 +77,7 @@ public abstract class ObjectAdapterMementoProviderAbstract extends TextChoicePro
}
@Override
- public void query(final String term, final int page, final com.vaynberg.wicket.select2.Response<ObjectAdapterMemento> response) {
+ public void query(final String term, final int page, final Response<ObjectAdapterMemento> response) {
final List<ObjectAdapterMemento> mementos = Lists.newArrayList(obtainMementos(term));
// if not mandatory, and the list doesn't contain null already, then add it in.
http://git-wip-us.apache.org/repos/asf/isis/blob/5013f0b0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
index 76badf0..6d19acc 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
@@ -17,14 +17,14 @@
package org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs;
import java.util.Collection;
-import com.vaynberg.wicket.select2.Response;
-import com.vaynberg.wicket.select2.Select2Choice;
-import com.vaynberg.wicket.select2.Settings;
-import com.vaynberg.wicket.select2.TextChoiceProvider;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.wicketstuff.select2.Response;
+import org.wicketstuff.select2.Select2Choice;
+import org.wicketstuff.select2.Settings;
+import org.wicketstuff.select2.TextChoiceProvider;
import org.apache.isis.core.commons.authentication.MessageBroker;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
@@ -51,34 +51,7 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
final BreadcrumbModel breadcrumbModel = session.getBreadcrumbModel();
final IModel<EntityModel> entityModel = new Model<EntityModel>();
- final Select2Choice<EntityModel> breadcrumbChoice = new Select2Choice<EntityModel>(ID_BREADCRUMBS, entityModel);
-
- breadcrumbChoice.add(
- new AjaxFormComponentUpdatingBehavior("change"){
-
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- final String oidStr = breadcrumbChoice.getInput();
- final EntityModel selectedModel = breadcrumbModel.lookup(oidStr);
- if(selectedModel == null) {
- final MessageBroker messageBroker = IsisContext.getAuthenticationSession().getMessageBroker();
- messageBroker.addWarning("Cannot find object");
- String feedbackMsg = JGrowlUtil.asJGrowlCalls(messageBroker);
- target.appendJavaScript(feedbackMsg);
- breadcrumbModel.remove(oidStr);
- return;
- }
- setResponsePage(EntityPage.class, selectedModel.getPageParameters());
- }
- });
-
- final Settings settings = breadcrumbChoice.getSettings();
- settings.setMinimumInputLength(0);
- settings.setWidth("100%");
-
- breadcrumbChoice.setProvider(new TextChoiceProvider<EntityModel>() {
+ TextChoiceProvider<EntityModel> choiceProvider = new TextChoiceProvider<EntityModel>() {
private static final long serialVersionUID = 1L;
@@ -91,7 +64,7 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
protected Object getId(EntityModel choice) {
try {
return PageParameterNames.OBJECT_OID.getStringFrom(choice.getPageParameters());
- } catch(Exception ex) {
+ } catch (Exception ex) {
breadcrumbModel.remove(choice);
return null;
}
@@ -106,8 +79,35 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
public Collection<EntityModel> toChoices(Collection<String> ids) {
return breadcrumbModel.getList();
}
-
- });
+
+ };
+ final Select2Choice<EntityModel> breadcrumbChoice = new Select2Choice<>(ID_BREADCRUMBS, entityModel, choiceProvider);
+
+ breadcrumbChoice.add(
+ new AjaxFormComponentUpdatingBehavior("change"){
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onUpdate(AjaxRequestTarget target) {
+ final String oidStr = breadcrumbChoice.getInput();
+ final EntityModel selectedModel = breadcrumbModel.lookup(oidStr);
+ if(selectedModel == null) {
+ final MessageBroker messageBroker = IsisContext.getAuthenticationSession().getMessageBroker();
+ messageBroker.addWarning("Cannot find object");
+ String feedbackMsg = JGrowlUtil.asJGrowlCalls(messageBroker);
+ target.appendJavaScript(feedbackMsg);
+ breadcrumbModel.remove(oidStr);
+ return;
+ }
+ setResponsePage(EntityPage.class, selectedModel.getPageParameters());
+ }
+ });
+
+ final Settings settings = breadcrumbChoice.getSettings();
+ settings.setMinimumInputLength(0);
+ settings.setWidth("100%");
+
addOrReplace(breadcrumbChoice);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5013f0b0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java
index 3e714fd..e0d7b30 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java
@@ -1,11 +1,10 @@
package org.apache.isis.viewer.wicket.ui.components.widgets.select2;
-import de.agilecoders.wicket.webjars.request.resource.WebjarsCssResourceReference;
-
import com.google.common.collect.Lists;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.request.resource.CssResourceReference;
+import org.wicketstuff.select2.Select2Choice;
/**
* A CSS reference that loads <a href="https://github.com/ivaynberg/select2/">Select2.css</a>
@@ -20,6 +19,6 @@ public class Select2BootstrapCssReference extends CssResourceReference {
@Override
public Iterable<? extends HeaderItem> getDependencies() {
- return Lists.newArrayList(CssHeaderItem.forReference(new WebjarsCssResourceReference("/select2/current/select2.css")));
+ return Lists.newArrayList(CssHeaderItem.forReference(new CssResourceReference(Select2Choice.class, "res/select2.css")));
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5013f0b0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceUtil.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceUtil.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceUtil.java
index fb82253..a71e411 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceUtil.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceUtil.java
@@ -16,20 +16,46 @@
*/
package org.apache.isis.viewer.wicket.ui.components.widgets.select2;
-import com.vaynberg.wicket.select2.Select2Choice;
+import java.util.Collection;
+import org.apache.wicket.ajax.json.JSONException;
+import org.apache.wicket.ajax.json.JSONWriter;
import org.apache.wicket.model.IModel;
+import org.wicketstuff.select2.ChoiceProvider;
+import org.wicketstuff.select2.Response;
+import org.wicketstuff.select2.Select2Choice;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
-public final class Select2ChoiceUtil {
+public final class
+ Select2ChoiceUtil {
private Select2ChoiceUtil(){}
public static Select2Choice<ObjectAdapterMemento> newSelect2Choice(String id, final IModel<ObjectAdapterMemento> modelObject, ScalarModel scalarModel) {
- Select2Choice<ObjectAdapterMemento> select2Choice = new Select2Choice<>(id, modelObject);
+ Select2Choice<ObjectAdapterMemento> select2Choice = new Select2Choice<>(id, modelObject, EmptyChoiceProvider.INSTANCE);
select2Choice.setRequired(scalarModel.isRequired());
return select2Choice;
}
+
+ private static class EmptyChoiceProvider extends ChoiceProvider<ObjectAdapterMemento> {
+
+ private static final EmptyChoiceProvider INSTANCE = new EmptyChoiceProvider();
+
+ @Override
+ public void query(String term, int page, Response<ObjectAdapterMemento> response) {
+
+ }
+
+ @Override
+ public void toJson(ObjectAdapterMemento choice, JSONWriter writer) throws JSONException {
+
+ }
+
+ @Override
+ public Collection<ObjectAdapterMemento> toChoices(Collection<String> ids) {
+ return null;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5013f0b0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
index 3932e14..28455b7 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ValueChoicesSelect2Panel.java
@@ -23,8 +23,6 @@ import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
-import com.vaynberg.wicket.select2.ChoiceProvider;
-import com.vaynberg.wicket.select2.Select2Choice;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
@@ -32,6 +30,8 @@ import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.wicketstuff.select2.ChoiceProvider;
+import org.wicketstuff.select2.Select2Choice;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;