You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by Stephen Cameron <st...@gmail.com> on 2016/05/05 02:41:06 UTC
autoComplete on parameter working in 1.12.1?
Hi,
I am trying to use autoCompleteNXxxx() for the first time and not having
any success with 1.12.1, it just doesn't seem to fire my routine at all. I
have the following two methods an autoComplete and a validate, the first
doesn't get used but the second does.
public List<String> autoComplete2UpdateStreetAddress(@MinLength(3)
String search) {
return suburbs.listSuburbNamesLike(search);
}
public String validate2UpdateStreetAddress(String name) {
Suburb s = suburbs.suburbForName(name);
if (s != null) {
return null;
} else
return "Unknown suburb, please check spelling and use proper
case";
}
If someone can confirm its working for them in 1.12.1 or else tell me I
have made a mistake.
Steve Cameron
Re: autoComplete on parameter working in 1.12.1?
Posted by Stephen Cameron <st...@gmail.com>.
Hi,
I went to add a Jira issue for this autoComplete problem this morning (I
forgot it before and went away for a few days) but it cannot be added at
the moment due to some spamming issues.
Meanwhile, I just came across a problem in the Isis Security Add-on that
may be related, starting with a fresh system, when I go to add a new local
user I see an exception message.
I am using 1.12.1 version, add role and add tenancy both work.
Stack trace:
- org.apache.wicket.WicketRuntimeException
- Error attaching this container for rendering: [WebMarkupContainer
[Component id = 4]]
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1696)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.markup.repeater.AbstractRepeater#onBeforeRender(AbstractRepeater.java:143)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.markup.html.form.Form#onBeforeRender(Form.java:1803)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.Component#internalPrepareForRender(Component.java:2201)
- org.apache.wicket.Component#prepareForRender(Component.java:2240)
- org.apache.wicket.ajax.XmlAjaxResponse#writeComponent(XmlAjaxResponse.java:107)
- org.apache.wicket.ajax.AbstractAjaxResponse#writeComponents(AbstractAjaxResponse.java:218)
- org.apache.wicket.ajax.AbstractAjaxResponse#writeTo(AbstractAjaxResponse.java:150)
- org.apache.wicket.ajax.AjaxRequestHandler#respond(AjaxRequestHandler.java:359)
- org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:890)
- org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64)
- org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:97)
- org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261)
- org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
- org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
- org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
- org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
- org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
- org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1668)
- org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter#doFilter(IsisLogOnExceptionFilter.java:52)
- org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1668)
- org.apache.shiro.web.servlet.AbstractShiroFilter#executeChain(AbstractShiroFilter.java:449)
- org.apache.shiro.web.servlet.AbstractShiroFilter$1#call(AbstractShiroFilter.java:365)
- org.apache.shiro.subject.support.SubjectCallable#doCall(SubjectCallable.java:90)
- org.apache.shiro.subject.support.SubjectCallable#call(SubjectCallable.java:83)
- org.apache.shiro.subject.support.DelegatingSubject#execute(DelegatingSubject.java:383)
- org.apache.shiro.web.servlet.AbstractShiroFilter#doFilterInternal(AbstractShiroFilter.java:362)
- org.apache.shiro.web.servlet.OncePerRequestFilter#doFilter(OncePerRequestFilter.java:125)
- org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1668)
- org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:581)
- org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:143)
- org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:548)
- org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:226)
- org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:1158)
- org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:511)
- org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:185)
- org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:1090)
- org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:141)
- org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:119)
- org.eclipse.jetty.server.Server#handle(Server.java:517)
- org.eclipse.jetty.server.HttpChannel#handle(HttpChannel.java:308)
- org.eclipse.jetty.server.HttpConnection#onFillable(HttpConnection.java:242)
- org.eclipse.jetty.io.AbstractConnection$ReadCallback#succeeded(AbstractConnection.java:261)
- org.eclipse.jetty.io.FillInterest#fillable(FillInterest.java:95)
- org.eclipse.jetty.io.SelectChannelEndPoint$2#run(SelectChannelEndPoint.java:75)
- org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume#produceAndRun(ExecuteProduceConsume.java:213)
- org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume#run(ExecuteProduceConsume.java:147)
- org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:654)
- org.eclipse.jetty.util.thread.QueuedThreadPool$3#run(QueuedThreadPool.java:572)
- java.lang.Thread#run(Thread.java:745)
-
- Caused by:
-
- java.lang.NullPointerException
-
- org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacetAbstract#findMethod(AutoCompleteFacetAbstract.java:145)
- org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacetAbstract#getMinLength(AutoCompleteFacetAbstract.java:134)
- org.apache.isis.viewer.wicket.ui.components.scalars.reference.ReferencePanel#syncWithInput(ReferencePanel.java:281)
- org.apache.isis.viewer.wicket.ui.components.scalars.reference.ReferencePanel#addComponentForRegular(ReferencePanel.java:126)
- org.apache.isis.viewer.wicket.ui.components.scalars.reference.ReferencePanel#addComponentForRegular(ReferencePanel.java:72)
- org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract#buildGui(ScalarPanelAbstract.java:245)
- org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract#onBeforeRender(ScalarPanelAbstract.java:199)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.markup.repeater.AbstractRepeater#onBeforeRender(AbstractRepeater.java:143)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.markup.html.form.Form#onBeforeRender(Form.java:1803)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.MarkupContainer#onBeforeRenderChildren(MarkupContainer.java:1684)
- org.apache.wicket.Component#onBeforeRender(Component.java:3833)
- org.apache.wicket.Component#internalBeforeRender(Component.java:949)
- org.apache.wicket.Component#beforeRender(Component.java:1017)
- org.apache.wicket.Component#internalPrepareForRender(Component.java:2201)
- org.apache.wicket.Component#prepareForRender(Component.java:2240)
- org.apache.wicket.ajax.XmlAjaxResponse#writeComponent(XmlAjaxResponse.java:107)
- org.apache.wicket.ajax.AbstractAjaxResponse#writeComponents(AbstractAjaxResponse.java:218)
- org.apache.wicket.ajax.AbstractAjaxResponse#writeTo(AbstractAjaxResponse.java:150)
- org.apache.wicket.ajax.AjaxRequestHandler#respond(AjaxRequestHandler.java:359)
- org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor#respond(RequestCycle.java:890)
- org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:64)
- org.apache.wicket.request.RequestHandlerStack#execute(RequestHandlerStack.java:97)
- org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:261)
- org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
- org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
- org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
- org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
- org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
- org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1668)
- org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter#doFilter(IsisLogOnExceptionFilter.java:52)
- org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1668)
- org.apache.shiro.web.servlet.AbstractShiroFilter#executeChain(AbstractShiroFilter.java:449)
- org.apache.shiro.web.servlet.AbstractShiroFilter$1#call(AbstractShiroFilter.java:365)
- org.apache.shiro.subject.support.SubjectCallable#doCall(SubjectCallable.java:90)
- org.apache.shiro.subject.support.SubjectCallable#call(SubjectCallable.java:83)
- org.apache.shiro.subject.support.DelegatingSubject#execute(DelegatingSubject.java:383)
- org.apache.shiro.web.servlet.AbstractShiroFilter#doFilterInternal(AbstractShiroFilter.java:362)
- org.apache.shiro.web.servlet.OncePerRequestFilter#doFilter(OncePerRequestFilter.java:125)
- org.eclipse.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1668)
- org.eclipse.jetty.servlet.ServletHandler#doHandle(ServletHandler.java:581)
- org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:143)
- org.eclipse.jetty.security.SecurityHandler#handle(SecurityHandler.java:548)
- org.eclipse.jetty.server.session.SessionHandler#doHandle(SessionHandler.java:226)
- org.eclipse.jetty.server.handler.ContextHandler#doHandle(ContextHandler.java:1158)
- org.eclipse.jetty.servlet.ServletHandler#doScope(ServletHandler.java:511)
- org.eclipse.jetty.server.session.SessionHandler#doScope(SessionHandler.java:185)
- org.eclipse.jetty.server.handler.ContextHandler#doScope(ContextHandler.java:1090)
- org.eclipse.jetty.server.handler.ScopedHandler#handle(ScopedHandler.java:141)
- org.eclipse.jetty.server.handler.HandlerWrapper#handle(HandlerWrapper.java:119)
- org.eclipse.jetty.server.Server#handle(Server.java:517)
- org.eclipse.jetty.server.HttpChannel#handle(HttpChannel.java:308)
- org.eclipse.jetty.server.HttpConnection#onFillable(HttpConnection.java:242)
- org.eclipse.jetty.io.AbstractConnection$ReadCallback#succeeded(AbstractConnection.java:261)
- org.eclipse.jetty.io.FillInterest#fillable(FillInterest.java:95)
- org.eclipse.jetty.io.SelectChannelEndPoint$2#run(SelectChannelEndPoint.java:75)
- org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume#produceAndRun(ExecuteProduceConsume.java:213)
- org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume#run(ExecuteProduceConsume.java:147)
- org.eclipse.jetty.util.thread.QueuedThreadPool#runJob(QueuedThreadPool.java:654)
- org.eclipse.jetty.util.thread.QueuedThreadPool$3#run(QueuedThreadPool.java:572)
- java.lang.Thread#run(Thread.java:745)
On Thu, May 5, 2016 at 4:42 PM, Stephen Cameron <st...@gmail.com>
wrote:
> thanks for the rapid response, I should have looked in JIRA too, will do
> so now.
>
> On Thu, May 5, 2016 at 4:39 PM, Dan Haywood <da...@haywood-associates.co.uk>
> wrote:
>
>> Meantime, the work-around is to use a view model, eg:
>>
>>
>> import org.apache.isis.applib.annotation.Title;
>>
>> @javax.xml.bind.annotation.XmlRootElement(name = "address")
>> @javax.xml.bind.annotation.XmlType(propOrder = { "name" } )
>> public class Address implements org.apache.isis.applib.services.dto.Dto {
>>
>> public static Address of(String name) {
>> final Address address = new Address();
>> address.setName(name);
>> return address;
>> }
>>
>> private String name;
>>
>> @Title
>> public String getName() { return name; }
>> public void setName(final String name) { this.name = name; }
>>
>> }
>>
>>
>> and then:
>>
>>
>> final ArrayList<Address> addresses = Lists.newArrayList(
>> Address.of("Strawberry fields"),
>> Address.of("Penny Lane"),
>> Address.of("Abbey Road"),
>> Address.of("Octopuses Garden"),
>> Address.of("Blackburn, Lancashire"),
>> Address.of("Georgia"),
>> Address.of("Eiffel Tower"),
>> Address.of("Isle of Wight"));
>>
>> public void updateStreetAddress(String field1, String field2, Address
>> field3) {
>>
>> }
>> public List<Address> autoComplete2UpdateStreetAddress(@MinLength(1)
>> final String search) {
>> return
>> Lists.newArrayList(
>> FluentIterable.from(addresses).filter(x ->
>> x.getName().contains(search)).toList()
>> );
>> }
>>
>>
>> nb: need to wrap the returned list in an ArrayList, else I get a "Loading
>> Failed" exception. But that's a side issue.
>>
>>
>> I wonder if there's a ticket for this missing feature... I probably
>> should've checked JIRA first. Anyway, if you can't find one, go ahead and
>> create a new one.
>>
>> Dan
>>
>>
>>
>>
>>
>>
>> On 5 May 2016 at 07:19, Dan Haywood <da...@haywood-associates.co.uk> wrote:
>>
>> > I see the same behaviour (ie no drop-down) on 1.11.1; the validate
>> doesn't
>> > seem to be relevant:
>> >
>> > final ArrayList<String> addresses = Lists.newArrayList(
>> > "Strawberry fields", "Penny Lane","Abbey Road","Octopuses
>> > Garden","Blackburn, Lancashire","Georgia","Eiffel Tower","Isle of
>> Wight");
>> >
>> > public void updateStreetAddress(String field1, String field2, String
>> > field3) {
>> >
>> > }
>> > public List<String> autoComplete2UpdateStreetAddress(@MinLength(3)
>> > final String search) {
>> > return
>> > FluentIterable.from(addresses).filter(x ->
>> > x.contains(search)).toList();
>> > }
>> >
>> >
>> > Conversely, a choices field works fine for both 1.11.1 and 1.12.1:
>> >
>> > public List<String> choices2UpdateStreetAddress() {
>> > return addresses;
>> > }
>> >
>> >
>> > Perhaps this never worked. Have you seen this work in any earlier
>> > versions?
>> >
>> >
>> >
>> >
>> >
>> >
>> > On 5 May 2016 at 06:57, Dan Haywood <da...@haywood-associates.co.uk>
>> wrote:
>> >
>> >> Hmm, I can't see a mistake here. Investigating...
>> >>
>> >> On 5 May 2016 at 03:41, Stephen Cameron <st...@gmail.com>
>> >> wrote:
>> >>
>> >>> Hi,
>> >>>
>> >>> I am trying to use autoCompleteNXxxx() for the first time and not
>> having
>> >>> any success with 1.12.1, it just doesn't seem to fire my routine at
>> all.
>> >>> I
>> >>> have the following two methods an autoComplete and a validate, the
>> first
>> >>> doesn't get used but the second does.
>> >>>
>> >>> public List<String> autoComplete2UpdateStreetAddress(@MinLength(3)
>> >>> String search) {
>> >>> return suburbs.listSuburbNamesLike(search);
>> >>> }
>> >>>
>> >>> public String validate2UpdateStreetAddress(String name) {
>> >>> Suburb s = suburbs.suburbForName(name);
>> >>> if (s != null) {
>> >>> return null;
>> >>> } else
>> >>> return "Unknown suburb, please check spelling and use
>> proper
>> >>> case";
>> >>> }
>> >>>
>> >>> If someone can confirm its working for them in 1.12.1 or else tell me
>> I
>> >>> have made a mistake.
>> >>>
>> >>> Steve Cameron
>> >>>
>> >>
>> >>
>> >
>>
>
>
Re: autoComplete on parameter working in 1.12.1?
Posted by Stephen Cameron <st...@gmail.com>.
thanks for the rapid response, I should have looked in JIRA too, will do so
now.
On Thu, May 5, 2016 at 4:39 PM, Dan Haywood <da...@haywood-associates.co.uk>
wrote:
> Meantime, the work-around is to use a view model, eg:
>
>
> import org.apache.isis.applib.annotation.Title;
>
> @javax.xml.bind.annotation.XmlRootElement(name = "address")
> @javax.xml.bind.annotation.XmlType(propOrder = { "name" } )
> public class Address implements org.apache.isis.applib.services.dto.Dto {
>
> public static Address of(String name) {
> final Address address = new Address();
> address.setName(name);
> return address;
> }
>
> private String name;
>
> @Title
> public String getName() { return name; }
> public void setName(final String name) { this.name = name; }
>
> }
>
>
> and then:
>
>
> final ArrayList<Address> addresses = Lists.newArrayList(
> Address.of("Strawberry fields"),
> Address.of("Penny Lane"),
> Address.of("Abbey Road"),
> Address.of("Octopuses Garden"),
> Address.of("Blackburn, Lancashire"),
> Address.of("Georgia"),
> Address.of("Eiffel Tower"),
> Address.of("Isle of Wight"));
>
> public void updateStreetAddress(String field1, String field2, Address
> field3) {
>
> }
> public List<Address> autoComplete2UpdateStreetAddress(@MinLength(1)
> final String search) {
> return
> Lists.newArrayList(
> FluentIterable.from(addresses).filter(x ->
> x.getName().contains(search)).toList()
> );
> }
>
>
> nb: need to wrap the returned list in an ArrayList, else I get a "Loading
> Failed" exception. But that's a side issue.
>
>
> I wonder if there's a ticket for this missing feature... I probably
> should've checked JIRA first. Anyway, if you can't find one, go ahead and
> create a new one.
>
> Dan
>
>
>
>
>
>
> On 5 May 2016 at 07:19, Dan Haywood <da...@haywood-associates.co.uk> wrote:
>
> > I see the same behaviour (ie no drop-down) on 1.11.1; the validate
> doesn't
> > seem to be relevant:
> >
> > final ArrayList<String> addresses = Lists.newArrayList(
> > "Strawberry fields", "Penny Lane","Abbey Road","Octopuses
> > Garden","Blackburn, Lancashire","Georgia","Eiffel Tower","Isle of
> Wight");
> >
> > public void updateStreetAddress(String field1, String field2, String
> > field3) {
> >
> > }
> > public List<String> autoComplete2UpdateStreetAddress(@MinLength(3)
> > final String search) {
> > return
> > FluentIterable.from(addresses).filter(x ->
> > x.contains(search)).toList();
> > }
> >
> >
> > Conversely, a choices field works fine for both 1.11.1 and 1.12.1:
> >
> > public List<String> choices2UpdateStreetAddress() {
> > return addresses;
> > }
> >
> >
> > Perhaps this never worked. Have you seen this work in any earlier
> > versions?
> >
> >
> >
> >
> >
> >
> > On 5 May 2016 at 06:57, Dan Haywood <da...@haywood-associates.co.uk>
> wrote:
> >
> >> Hmm, I can't see a mistake here. Investigating...
> >>
> >> On 5 May 2016 at 03:41, Stephen Cameron <st...@gmail.com>
> >> wrote:
> >>
> >>> Hi,
> >>>
> >>> I am trying to use autoCompleteNXxxx() for the first time and not
> having
> >>> any success with 1.12.1, it just doesn't seem to fire my routine at
> all.
> >>> I
> >>> have the following two methods an autoComplete and a validate, the
> first
> >>> doesn't get used but the second does.
> >>>
> >>> public List<String> autoComplete2UpdateStreetAddress(@MinLength(3)
> >>> String search) {
> >>> return suburbs.listSuburbNamesLike(search);
> >>> }
> >>>
> >>> public String validate2UpdateStreetAddress(String name) {
> >>> Suburb s = suburbs.suburbForName(name);
> >>> if (s != null) {
> >>> return null;
> >>> } else
> >>> return "Unknown suburb, please check spelling and use
> proper
> >>> case";
> >>> }
> >>>
> >>> If someone can confirm its working for them in 1.12.1 or else tell me I
> >>> have made a mistake.
> >>>
> >>> Steve Cameron
> >>>
> >>
> >>
> >
>
Re: autoComplete on parameter working in 1.12.1?
Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Meantime, the work-around is to use a view model, eg:
import org.apache.isis.applib.annotation.Title;
@javax.xml.bind.annotation.XmlRootElement(name = "address")
@javax.xml.bind.annotation.XmlType(propOrder = { "name" } )
public class Address implements org.apache.isis.applib.services.dto.Dto {
public static Address of(String name) {
final Address address = new Address();
address.setName(name);
return address;
}
private String name;
@Title
public String getName() { return name; }
public void setName(final String name) { this.name = name; }
}
and then:
final ArrayList<Address> addresses = Lists.newArrayList(
Address.of("Strawberry fields"),
Address.of("Penny Lane"),
Address.of("Abbey Road"),
Address.of("Octopuses Garden"),
Address.of("Blackburn, Lancashire"),
Address.of("Georgia"),
Address.of("Eiffel Tower"),
Address.of("Isle of Wight"));
public void updateStreetAddress(String field1, String field2, Address
field3) {
}
public List<Address> autoComplete2UpdateStreetAddress(@MinLength(1)
final String search) {
return
Lists.newArrayList(
FluentIterable.from(addresses).filter(x ->
x.getName().contains(search)).toList()
);
}
nb: need to wrap the returned list in an ArrayList, else I get a "Loading
Failed" exception. But that's a side issue.
I wonder if there's a ticket for this missing feature... I probably
should've checked JIRA first. Anyway, if you can't find one, go ahead and
create a new one.
Dan
On 5 May 2016 at 07:19, Dan Haywood <da...@haywood-associates.co.uk> wrote:
> I see the same behaviour (ie no drop-down) on 1.11.1; the validate doesn't
> seem to be relevant:
>
> final ArrayList<String> addresses = Lists.newArrayList(
> "Strawberry fields", "Penny Lane","Abbey Road","Octopuses
> Garden","Blackburn, Lancashire","Georgia","Eiffel Tower","Isle of Wight");
>
> public void updateStreetAddress(String field1, String field2, String
> field3) {
>
> }
> public List<String> autoComplete2UpdateStreetAddress(@MinLength(3)
> final String search) {
> return
> FluentIterable.from(addresses).filter(x ->
> x.contains(search)).toList();
> }
>
>
> Conversely, a choices field works fine for both 1.11.1 and 1.12.1:
>
> public List<String> choices2UpdateStreetAddress() {
> return addresses;
> }
>
>
> Perhaps this never worked. Have you seen this work in any earlier
> versions?
>
>
>
>
>
>
> On 5 May 2016 at 06:57, Dan Haywood <da...@haywood-associates.co.uk> wrote:
>
>> Hmm, I can't see a mistake here. Investigating...
>>
>> On 5 May 2016 at 03:41, Stephen Cameron <st...@gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> I am trying to use autoCompleteNXxxx() for the first time and not having
>>> any success with 1.12.1, it just doesn't seem to fire my routine at all.
>>> I
>>> have the following two methods an autoComplete and a validate, the first
>>> doesn't get used but the second does.
>>>
>>> public List<String> autoComplete2UpdateStreetAddress(@MinLength(3)
>>> String search) {
>>> return suburbs.listSuburbNamesLike(search);
>>> }
>>>
>>> public String validate2UpdateStreetAddress(String name) {
>>> Suburb s = suburbs.suburbForName(name);
>>> if (s != null) {
>>> return null;
>>> } else
>>> return "Unknown suburb, please check spelling and use proper
>>> case";
>>> }
>>>
>>> If someone can confirm its working for them in 1.12.1 or else tell me I
>>> have made a mistake.
>>>
>>> Steve Cameron
>>>
>>
>>
>
Re: autoComplete on parameter working in 1.12.1?
Posted by Dan Haywood <da...@haywood-associates.co.uk>.
I see the same behaviour (ie no drop-down) on 1.11.1; the validate doesn't
seem to be relevant:
final ArrayList<String> addresses = Lists.newArrayList(
"Strawberry fields", "Penny Lane","Abbey Road","Octopuses
Garden","Blackburn, Lancashire","Georgia","Eiffel Tower","Isle of Wight");
public void updateStreetAddress(String field1, String field2, String
field3) {
}
public List<String> autoComplete2UpdateStreetAddress(@MinLength(3)
final String search) {
return
FluentIterable.from(addresses).filter(x ->
x.contains(search)).toList();
}
Conversely, a choices field works fine for both 1.11.1 and 1.12.1:
public List<String> choices2UpdateStreetAddress() {
return addresses;
}
Perhaps this never worked. Have you seen this work in any earlier versions?
On 5 May 2016 at 06:57, Dan Haywood <da...@haywood-associates.co.uk> wrote:
> Hmm, I can't see a mistake here. Investigating...
>
> On 5 May 2016 at 03:41, Stephen Cameron <st...@gmail.com>
> wrote:
>
>> Hi,
>>
>> I am trying to use autoCompleteNXxxx() for the first time and not having
>> any success with 1.12.1, it just doesn't seem to fire my routine at all. I
>> have the following two methods an autoComplete and a validate, the first
>> doesn't get used but the second does.
>>
>> public List<String> autoComplete2UpdateStreetAddress(@MinLength(3)
>> String search) {
>> return suburbs.listSuburbNamesLike(search);
>> }
>>
>> public String validate2UpdateStreetAddress(String name) {
>> Suburb s = suburbs.suburbForName(name);
>> if (s != null) {
>> return null;
>> } else
>> return "Unknown suburb, please check spelling and use proper
>> case";
>> }
>>
>> If someone can confirm its working for them in 1.12.1 or else tell me I
>> have made a mistake.
>>
>> Steve Cameron
>>
>
>
Re: autoComplete on parameter working in 1.12.1?
Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Hmm, I can't see a mistake here. Investigating...
On 5 May 2016 at 03:41, Stephen Cameron <st...@gmail.com> wrote:
> Hi,
>
> I am trying to use autoCompleteNXxxx() for the first time and not having
> any success with 1.12.1, it just doesn't seem to fire my routine at all. I
> have the following two methods an autoComplete and a validate, the first
> doesn't get used but the second does.
>
> public List<String> autoComplete2UpdateStreetAddress(@MinLength(3)
> String search) {
> return suburbs.listSuburbNamesLike(search);
> }
>
> public String validate2UpdateStreetAddress(String name) {
> Suburb s = suburbs.suburbForName(name);
> if (s != null) {
> return null;
> } else
> return "Unknown suburb, please check spelling and use proper
> case";
> }
>
> If someone can confirm its working for them in 1.12.1 or else tell me I
> have made a mistake.
>
> Steve Cameron
>