You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devicemap.apache.org by wk...@apache.org on 2016/06/19 19:31:05 UTC

svn commit: r1749196 [2/2] - in /devicemap/trunk/examples/1.0/java/gwt: ./ gwt-model/ gwt-model/src/ gwt-model/src/main/ gwt-model/src/main/java/ gwt-model/src/main/java/org/ gwt-model/src/main/java/org/devicemap/ gwt-model/src/main/java/org/devicemap/...

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/mvp/place/PersonDetailPlace.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/mvp/place/PersonDetailPlace.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/mvp/place/PersonDetailPlace.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/mvp/place/PersonDetailPlace.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,47 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.mvp.place;
+
+import com.github.apetrelli.gwtintegration.util.shared.StringUtils;
+import com.google.gwt.place.shared.Place;
+import com.google.gwt.place.shared.PlaceTokenizer;
+
+/**
+ * Place for Welcome.
+ */
+public class PersonDetailPlace extends Place {
+	
+	private Long id;
+	
+	public PersonDetailPlace() {
+		this(null);
+	}
+	
+	public PersonDetailPlace(Long id) {
+		this.id = id;
+	}
+	
+	public Long getId() {
+		return id;
+	}
+	
+	/**
+	 * Implementation of Tokenizer for this class.
+	 */
+	public static class Tokenizer implements PlaceTokenizer<PersonDetailPlace> {
+
+		@Override
+		public PersonDetailPlace getPlace(String token) {
+			Long id = null;
+			if (!StringUtils.isBlank(token)) {
+				id = Long.decode(token);
+			}
+			return new PersonDetailPlace(id);
+		}
+
+		@Override
+		public String getToken(PersonDetailPlace place) {
+			return place.id != null ? place.id.toString() : "";
+		}
+		
+	}
+
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/mvp/place/WelcomePlace.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/mvp/place/WelcomePlace.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/mvp/place/WelcomePlace.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/mvp/place/WelcomePlace.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,28 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.mvp.place;
+
+import com.google.gwt.place.shared.Place;
+import com.google.gwt.place.shared.PlaceTokenizer;
+
+/**
+ * Place for Welcome.
+ */
+public class WelcomePlace extends Place {
+	
+	/**
+	 * Implementation of Tokenizer for this class.
+	 */
+	public static class Tokenizer implements PlaceTokenizer<WelcomePlace> {
+
+		@Override
+		public WelcomePlace getPlace(String token) {
+			return new WelcomePlace();
+		}
+
+		@Override
+		public String getToken(WelcomePlace place) {
+			return "";
+		}
+		
+	}
+
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/ApplicationRequestFactory.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/ApplicationRequestFactory.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/ApplicationRequestFactory.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/ApplicationRequestFactory.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,20 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+
+package org.devicemap.examples.gwtcanvasdemo.module.client.requestfactory;
+
+import org.devicemap.examples.gwtcanvasdemo.module.client.requestfactory.request.PersonRequest;
+import com.google.web.bindery.requestfactory.shared.LoggingRequest;
+import com.google.web.bindery.requestfactory.shared.RequestFactory;
+
+/**
+ * The main request factory.
+ */
+public interface ApplicationRequestFactory extends RequestFactory {
+	
+	/**
+	 * @return a GWT logging request.
+	 */
+	LoggingRequest loggingRequest();
+	
+	PersonRequest personRequest();
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/proxy/PersonProxy.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/proxy/PersonProxy.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/proxy/PersonProxy.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/proxy/PersonProxy.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,45 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.requestfactory.proxy;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.NotEmpty;
+
+import org.devicemap.examples.gwtcanvasdemo.model.domain.Person;
+import org.devicemap.examples.gwtcanvasdemo.module.server.locator.PersonLocator;
+import org.devicemap.examples.gwtcanvasdemo.shared.shared.enums.PersonalTitle;
+import com.google.web.bindery.requestfactory.shared.EntityProxy;
+import com.google.web.bindery.requestfactory.shared.ProxyFor;
+
+@ProxyFor(value = Person.class, locator = PersonLocator.class)
+public interface PersonProxy extends EntityProxy {
+	
+	Long getId();
+	
+	Integer getVersion();
+	
+	@NotNull
+	PersonalTitle getPersonalTitle();
+	
+	void setPersonalTitle(PersonalTitle personalTitle);
+	
+	@NotEmpty
+	String getFirstName();
+	
+	void setFirstName(String firstName);
+	
+	@NotEmpty
+	String getLastName();
+	
+	void setLastName(String lastName);
+	
+	Date getBirthDate();
+	
+	void setBirthDate(Date birthDate);
+	
+	BigDecimal getAnnualIncome();
+	
+	void setAnnualIncome(BigDecimal annualIncome);
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/request/PersonRequest.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/request/PersonRequest.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/request/PersonRequest.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/requestfactory/request/PersonRequest.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,24 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.requestfactory.request;
+
+import java.util.List;
+
+import com.github.apetrelli.gwtintegration.editor.client.requestfactory.CrudRequest;
+import com.github.apetrelli.gwtintegration.spring.context.server.requestfactory.GwtServiceLocator;
+import org.devicemap.examples.gwtcanvasdemo.model.service.PersonService;
+import org.devicemap.examples.gwtcanvasdemo.module.client.requestfactory.proxy.PersonProxy;
+import com.google.web.bindery.requestfactory.shared.Request;
+import com.google.web.bindery.requestfactory.shared.Service;
+
+@Service(value = PersonService.class, locator = GwtServiceLocator.class)
+public interface PersonRequest extends CrudRequest<PersonProxy, Long> {
+	
+	Request<PersonProxy> findOne(Long id);
+	
+	Request<PersonProxy> save(PersonProxy entityProxy);
+	
+	Request<Void> delete(Long id);
+
+	Request<Long> countAllPersons();
+	
+	Request<List<PersonProxy>> findAllPersons();
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/ListPersonsView.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/ListPersonsView.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/ListPersonsView.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/ListPersonsView.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,14 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.ui;
+
+import java.util.List;
+
+import org.devicemap.examples.gwtcanvasdemo.module.client.requestfactory.proxy.PersonProxy;
+import com.github.apetrelli.gwtintegration.mvp.client.ui.MvpView;
+
+public interface ListPersonsView extends MvpView<ListPersonsView.Presenter> {
+	
+	void setPersons(List<PersonProxy> persons);
+	
+	public interface Presenter extends MvpView.Presenter {
+	}
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/PersonDetailView.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/PersonDetailView.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/PersonDetailView.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/PersonDetailView.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,17 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.ui;
+
+import org.devicemap.examples.gwtcanvasdemo.module.client.ui.editor.PersonEditor;
+import com.github.apetrelli.gwtintegration.mvp.client.ui.MvpView;
+
+public interface PersonDetailView extends MvpView<PersonDetailView.Presenter> {
+	
+	PersonEditor getEditor();
+	
+	void canDelete(boolean canDelete);
+	
+	public interface Presenter extends MvpView.Presenter {
+		void save();
+		
+		void delete();
+	}
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/WelcomeView.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/WelcomeView.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/WelcomeView.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/WelcomeView.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,29 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.ui;
+
+import com.google.gwt.place.shared.Place;
+import com.google.gwt.user.client.ui.IsWidget;
+
+/**
+ * Interface view that describe the welcome web-page.
+ *
+ */
+public interface WelcomeView extends IsWidget {
+
+	/**
+	 * Set the associated activity.
+	 * @param presenter associated Activity.
+	 */
+	void setPresenter(Presenter presenter);
+	
+	/**
+	 * Interface bridge to activity and view.
+	 *
+	 */
+	public interface Presenter {
+		/**
+		 * Redirect the user to the indicate  place.
+		 * @param place Place associated.
+		 */
+		void goTo(Place place);
+	}
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/editor/PersonEditor.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/editor/PersonEditor.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/editor/PersonEditor.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/editor/PersonEditor.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,70 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.ui.editor;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import com.github.apetrelli.gwtintegration.editor.client.widget.LeafValueEditorDecorator;
+import com.github.apetrelli.gwtintegration.editor.client.widget.ValueDateBox;
+import com.github.apetrelli.gwtintegration.editor.client.widget.ValueListBox;
+import org.devicemap.examples.gwtcanvasdemo.module.client.requestfactory.proxy.PersonProxy;
+import org.devicemap.examples.gwtcanvasdemo.shared.shared.enums.PersonalTitle;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.editor.client.Editor;
+import com.google.gwt.editor.ui.client.ValueBoxEditorDecorator;
+import com.google.gwt.text.shared.Renderer;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Widget;
+
+public class PersonEditor extends Composite implements Editor<PersonProxy>{
+	
+	@UiField LeafValueEditorDecorator<ValueListBox<PersonalTitle>, PersonalTitle> personalTitle;
+	
+	@Ignore
+	@UiField(provided=true) ValueListBox<PersonalTitle> personalTitleListBox;
+	
+	@UiField ValueBoxEditorDecorator<String> firstName;
+	
+	@UiField ValueBoxEditorDecorator<String> lastName;
+	
+	@UiField LeafValueEditorDecorator<ValueDateBox, Date> birthDate;
+	
+	@UiField ValueBoxEditorDecorator<BigDecimal> annualIncome;
+	
+	private static PersonEditorUiBinder uiBinder = GWT
+			.create(PersonEditorUiBinder.class);
+
+	interface PersonEditorUiBinder extends UiBinder<Widget, PersonEditor> {
+	}
+
+	public PersonEditor() {
+		initPersonalTitle();
+		initWidget(uiBinder.createAndBindUi(this));
+	}
+
+	private void initPersonalTitle() {
+		personalTitleListBox = new ValueListBox<PersonalTitle>(new Renderer<PersonalTitle>() {
+
+			@Override
+			public String render(PersonalTitle object) {
+				return object != null ? object.toString() : "";
+			}
+
+			@Override
+			public void render(PersonalTitle object, Appendable appendable)
+					throws IOException {
+				appendable.append(render(object));
+			}
+		});
+		List<PersonalTitle> titles = new ArrayList<PersonalTitle>();
+		titles.add(null);
+		titles.addAll(Arrays.asList(PersonalTitle.values()));
+		personalTitleListBox.setAcceptableValues(titles);
+	}
+
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/editor/PersonEditor.ui.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/editor/PersonEditor.ui.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/editor/PersonEditor.ui.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/editor/PersonEditor.ui.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,43 @@
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+	xmlns:g="urn:import:com.google.gwt.user.client.ui"
+	xmlns:e='urn:import:com.google.gwt.editor.ui.client'
+	xmlns:e1='urn:import:com.github.apetrelli.gwtintegration.editor.client.widget'>
+	<ui:style>
+		
+	</ui:style>
+	<ui:with field="util" type="org.devicemap.examples.gwtcanvasdemo.module.client.util.ViewUtils" />
+	<ui:with type="org.devicemap.examples.gwtcanvasdemo.module.client.i18n.MainMessages" field="messages" />
+	<g:FlowPanel>
+		<g:Label text="{messages.personalTitle}" />
+		<e1:LeafValueEditorDecorator ui:field="personalTitle">
+			<e1:valuebox>
+				<e1:ValueListBox ui:field="personalTitleListBox" />
+			</e1:valuebox>
+		</e1:LeafValueEditorDecorator>
+		<g:Label text="{messages.firstName}" />
+		<e:ValueBoxEditorDecorator ui:field="firstName">
+			<e:valuebox>
+				<g:TextBox />
+			</e:valuebox>
+		</e:ValueBoxEditorDecorator>
+		<g:Label text="{messages.lastName}" />
+		<e:ValueBoxEditorDecorator ui:field="lastName">
+			<e:valuebox>
+				<g:TextBox />
+			</e:valuebox>
+		</e:ValueBoxEditorDecorator>
+		<g:Label text="{messages.birthDate}" />
+		<e1:LeafValueEditorDecorator ui:field="birthDate">
+			<e1:valuebox>
+				<e1:ValueDateBox format="{util.getDateFormatForDateBox}" />
+			</e1:valuebox>
+		</e1:LeafValueEditorDecorator>
+		<g:Label text="{messages.annualIncome}" />
+		<e:ValueBoxEditorDecorator ui:field="annualIncome">
+			<e:valuebox>
+				<e1:ValueBox renderer="{util.getMoneyRenderer}" parser="{util.getMoneyParser}" />
+			</e:valuebox>
+		</e:ValueBoxEditorDecorator>
+	</g:FlowPanel>
+</ui:UiBinder> 
\ No newline at end of file

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/gwtcanvasdemoTemplate.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/gwtcanvasdemoTemplate.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/gwtcanvasdemoTemplate.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/gwtcanvasdemoTemplate.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,30 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.ui;
+
+import com.github.apetrelli.gwtintegration.mvp.client.ui.HasBody;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.user.client.ui.AcceptsOneWidget;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.SimplePanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class gwtcanvasdemoTemplate extends Composite implements HasBody {
+
+	private static gwtcanvasdemoTemplateUiBinder uiBinder = GWT
+			.create(gwtcanvasdemoTemplateUiBinder.class);
+	@UiField SimplePanel body;
+
+	interface gwtcanvasdemoTemplateUiBinder extends
+			UiBinder<Widget, gwtcanvasdemoTemplate> {
+	}
+
+	public gwtcanvasdemoTemplate() {
+		initWidget(uiBinder.createAndBindUi(this));
+	}
+	
+	@Override
+	public AcceptsOneWidget getBody() {
+		return body;
+	}
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/gwtcanvasdemoTemplate.ui.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/gwtcanvasdemoTemplate.ui.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/gwtcanvasdemoTemplate.ui.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/gwtcanvasdemoTemplate.ui.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,33 @@
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+	xmlns:g="urn:import:com.google.gwt.user.client.ui">
+	<ui:style>
+		.important {
+			font-weight: bold;
+		}
+		.resized {
+			height: 100%
+		}
+	</ui:style>
+	<ui:with type="org.devicemap.examples.gwtcanvasdemo.module.client.i18n.MainMessages" field="messages" />
+	<g:DockLayoutPanel>
+		<g:north size="100.0">
+			<g:FlowPanel>
+				<g:Label text="{messages.title}"/>
+			</g:FlowPanel>
+		</g:north>
+		<g:west size="100.0">
+			<g:FlowPanel>
+				<g:Hyperlink text="{messages.persons}" targetHistoryToken="ListPersonsPlace:" />
+			</g:FlowPanel>
+		</g:west>
+		<g:center>
+			<g:SimplePanel ui:field="body"/>
+		</g:center>
+		<g:south size="100.0">
+			<g:FlowPanel>
+				<g:Label text="{messages.footer}"/>
+			</g:FlowPanel>
+		</g:south>
+	</g:DockLayoutPanel>
+</ui:UiBinder> 
\ No newline at end of file

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/ListPersonsViewImpl.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/ListPersonsViewImpl.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/ListPersonsViewImpl.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/ListPersonsViewImpl.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,113 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.ui.impl;
+
+import java.util.Comparator;
+import java.util.List;
+
+import com.github.apetrelli.gwtintegration.cellview.client.builder.CellTableWithListDataBuilder;
+import com.github.apetrelli.gwtintegration.cellview.client.widget.SimplePagedTable;
+import com.github.apetrelli.gwtintegration.mvp.client.ui.impl.AbstractMvpView;
+import com.github.apetrelli.gwtintegration.util.shared.ObjectUtils;
+import org.devicemap.examples.gwtcanvasdemo.module.client.mvp.place.PersonDetailPlace;
+import org.devicemap.examples.gwtcanvasdemo.module.client.requestfactory.proxy.PersonProxy;
+import org.devicemap.examples.gwtcanvasdemo.module.client.ui.ListPersonsView;
+import org.devicemap.examples.gwtcanvasdemo.shared.shared.enums.PersonalTitle;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiHandler;
+import com.google.gwt.user.cellview.client.TextColumn;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.view.client.CellPreviewEvent;
+import com.google.gwt.view.client.ProvidesKey;
+
+public class ListPersonsViewImpl extends AbstractMvpView<ListPersonsView.Presenter> implements ListPersonsView {
+
+	private static ListPersonsViewImplUiBinder uiBinder = GWT
+			.create(ListPersonsViewImplUiBinder.class);
+
+	interface ListPersonsViewImplUiBinder extends
+			UiBinder<Widget, ListPersonsViewImpl> {
+	}
+	
+	@UiField(provided=true) SimplePagedTable<PersonProxy> dataTable;
+
+	public ListPersonsViewImpl() {
+		CellTableWithListDataBuilder<PersonProxy> builder = CellTableWithListDataBuilder.create();
+		builder.createDefaultDataProvider()
+				.setKeyProvider(new PersonKeyProvider())
+				.createDefaultSelectionModel().addSelectionCellboxColumn()
+				.addColumn("Title", new TextColumn<PersonProxy>() {
+
+					@Override
+					public String getValue(PersonProxy object) {
+						PersonalTitle title = object.getPersonalTitle();
+						return title != null ? title.toString() : "-";
+					}
+				}, new Comparator<PersonProxy>() {
+
+					@Override
+					public int compare(PersonProxy o1, PersonProxy o2) {
+						return ObjectUtils.compare(o1.getPersonalTitle(),
+								o2.getPersonalTitle());
+					}
+				})
+				.addColumn("Surname", new TextColumn<PersonProxy>() {
+
+					@Override
+					public String getValue(PersonProxy object) {
+						return object.getLastName();
+					}
+				}, new Comparator<PersonProxy>() {
+
+					@Override
+					public int compare(PersonProxy o1, PersonProxy o2) {
+						return o1.getLastName().compareTo(o2.getLastName());
+					}
+				})
+				.addColumn("Name", new TextColumn<PersonProxy>() {
+
+					@Override
+					public String getValue(PersonProxy object) {
+						return object.getFirstName();
+					}
+				}, new Comparator<PersonProxy>() {
+
+					@Override
+					public int compare(PersonProxy o1, PersonProxy o2) {
+						return o1.getLastName().compareTo(o2.getFirstName());
+					}
+				}).setCellPreviewHandler(new CellPreviewEvent.Handler<PersonProxy>() {
+
+					@Override
+					public void onCellPreview(CellPreviewEvent<PersonProxy> event) {
+						   String type = event.getNativeEvent().getType();
+		                   if (type.equals("click")) {
+		                	   presenter.goTo(new PersonDetailPlace(event.getValue().getId()));
+		                   }
+		            }
+				});
+		dataTable = new SimplePagedTable<PersonProxy>(builder);
+		dataTable.setDefaultSortColumnIndex(2);
+		dataTable.setPageSize(5);
+		initWidget(uiBinder.createAndBindUi(this));
+	}
+
+	@Override
+	public void setPersons(List<PersonProxy> persons) {
+		dataTable.setItems(persons);
+	}
+
+	private static class PersonKeyProvider implements ProvidesKey<PersonProxy> {
+
+		@Override
+		public Object getKey(PersonProxy item) {
+			return item.getId();
+		}
+		
+	}
+	@UiHandler("add")
+	void onAddClick(ClickEvent event) {
+		presenter.goTo(new PersonDetailPlace());
+	}
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/ListPersonsViewImpl.ui.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/ListPersonsViewImpl.ui.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/ListPersonsViewImpl.ui.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/ListPersonsViewImpl.ui.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,14 @@
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+	xmlns:g="urn:import:com.google.gwt.user.client.ui"
+	xmlns:c="urn:import:com.google.gwt.user.cellview.client"
+	xmlns:w="urn:import:com.github.apetrelli.gwtintegration.cellview.client.widget">
+	<ui:style>
+		
+	</ui:style>
+	<ui:with type="org.devicemap.examples.gwtcanvasdemo.module.client.i18n.MainMessages" field="messages" />
+	<g:FlowPanel>
+		<w:SimplePagedTable ui:field="dataTable" />
+		<g:Button text="{messages.add}" ui:field="add" />
+	</g:FlowPanel>
+</ui:UiBinder> 
\ No newline at end of file

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/PersonDetailViewImpl.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/PersonDetailViewImpl.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/PersonDetailViewImpl.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/PersonDetailViewImpl.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,52 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.ui.impl;
+
+import org.devicemap.examples.gwtcanvasdemo.module.client.ui.PersonDetailView;
+import org.devicemap.examples.gwtcanvasdemo.module.client.ui.editor.PersonEditor;
+import com.github.apetrelli.gwtintegration.mvp.client.ui.impl.AbstractMvpView;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiHandler;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.Widget;
+
+public class PersonDetailViewImpl extends AbstractMvpView<PersonDetailView.Presenter> implements PersonDetailView {
+
+	@UiField PersonEditor editor;
+	
+	@UiField Button save;
+	
+	@UiField Button delete;
+	
+	private static PersonDetailViewImplUiBinder uiBinder = GWT
+			.create(PersonDetailViewImplUiBinder.class);
+
+	interface PersonDetailViewImplUiBinder extends
+			UiBinder<Widget, PersonDetailViewImpl> {
+	}
+
+	public PersonDetailViewImpl() {
+		initWidget(uiBinder.createAndBindUi(this));
+	}
+
+	@Override
+	public PersonEditor getEditor() {
+		return editor;
+	}
+	
+	@Override
+	public void canDelete(boolean canDelete) {
+		delete.setVisible(canDelete);
+	}
+
+	@UiHandler("save")
+	void onSaveClick(ClickEvent event) {
+		presenter.save();
+	}
+
+	@UiHandler("delete")
+	void onDeleteClick(ClickEvent event) {
+		presenter.delete();
+	}
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/PersonDetailViewImpl.ui.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/PersonDetailViewImpl.ui.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/PersonDetailViewImpl.ui.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/PersonDetailViewImpl.ui.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,14 @@
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+	xmlns:g="urn:import:com.google.gwt.user.client.ui"
+	xmlns:e="urn:import:org.devicemap.examples.gwtcanvasdemo.module.client.ui.editor">
+	<ui:style>
+		
+	</ui:style>
+	<ui:with type="org.devicemap.examples.gwtcanvasdemo.module.client.i18n.MainMessages" field="messages" />
+	<g:FlowPanel>
+		<e:PersonEditor ui:field="editor" />
+		<g:Button ui:field="save" text="{messages.save}" />
+		<g:Button ui:field="delete" text="{messages.delete}" />
+	</g:FlowPanel>
+</ui:UiBinder> 
\ No newline at end of file

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/WelcomeViewImpl.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/WelcomeViewImpl.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/WelcomeViewImpl.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/WelcomeViewImpl.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,37 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.ui.impl;
+
+import org.devicemap.examples.gwtcanvasdemo.module.client.ui.WelcomeView;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * Unique implementation of view welcome.
+ * Define and management the element of page.
+ *
+ */
+public class WelcomeViewImpl extends Composite implements WelcomeView {
+	
+	private static WelcomeViewImplUiBinder uiBinder = GWT
+			.create(WelcomeViewImplUiBinder.class);
+
+	/**
+	 * Bridge to view and UiBinder xml.
+	 *
+	 */
+	interface WelcomeViewImplUiBinder extends UiBinder<Widget, WelcomeViewImpl> {
+	}
+
+	/**
+	 * Constructor.
+	 */
+	public WelcomeViewImpl() {
+		initWidget(uiBinder.createAndBindUi(this));
+	}
+	
+	@Override
+	public void setPresenter(Presenter presenter) {
+		// Does nothing for the moment.
+	}
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/WelcomeViewImpl.ui.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/WelcomeViewImpl.ui.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/WelcomeViewImpl.ui.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/ui/impl/WelcomeViewImpl.ui.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,17 @@
+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+	xmlns:g="urn:import:com.google.gwt.user.client.ui">
+	<ui:style>
+		.important {
+			font-weight: bold;
+		}
+		
+		.sideBySide {
+			float: left;
+		}
+	</ui:style>
+	<ui:with type="org.devicemap.examples.gwtcanvasdemo.module.client.i18n.MainMessages" field="messages" />
+	<g:FlowPanel>
+		<g:Label text="{messages.welcomeText}" />
+	</g:FlowPanel>
+</ui:UiBinder> 
\ No newline at end of file

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/util/ViewUtils.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/util/ViewUtils.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/util/ViewUtils.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/util/ViewUtils.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,47 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.util;
+
+import java.math.BigDecimal;
+
+import com.github.apetrelli.gwtintegration.editor.client.text.BigDecimalParser;
+import com.github.apetrelli.gwtintegration.editor.client.text.NumberFormatRenderer;
+import com.github.apetrelli.gwtintegration.editor.client.widget.ValueDateBox;
+import com.github.apetrelli.gwtintegration.editor.client.widget.ValueDateBox.ParsingFormat;
+import com.google.gwt.i18n.client.DateTimeFormat;
+import com.google.gwt.i18n.client.NumberFormat;
+import com.google.gwt.text.shared.Parser;
+import com.google.gwt.text.shared.Renderer;
+
+public class ViewUtils {
+	
+	private static DateTimeFormat dateFormat = DateTimeFormat.getFormat("dd/MM/yyyy");
+
+	private static ParsingFormat dateFormatForDateBox = new ValueDateBox.DefaultParsingFormat(dateFormat); 
+	
+	private static NumberFormat moneyFormat = NumberFormat.getFormat("#0.00");
+	
+	private static Renderer<BigDecimal> moneyRenderer = new NumberFormatRenderer<BigDecimal>(moneyFormat);
+
+	private static Parser<BigDecimal> moneyParser = BigDecimalParser.instance();
+	
+	private ViewUtils() {}
+	
+	public static DateTimeFormat getDateFormat() {
+		return dateFormat;
+	}
+	
+	public static ParsingFormat getDateFormatForDateBox() {
+		return dateFormatForDateBox;
+	}
+	
+	public static NumberFormat getMoneyFormat() {
+		return moneyFormat;
+	}
+	
+	public static Parser<BigDecimal> getMoneyParser() {
+		return moneyParser;
+	}
+	
+	public static Renderer<BigDecimal> getMoneyRenderer() {
+		return moneyRenderer;
+	}
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/validation/ValidatorFactory.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/validation/ValidatorFactory.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/validation/ValidatorFactory.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/client/validation/ValidatorFactory.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,23 @@
+package org.devicemap.examples.gwtcanvasdemo.module.client.validation;
+
+import javax.validation.Validator;
+
+import org.devicemap.examples.gwtcanvasdemo.module.client.requestfactory.proxy.PersonProxy;
+import com.google.gwt.core.shared.GWT;
+import com.google.gwt.validation.client.AbstractGwtValidatorFactory;
+import com.google.gwt.validation.client.GwtValidation;
+import com.google.gwt.validation.client.impl.AbstractGwtValidator;
+
+public class ValidatorFactory extends AbstractGwtValidatorFactory {
+
+	@GwtValidation({PersonProxy.class})
+	public interface GwtValidator extends Validator {
+		
+	}
+	
+	@Override
+	public AbstractGwtValidator createValidator() {
+		return GWT.create(GwtValidator.class);
+	}
+
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/locator/PersonLocator.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/locator/PersonLocator.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/locator/PersonLocator.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/locator/PersonLocator.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,45 @@
+package org.devicemap.examples.gwtcanvasdemo.module.server.locator;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import org.devicemap.examples.gwtcanvasdemo.model.domain.Person;
+import org.devicemap.examples.gwtcanvasdemo.model.service.PersonService;
+import com.github.apetrelli.gwtintegration.hibernate.core.locator.DeproxierDeletableLocator;
+
+@Component
+public class PersonLocator extends DeproxierDeletableLocator<Person, Long> {
+
+	@Autowired
+	private PersonService service;
+	
+	@Override
+	public Person create(Class<? extends Person> clazz) {
+		return new Person();
+	}
+
+	@Override
+	public Person find(Long id) {
+		return service.findOne(id);
+	}
+
+	@Override
+	public Class<Person> getDomainType() {
+		return Person.class;
+	}
+
+	@Override
+	public Long getId(Person domainObject) {
+		return domainObject.getId();
+	}
+
+	@Override
+	public Class<Long> getIdType() {
+		return Long.class;
+	}
+
+	@Override
+	public Object getVersion(Person domainObject) {
+		return domainObject.getVersion();
+	}
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/PassAllAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/PassAllAuthenticationProvider.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/PassAllAuthenticationProvider.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/PassAllAuthenticationProvider.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,53 @@
+package org.devicemap.examples.gwtcanvasdemo.module.server.security;
+
+import org.springframework.dao.DataAccessException;
+import org.springframework.security.authentication.AuthenticationServiceException;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+
+public class PassAllAuthenticationProvider extends
+		AbstractUserDetailsAuthenticationProvider {
+
+    private UserDetailsService userDetailsService;
+
+	@Override
+	protected void additionalAuthenticationChecks(UserDetails userDetails,
+			UsernamePasswordAuthenticationToken authentication)
+			throws AuthenticationException {
+		// Do nothing
+
+	}
+
+    public void setUserDetailsService(UserDetailsService userDetailsService) {
+        this.userDetailsService = userDetailsService;
+    }
+
+    protected UserDetailsService getUserDetailsService() {
+        return userDetailsService;
+    }
+
+	@Override
+	protected UserDetails retrieveUser(String username,
+			UsernamePasswordAuthenticationToken authentication)
+			throws AuthenticationException {
+		UserDetails loadedUser;
+
+		try {
+			loadedUser = this.getUserDetailsService().loadUserByUsername(
+					username);
+		} catch (DataAccessException repositoryProblem) {
+			throw new AuthenticationServiceException(
+					repositoryProblem.getMessage(), repositoryProblem);
+		}
+
+		if (loadedUser == null) {
+			throw new AuthenticationServiceException(
+					"UserDetailsService returned null, which is an interface contract violation");
+		}
+		return loadedUser;
+	}
+
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SampleAuthority.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SampleAuthority.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SampleAuthority.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SampleAuthority.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,24 @@
+package org.devicemap.examples.gwtcanvasdemo.module.server.security;
+
+import org.springframework.security.core.GrantedAuthority;
+
+public class SampleAuthority implements GrantedAuthority {
+
+	private static final long serialVersionUID = -4504114106906301183L;
+
+	private String authority;
+	
+	public static final SampleAuthority READER = new SampleAuthority("READER");
+
+	public static final SampleAuthority WRITER = new SampleAuthority("WRITER");
+
+	private SampleAuthority(String authority) {
+		this.authority = authority;
+	}
+
+	@Override
+	public String getAuthority() {
+		return authority;
+	}
+
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SampleUserDetailsService.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SampleUserDetailsService.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SampleUserDetailsService.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SampleUserDetailsService.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,33 @@
+package org.devicemap.examples.gwtcanvasdemo.module.server.security;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.userdetails.AuthenticationUserDetailsService;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+
+public class SampleUserDetailsService implements UserDetailsService, AuthenticationUserDetailsService<Authentication>{
+
+	@Override
+	public UserDetails loadUserDetails(Authentication token)
+			throws UsernameNotFoundException {
+		return loadUserByUsername(token.getName());
+	}
+
+	@Override
+	public UserDetails loadUserByUsername(String username)
+			throws UsernameNotFoundException {
+		List<SampleAuthority> authorities = new ArrayList<SampleAuthority>();
+		if ("reader".equals(username)) {
+			authorities.add(SampleAuthority.READER);
+		} else if ("writer".equals(username)) {
+			authorities.add(SampleAuthority.WRITER);
+		} else {
+			throw new UsernameNotFoundException(username);
+		}
+		return new SimpleUserDetails(username, authorities);
+	}
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SimpleUserDetails.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SimpleUserDetails.java?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SimpleUserDetails.java (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/java/org/devicemap/examples/gwtcanvasdemo/module/server/security/SimpleUserDetails.java Sun Jun 19 19:31:04 2016
@@ -0,0 +1,57 @@
+package org.devicemap.examples.gwtcanvasdemo.module.server.security;
+
+import java.util.Collection;
+
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+
+public class SimpleUserDetails implements UserDetails {
+	
+	private static final long serialVersionUID = -4725095483759316543L;
+
+	private String username;
+	
+	private Collection<? extends GrantedAuthority> authorities;
+
+	public SimpleUserDetails(String username,
+			Collection<? extends GrantedAuthority> authorities) {
+		this.username = username;
+		this.authorities = authorities;
+	}
+
+	@Override
+	public Collection<? extends GrantedAuthority> getAuthorities() {
+		return authorities;
+	}
+
+	@Override
+	public String getPassword() {
+		return null;
+	}
+
+	@Override
+	public String getUsername() {
+		return username;
+	}
+
+	@Override
+	public boolean isAccountNonExpired() {
+		return true;
+	}
+
+	@Override
+	public boolean isAccountNonLocked() {
+		return true;
+	}
+
+	@Override
+	public boolean isCredentialsNonExpired() {
+		return true;
+	}
+
+	@Override
+	public boolean isEnabled() {
+		return true;
+	}
+
+}

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/production-resources/META-INF/spring/security-cas.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/production-resources/META-INF/spring/security-cas.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/production-resources/META-INF/spring/security-cas.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/production-resources/META-INF/spring/security-cas.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans:beans xmlns="http://www.springframework.org/schema/security"
+  xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.springframework.org/schema/beans
+                    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+                    http://www.springframework.org/schema/security
+                    http://www.springframework.org/schema/security/spring-security-3.1.xsd">
+
+  <http auto-config="false" use-expressions="true">
+    <intercept-url pattern="/**" access="permitAll" />
+    <form-login />
+    <logout/>
+    <session-management session-fixation-protection="none" />
+  </http>
+
+  <authentication-manager>
+    <authentication-provider ref="authenticationProvider" />
+  </authentication-manager>
+  <beans:bean name="authenticationProvider" class="org.devicemap.examples.gwtcanvasdemo.module.server.security.PassAllAuthenticationProvider">
+    <beans:property name="userDetailsService" ref="userDetailsService" />
+  </beans:bean>
+  <beans:bean id="userDetailsService" class="org.devicemap.examples.gwtcanvasdemo.module.server.security.SampleUserDetailsService" />
+</beans:beans>

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/production-sources/org/devicemap/examples/gwtcanvasdemo/module/gwtcanvasdemo.gwt.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/production-sources/org/devicemap/examples/gwtcanvasdemo/module/gwtcanvasdemo.gwt.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/production-sources/org/devicemap/examples/gwtcanvasdemo/module/gwtcanvasdemo.gwt.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/production-sources/org/devicemap/examples/gwtcanvasdemo/module/gwtcanvasdemo.gwt.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.4.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.4.0/distro-source/core/src/gwt-module.dtd">
+<module rename-to="gwt">
+  <inherits name="com.google.gwt.user.User"/>
+  <inherits name="com.google.gwt.user.cellview.CellView"/>
+  <inherits name="com.google.gwt.logging.Logging"/>
+  <inherits name="com.google.gwt.text.Text"/>
+  <inherits name="com.google.gwt.i18n.I18N"/>
+  <inherits name="com.google.gwt.resources.Resources" />
+  <inherits name="com.google.gwt.user.theme.standard.Standard" />
+  <inherits name="com.github.apetrelli.gwtintegration.cellview.GwtIntegrationCellview"/>
+  <inherits name="com.github.apetrelli.gwtintegration.error.GwtIntegrationError"/>
+  <inherits name="com.github.apetrelli.gwtintegration.editor.GwtIntegrationEditor"/>
+  <inherits name="com.github.apetrelli.gwtintegration.mvp.GwtIntegrationMvp"/>
+  <inherits name="com.github.apetrelli.gwtintegration.requestfactory.GwtIntegrationRequestFactory"/>
+  <inherits name="com.github.apetrelli.gwtintegration.spring.context.GwtIntegrationSpringContext"/>
+  <inherits name="com.github.apetrelli.gwtintegration.util.GwtIntegrationUtil"/>
+  <inherits name="com.github.apetrelli.gwtintegration.widget.GwtIntegrationWidget"/>
+  <inherits name="com.github.apetrelli.gwtintegration.remotelogging.GwtIntegrationRemoteLogging"/>
+  <inherits name="org.devicemap.examples.gwtcanvasdemo.shared.gwtcanvasdemoShared"/>
+  <inherits name="org.hibernate.validator.HibernateValidator" />
+  <set-property name="compiler.stackMode" value="emulated"/>
+  <!-- Logging Configuration -->
+  <set-property name="gwt.logging.enabled" value="TRUE"/>
+  <set-property name="gwt.logging.logLevel" value="INFO"/>
+  <set-property name="gwt.logging.consoleHandler" value="ENABLED"/>
+  <set-property name="gwt.logging.developmentModeHandler" value="ENABLED"/>
+  <set-property name="gwt.logging.firebugHandler" value="ENABLED"/>
+  <set-property name="gwt.logging.hasWidgetsHandler" value="DISABLED"/>
+  <set-property name="gwt.logging.popupHandler" value="DISABLED"/>
+  <set-property name="gwt.logging.systemHandler" value="ENABLED"/>
+  <set-property name="gwt.logging.simpleRemoteHandler" value="DISABLED"/>
+
+  <!-- Configuration for Super Dev Mode -->
+  <add-linker name="xsiframe"/>
+  <set-configuration-property name="devModeRedirectEnabled" value="true"/>
+
+  <!--UiBinder Configuration -->
+  <set-configuration-property name="UiBinder.useSafeHtmlTemplates" value="true"/>
+
+  <set-property name="compiler.emulatedStack" value="true" />
+  <set-configuration-property name="compiler.emulatedStack.recordLineNumbers" value="true" />
+  <set-configuration-property name="compiler.emulatedStack.recordFileNames" value="true" />
+  <replace-with
+    class="org.devicemap.examples.gwtcanvasdemo.module.client.ClientFactoryImpl">
+    <when-type-is class="org.devicemap.examples.gwtcanvasdemo.module.client.ClientFactory" />
+  </replace-with>
+  <source path="client" />
+  <source path="shared"/>
+  <public path="public"/>
+  <entry-point class="org.devicemap.examples.gwtcanvasdemo.module.client.gwtcanvasdemo" />
+
+  <!-- Specify the Validator for the Validation bootstrap to use. -->
+  <replace-with
+    class="org.devicemap.examples.gwtcanvasdemo.module.client.validation.ValidatorFactory">
+    <when-type-is class="javax.validation.ValidatorFactory" />
+  </replace-with>
+</module>

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/resources/META-INF/spring/applicationContext.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/resources/META-INF/spring/applicationContext.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/resources/META-INF/spring/applicationContext.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/resources/META-INF/spring/applicationContext.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sec="http://www.springframework.org/schema/security"
+	xmlns:datajpa="http://www.springframework.org/schema/data/jpa"
+	xsi:schemaLocation="http://www.springframework.org/schema/aop
+                      http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
+                      http://www.springframework.org/schema/beans
+                      http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+                      http://www.springframework.org/schema/context
+                      http://www.springframework.org/schema/context/spring-context-3.1.xsd
+                      http://www.springframework.org/schema/jee
+                      http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
+                      http://www.springframework.org/schema/tx
+                      http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
+                      http://www.springframework.org/schema/security 
+                      http://www.springframework.org/schema/security/spring-security-3.1.xsd
+                      http://www.springframework.org/schema/data/jpa
+                      http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
+	<bean id="resourceBundleLocator"
+		class="com.github.apetrelli.gwtintegration.hibernate.validator.NoFallbackResourceBundleLocator">
+		<constructor-arg value="ValidationMessages" />
+	</bean>
+	<bean id="messageInterpolator"
+		class="org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator">
+		<constructor-arg ref="resourceBundleLocator" />
+	</bean>
+	<bean id="validator"
+		class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
+		<property name="messageInterpolator" ref="messageInterpolator" />
+	</bean>
+
+</beans>

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/resources/log4j.properties
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/resources/log4j.properties?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/resources/log4j.properties (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/resources/log4j.properties Sun Jun 19 19:31:04 2016
@@ -0,0 +1,7 @@
+log4j.rootLogger=error, stdout
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+
+# Print the date in ISO 8601 format
+log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/WEB-INF/spring/database.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/WEB-INF/spring/database.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/WEB-INF/spring/database.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/WEB-INF/spring/database.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+  xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
+  xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd         http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
+	<bean
+		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
+		id="entityManagerFactory">
+		<!-- <property name="persistenceUnitName" value="persistenceUnit"/> -->
+		<property name="dataSource" ref="dataSource" />
+		<property name="packagesToScan">
+			<array>
+				<value>org.devicemap.examples.gwtcanvasdemo.model.domain</value>
+			</array>
+		</property>
+		<property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence" />
+		<property name="jpaPropertyMap">
+			<map>
+				<!-- value="create" to build a new database on each run; value="update" 
+					to modify an existing database; value="create-drop" means the same as "create" 
+					but also drops tables when Hibernate closes; value="validate" makes no changes 
+					to the database -->
+				<entry key="hibernate.hbm2ddl.auto" value="update" />
+				<entry key="hibernate.format_sql" value="true" />
+				<entry key="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
+				<entry key="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy" />
+				<entry key="hibernate.connection.charSet" value="UTF-8" />
+				<entry key="javax.persistence.validation.factory" value-ref="validator" />
+			</map>
+		</property>
+	</bean>
+    <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
+        <property name="driverClassName" value="org.hsqldb.jdbc.JDBCDriver"/>
+        <property name="url" value="jdbc:hsqldb:mem:gwt"/>
+        <property name="username" value="sa"/>
+        <property name="password" value=""/>
+        <property name="testOnBorrow" value="true"/>
+        <property name="testOnReturn" value="true"/>
+        <property name="testWhileIdle" value="true"/>
+        <property name="timeBetweenEvictionRunsMillis" value="1800000"/>
+        <property name="numTestsPerEvictionRun" value="3"/>
+        <property name="minEvictableIdleTimeMillis" value="1800000"/>
+        <property name="validationQuery" value="SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS"/>
+    </bean>
+</beans>

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/WEB-INF/web.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/WEB-INF/web.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/WEB-INF/web.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	version="2.5"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+
+
+	<display-name>gwt-web</display-name>
+
+	<description>Sample GWT application</description>
+
+
+	<!-- Enable escaping of form submission contents -->
+	<context-param>
+		<param-name>defaultHtmlEscape</param-name>
+		<param-value>true</param-value>
+	</context-param>
+
+	<context-param>
+		<param-name>contextConfigLocation</param-name>
+		<param-value>
+		classpath*:META-INF/spring/applicationContext*.xml
+		classpath*:META-INF/spring/security*.xml
+		WEB-INF/spring/database.xml
+		</param-value>
+	</context-param>
+	<listener>
+		<display-name>hibernate-init</display-name>
+		<listener-class>com.github.apetrelli.gwtintegration.hibernate.entitymanager.web.HibernateInitContextListener</listener-class>
+	</listener>
+	<listener>
+		<display-name>application-context-holder</display-name>
+		<listener-class>com.github.apetrelli.gwtintegration.spring.web.SpringWebApplicationContextHolderListener</listener-class>
+	</listener>
+	<listener>
+		<display-name>session-locale-holder</display-name>
+		<listener-class>com.github.apetrelli.gwtintegration.spring.web.SessionLocaleHolderListener</listener-class>
+	</listener>
+	<listener>
+		<display-name>slf4j-bridge-install</display-name>
+		<listener-class>com.github.apetrelli.gwtintegration.remotelogging.server.Slf4jBridgeInstallListener</listener-class>
+	</listener>
+	<filter>
+		<filter-name>gwtCacheControl</filter-name>
+		<filter-class>com.github.apetrelli.gwtintegration.web.servlet.GwtCacheControlFilter</filter-class>
+	</filter>
+	<filter>
+		<filter-name>springSecurityFilterChain</filter-name>
+		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
+	</filter>
+	<filter>
+		<filter-name>RequestContextFilter</filter-name>
+		<filter-class>com.github.apetrelli.gwtintegration.spring.web.RequestContextFilter</filter-class>
+	</filter>
+
+	<filter>
+		<filter-name>CharacterEncodingFilter</filter-name>
+		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
+		<init-param>
+			<param-name>encoding</param-name>
+			<param-value>UTF-8</param-value>
+		</init-param>
+		<init-param>
+			<param-name>forceEncoding</param-name>
+			<param-value>true</param-value>
+		</init-param>
+	</filter>
+
+	<filter>
+		<filter-name>HttpMethodFilter</filter-name>
+		<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
+	</filter>
+
+	<filter>
+		<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
+		<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
+	</filter>
+
+	<filter-mapping>
+		<filter-name>gwtCacheControl</filter-name>
+		<url-pattern>/gwt-web/gwt-web.nocache.js</url-pattern>
+	</filter-mapping>
+	<filter-mapping>
+		<filter-name>RequestContextFilter</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+	<filter-mapping>
+		<filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+	<filter-mapping>
+		<filter-name>springSecurityFilterChain</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+	<filter-mapping>
+		<filter-name>CharacterEncodingFilter</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+
+	<filter-mapping>
+		<filter-name>HttpMethodFilter</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+
+	<!-- Creates the Spring Container shared by all Servlets and Filters -->
+	<listener>
+		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+	</listener>
+
+	<servlet>
+		<servlet-name>requestFactory</servlet-name>
+		<servlet-class>com.github.apetrelli.gwtintegration.spring.security.SecureRequestFactoryServlet</servlet-class>
+		<load-on-startup>1</load-on-startup>
+	</servlet>
+	<servlet>
+	    <servlet-name>remoteLogging</servlet-name>
+	    <servlet-class>com.github.apetrelli.gwtintegration.remotelogging.server.RemoteLoggingServiceImpl</servlet-class>
+	    <init-param>
+	    	<param-name>SYMBOL_MAPS_DIR</param-name>
+	    	<param-value>/WEB-INF/deploy/gwt/symbolMaps</param-value>
+	    </init-param>
+	</servlet>
+
+	<servlet-mapping>
+		<servlet-name>requestFactory</servlet-name>
+		<url-pattern>/gwtRequest</url-pattern>
+	</servlet-mapping>
+	<servlet-mapping>
+		<servlet-name>remoteLogging</servlet-name>
+		<url-pattern>/gwt/remote_logging</url-pattern>
+	</servlet-mapping>
+
+	<!-- session config -->
+	<session-config>
+		<session-timeout>30</session-timeout>
+	</session-config>
+
+	<!-- file upload parameters -->
+
+	<error-page>
+		<error-code>500</error-code>
+		<location>/error500.html</location>
+	</error-page>
+
+</web-app>

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/error500.html
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/error500.html?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/error500.html (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/error500.html Sun Jun 19 19:31:04 2016
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+	<head>
+	    <!-- forward to the GWT Application -->
+	    <body>
+			An error occurred.    
+	    </body>
+	</HEAD>
+</HTML>
\ No newline at end of file

Added: devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/index.jsp
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/index.jsp?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/index.jsp (added)
+++ devicemap/trunk/examples/1.0/java/gwt/gwt-web/src/main/webapp/index.jsp Sun Jun 19 19:31:04 2016
@@ -0,0 +1,25 @@
+<%@page import="java.util.Date"%>
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<%
+  Date now = new Date();
+  response.setDateHeader("Date", now.getTime());
+  // one day old
+  response.setDateHeader("Expires", now.getTime() - 86400000L);
+  response.setHeader( "Pragma", "no-cache" );
+  response.setHeader( "Cache-Control", "no-cache, no-store, must-revalidate" );
+%>
+<!doctype html>
+<html>
+  <head>
+    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+    <meta http-equiv="x-ua-compatible" content="IE=8">
+    <title>Sample GWT</title>
+    <script type="text/javascript" src="gwt/gwt.nocache.js"></script>
+  </head>
+
+  <body>
+    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
+
+  </body>
+</html>

Added: devicemap/trunk/examples/1.0/java/gwt/pom.xml
URL: http://svn.apache.org/viewvc/devicemap/trunk/examples/1.0/java/gwt/pom.xml?rev=1749196&view=auto
==============================================================================
--- devicemap/trunk/examples/1.0/java/gwt/pom.xml (added)
+++ devicemap/trunk/examples/1.0/java/gwt/pom.xml Sun Jun 19 19:31:04 2016
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+        <artifactId>dmap-java-examples</artifactId>
+        <groupId>org.apache.devicemap.examples</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+	<groupId>org.apache.devicemap.examples</groupId>
+	<artifactId>gwt</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
+	<name>Sample GWT parent project</name>
+	<description>The container project</description>
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<gwt.version>2.6.1</gwt.version>
+		<gwt.integration.version>1.0.0-alpha4</gwt.integration.version>
+	</properties>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+					<encoding>${project.build.sourceEncoding}</encoding>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<profiles>
+		<profile>
+			<id>generate-archetype</id>
+			<build>
+				<plugins>
+					<plugin>
+						<artifactId>maven-archetype-plugin</artifactId>
+						<version>2.2</version>
+						<configuration>
+							<propertyFile>src/etc/archetype/archetype-values.properties</propertyFile>
+						</configuration>
+						<executions>
+							<execution>
+								<id>create-archetype</id>
+								<goals>
+									<goal>create-from-project</goal>
+								</goals>
+								<phase>generate-resources</phase>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<artifactId>maven-antrun-plugin</artifactId>
+						<version>1.7</version>
+						<executions>
+							<execution>
+								<id>rename-files</id>
+								<goals>
+									<goal>run</goal>
+								</goals>
+								<phase>generate-resources</phase>
+								<configuration>
+									<target>
+										<move todir="target/generated-sources/archetype/src/main/resources/archetype-resources">
+											<fileset dir="target/generated-sources/archetype/src/main/resources/archetype-resources">
+												<include name="**/*gwtcanvasdemo*"/>
+											</fileset>
+											<mapper type="regexp" from="^(.*)gwtcanvasdemo(.*)$$" to="\1__moduleName__\2"/>
+										</move>
+										<delete>
+											<fileset dir="target/generated-sources/archetype/src/main/resources/archetype-resources" includes="**/.settings/*"/>
+										</delete>
+										<delete includeemptydirs="true">
+											<fileset dir="target/generated-sources/archetype/src/main/resources/archetype-resources" includes="**/.settings"/>
+										</delete>
+										<delete>
+											<fileset dir="target/generated-sources/archetype/src/main/resources/archetype-resources" includes="**/.project,**/.classpath"/>
+										</delete>
+									</target>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+  <modules>
+    <module>gwt-shared</module>
+    <module>gwt-model</module>
+    <module>gwt-web</module>
+  </modules>
+</project>
\ No newline at end of file