Hi Michal, (I'm cc'ing the Isis users list, since this might be of interest more generally).
On 16 February 2014 16:13, Michal Vaško <[email protected]> wrote: > > Yes I read > LocationLookupService.java<https://github.com/danhaywood/isis-wicket-gmap3/blob/master/service/src/main/java/com/danhaywood/isis/wicket/gmap3/service/LocationLookupService.java> > class > but if I understood well this class have one input text and return one > output long and latit. > > I need UI component where If I start write for example "Ko" component > autocomplete Kos - Grece, Kooskia - US . Kosice - Slovakia .... and more > ... > > After when user select one item on this component is it possible to use > your location service. Your api have similar component like > google.maps.places.Autocomplete ui component? or google map only ? > I think that what you want *could* be achieved using an "Address" view model, an autoComplete lookup and an extension to LocationLookupService to call the appropriate API. However, reading the docs for the geocoding service [1] (that LocationLookupService calls), they say that the service is only intended for server-side lookup, not for UI widgets. For that, they point over to a Javascript component [2]. Integrating a new Javascript component into Wicket viewer is certainly doable, but would take more work, I think. If you want to try developing it, I'll give you some hints. But, if you do want to (ab)use the existing server-side geocoding service (beware of quotas), then you could use the following code: *Address (just a simple wrapper around a string):* import org.apache.isis.applib.AbstractViewModel; import org.apache.isis.applib.annotation.AutoComplete; import org.apache.isis.applib.annotation.Title; @AutoComplete(repository=Addresses.class) public class Address extends AbstractViewModel { @Override public String viewModelMemento() { return addresses.mementoFor(getDescription()); } @Override public void viewModelInit(String memento) { setDescription(addresses.descriptionFrom(memento)); } // ////////////////////////////////////// private String description; @Title public String getDescription() { return description; } public void setDescription(String address) { this.description = address; } // ////////////////////////////////////// @javax.inject.Inject private Addresses addresses; } *Addresses:* import java.util.List; import com.google.common.base.Function; import com.google.common.collect.Lists; import org.apache.isis.applib.DomainObjectContainer; import org.apache.isis.applib.services.memento.MementoService; public class Addresses { public List<Address> autoComplete(String address) { // TODO: hit a new method in the LocationLookupService that hits the relevant API of the geocoding service here, to retrieve an array of address descriptions... final List<String> addressDescriptions = ...; // wrap each in an Address view model return Lists.transform(addressDescriptions, new Function<String, Address>() { @Override public Address apply(String desc) { return newAddress(desc); } }); } private Address newAddress(String description) { return container.newViewModelInstance(Address.class, mementoFor(description)); } // ////////////////////////////////////// String mementoFor(String description) { return mementoService.create().set("description", description).asString(); } String descriptionFrom(String memento) { return mementoService.parse(memento).get("description", String.class); } // ////////////////////////////////////// @javax.inject.Inject private DomainObjectContainer container; @javax.inject.Inject private MementoService mementoService; } *Usage:* public ToDoItem updateLocation(@Named("Address") final Address address) { final Location location = this.locationLookupService.lookup(address.getDescription()); setLocation(location); return this; } HTH Dan [1] https://developers.google.com/maps/documentation/geocoding/ [2] https://developers.google.com/maps/documentation/javascript/geocoding > Many thanks ! > > > > 2014-02-16 17:05 GMT+01:00 Michal Vaško <[email protected]>: > > >> >> 2014-02-16 16:57 GMT+01:00 Dan Haywood <[email protected]>: >> >> >>> >>> >>> On 15 February 2014 20:59, Michal Vaško <[email protected]> wrote: >>> >>>> Hi, >>>> >>>> Hi Michal, welcome to the mailing list >>> >>> >>> >>>> I start created wicket application >>>> >>> >>> >>> ... good to hear.... >>> >>> >>> >>>> and now a need something like google.maps.places.Autocomplete, I need >>>> select some city. Is it suport in your wicket api? >>>> >>> >>> I presume you are using the gmap3 extension [1] ? As well as providing >>> the UI extension to the Wicket viewer, it also has a LocationLookupService >>> [2] which does a search based upon a freetext description... perhaps this >>> is what you are after? >>> >>> Cheers >>> Dan >>> >>> [1] https://github.com/danhaywood/isis-wicket-gmap3 >>> [2] >>> https://github.com/danhaywood/isis-wicket-gmap3/blob/master/service/src/main/java/com/danhaywood/isis/wicket/gmap3/service/LocationLookupService.java >>> >>> >>> >>>> Many thanks. >>>> >>> >>> >>> >>>> -- >>>> S pozdravom Michal Vasko >>>> >>> >>> >> >> >> -- >> S pozdravom Michal Vasko >> > > > > -- > S pozdravom Michal Vasko >
