From 53e14bd1726342c34848cc007dbd1e5f8b7dceba Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Wed, 9 Jul 2014 12:54:54 +0200 Subject: [PATCH 01/27] change google analytics interface --- .../mvp/client/gin/DefaultModule.java | 39 +++++++++---------- .../GaAccount.java | 2 +- .../googleanalytics/GoogleAnalytics.java | 7 ---- .../googleanalytics/GoogleAnalyticsImpl.java | 10 ++++- .../GoogleAnalyticsNavigationTracker.java | 29 ++------------ 5 files changed, 31 insertions(+), 56 deletions(-) rename gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/{annotations => googleanalytics}/GaAccount.java (95%) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/gin/DefaultModule.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/gin/DefaultModule.java index 77bc71988c..eed6b8dfea 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/gin/DefaultModule.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/gin/DefaultModule.java @@ -23,8 +23,6 @@ import com.google.web.bindery.event.shared.SimpleEventBus; import com.gwtplatform.common.client.CommonGinModule; import com.gwtplatform.mvp.client.RootPresenter; -import com.gwtplatform.mvp.client.googleanalytics.GoogleAnalytics; -import com.gwtplatform.mvp.client.googleanalytics.GoogleAnalyticsImpl; import com.gwtplatform.mvp.client.proxy.DefaultPlaceManager; import com.gwtplatform.mvp.client.proxy.PlaceManager; import com.gwtplatform.mvp.shared.proxy.ParameterTokenFormatter; @@ -37,10 +35,6 @@ * binding the different classes to their default implementation. */ public class DefaultModule extends AbstractGinModule { - private final Class placeManagerClass; - - private final Class tokenFormatterClass; - /** * A DefaultModule builder. */ @@ -51,21 +45,25 @@ public static class Builder { public Builder() { } - public Builder placeManager(Class placeManagerClass) { + public DefaultModule build() { + return new DefaultModule(this); + } + + public Builder placeManager(final Class placeManagerClass) { this.placeManagerClass = placeManagerClass; return this; } - public Builder tokenFormatter(Class tokenFormatterClass) { + public Builder tokenFormatter(final Class tokenFormatterClass) { this.tokenFormatterClass = tokenFormatterClass; return this; } - - public DefaultModule build() { - return new DefaultModule(this); - } } + private final Class placeManagerClass; + + private final Class tokenFormatterClass; + /** * When instantiating the module this way be sure to read * {@link DefaultPlaceManager} @@ -83,6 +81,11 @@ public DefaultModule() { this(new Builder()); } + private DefaultModule(final Builder builder) { + this.placeManagerClass = builder.placeManagerClass; + this.tokenFormatterClass = builder.tokenFormatterClass; + } + /** * Manually setup a PlaceManager. See {@link DefaultPlaceManager} for more * details.
@@ -95,7 +98,7 @@ public DefaultModule() { * @deprecated Please use the {@link com.gwtplatform.mvp.client.gin.DefaultModule.Builder}. */ @Deprecated - public DefaultModule(Class placeManagerClass) { + public DefaultModule(final Class placeManagerClass) { this(placeManagerClass, ParameterTokenFormatter.class); } @@ -113,17 +116,12 @@ public DefaultModule(Class placeManagerClass) { * @deprecated Please use the {@link com.gwtplatform.mvp.client.gin.DefaultModule.Builder}. */ @Deprecated - public DefaultModule(Class placeManagerClass, - Class tokenFormatterClass) { + public DefaultModule(final Class placeManagerClass, + final Class tokenFormatterClass) { this.placeManagerClass = placeManagerClass; this.tokenFormatterClass = tokenFormatterClass; } - private DefaultModule(Builder builder) { - this.placeManagerClass = builder.placeManagerClass; - this.tokenFormatterClass = builder.tokenFormatterClass; - } - @Override protected void configure() { install(new CommonGinModule()); @@ -131,7 +129,6 @@ protected void configure() { bind(EventBus.class).to(SimpleEventBus.class).in(Singleton.class); bind(TokenFormatter.class).to(tokenFormatterClass).in(Singleton.class); bind(RootPresenter.class).asEagerSingleton(); - bind(GoogleAnalytics.class).to(GoogleAnalyticsImpl.class).in(Singleton.class); bind(PlaceManager.class).to(placeManagerClass).in(Singleton.class); } } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/annotations/GaAccount.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GaAccount.java similarity index 95% rename from gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/annotations/GaAccount.java rename to gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GaAccount.java index a0c1f07d65..a2087e445d 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/annotations/GaAccount.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GaAccount.java @@ -14,7 +14,7 @@ * the License. */ -package com.gwtplatform.mvp.client.annotations; +package com.gwtplatform.mvp.client.googleanalytics; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalytics.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalytics.java index 257f5fa049..493c679620 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalytics.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalytics.java @@ -40,13 +40,6 @@ */ public interface GoogleAnalytics { - /** - * Initializes the script for Google Analytics for a specific userAccount. - * - * @param userAccount The Google Analytics account. (i.e. {@code UA-12345678-1}) - */ - void init(String userAccount); - /** * Given that you already have initialized your default Google account with * {@link #init(String)}, this function will add a new account on which you'll diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsImpl.java index 770f629284..73dc00f8a8 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsImpl.java @@ -20,14 +20,20 @@ import com.google.gwt.dom.client.Element; import com.google.gwt.dom.client.ScriptElement; import com.google.gwt.user.client.Window; +import com.google.inject.Inject; /** * Default {@link GoogleAnalytics} implementation that uses JSNI to * expose Google Analytics javascript methods. */ public class GoogleAnalyticsImpl implements GoogleAnalytics { - @Override - public void init(String userAccount) { + + @Inject + GoogleAnalyticsImpl(@GaAccount String userAccount) { + init(userAccount); + } + + private void init(String userAccount) { Element firstScript = Document.get().getElementsByTagName("script").getItem( 0); diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsNavigationTracker.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsNavigationTracker.java index 757db09edb..bc6999cad4 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsNavigationTracker.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsNavigationTracker.java @@ -18,10 +18,7 @@ import javax.inject.Inject; -import com.google.gwt.core.client.Scheduler; -import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.web.bindery.event.shared.EventBus; -import com.gwtplatform.mvp.client.annotations.GaAccount; import com.gwtplatform.mvp.client.proxy.NavigationEvent; import com.gwtplatform.mvp.client.proxy.NavigationHandler; import com.gwtplatform.mvp.client.proxy.PlaceManager; @@ -38,38 +35,20 @@ * If you want to log custom events, see {@link GoogleAnalytics}. */ public class GoogleAnalyticsNavigationTracker implements NavigationHandler { - private final String gaAccount; private final PlaceManager placeManager; - private final EventBus eventBus; private final GoogleAnalytics analytics; @Inject - GoogleAnalyticsNavigationTracker(@GaAccount String gaAccount, - PlaceManager placeManager, - EventBus eventBus, - GoogleAnalytics analytics) { - this.gaAccount = gaAccount; + GoogleAnalyticsNavigationTracker(final PlaceManager placeManager, final EventBus eventBus, + final GoogleAnalytics analytics) { this.placeManager = placeManager; - this.eventBus = eventBus; this.analytics = analytics; - - Scheduler.get().scheduleDeferred(new ScheduledCommand() { - @Override - public void execute() { - init(); - } - }); - } - - private void init() { - analytics.init(gaAccount); - eventBus.addHandler(NavigationEvent.getType(), this); } @Override - public void onNavigation(NavigationEvent navigationEvent) { - String historyToken = placeManager.buildHistoryToken(navigationEvent.getRequest()); + public void onNavigation(final NavigationEvent navigationEvent) { + final String historyToken = placeManager.buildHistoryToken(navigationEvent.getRequest()); analytics.trackPageview(historyToken); } } From 66e601d8e9a98287ae554ce822e43cdf3d8dadde Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 12:24:20 +0200 Subject: [PATCH 02/27] universal analytics --- ...sf.eclipsecs.core.CheckstyleBuilder.launch | 7 + .../googleanalytics/GoogleAnalytics.java | 116 +++++----- .../GoogleAnalyticsModule.java | 59 +++++ .../universalanalytics/HasFields.java | 24 ++ .../universalanalytics/HitCallback.java | 22 ++ .../universalanalytics/HitType.java | 32 +++ .../universalanalytics/OptionsCallback.java | 24 ++ .../UniversalAnalytics.java | 54 +++++ .../UniversalAnalyticsImpl.java | 208 ++++++++++++++++++ .../UniversalAnalyticsModule.java | 79 +++++++ .../fields/AbstractFieldBuilder.java | 66 ++++++ .../fields/AppTrackingFieldBuilder.java | 76 +++++++ .../ContentExperimentsFieldBuilder.java | 54 +++++ .../fields/ContentFieldBuilder.java | 98 +++++++++ .../fields/CreateOnlyFieldBuilder.java | 165 ++++++++++++++ .../fields/CustomDimensionsFieldBuilder.java | 49 +++++ .../fields/EventFieldBuilder.java | 54 +++++ .../fields/ExceptionFieldBuilder.java | 52 +++++ .../fields/FieldBuilder.java | 87 ++++++++ .../fields/GeneralFieldBuilder.java | 49 +++++ .../fields/HitFieldBuilder.java | 49 +++++ .../fields/SessionFieldBuilder.java | 44 ++++ .../fields/SocialNetworkFieldBuilder.java | 32 +++ .../fields/SystemInfoFieldBuilder.java | 110 +++++++++ .../fields/TrafficSourcesFieldBuilder.java | 102 +++++++++ .../fields/UserTimingFieldBuilder.java | 77 +++++++ 26 files changed, 1737 insertions(+), 52 deletions(-) create mode 100644 gwtp-core/gwtp-mvp-client/.externalToolBuilders/net.sf.eclipsecs.core.CheckstyleBuilder.launch create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsModule.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/OptionsCallback.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java diff --git a/gwtp-core/gwtp-mvp-client/.externalToolBuilders/net.sf.eclipsecs.core.CheckstyleBuilder.launch b/gwtp-core/gwtp-mvp-client/.externalToolBuilders/net.sf.eclipsecs.core.CheckstyleBuilder.launch new file mode 100644 index 0000000000..e872f77e0c --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/.externalToolBuilders/net.sf.eclipsecs.core.CheckstyleBuilder.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalytics.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalytics.java index 493c679620..4152ab3bc5 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalytics.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalytics.java @@ -48,29 +48,9 @@ public interface GoogleAnalytics { * @param trackerName A user-defined tracker name. * @param userAccount The Google Analytics account. (i.e. {@code UA-12345678-1}) */ + @Deprecated void addAccount(String trackerName, String userAccount); - /** - * Tracks the root of your application. - */ - void trackPageview(); - - /** - * Tracks a page given a specific page name. - * - * @param pageName The page name to track. - */ - void trackPageview(String pageName); - - /** - * Tracks a page given a specific page name on a user defined tracker - * name. See {@link #addAccount(String, String)}. - * - * @param trackerName A user defined tracker name. - * @param pageName The page name to track. - */ - void trackPageview(String trackerName, String pageName); - /** * Tracks an event in Google analytics. * @@ -80,19 +60,22 @@ public interface GoogleAnalytics { * commonly used to define the type of user interaction for the web * object. */ + @Deprecated void trackEvent(String category, String action); /** - * Tracks an event in Google analytics on a user defined tracker name. - * See {@link #addAccount(String, String)}. + * Tracks an event in Google analytics, attaching a label and value. * * @param category The name you supply for the group of objects you want to * track. * @param action A string that is uniquely paired with each category, and * commonly used to define the type of user interaction for the web * object. + * @param optLabel An string to provide additional dimensions to the event + * data. */ - void trackEventWithTracker(String trackerName, String category, String action); + @Deprecated + void trackEvent(String category, String action, String optLabel); /** * Tracks an event in Google analytics, attaching a label and value. @@ -104,26 +87,46 @@ public interface GoogleAnalytics { * object. * @param optLabel An string to provide additional dimensions to the event * data. + * @param optValue An integer that you can use to provide numerical data about + * the user event. */ - void trackEvent(String category, String action, String optLabel); + @Deprecated + void trackEvent(String category, String action, String optLabel, int optValue); /** - * Tracks an event in Google analytics, attaching a label and value on a user - * defined tracker name. See {@link #addAccount(String, String)}. + * Tracks an event in Google analytics, attaching a label and value. + * + * @param category The name you supply for the group of objects you want to + * track. + * @param action A string that is uniquely paired with each category, and + * commonly used to define the type of user interaction for the web + * object. + * @param optLabel An string to provide additional dimensions to the event + * data. + * @param optValue An integer that you can use to provide numerical data about + * the user event. + * @param optNonInteraction A boolean that when set to true, indicates that the event hit + * will not be used in bounce-rate calculation. + */ + @Deprecated + void trackEvent(String category, String action, String optLabel, int optValue, boolean optNonInteraction); + + /** + * Tracks an event in Google analytics on a user defined tracker name. + * See {@link #addAccount(String, String)}. * * @param category The name you supply for the group of objects you want to * track. * @param action A string that is uniquely paired with each category, and * commonly used to define the type of user interaction for the web * object. - * @param optLabel An string to provide additional dimensions to the event - * data. */ - void trackEventWithTracker(String trackerName, String category, String action, - String optLabel); + @Deprecated + void trackEventWithTracker(String trackerName, String category, String action); /** - * Tracks an event in Google analytics, attaching a label and value. + * Tracks an event in Google analytics, attaching a label and value on a user + * defined tracker name. See {@link #addAccount(String, String)}. * * @param category The name you supply for the group of objects you want to * track. @@ -132,10 +135,10 @@ void trackEventWithTracker(String trackerName, String category, String action, * object. * @param optLabel An string to provide additional dimensions to the event * data. - * @param optValue An integer that you can use to provide numerical data about - * the user event. */ - void trackEvent(String category, String action, String optLabel, int optValue); + @Deprecated + void trackEventWithTracker(String trackerName, String category, String action, + String optLabel); /** * Tracks an event in Google analytics, attaching a label and value on a user @@ -151,26 +154,10 @@ void trackEventWithTracker(String trackerName, String category, String action, * @param optValue An integer that you can use to provide numerical data about * the user event. */ + @Deprecated void trackEventWithTracker(String trackerName, String category, String action, String optLabel, int optValue); - /** - * Tracks an event in Google analytics, attaching a label and value. - * - * @param category The name you supply for the group of objects you want to - * track. - * @param action A string that is uniquely paired with each category, and - * commonly used to define the type of user interaction for the web - * object. - * @param optLabel An string to provide additional dimensions to the event - * data. - * @param optValue An integer that you can use to provide numerical data about - * the user event. - * @param optNonInteraction A boolean that when set to true, indicates that the event hit - * will not be used in bounce-rate calculation. - */ - void trackEvent(String category, String action, String optLabel, int optValue, boolean optNonInteraction); - /** * Tracks an event in Google analytics, attaching a label and value on a user * defined tracker name. See {@link #addAccount(String, String)}. @@ -187,6 +174,31 @@ void trackEventWithTracker(String trackerName, String category, String action, * @param optNonInteraction A boolean that when set to true, indicates that the event hit * will not be used in bounce-rate calculation. */ + @Deprecated void trackEventWithTracker(String trackerName, String category, String action, String optLabel, int optValue, boolean optNonInteraction); + + /** + * Tracks the root of your application. + */ + @Deprecated + void trackPageview(); + + /** + * Tracks a page given a specific page name. + * + * @param pageName The page name to track. + */ + @Deprecated + void trackPageview(String pageName); + + /** + * Tracks a page given a specific page name on a user defined tracker + * name. See {@link #addAccount(String, String)}. + * + * @param trackerName A user defined tracker name. + * @param pageName The page name to track. + */ + @Deprecated + void trackPageview(String trackerName, String pageName); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsModule.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsModule.java new file mode 100644 index 0000000000..e324ee9878 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsModule.java @@ -0,0 +1,59 @@ +/** + * Copyright 2011 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.gwtplatform.mvp.client.googleanalytics; + +import com.google.gwt.inject.client.AbstractGinModule; +import com.google.inject.Singleton; + +public class GoogleAnalyticsModule extends AbstractGinModule { + + public static class Builder { + private final String userAccount; + private boolean trackNavigationEvents = true; + + public Builder(final String userAccount) { + this.userAccount = userAccount; + } + + public GoogleAnalyticsModule build() { + return new GoogleAnalyticsModule(userAccount, trackNavigationEvents); + } + + public Builder trackNavigationEvents(final boolean trackNavigationEvents) { + this.trackNavigationEvents = trackNavigationEvents; + return this; + } + } + + private boolean trackNavigationEvents; + private String userAccount; + + private GoogleAnalyticsModule(final String userAccount, final boolean trackNavigationEvents) { + this.userAccount = userAccount; + this.trackNavigationEvents = trackNavigationEvents; + } + + @Override + protected void configure() { + bindConstant().annotatedWith(GaAccount.class).to(userAccount); + bind(GoogleAnalyticsImpl.class).in(Singleton.class); + bind(GoogleAnalytics.class).to(GoogleAnalyticsImpl.class); + if (trackNavigationEvents) { + bind(GoogleAnalyticsNavigationTracker.class).asEagerSingleton(); + } + } +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java new file mode 100644 index 0000000000..f08fec7b13 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java @@ -0,0 +1,24 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; + +import com.google.gwt.json.client.JSONValue; + +public interface HasFields { + + void put(String fieldName, JSONValue value); + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java new file mode 100644 index 0000000000..1e20f75db2 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java @@ -0,0 +1,22 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; + +public interface HitCallback { + + void onCallback(); + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java new file mode 100644 index 0000000000..5015ae34b2 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java @@ -0,0 +1,32 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; + +public enum HitType { + PAGE_VIEW("pageview"), SCREEN_VIEW("screenview"), EVENT("event"), TRANSACTION("transaction"), ITEM("item"), SOCIAL( + "social"), EXCEPTION("exception"), TIMING("timing"); + + private final String fieldName; + + HitType(final String fieldName) { + this.fieldName = fieldName; + } + + public String getFieldName() { + return fieldName; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/OptionsCallback.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/OptionsCallback.java new file mode 100644 index 0000000000..d9f2a7c562 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/OptionsCallback.java @@ -0,0 +1,24 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; + +import com.google.gwt.json.client.JSONObject; + +public interface OptionsCallback { + + void onCallback(JSONObject options); + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java new file mode 100644 index 0000000000..c7a92fa596 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java @@ -0,0 +1,54 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; + +import com.gwtplatform.mvp.client.googleanalytics.GoogleAnalytics; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.ContentFieldBuilder; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.CreateOnlyFieldBuilder; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.EventFieldBuilder; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.FieldBuilder; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.SocialNetworkFieldBuilder; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.UserTimingFieldBuilder; + +public interface UniversalAnalytics extends GoogleAnalytics { + + CreateOnlyFieldBuilder create(); + + CreateOnlyFieldBuilder create(String userAccount); + + FieldBuilder send(HitType hitType); + + FieldBuilder send(String trackerName, HitType hitType); + + EventFieldBuilder sendEvent(String category, String action); + + EventFieldBuilder sendEvent(String trackerName, String category, String action); + + ContentFieldBuilder sendPageView(); + + ContentFieldBuilder sendPageView(String trackerName); + + SocialNetworkFieldBuilder sendSocial(String socialNetwork, String socialAction, String socialTarget); + + SocialNetworkFieldBuilder sendSocial(String trackerName, String socialNetwork, String socialAction, + String socialTarget); + + UserTimingFieldBuilder sendTiming(); + + UserTimingFieldBuilder sendTiming(String trackerName); + + FieldBuilder setGlobalSettings(); +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java new file mode 100644 index 0000000000..9738d64ee3 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -0,0 +1,208 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; + +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.google.gwt.json.client.JSONValue; +import com.google.inject.Inject; +import com.google.inject.name.Named; +import com.gwtplatform.mvp.client.googleanalytics.GaAccount; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.ContentFieldBuilder; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.CreateOnlyFieldBuilder; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.EventFieldBuilder; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.FieldBuilder; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.SocialNetworkFieldBuilder; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.UserTimingFieldBuilder; + +public class UniversalAnalyticsImpl implements UniversalAnalytics { + + private final String userAccount; + + @Inject + UniversalAnalyticsImpl(@GaAccount final String userAccount, @Named("uaAutoCreate") final boolean autoCreate) { + init(); + this.userAccount = userAccount; + if (autoCreate) { + create().go(); + } + } + + @Override + public void addAccount(final String trackerName, final String userAccount) { + create(userAccount).name(trackerName).go(); + } + + @Override + public CreateOnlyFieldBuilder create() { + return create(userAccount); + } + + @Override + public CreateOnlyFieldBuilder create(final String userAccount) { + return new FieldBuilder(new OptionsCallback() { + + @Override + public void onCallback(final JSONObject options) { + nativeCall(new JSONString("create"), new JSONString(userAccount), options); + } + }).createOnlyFields(); + } + + private native void init()/*-{ + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })($wnd,$doc,'script','//www.google-analytics.com/analytics.js','__ua'); + }-*/; + + private native void nativeCall(JSONValue... params) /*-{ + $wnd.__ua.apply($wnd, params); + }-*/; + + @Override + public FieldBuilder send(final HitType hitType) { + return send(null, hitType); + } + + @Override + public FieldBuilder send(final String trackerName, final HitType hitType) { + return new FieldBuilder(new OptionsCallback() { + + @Override + public void onCallback(final JSONObject options) { + nativeCall(new JSONString(trackerName == null ? "send" : trackerName + ".send"), + new JSONString(hitType.getFieldName()), options); + } + }); + } + + @Override + public EventFieldBuilder sendEvent(final String category, final String action) { + return sendEvent(null, category, action); + } + + @Override + public EventFieldBuilder sendEvent(final String trackerName, final String category, final String action) { + return send(trackerName, HitType.EVENT).event(category, action); + } + + @Override + public ContentFieldBuilder sendPageView() { + return sendPageView(null); + } + + @Override + public ContentFieldBuilder sendPageView(final String trackerName) { + return send(trackerName, HitType.PAGE_VIEW).content(); + } + + @Override + public SocialNetworkFieldBuilder sendSocial(final String socialNetwork, final String socialAction, + final String socialTarget) { + return sendSocial(null, socialNetwork, socialAction, socialTarget); + } + + @Override + public SocialNetworkFieldBuilder sendSocial(final String trackerName, final String socialNetwork, + final String socialAction, final String socialTarget) { + return send(trackerName, HitType.SOCIAL).socialNetwork(socialNetwork, socialAction, socialTarget); + } + + @Override + public UserTimingFieldBuilder sendTiming() { + return sendTiming(null); + } + + @Override + public UserTimingFieldBuilder sendTiming(final String trackerName) { + return send(trackerName, HitType.TIMING).userTiming(); + } + + @Override + public FieldBuilder setGlobalSettings() { + return new FieldBuilder(new OptionsCallback() { + + @Override + public void onCallback(final JSONObject options) { + nativeCall(new JSONString("set"), options); + } + + }); + } + + @Override + public void trackEvent(final String category, final String action) { + trackEventWithTracker(null, category, action); + } + + @Override + public void trackEvent(final String category, final String action, final String optLabel) { + trackEventWithTracker(null, category, action, optLabel); + } + + @Override + public void trackEvent(final String category, final String action, final String optLabel, final int optValue) { + trackEventWithTracker(null, category, action, optLabel, optValue); + } + + @Override + public void trackEvent(final String category, final String action, final String optLabel, final int optValue, + final boolean optNonInteraction) { + trackEventWithTracker(null, category, action, optLabel, optValue, optNonInteraction); + } + + @Override + public void trackEventWithTracker(final String trackerName, final String category, final String action) { + sendEvent(trackerName, category, action).go(); + } + + @Override + public void trackEventWithTracker(final String trackerName, final String category, final String action, + final String optLabel) { + sendEvent(trackerName, category, action).eventLabel(optLabel).go(); + } + + @Override + public void trackEventWithTracker(final String trackerName, final String category, final String action, + final String optLabel, final int optValue) { + sendEvent(trackerName, category, action).eventLabel(optLabel).eventValue(optValue).go(); + } + + @Override + public void trackEventWithTracker(final String trackerName, final String category, final String action, + final String optLabel, final int optValue, final boolean optNonInteraction) { + sendEvent(trackerName, category, action).eventLabel(optLabel).eventValue(optValue).hit() + .nonInteractionHit(optNonInteraction).go(); + } + + @Override + public void trackPageview() { + sendPageView().go(); + } + + @Override + public void trackPageview(final String pageName) { + trackPageview(null, pageName); + } + + @Override + public void trackPageview(final String trackerName, final String pageName) { + final String pName = pageName.startsWith("/") ? pageName : "/" + pageName; + sendPageView(trackerName).documentPath(pName).go(); + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java new file mode 100644 index 0000000000..7513b58461 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java @@ -0,0 +1,79 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; + +import com.google.gwt.inject.client.AbstractGinModule; +import com.google.inject.name.Names; +import com.gwtplatform.mvp.client.googleanalytics.GaAccount; +import com.gwtplatform.mvp.client.googleanalytics.GoogleAnalytics; +import com.gwtplatform.mvp.client.googleanalytics.GoogleAnalyticsNavigationTracker; + +public class UniversalAnalyticsModule extends AbstractGinModule { + + public static class Builder { + private final String userAccount; + private boolean trackNavigationEvents = true; + private boolean autoCreate = true; + + public Builder(final String userAccount) { + this.userAccount = userAccount; + } + + /** + * Set this to false if you want to create the universal analytics tracker with extra option. + * You can manually create the tracker by calling analytics.create().options().go() from your bootstrapper; + * @param autoCreate + * @return + */ + public Builder autoCreate(final boolean autoCreate) { + this.autoCreate = autoCreate; + return this; + } + + public UniversalAnalyticsModule build() { + return new UniversalAnalyticsModule(userAccount, trackNavigationEvents, autoCreate); + } + + public Builder trackNavigationEvents(final boolean trackNavigationEvents) { + this.trackNavigationEvents = trackNavigationEvents; + return this; + } + } + + private final boolean trackNavigationEvents; + private final String userAccount; + private boolean autoCreate; + + private UniversalAnalyticsModule(final String userAccount, final boolean trackNavigationEvents, + final boolean autoCreate) { + this.userAccount = userAccount; + this.trackNavigationEvents = trackNavigationEvents; + this.autoCreate = autoCreate; + } + + @Override + protected void configure() { + bindConstant().annotatedWith(GaAccount.class).to(userAccount); + bindConstant().annotatedWith(Names.named("uaAutoCreate")).to(autoCreate); + bind(GoogleAnalytics.class).to(UniversalAnalyticsImpl.class); + bind(UniversalAnalytics.class).to(UniversalAnalyticsImpl.class); + + if (trackNavigationEvents) { + bind(GoogleAnalyticsNavigationTracker.class).asEagerSingleton(); + } + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java new file mode 100644 index 0000000000..e4c7f2517d --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java @@ -0,0 +1,66 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONValue; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HasFields; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HitCallback; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public abstract class AbstractFieldBuilder implements HasFields { + + private final JSONObject jsonObject; + private final OptionsCallback callback; + + AbstractFieldBuilder(final JSONObject jsonObject, final OptionsCallback callback) { + this.jsonObject = jsonObject; + this.callback = callback; + } + + AbstractFieldBuilder(final OptionsCallback callback) { + this(new JSONObject(), callback); + } + + JSONObject build() { + return jsonObject; + } + + OptionsCallback getCallback() { + return callback; + } + + public void go() { + callback.onCallback(build()); + } + + public void go(final HitCallback callback) { + go(jsonObject, callback); + }; + + private native void go(JSONObject jsonObject, HitCallback callback) /*-{ + jsonObject.hitCallback = function() { + callback.@com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HitCallback::onCallback()(); + } + + }-*/; + + @Override + public void put(final String fieldName, final JSONValue value) { + jsonObject.put(fieldName, value); + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java new file mode 100644 index 0000000000..87d56a3533 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java @@ -0,0 +1,76 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class AppTrackingFieldBuilder extends FieldBuilder { + + AppTrackingFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Optional. + * Specifies the application identifier. + * @param applicationId
+ * Default: none
+ * Example Value: com.company.app + */ + public AppTrackingFieldBuilder applicationId(final String applicationId) { + put("appId", new JSONString(applicationId)); + return this; + } + + /** + * Optional. + * Specifies the application installer identifier. + * @param applicationInstallerID
+ * Default: none
+ * Example Value: com.platform.vending + */ + public AppTrackingFieldBuilder applicationInstallerID(final String applicationInstallerID) { + put("appInstallerId", new JSONString(applicationInstallerID)); + return this; + } + + /** + * Optional. + * Specifies the application name. + * @param applicationName
+ * Default: none
+ * Example Value: My App + */ + public AppTrackingFieldBuilder applicationName(final String applicationName) { + put("appName", new JSONString(applicationName)); + return this; + } + + /** + * Optional. + * Specifies the application version. + * @param applicationVersion
+ * Default: none
+ * Example Value: 1.2 + */ + public AppTrackingFieldBuilder applicationVersion(final String applicationVersion) { + put("appVersion", new JSONString(applicationVersion)); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java new file mode 100644 index 0000000000..a8fd09404d --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java @@ -0,0 +1,54 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class ContentExperimentsFieldBuilder extends FieldBuilder { + + ContentExperimentsFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Optional. + * This parameter specifies that this user has been exposed to an experiment with the given ID. + * It should be sent in conjunction with the Experiment Variant parameter. + * @param experimentId (Max Length 40 bytes)
+ * Default: none
+ * Example Value: Qp0gahJ3RAO3DJ18b0XoUQ + */ + public ContentExperimentsFieldBuilder experimentID(final String experimentID) { + put("expId", new JSONString(experimentID)); + return this; + } + + /** + * Optional. + * This parameter specifies that this user has been exposed to a particular variation of an experiment. + * It should be sent in conjunction with the Experiment ID parameter. + * @param experimentVariant
+ * Default: none
+ * Example Value: 1 + */ + public ContentExperimentsFieldBuilder experimentVariant(final String experimentVariant) { + put("expId", new JSONString(experimentVariant)); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java new file mode 100644 index 0000000000..39a4e1fd33 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java @@ -0,0 +1,98 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class ContentFieldBuilder extends FieldBuilder { + + ContentFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Optional. + * Specifies the hostname from which content was hosted. + * @param documentHostName
+ * Default: none; + */ + public ContentFieldBuilder documentHostName(final String documentHostName) { + put("hostname", new JSONString(documentHostName)); + return this; + } + + /** + * Optional. + * Specifies the full URL (excluding anchor) of the page. This field is initialized by the create command. + * @param documentLocationURL
+ * Default: none; + */ + public ContentFieldBuilder documentLocationURL(final String documentLocationURL) { + put("location", new JSONString(documentLocationURL)); + return this; + } + + /** + * Optional. + * The path portion of the page URL. Should begin with '/'. Used to specify virtual page paths. + * @param viewportSize
+ * Default: none;
+ */ + public ContentFieldBuilder documentPath(final String documentPath) { + put("page", new JSONString(documentPath)); + return this; + } + + /** + * Optional. + * The title of the page / document. + * @param documentTitle
+ * Default: document.title
+ */ + public ContentFieldBuilder documentTitle(final String documentTitle) { + put("title", new JSONString(documentTitle)); + return this; + } + + /** + * Optional. + * The ID of a clicked DOM element, used to disambiguate multiple links to the same URL in + * In-Page Analytics reports when Enhanced Link Attribution is enabled for the property. + * @param linkId
+ * Default: none
+ * Example Value: nav_bar + */ + public ContentFieldBuilder linkId(final String linkId) { + put("&linkid", new JSONString(linkId)); + return this; + } + + /** + * Optional. + * If not specified, this will default to the unique URL of the page by either using the + * &dl parameter as-is or assembling it from &dh and &dp. App tracking makes use of this for + * the 'Screen Name' of the screenview hit. + * @param screenName
+ * Example Value: High Scores
+ */ + public ContentFieldBuilder screenName(final String screenName) { + put("screenName", new JSONString(screenName)); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java new file mode 100644 index 0000000000..66f8c8f979 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java @@ -0,0 +1,165 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONBoolean; +import com.google.gwt.json.client.JSONNumber; +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class CreateOnlyFieldBuilder extends FieldBuilder { + + CreateOnlyFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Optional. This may only be set in the create method. + * By default, analytics.js will search for custom campaign parameters such as + * utm_source, utm_medium, etc. in both the query string and anchor of the current + * page's URL. Setting this field to false will result in ignoring any custom + * campaign parameters that appear in the anchor. + * @param allowAnchorParamters - default: true + */ + public CreateOnlyFieldBuilder allowAnchorParameters(final boolean allowAnchorParameters) { + put("allowAnchor", JSONBoolean.getInstance(allowAnchorParameters)); + return this; + } + + /** + * Optional. This may only be set in the create method. + * Setting this field to true will enables the parsing of cross-domain + * linker parameters used to transfer state across domains. + * @param allowLinker - default: false + */ + public CreateOnlyFieldBuilder allowLinkerParameters(final boolean allowLinker) { + put("allowLinker", JSONBoolean.getInstance(allowLinker)); + return this; + } + + /** + * Optional. This may only be set in the create method. + * By default the HTTP referrer URL, which is used to attribute traffic sources, + * is only sent when the hostname of the referring site differs from the hostname + * of the current page. Enable this setting only if you want to process other pages + * from your current host as referrals. + * @param alwaysSendReferrer - default: false + */ + public CreateOnlyFieldBuilder alwaysSendReferrer(final boolean alwaysSendReferrer) { + put("alwaysSendReferrer", JSONBoolean.getInstance(alwaysSendReferrer)); + return this; + } + + /** + * Required for all hit types. + * Anonymously identifies a browser instance. By default, this value is + * stored as part of the first-party analytics tracking cookie with a two-year expiration. + * @param clientId - default: Randomly Generated + */ + public CreateOnlyFieldBuilder clientId(final String clientId) { + put("clientId", new JSONString(clientId)); + return this; + } + + /** + * Optional. This may only be set in the create method. + * Specifies the domain used to store the analytics cookie. Setting this to + * 'none' sets the cookie without specifying a domain. + * @param cookieDomain - default: document.location.hostname (normalized) + */ + public CreateOnlyFieldBuilder cookieDomain(final String cookieDomain) { + put("cookieDomain", new JSONString(cookieDomain)); + return this; + } + + /** + * Optional. This may only be set in the create method. + * Specifies the cookie expiration, in seconds. + * @param cookieExpires - default: 63072000 (two years) + */ + public CreateOnlyFieldBuilder cookieExpiration(final int cookieExpires) { + put("cookieExpires", new JSONNumber(cookieExpires)); + return this; + } + + /** + * Optional. This may only be set in the create method. + * Name of the cookie used to store analytics data + * @param cookieName - default: _ga + */ + public CreateOnlyFieldBuilder cookieName(final String cookieName) { + put("cookieName", new JSONString(cookieName)); + return this; + } + + /** + * Optional. This may only be set in the create method. + * This field is used to configure how analytics.js searches for cookies generated + * by earlier Google Analytics tracking scripts such as ga.js and urchin.js. + * @param legacyCookieDomain - default: none + */ + public CreateOnlyFieldBuilder legacyCookieDomain(final String legacyCookieDomain) { + put("legacyCookieDomain", new JSONString(legacyCookieDomain)); + return this; + } + + /** + * Optional. This may only be set in the create method. + * @param name Name of the tracker object. t0 if not set + */ + public CreateOnlyFieldBuilder name(final String name) { + put("name", new JSONString(name)); + return this; + } + + /** + * Optional. This may only be set in the create method. + * Specifies what percentage of users should be tracked. This defaults to 100 + * (no users are sampled out) but large sites may need to use a lower sample rate to stay + * within Google Analytics processing limits. + * @param sampleRate - default: 100 + */ + public CreateOnlyFieldBuilder sampleRate(final float sampleRate) { + put("sampleRate", new JSONNumber(sampleRate)); + return this; + } + + /** + * Optional. This may only be set in the create method. + * This setting determines how often site speed tracking beacons will be sent. By default, + * 1% of users will be automatically be tracked.Note: Analytics restricts Site Speed collection + * hits for a single property to the greater of 1% of users or 10K hits per day in order to ensure + * an equitable distribution of system resources for this feature. + * @param siteSpeedSampleRate - default: 1 + */ + public CreateOnlyFieldBuilder siteSpeedSampleRate(final int siteSpeedSampleRate) { + put("siteSpeedSampleRate", new JSONNumber(siteSpeedSampleRate)); + return this; + } + + /** + * Optional. This may only be set in the create method. + * This is intended to be a known identifier for a user provided by the site owner/tracking + * library user. It may not itself be PII. The value should never be persisted in GA cookies + * or other Analytics provided storage. + * @param userId - default: none + */ + public CreateOnlyFieldBuilder userId(final String userId) { + put("userId", new JSONString(userId)); + return this; + } +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java new file mode 100644 index 0000000000..af21959395 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java @@ -0,0 +1,49 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONNumber; +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class CustomDimensionsFieldBuilder extends FieldBuilder { + + CustomDimensionsFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Optional. + * Each custom dimension has an associated index. There is a maximum of 20 custom + * dimensions (200 for Premium accounts). The name suffix must be a positive integer between 1 and 200, inclusive. + */ + public CustomDimensionsFieldBuilder customDimension(final int dimension, final String value) { + put("dimension" + dimension, new JSONString(value)); + return this; + } + + /** + * Optional. + * Each custom metric has an associated index. There is a maximum of 20 custom metrics + * (200 for Premium accounts). The name suffix must be a positive integer between 1 and 200, inclusive. + */ + public CustomDimensionsFieldBuilder customMetric(final int index, final int value) { + put("metric" + index, new JSONNumber(value)); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java new file mode 100644 index 0000000000..97bc5a596d --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java @@ -0,0 +1,54 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONNumber; +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class EventFieldBuilder extends FieldBuilder { + + EventFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback, final String category, + final String action) { + super(jsonObject, optionsCallback); + put("eventCategory", new JSONString(category)); + put("eventAction", new JSONString(action)); + } + + /** + * Optional. + * Specifies the event label. + * @param eventLabel + * Default: none;
+ */ + public EventFieldBuilder eventLabel(final String eventLabel) { + put("eventLabel", new JSONString(eventLabel)); + return this; + } + + /** + * Optional. + * Specifies the event value. Values must be non-negative + * @param eventValue + * Default: none;
+ */ + public EventFieldBuilder eventValue(final int eventValue) { + put("eventValue", new JSONNumber(eventValue)); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java new file mode 100644 index 0000000000..40df69cefc --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java @@ -0,0 +1,52 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONBoolean; +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class ExceptionFieldBuilder extends FieldBuilder { + + ExceptionFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Optional. + * Specifies the description of an exception.. + * @param exceptionDescription
+ * Default: none
+ * Example Value: DatabaseError + */ + public ExceptionFieldBuilder exceptionDescription(final String exceptionDescription) { + put("exDescription", new JSONString(exceptionDescription)); + return this; + } + + /** + * Optional. + * Specifies whether the exception was fatal. + * @param fatal
+ * Default: true;
+ */ + public ExceptionFieldBuilder exceptionFatal(final boolean fatal) { + put("exFatal", JSONBoolean.getInstance(fatal)); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java new file mode 100644 index 0000000000..700bdbf405 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java @@ -0,0 +1,87 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONObject; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class FieldBuilder extends AbstractFieldBuilder { + + FieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + public FieldBuilder(final OptionsCallback optionsCallback) { + super(optionsCallback); + } + + public AppTrackingFieldBuilder appTracking() { + return new AppTrackingFieldBuilder(build(), getCallback()); + } + + public ContentFieldBuilder content() { + return new ContentFieldBuilder(build(), getCallback()); + } + + public ContentExperimentsFieldBuilder contentExpirements() { + return new ContentExperimentsFieldBuilder(build(), getCallback()); + } + + public CreateOnlyFieldBuilder createOnlyFields() { + return new CreateOnlyFieldBuilder(build(), getCallback()); + } + + public CustomDimensionsFieldBuilder customDimensions() { + return new CustomDimensionsFieldBuilder(build(), getCallback()); + } + + public EventFieldBuilder event(final String category, final String action) { + return new EventFieldBuilder(build(), getCallback(), category, action); + } + + public ExceptionFieldBuilder exception() { + return new ExceptionFieldBuilder(build(), getCallback()); + } + + public GeneralFieldBuilder general() { + return new GeneralFieldBuilder(build(), getCallback()); + } + + public HitFieldBuilder hit() { + return new HitFieldBuilder(build(), getCallback()); + } + + public SessionFieldBuilder session() { + return new SessionFieldBuilder(build(), getCallback()); + } + + public SocialNetworkFieldBuilder socialNetwork(final String socialNetwork, final String socialAction, + final String socialTarget) { + return new SocialNetworkFieldBuilder(build(), getCallback(), socialNetwork, socialAction, socialTarget); + } + + public SystemInfoFieldBuilder systemInfo() { + return new SystemInfoFieldBuilder(build(), getCallback()); + } + + public TrafficSourcesFieldBuilder trafficSources() { + return new TrafficSourcesFieldBuilder(build(), getCallback()); + } + + public UserTimingFieldBuilder userTiming() { + return new UserTimingFieldBuilder(build(), getCallback()); + } +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java new file mode 100644 index 0000000000..58baf000da --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java @@ -0,0 +1,49 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONBoolean; +import com.google.gwt.json.client.JSONObject; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class GeneralFieldBuilder extends FieldBuilder { + + GeneralFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Optional. + * When present, the IP address of the sender will be anonymized. + */ + public GeneralFieldBuilder anonymizeIp(final boolean anonymizeIp) { + put("anonymizeIp", JSONBoolean.getInstance(anonymizeIp)); + return this; + } + + /** + * Optional. + * By default, tracking beacons sent from https pages will be sent using https while beacons sent + * from http pages will be sent using http. Setting forceSSL to true will force http pages to also + * send all beacons using https. + * @param forceSSL - default: false + */ + public GeneralFieldBuilder forceSSL(final boolean forceSSL) { + put("forceSSL", JSONBoolean.getInstance(forceSSL)); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java new file mode 100644 index 0000000000..fb4dcca502 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java @@ -0,0 +1,49 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONBoolean; +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HitType; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class HitFieldBuilder extends FieldBuilder { + + HitFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * @param hitType - the type of the hit + */ + public HitFieldBuilder hitType(final HitType hitType) { + put("hitType", new JSONString(hitType.getFieldName())); + return this; + } + + /** + * Optional. + * Specifies that a hit be considered non-interactive. + * @param nonInteraction
+ * Default: none;
+ */ + public HitFieldBuilder nonInteractionHit(final boolean nonInteraction) { + put("nonInteraction", JSONBoolean.getInstance(nonInteraction)); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java new file mode 100644 index 0000000000..74dc78c831 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java @@ -0,0 +1,44 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class SessionFieldBuilder extends FieldBuilder { + + SessionFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Used to control the session duration. Forces the current session to end with this hit. + */ + public SessionFieldBuilder end() { + put("sessionControl", new JSONString("end")); + return this; + } + + /** + * Used to control the session duration. Forces a new session to start with this hit. + */ + public SessionFieldBuilder start() { + put("sessionControl", new JSONString("start")); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java new file mode 100644 index 0000000000..5f914c3f6b --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java @@ -0,0 +1,32 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class SocialNetworkFieldBuilder extends FieldBuilder { + + SocialNetworkFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback, + final String socialNetwork, final String socialAction, final String socialTarget) { + super(jsonObject, optionsCallback); + put("socialNetwork", new JSONString(socialNetwork)); + put("socialAction", new JSONString(socialAction)); + put("socialTarget", new JSONString(socialTarget)); + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java new file mode 100644 index 0000000000..8b5353db8e --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java @@ -0,0 +1,110 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONBoolean; +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class SystemInfoFieldBuilder extends FieldBuilder { + + SystemInfoFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Optional. + * Specifies the character set used to encode the page / document. This field is initialized by the create command. + * @param documentEncoding - default: UTF-8 + */ + public SystemInfoFieldBuilder documentEncoding(final String documentEncoding) { + put("encoding", new JSONString(documentEncoding)); + return this; + } + + /** + * Optional. + * Specifies the flash version. This field is initialized by the create command. + * @param flashVersion
+ * Default: none;
+ * Example Value: 10 1 r103 + */ + public SystemInfoFieldBuilder flashVersion(final String flashVersion) { + put("flashVersion", new JSONString(flashVersion)); + return this; + } + + /** + * Optional. + * Specifies whether Java was enabled. This field is initialized by the create command. + * @param javaEnabled
+ * Default: none;
+ */ + public SystemInfoFieldBuilder javaEnabled(final boolean javaEnabled) { + put("javaEnabled", JSONBoolean.getInstance(javaEnabled)); + return this; + } + + /** + * Optional. + * Specifies the screen color depth. This field is initialized by the create command. + * @param screenColorDepth
+ * Default: none;
+ * Example Value: 24-bits + */ + public SystemInfoFieldBuilder screenColorDepth(final String screenColorDepth) { + put("screenColors", new JSONString(screenColorDepth)); + return this; + } + + /** + * Optional. + * Specifies the screen resolution. This field is initialized by the create command. + * @param screenResolution -
+ * Default: none;
+ * Example Value: 800x600 + */ + public SystemInfoFieldBuilder screenResolution(final String screenResolution) { + put("screeenResolution", new JSONString(screenResolution)); + return this; + } + + /** + * Optional. + * Specifies the language. This field is initialized by the create command. + * @param userLanguage
+ * Default: none
+ * Example Value: en-us + */ + public SystemInfoFieldBuilder userLanguage(final String userLanguage) { + put("language", new JSONString(userLanguage)); + return this; + } + + /** + * Optional. + * Specifies the viewable area of the browser / device. This field is initialized by the create command. + * @param viewportSize
+ * Default: none
+ * Example Value: 123x456 + */ + public SystemInfoFieldBuilder viewportSize(final String viewportSize) { + put("viewportSize", new JSONString(viewportSize)); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java new file mode 100644 index 0000000000..11101187bb --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java @@ -0,0 +1,102 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class TrafficSourcesFieldBuilder extends FieldBuilder { + + TrafficSourcesFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Optional. + * Specifies the campaign content. + * @param campaignContent - default: none + */ + public TrafficSourcesFieldBuilder campaignContent(final String campaignContent) { + put("campaignContent", new JSONString(campaignContent)); + return this; + } + + /** + * Optional. + * Specifies the campaign ID. + * @param campaignId - default: none + */ + public TrafficSourcesFieldBuilder campaignId(final String campaignId) { + put("campaignId", new JSONString(campaignId)); + return this; + } + + /** + * Optional. + * Specifies the campaign keyword. + * @param campaignKeyword - default: none + */ + public TrafficSourcesFieldBuilder campaignKeyword(final String campaignKeyword) { + put("campaignKeyword", new JSONString(campaignKeyword)); + return this; + } + + /** + * Optional. + * Specifies the campaign medium. + * @param campaignMedium - default: none + */ + public TrafficSourcesFieldBuilder campaignMedium(final String campaignMedium) { + put("campaignMedium", new JSONString(campaignMedium)); + return this; + } + + /** + * Optional. + * Specifies the campaign name. + * @param campaignName - default: none + */ + public TrafficSourcesFieldBuilder campaignName(final String campaignName) { + put("campaignName", new JSONString(campaignName)); + return this; + } + + /** + * Optional. + * Specifies the campaign source. + * @param campaignSource - default: none + */ + public TrafficSourcesFieldBuilder campaignSource(final String campaignSource) { + put("campaignSource", new JSONString(campaignSource)); + return this; + } + + /** + * Optional. + * Specifies which referral source brought traffic to a website. + * This value is also used to compute the traffic source. + * The format of this value is a URL. This field is initialized by the create command and is only + * set when the current hostname differs from the referrer hostname, + * unless the 'alwaysSendReferrer' field is set to true. + * @param documentReferrer - default: document.referrer + */ + public TrafficSourcesFieldBuilder documentReferrer(final String documentReferrer) { + put("referrer", new JSONString(documentReferrer)); + return this; + } + +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java new file mode 100644 index 0000000000..ec9810f7f9 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java @@ -0,0 +1,77 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; + +import com.google.gwt.json.client.JSONNumber; +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; +import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; + +public class UserTimingFieldBuilder extends FieldBuilder { + + UserTimingFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + super(jsonObject, optionsCallback); + } + + /** + * Optional. + * Specifies the user timing category. + * @param timingCategory
+ * Default: none
+ * Example Value: category + */ + public UserTimingFieldBuilder timingCategory(final String timingCategory) { + put("timingCategory", new JSONString(timingCategory)); + return this; + } + + /** + * Optional. + * Specifies the user timing label + * @param timingLabel
+ * Default: none
+ * Example Value: label + */ + public UserTimingFieldBuilder timingLabel(final String timingLabel) { + put("timingLabel", new JSONString(timingLabel)); + return this; + } + + /** + * Optional. + * Specifies the user timing value. The value is in milliseconds. + * @param timingValue
+ * Default: none
+ * Example Value: 123 + */ + public UserTimingFieldBuilder timingValue(final int timingValue) { + put("timingValue", new JSONNumber(timingValue)); + return this; + } + + /** + * Optional. + * Specifies the user timing variable. + * @param timingVar
+ * Default: none
+ * Example Value: lookup + */ + public UserTimingFieldBuilder timingVariableName(final String timingVar) { + put("timingVar", new JSONString(timingVar)); + return this; + } + +} From 519ca6354c1cb608cefa48923835675754716b58 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 12:45:36 +0200 Subject: [PATCH 03/27] eclipse junk --- .../net.sf.eclipsecs.core.CheckstyleBuilder.launch | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 gwtp-core/gwtp-mvp-client/.externalToolBuilders/net.sf.eclipsecs.core.CheckstyleBuilder.launch diff --git a/gwtp-core/gwtp-mvp-client/.externalToolBuilders/net.sf.eclipsecs.core.CheckstyleBuilder.launch b/gwtp-core/gwtp-mvp-client/.externalToolBuilders/net.sf.eclipsecs.core.CheckstyleBuilder.launch deleted file mode 100644 index e872f77e0c..0000000000 --- a/gwtp-core/gwtp-mvp-client/.externalToolBuilders/net.sf.eclipsecs.core.CheckstyleBuilder.launch +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - From ee65e8db5e5748419111da1e0989ae1a211f6a23 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 12:48:00 +0200 Subject: [PATCH 04/27] one param per line in ctor --- .../googleanalytics/GoogleAnalyticsNavigationTracker.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsNavigationTracker.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsNavigationTracker.java index bc6999cad4..1a8563ae57 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsNavigationTracker.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsNavigationTracker.java @@ -39,7 +39,8 @@ public class GoogleAnalyticsNavigationTracker implements NavigationHandler { private final GoogleAnalytics analytics; @Inject - GoogleAnalyticsNavigationTracker(final PlaceManager placeManager, final EventBus eventBus, + GoogleAnalyticsNavigationTracker(final PlaceManager placeManager, + final EventBus eventBus, final GoogleAnalytics analytics) { this.placeManager = placeManager; this.analytics = analytics; From c525c60210063e81f8b5a7b05a1cfa2e497c2816 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 13:08:48 +0200 Subject: [PATCH 05/27] call callback --- .../fields/AbstractFieldBuilder.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java index e4c7f2517d..1d34ee8709 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java @@ -35,6 +35,13 @@ public abstract class AbstractFieldBuilder implements HasFields { this(new JSONObject(), callback); } + private native void addHitCallback(JSONObject jsonObject, HitCallback callback) /*-{ + jsonObject.hitCallback = function() { + callback.@com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HitCallback::onCallback()(); + } + + }-*/; + JSONObject build() { return jsonObject; } @@ -45,18 +52,12 @@ OptionsCallback getCallback() { public void go() { callback.onCallback(build()); - } - - public void go(final HitCallback callback) { - go(jsonObject, callback); }; - private native void go(JSONObject jsonObject, HitCallback callback) /*-{ - jsonObject.hitCallback = function() { - callback.@com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HitCallback::onCallback()(); - } - - }-*/; + public void go(final HitCallback callback) { + addHitCallback(jsonObject, callback); + this.callback.onCallback(build()); + } @Override public void put(final String fieldName, final JSONValue value) { From 99dacb4fab516316efc354b7ec5eccdc6e1da0cf Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 13:18:46 +0200 Subject: [PATCH 06/27] bind universal analytics as eager singleton --- .../universalanalytics/UniversalAnalyticsModule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java index 7513b58461..181124c26f 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java @@ -69,7 +69,7 @@ protected void configure() { bindConstant().annotatedWith(GaAccount.class).to(userAccount); bindConstant().annotatedWith(Names.named("uaAutoCreate")).to(autoCreate); bind(GoogleAnalytics.class).to(UniversalAnalyticsImpl.class); - bind(UniversalAnalytics.class).to(UniversalAnalyticsImpl.class); + bind(UniversalAnalytics.class).to(UniversalAnalyticsImpl.class).asEagerSingleton(); if (trackNavigationEvents) { bind(GoogleAnalyticsNavigationTracker.class).asEagerSingleton(); From da549e0526e940dba1502421227c971e4f87ccbe Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 13:43:53 +0200 Subject: [PATCH 07/27] reqrite varargs native call --- .../UniversalAnalyticsImpl.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index 9738d64ee3..c165ccb5d6 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -15,6 +15,7 @@ */ package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; +import com.google.gwt.json.client.JSONArray; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; import com.google.gwt.json.client.JSONValue; @@ -46,6 +47,14 @@ public void addAccount(final String trackerName, final String userAccount) { create(userAccount).name(trackerName).go(); } + private void call(final JSONValue... params) { + final JSONArray aryParams = new JSONArray(); + for (final JSONValue p:params) { + aryParams.set(aryParams.size(), p); + } + nativeCall(aryParams); + } + @Override public CreateOnlyFieldBuilder create() { return create(userAccount); @@ -57,7 +66,7 @@ public CreateOnlyFieldBuilder create(final String userAccount) { @Override public void onCallback(final JSONObject options) { - nativeCall(new JSONString("create"), new JSONString(userAccount), options); + call(new JSONString("create"), new JSONString(userAccount), options); } }).createOnlyFields(); } @@ -69,7 +78,7 @@ private native void init()/*-{ })($wnd,$doc,'script','//www.google-analytics.com/analytics.js','__ua'); }-*/; - private native void nativeCall(JSONValue... params) /*-{ + private native void nativeCall(JSONArray params) /*-{ $wnd.__ua.apply($wnd, params); }-*/; @@ -84,7 +93,7 @@ public FieldBuilder send(final String trackerName, final HitType hitType) { @Override public void onCallback(final JSONObject options) { - nativeCall(new JSONString(trackerName == null ? "send" : trackerName + ".send"), + call(new JSONString(trackerName == null ? "send" : trackerName + ".send"), new JSONString(hitType.getFieldName()), options); } }); @@ -138,7 +147,7 @@ public FieldBuilder setGlobalSettings() { @Override public void onCallback(final JSONObject options) { - nativeCall(new JSONString("set"), options); + call(new JSONString("set"), options); } }); From b0b90f5c512c1426e4729af42a0c70b0e494f305 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 14:06:59 +0200 Subject: [PATCH 08/27] make universalAnalyticsImpl singleton --- .../universalanalytics/UniversalAnalyticsImpl.java | 5 ++++- .../universalanalytics/UniversalAnalyticsModule.java | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index c165ccb5d6..486335ed84 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -79,7 +79,10 @@ private native void init()/*-{ }-*/; private native void nativeCall(JSONArray params) /*-{ - $wnd.__ua.apply($wnd, params); + if ($wnd.console) { + $wnd.console.log("uaNative: "+ params); + } + $wnd.__ua.apply($wnd.__ua, params); }-*/; @Override diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java index 181124c26f..84faf91107 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java @@ -68,8 +68,9 @@ private UniversalAnalyticsModule(final String userAccount, final boolean trackNa protected void configure() { bindConstant().annotatedWith(GaAccount.class).to(userAccount); bindConstant().annotatedWith(Names.named("uaAutoCreate")).to(autoCreate); + bind(UniversalAnalyticsImpl.class).asEagerSingleton(); bind(GoogleAnalytics.class).to(UniversalAnalyticsImpl.class); - bind(UniversalAnalytics.class).to(UniversalAnalyticsImpl.class).asEagerSingleton(); + bind(UniversalAnalytics.class).to(UniversalAnalyticsImpl.class); if (trackNavigationEvents) { bind(GoogleAnalyticsNavigationTracker.class).asEagerSingleton(); From bb03ec5912f02906ad39d54acece1e8d08e77979 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 14:47:13 +0200 Subject: [PATCH 09/27] switch apply to use null --- .../universalanalytics/UniversalAnalyticsImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index 486335ed84..b2ac8cae5a 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -82,7 +82,7 @@ private native void nativeCall(JSONArray params) /*-{ if ($wnd.console) { $wnd.console.log("uaNative: "+ params); } - $wnd.__ua.apply($wnd.__ua, params); + $wnd.__ua.apply(null, params); }-*/; @Override From 407583495b9b0dd4e930dd6bf81456ec1915b1be Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 15:08:19 +0200 Subject: [PATCH 10/27] pass javascript object to native call --- .../UniversalAnalyticsImpl.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index b2ac8cae5a..f7d0f99c07 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -15,6 +15,7 @@ */ package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; +import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.json.client.JSONArray; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; @@ -52,7 +53,7 @@ private void call(final JSONValue... params) { for (final JSONValue p:params) { aryParams.set(aryParams.size(), p); } - nativeCall(aryParams); + nativeCall(aryParams.getJavaScriptObject()); } @Override @@ -78,12 +79,12 @@ private native void init()/*-{ })($wnd,$doc,'script','//www.google-analytics.com/analytics.js','__ua'); }-*/; - private native void nativeCall(JSONArray params) /*-{ - if ($wnd.console) { - $wnd.console.log("uaNative: "+ params); - } - $wnd.__ua.apply(null, params); - }-*/; + private native void nativeCall(JavaScriptObject params) /*-{ + if ($wnd.console) { + $wnd.console.log("uaNative: "+ params); + } + $wnd.__ua.apply(null, params); + }-*/; @Override public FieldBuilder send(final HitType hitType) { From d703c1e2b48cc09b91599cb4f70f7c6d6554ddcb Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 15:31:00 +0200 Subject: [PATCH 11/27] add javadoc to ua --- .../UniversalAnalytics.java | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java index c7a92fa596..0b1c985a9e 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java @@ -23,32 +23,109 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.SocialNetworkFieldBuilder; import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.UserTimingFieldBuilder; +/** + * Support for universal Analytics see: https://github.com/ArcBees/GWTP/wiki/Universal-Analytics + */ public interface UniversalAnalytics extends GoogleAnalytics { + /** + * Create a new tracker using the user id bound to GaAccount.
+ * Example: create().go();
+ * create().name("My Tracker").go() //create a custom named tracker + * + */ CreateOnlyFieldBuilder create(); + /** + * Create a new tracker using a supplied user id.
+ * Example: create("UA-XXXXXXX-X").go();
+ * create("UA-XXXXXXX-X").name("My Tracker").go() //create a custom named tracker + * + */ CreateOnlyFieldBuilder create(String userAccount); + /** + * send a specific HitType. + * @param hitType + * see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#hit + * Example: send(HitType.PAGE_VIEW).go(); + */ FieldBuilder send(HitType hitType); + /** + * send a specific HitType to a specific tracker. + * @param trackerName the name of the tracker + * @param hitType + * see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#hit + * Example: send(HitType.PAGE_VIEW).go(); + */ FieldBuilder send(String trackerName, HitType hitType); + /** + * send an event + * @param category the event category + * @param action the event action
+ * see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#events + * Example: sendEvent("button", "click").go(); + */ EventFieldBuilder sendEvent(String category, String action); + /** + * send an event to a specific tracker + * @param trackerName the name of the tracker + * @param category the event category + * @param action the event action
+ * see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#events + * Example: sendEvent("button", "click").go(); + */ EventFieldBuilder sendEvent(String trackerName, String category, String action); + /** + * send a pageview to a specific tracker + * Example: sendPageView().go();
+ * sendPageView().documentPath("/foo").go(); //send a pageview for /foo + */ ContentFieldBuilder sendPageView(); + /** + * send a pageview to a specific tracker + * @param trackerName the name of the tracker + * Example: sendPageView().go();
+ * sendPageView().documentPath("/foo").go(); //send a pageview for /foo + */ ContentFieldBuilder sendPageView(String trackerName); SocialNetworkFieldBuilder sendSocial(String socialNetwork, String socialAction, String socialTarget); + /** + * send a social event to a specific tracker + * @param trackerName the name of the tracker + * @param socialNetwork the social network + * @param socialAction the action taken + * @param socialTarget the target of the action + * Example: sendSocial("facebook", "like", "http://www.example.com").go();
+ */ SocialNetworkFieldBuilder sendSocial(String trackerName, String socialNetwork, String socialAction, String socialTarget); + /** + * send user timing information to a specific tracker + * this is use to analyze page speed. + * Example: sendTiming().go();
+ */ UserTimingFieldBuilder sendTiming(); + /** + * send user timing information to a specific tracker + * this is use to analyze page speed. + * @param trackerName the name of the tracker + * Example: sendTiming().go();
+ */ UserTimingFieldBuilder sendTiming(String trackerName); + /** + * set options for all subsequent calls. + * Example: setGlobalSettings().general().anonymizeIp(true).go(); //anonymize ip addresses
+ */ FieldBuilder setGlobalSettings(); } From 26f567ec43529426c523302a66ab40236c1ba273 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 15:40:12 +0200 Subject: [PATCH 12/27] params on different lines --- .../googleanalytics/universalanalytics/HitType.java | 10 ++++++++-- .../universalanalytics/UniversalAnalyticsImpl.java | 3 ++- .../universalanalytics/UniversalAnalyticsModule.java | 3 ++- .../fields/AbstractFieldBuilder.java | 3 ++- .../fields/AppTrackingFieldBuilder.java | 3 ++- .../fields/ContentExperimentsFieldBuilder.java | 3 ++- .../universalanalytics/fields/ContentFieldBuilder.java | 3 ++- .../fields/CreateOnlyFieldBuilder.java | 3 ++- .../fields/CustomDimensionsFieldBuilder.java | 3 ++- .../universalanalytics/fields/EventFieldBuilder.java | 4 +++- .../fields/ExceptionFieldBuilder.java | 3 ++- .../universalanalytics/fields/FieldBuilder.java | 3 ++- .../universalanalytics/fields/GeneralFieldBuilder.java | 3 ++- .../universalanalytics/fields/HitFieldBuilder.java | 3 ++- .../universalanalytics/fields/SessionFieldBuilder.java | 3 ++- .../fields/SocialNetworkFieldBuilder.java | 7 +++++-- .../fields/SystemInfoFieldBuilder.java | 3 ++- .../fields/TrafficSourcesFieldBuilder.java | 3 ++- .../fields/UserTimingFieldBuilder.java | 3 ++- 19 files changed, 48 insertions(+), 21 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java index 5015ae34b2..09c66c4ac6 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java @@ -16,8 +16,14 @@ package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; public enum HitType { - PAGE_VIEW("pageview"), SCREEN_VIEW("screenview"), EVENT("event"), TRANSACTION("transaction"), ITEM("item"), SOCIAL( - "social"), EXCEPTION("exception"), TIMING("timing"); + PAGE_VIEW("pageview"), + SCREEN_VIEW("screenview"), + EVENT("event"), + TRANSACTION("transaction"), + ITEM("item"), + SOCIAL("social"), + EXCEPTION("exception"), + TIMING("timing"); private final String fieldName; diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index f7d0f99c07..465afdde14 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -35,7 +35,8 @@ public class UniversalAnalyticsImpl implements UniversalAnalytics { private final String userAccount; @Inject - UniversalAnalyticsImpl(@GaAccount final String userAccount, @Named("uaAutoCreate") final boolean autoCreate) { + UniversalAnalyticsImpl(@GaAccount final String userAccount, + @Named("uaAutoCreate") final boolean autoCreate) { init(); this.userAccount = userAccount; if (autoCreate) { diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java index 84faf91107..f5d43521ff 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java @@ -57,7 +57,8 @@ public Builder trackNavigationEvents(final boolean trackNavigationEvents) { private final String userAccount; private boolean autoCreate; - private UniversalAnalyticsModule(final String userAccount, final boolean trackNavigationEvents, + private UniversalAnalyticsModule(final String userAccount, + final boolean trackNavigationEvents, final boolean autoCreate) { this.userAccount = userAccount; this.trackNavigationEvents = trackNavigationEvents; diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java index 1d34ee8709..de75c69802 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java @@ -26,7 +26,8 @@ public abstract class AbstractFieldBuilder implements HasFields { private final JSONObject jsonObject; private final OptionsCallback callback; - AbstractFieldBuilder(final JSONObject jsonObject, final OptionsCallback callback) { + AbstractFieldBuilder(final JSONObject jsonObject, + final OptionsCallback callback) { this.jsonObject = jsonObject; this.callback = callback; } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java index 87d56a3533..08c5e992a8 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java @@ -21,7 +21,8 @@ public class AppTrackingFieldBuilder extends FieldBuilder { - AppTrackingFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + AppTrackingFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java index a8fd09404d..0c6503ccd2 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java @@ -21,7 +21,8 @@ public class ContentExperimentsFieldBuilder extends FieldBuilder { - ContentExperimentsFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + ContentExperimentsFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java index 39a4e1fd33..1f32bdbd90 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java @@ -21,7 +21,8 @@ public class ContentFieldBuilder extends FieldBuilder { - ContentFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + ContentFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java index 66f8c8f979..d1a188f37a 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java @@ -23,7 +23,8 @@ public class CreateOnlyFieldBuilder extends FieldBuilder { - CreateOnlyFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + CreateOnlyFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java index af21959395..02c029cea9 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java @@ -22,7 +22,8 @@ public class CustomDimensionsFieldBuilder extends FieldBuilder { - CustomDimensionsFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + CustomDimensionsFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java index 97bc5a596d..2d3398b247 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java @@ -22,7 +22,9 @@ public class EventFieldBuilder extends FieldBuilder { - EventFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback, final String category, + EventFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback, + final String category, final String action) { super(jsonObject, optionsCallback); put("eventCategory", new JSONString(category)); diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java index 40df69cefc..b73a7f6de0 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java @@ -22,7 +22,8 @@ public class ExceptionFieldBuilder extends FieldBuilder { - ExceptionFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + ExceptionFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java index 700bdbf405..f10a65fc22 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java @@ -20,7 +20,8 @@ public class FieldBuilder extends AbstractFieldBuilder { - FieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + FieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java index 58baf000da..7ffaac3061 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java @@ -21,7 +21,8 @@ public class GeneralFieldBuilder extends FieldBuilder { - GeneralFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + GeneralFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java index fb4dcca502..1c47c9186f 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java @@ -23,7 +23,8 @@ public class HitFieldBuilder extends FieldBuilder { - HitFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + HitFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java index 74dc78c831..2bc397b06f 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java @@ -21,7 +21,8 @@ public class SessionFieldBuilder extends FieldBuilder { - SessionFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + SessionFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java index 5f914c3f6b..1387901e38 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java @@ -21,8 +21,11 @@ public class SocialNetworkFieldBuilder extends FieldBuilder { - SocialNetworkFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback, - final String socialNetwork, final String socialAction, final String socialTarget) { + SocialNetworkFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback, + final String socialNetwork, + final String socialAction, + final String socialTarget) { super(jsonObject, optionsCallback); put("socialNetwork", new JSONString(socialNetwork)); put("socialAction", new JSONString(socialAction)); diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java index 8b5353db8e..36fa21a3a7 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java @@ -22,7 +22,8 @@ public class SystemInfoFieldBuilder extends FieldBuilder { - SystemInfoFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + SystemInfoFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java index 11101187bb..4cd4e69c45 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java @@ -21,7 +21,8 @@ public class TrafficSourcesFieldBuilder extends FieldBuilder { - TrafficSourcesFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + TrafficSourcesFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java index ec9810f7f9..7ec32d19a7 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java @@ -22,7 +22,8 @@ public class UserTimingFieldBuilder extends FieldBuilder { - UserTimingFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { + UserTimingFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } From d3d1a0f97b1c659101969cada59acda5caa54a15 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 15:55:20 +0200 Subject: [PATCH 13/27] remove trailing whitespace --- .../universalanalytics/HitType.java | 14 +++++++------- .../universalanalytics/UniversalAnalyticsImpl.java | 2 +- .../UniversalAnalyticsModule.java | 2 +- .../fields/AbstractFieldBuilder.java | 2 +- .../fields/AppTrackingFieldBuilder.java | 2 +- .../fields/ContentExperimentsFieldBuilder.java | 2 +- .../fields/ContentFieldBuilder.java | 2 +- .../fields/CreateOnlyFieldBuilder.java | 2 +- .../fields/CustomDimensionsFieldBuilder.java | 2 +- .../fields/EventFieldBuilder.java | 4 ++-- .../fields/ExceptionFieldBuilder.java | 2 +- .../universalanalytics/fields/FieldBuilder.java | 2 +- .../fields/GeneralFieldBuilder.java | 2 +- .../universalanalytics/fields/HitFieldBuilder.java | 2 +- .../fields/SessionFieldBuilder.java | 2 +- .../fields/SocialNetworkFieldBuilder.java | 6 +++--- .../fields/SystemInfoFieldBuilder.java | 2 +- .../fields/TrafficSourcesFieldBuilder.java | 2 +- .../fields/UserTimingFieldBuilder.java | 2 +- 19 files changed, 28 insertions(+), 28 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java index 09c66c4ac6..8855276dec 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java @@ -16,13 +16,13 @@ package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; public enum HitType { - PAGE_VIEW("pageview"), - SCREEN_VIEW("screenview"), - EVENT("event"), - TRANSACTION("transaction"), - ITEM("item"), - SOCIAL("social"), - EXCEPTION("exception"), + PAGE_VIEW("pageview"), + SCREEN_VIEW("screenview"), + EVENT("event"), + TRANSACTION("transaction"), + ITEM("item"), + SOCIAL("social"), + EXCEPTION("exception"), TIMING("timing"); private final String fieldName; diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index 465afdde14..7980a044c9 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -35,7 +35,7 @@ public class UniversalAnalyticsImpl implements UniversalAnalytics { private final String userAccount; @Inject - UniversalAnalyticsImpl(@GaAccount final String userAccount, + UniversalAnalyticsImpl(@GaAccount final String userAccount, @Named("uaAutoCreate") final boolean autoCreate) { init(); this.userAccount = userAccount; diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java index f5d43521ff..85a9a0eb6c 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java @@ -57,7 +57,7 @@ public Builder trackNavigationEvents(final boolean trackNavigationEvents) { private final String userAccount; private boolean autoCreate; - private UniversalAnalyticsModule(final String userAccount, + private UniversalAnalyticsModule(final String userAccount, final boolean trackNavigationEvents, final boolean autoCreate) { this.userAccount = userAccount; diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java index de75c69802..df5219b158 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java @@ -26,7 +26,7 @@ public abstract class AbstractFieldBuilder implements HasFields { private final JSONObject jsonObject; private final OptionsCallback callback; - AbstractFieldBuilder(final JSONObject jsonObject, + AbstractFieldBuilder(final JSONObject jsonObject, final OptionsCallback callback) { this.jsonObject = jsonObject; this.callback = callback; diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java index 08c5e992a8..d7a66181a2 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java @@ -21,7 +21,7 @@ public class AppTrackingFieldBuilder extends FieldBuilder { - AppTrackingFieldBuilder(final JSONObject jsonObject, + AppTrackingFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java index 0c6503ccd2..617ff2a03d 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java @@ -21,7 +21,7 @@ public class ContentExperimentsFieldBuilder extends FieldBuilder { - ContentExperimentsFieldBuilder(final JSONObject jsonObject, + ContentExperimentsFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java index 1f32bdbd90..26e095a50a 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java @@ -21,7 +21,7 @@ public class ContentFieldBuilder extends FieldBuilder { - ContentFieldBuilder(final JSONObject jsonObject, + ContentFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java index d1a188f37a..1d3e331df3 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java @@ -23,7 +23,7 @@ public class CreateOnlyFieldBuilder extends FieldBuilder { - CreateOnlyFieldBuilder(final JSONObject jsonObject, + CreateOnlyFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java index 02c029cea9..fcec646873 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java @@ -22,7 +22,7 @@ public class CustomDimensionsFieldBuilder extends FieldBuilder { - CustomDimensionsFieldBuilder(final JSONObject jsonObject, + CustomDimensionsFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java index 2d3398b247..abd036a97d 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java @@ -22,8 +22,8 @@ public class EventFieldBuilder extends FieldBuilder { - EventFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback, + EventFieldBuilder(final JSONObject jsonObject, + final OptionsCallback optionsCallback, final String category, final String action) { super(jsonObject, optionsCallback); diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java index b73a7f6de0..4003086264 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java @@ -22,7 +22,7 @@ public class ExceptionFieldBuilder extends FieldBuilder { - ExceptionFieldBuilder(final JSONObject jsonObject, + ExceptionFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java index f10a65fc22..1f45757f19 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java @@ -20,7 +20,7 @@ public class FieldBuilder extends AbstractFieldBuilder { - FieldBuilder(final JSONObject jsonObject, + FieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java index 7ffaac3061..9bfb4f2b7d 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java @@ -21,7 +21,7 @@ public class GeneralFieldBuilder extends FieldBuilder { - GeneralFieldBuilder(final JSONObject jsonObject, + GeneralFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java index 1c47c9186f..2eea9fec8d 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java @@ -23,7 +23,7 @@ public class HitFieldBuilder extends FieldBuilder { - HitFieldBuilder(final JSONObject jsonObject, + HitFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java index 2bc397b06f..bb407338d4 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java @@ -21,7 +21,7 @@ public class SessionFieldBuilder extends FieldBuilder { - SessionFieldBuilder(final JSONObject jsonObject, + SessionFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java index 1387901e38..a50342ba63 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java @@ -21,10 +21,10 @@ public class SocialNetworkFieldBuilder extends FieldBuilder { - SocialNetworkFieldBuilder(final JSONObject jsonObject, + SocialNetworkFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback, - final String socialNetwork, - final String socialAction, + final String socialNetwork, + final String socialAction, final String socialTarget) { super(jsonObject, optionsCallback); put("socialNetwork", new JSONString(socialNetwork)); diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java index 36fa21a3a7..19a592910c 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java @@ -22,7 +22,7 @@ public class SystemInfoFieldBuilder extends FieldBuilder { - SystemInfoFieldBuilder(final JSONObject jsonObject, + SystemInfoFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java index 4cd4e69c45..6b6f2cbce2 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java @@ -21,7 +21,7 @@ public class TrafficSourcesFieldBuilder extends FieldBuilder { - TrafficSourcesFieldBuilder(final JSONObject jsonObject, + TrafficSourcesFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java index 7ec32d19a7..04c1a957f9 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java @@ -22,7 +22,7 @@ public class UserTimingFieldBuilder extends FieldBuilder { - UserTimingFieldBuilder(final JSONObject jsonObject, + UserTimingFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); } From e99905a6e3b3699a073f663894f915e943bef840 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 16:23:16 +0200 Subject: [PATCH 14/27] remove empty lines --- .../client/googleanalytics/universalanalytics/HasFields.java | 2 -- .../client/googleanalytics/universalanalytics/HitCallback.java | 2 -- .../mvp/client/googleanalytics/universalanalytics/HitType.java | 1 - .../googleanalytics/universalanalytics/OptionsCallback.java | 2 -- .../googleanalytics/universalanalytics/UniversalAnalytics.java | 1 - .../universalanalytics/UniversalAnalyticsImpl.java | 2 -- .../universalanalytics/UniversalAnalyticsModule.java | 2 -- .../universalanalytics/fields/AbstractFieldBuilder.java | 2 -- .../universalanalytics/fields/AppTrackingFieldBuilder.java | 2 -- .../fields/ContentExperimentsFieldBuilder.java | 2 -- .../universalanalytics/fields/ContentFieldBuilder.java | 3 +-- .../universalanalytics/fields/CreateOnlyFieldBuilder.java | 1 - .../fields/CustomDimensionsFieldBuilder.java | 2 -- .../universalanalytics/fields/EventFieldBuilder.java | 2 -- .../universalanalytics/fields/ExceptionFieldBuilder.java | 2 -- .../universalanalytics/fields/FieldBuilder.java | 1 - .../universalanalytics/fields/GeneralFieldBuilder.java | 2 -- .../universalanalytics/fields/HitFieldBuilder.java | 2 -- .../universalanalytics/fields/SessionFieldBuilder.java | 2 -- .../universalanalytics/fields/SocialNetworkFieldBuilder.java | 2 -- .../universalanalytics/fields/SystemInfoFieldBuilder.java | 2 -- .../universalanalytics/fields/TrafficSourcesFieldBuilder.java | 2 -- .../universalanalytics/fields/UserTimingFieldBuilder.java | 2 -- 23 files changed, 1 insertion(+), 42 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java index f08fec7b13..77b5262966 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java @@ -18,7 +18,5 @@ import com.google.gwt.json.client.JSONValue; public interface HasFields { - void put(String fieldName, JSONValue value); - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java index 1e20f75db2..68ee3bbb12 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java @@ -16,7 +16,5 @@ package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; public interface HitCallback { - void onCallback(); - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java index 8855276dec..1c398b2c7b 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitType.java @@ -34,5 +34,4 @@ public enum HitType { public String getFieldName() { return fieldName; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/OptionsCallback.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/OptionsCallback.java index d9f2a7c562..8d72eb5737 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/OptionsCallback.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/OptionsCallback.java @@ -18,7 +18,5 @@ import com.google.gwt.json.client.JSONObject; public interface OptionsCallback { - void onCallback(JSONObject options); - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java index 0b1c985a9e..83696465b3 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java @@ -27,7 +27,6 @@ * Support for universal Analytics see: https://github.com/ArcBees/GWTP/wiki/Universal-Analytics */ public interface UniversalAnalytics extends GoogleAnalytics { - /** * Create a new tracker using the user id bound to GaAccount.
* Example: create().go();
diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index 7980a044c9..87ab37724e 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -31,7 +31,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields.UserTimingFieldBuilder; public class UniversalAnalyticsImpl implements UniversalAnalytics { - private final String userAccount; @Inject @@ -218,5 +217,4 @@ public void trackPageview(final String trackerName, final String pageName) { final String pName = pageName.startsWith("/") ? pageName : "/" + pageName; sendPageView(trackerName).documentPath(pName).go(); } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java index 85a9a0eb6c..3fadc559a0 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java @@ -22,7 +22,6 @@ import com.gwtplatform.mvp.client.googleanalytics.GoogleAnalyticsNavigationTracker; public class UniversalAnalyticsModule extends AbstractGinModule { - public static class Builder { private final String userAccount; private boolean trackNavigationEvents = true; @@ -77,5 +76,4 @@ protected void configure() { bind(GoogleAnalyticsNavigationTracker.class).asEagerSingleton(); } } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java index df5219b158..de8b91c28a 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java @@ -22,7 +22,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public abstract class AbstractFieldBuilder implements HasFields { - private final JSONObject jsonObject; private final OptionsCallback callback; @@ -64,5 +63,4 @@ public void go(final HitCallback callback) { public void put(final String fieldName, final JSONValue value) { jsonObject.put(fieldName, value); } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java index d7a66181a2..f49362cddf 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java @@ -20,7 +20,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class AppTrackingFieldBuilder extends FieldBuilder { - AppTrackingFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -73,5 +72,4 @@ public AppTrackingFieldBuilder applicationVersion(final String applicationVersio put("appVersion", new JSONString(applicationVersion)); return this; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java index 617ff2a03d..79de64c51b 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java @@ -20,7 +20,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class ContentExperimentsFieldBuilder extends FieldBuilder { - ContentExperimentsFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -51,5 +50,4 @@ public ContentExperimentsFieldBuilder experimentVariant(final String experimentV put("expId", new JSONString(experimentVariant)); return this; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java index 26e095a50a..f8db421b04 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java @@ -20,7 +20,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class ContentFieldBuilder extends FieldBuilder { - ContentFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -95,5 +94,5 @@ public ContentFieldBuilder screenName(final String screenName) { put("screenName", new JSONString(screenName)); return this; } - } + diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java index 1d3e331df3..32e1c14c1d 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java @@ -22,7 +22,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class CreateOnlyFieldBuilder extends FieldBuilder { - CreateOnlyFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java index fcec646873..bc5d30aee7 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java @@ -21,7 +21,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class CustomDimensionsFieldBuilder extends FieldBuilder { - CustomDimensionsFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -46,5 +45,4 @@ public CustomDimensionsFieldBuilder customMetric(final int index, final int valu put("metric" + index, new JSONNumber(value)); return this; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java index abd036a97d..f8173e6ade 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java @@ -21,7 +21,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class EventFieldBuilder extends FieldBuilder { - EventFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback, final String category, @@ -52,5 +51,4 @@ public EventFieldBuilder eventValue(final int eventValue) { put("eventValue", new JSONNumber(eventValue)); return this; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java index 4003086264..64b3b4d0a0 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java @@ -21,7 +21,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class ExceptionFieldBuilder extends FieldBuilder { - ExceptionFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -49,5 +48,4 @@ public ExceptionFieldBuilder exceptionFatal(final boolean fatal) { put("exFatal", JSONBoolean.getInstance(fatal)); return this; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java index 1f45757f19..32e7e6a8e1 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java @@ -19,7 +19,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class FieldBuilder extends AbstractFieldBuilder { - FieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java index 9bfb4f2b7d..7e5e00f365 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java @@ -20,7 +20,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class GeneralFieldBuilder extends FieldBuilder { - GeneralFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -46,5 +45,4 @@ public GeneralFieldBuilder forceSSL(final boolean forceSSL) { put("forceSSL", JSONBoolean.getInstance(forceSSL)); return this; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java index 2eea9fec8d..03b947a231 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java @@ -22,7 +22,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class HitFieldBuilder extends FieldBuilder { - HitFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -46,5 +45,4 @@ public HitFieldBuilder nonInteractionHit(final boolean nonInteraction) { put("nonInteraction", JSONBoolean.getInstance(nonInteraction)); return this; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java index bb407338d4..5bb332b81c 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java @@ -20,7 +20,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class SessionFieldBuilder extends FieldBuilder { - SessionFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -41,5 +40,4 @@ public SessionFieldBuilder start() { put("sessionControl", new JSONString("start")); return this; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java index a50342ba63..c2e0096702 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java @@ -20,7 +20,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class SocialNetworkFieldBuilder extends FieldBuilder { - SocialNetworkFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback, final String socialNetwork, @@ -31,5 +30,4 @@ public class SocialNetworkFieldBuilder extends FieldBuilder { put("socialAction", new JSONString(socialAction)); put("socialTarget", new JSONString(socialTarget)); } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java index 19a592910c..1098edef9d 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java @@ -21,7 +21,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class SystemInfoFieldBuilder extends FieldBuilder { - SystemInfoFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -107,5 +106,4 @@ public SystemInfoFieldBuilder viewportSize(final String viewportSize) { put("viewportSize", new JSONString(viewportSize)); return this; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java index 6b6f2cbce2..f20156e96a 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java @@ -20,7 +20,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class TrafficSourcesFieldBuilder extends FieldBuilder { - TrafficSourcesFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -99,5 +98,4 @@ public TrafficSourcesFieldBuilder documentReferrer(final String documentReferrer put("referrer", new JSONString(documentReferrer)); return this; } - } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java index 04c1a957f9..a02a9d4d51 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java @@ -21,7 +21,6 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class UserTimingFieldBuilder extends FieldBuilder { - UserTimingFieldBuilder(final JSONObject jsonObject, final OptionsCallback optionsCallback) { super(jsonObject, optionsCallback); @@ -74,5 +73,4 @@ public UserTimingFieldBuilder timingVariableName(final String timingVar) { put("timingVar", new JSONString(timingVar)); return this; } - } From d8a24d3cd5fc4350c69a5d4e9f1dde75c1df792c Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 16:24:58 +0200 Subject: [PATCH 15/27] remove console.log --- .../universalanalytics/UniversalAnalyticsImpl.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index 87ab37724e..e7debb8b9d 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -80,11 +80,8 @@ private native void init()/*-{ }-*/; private native void nativeCall(JavaScriptObject params) /*-{ - if ($wnd.console) { - $wnd.console.log("uaNative: "+ params); - } - $wnd.__ua.apply(null, params); - }-*/; + $wnd.__ua.apply(null, params); + }-*/; @Override public FieldBuilder send(final HitType hitType) { From 1dce0c78311153aa370e80941085ce592edf29fd Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 16:34:45 +0200 Subject: [PATCH 16/27] remove empty lines --- .../mvp/client/googleanalytics/GoogleAnalyticsModule.java | 1 - 1 file changed, 1 deletion(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsModule.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsModule.java index e324ee9878..0a4e72c52f 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsModule.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/GoogleAnalyticsModule.java @@ -20,7 +20,6 @@ import com.google.inject.Singleton; public class GoogleAnalyticsModule extends AbstractGinModule { - public static class Builder { private final String userAccount; private boolean trackNavigationEvents = true; From fad2d3e721c959efc02655a38650b0e9d8a6e8db Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 18:19:52 +0200 Subject: [PATCH 17/27] remove go() method --- .../UniversalAnalytics.java | 32 ++++++++--------- .../UniversalAnalyticsImpl.java | 16 ++++----- .../fields/AbstractFieldBuilder.java | 34 ++++++++----------- .../fields/AppTrackingFieldBuilder.java | 6 ++-- .../ContentExperimentsFieldBuilder.java | 6 ++-- .../fields/ContentFieldBuilder.java | 6 ++-- .../fields/CreateOnlyFieldBuilder.java | 6 ++-- .../fields/CustomDimensionsFieldBuilder.java | 6 ++-- .../fields/EventFieldBuilder.java | 4 +-- .../fields/ExceptionFieldBuilder.java | 6 ++-- .../fields/FieldBuilder.java | 33 +++++++++--------- .../fields/GeneralFieldBuilder.java | 6 ++-- .../fields/HitFieldBuilder.java | 6 ++-- .../fields/SessionFieldBuilder.java | 6 ++-- .../fields/SocialNetworkFieldBuilder.java | 4 +-- .../fields/SystemInfoFieldBuilder.java | 6 ++-- .../fields/TrafficSourcesFieldBuilder.java | 6 ++-- .../fields/UserTimingFieldBuilder.java | 6 ++-- 18 files changed, 81 insertions(+), 114 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java index 83696465b3..960627eb4d 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java @@ -29,16 +29,16 @@ public interface UniversalAnalytics extends GoogleAnalytics { /** * Create a new tracker using the user id bound to GaAccount.
- * Example: create().go();
- * create().name("My Tracker").go() //create a custom named tracker + * Example: create();
+ * create().name("My Tracker") //create a custom named tracker * */ CreateOnlyFieldBuilder create(); /** * Create a new tracker using a supplied user id.
- * Example: create("UA-XXXXXXX-X").go();
- * create("UA-XXXXXXX-X").name("My Tracker").go() //create a custom named tracker + * Example: create("UA-XXXXXXX-X");
+ * create("UA-XXXXXXX-X").name("My Tracker") //create a custom named tracker * */ CreateOnlyFieldBuilder create(String userAccount); @@ -47,7 +47,7 @@ public interface UniversalAnalytics extends GoogleAnalytics { * send a specific HitType. * @param hitType * see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#hit - * Example: send(HitType.PAGE_VIEW).go(); + * Example: send(HitType.PAGE_VIEW); */ FieldBuilder send(HitType hitType); @@ -56,7 +56,7 @@ public interface UniversalAnalytics extends GoogleAnalytics { * @param trackerName the name of the tracker * @param hitType * see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#hit - * Example: send(HitType.PAGE_VIEW).go(); + * Example: send(HitType.PAGE_VIEW); */ FieldBuilder send(String trackerName, HitType hitType); @@ -65,7 +65,7 @@ public interface UniversalAnalytics extends GoogleAnalytics { * @param category the event category * @param action the event action
* see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#events - * Example: sendEvent("button", "click").go(); + * Example: sendEvent("button", "click"); */ EventFieldBuilder sendEvent(String category, String action); @@ -75,22 +75,22 @@ public interface UniversalAnalytics extends GoogleAnalytics { * @param category the event category * @param action the event action
* see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#events - * Example: sendEvent("button", "click").go(); + * Example: sendEvent("button", "click"); */ EventFieldBuilder sendEvent(String trackerName, String category, String action); /** * send a pageview to a specific tracker - * Example: sendPageView().go();
- * sendPageView().documentPath("/foo").go(); //send a pageview for /foo + * Example: sendPageView();
+ * sendPageView().documentPath("/foo"); //send a pageview for /foo */ ContentFieldBuilder sendPageView(); /** * send a pageview to a specific tracker * @param trackerName the name of the tracker - * Example: sendPageView().go();
- * sendPageView().documentPath("/foo").go(); //send a pageview for /foo + * Example: sendPageView();
+ * sendPageView().documentPath("/foo"); //send a pageview for /foo */ ContentFieldBuilder sendPageView(String trackerName); @@ -102,7 +102,7 @@ public interface UniversalAnalytics extends GoogleAnalytics { * @param socialNetwork the social network * @param socialAction the action taken * @param socialTarget the target of the action - * Example: sendSocial("facebook", "like", "http://www.example.com").go();
+ * Example: sendSocial("facebook", "like", "http://www.example.com");
*/ SocialNetworkFieldBuilder sendSocial(String trackerName, String socialNetwork, String socialAction, String socialTarget); @@ -110,7 +110,7 @@ SocialNetworkFieldBuilder sendSocial(String trackerName, String socialNetwork, S /** * send user timing information to a specific tracker * this is use to analyze page speed. - * Example: sendTiming().go();
+ * Example: sendTiming();
*/ UserTimingFieldBuilder sendTiming(); @@ -118,13 +118,13 @@ SocialNetworkFieldBuilder sendSocial(String trackerName, String socialNetwork, S * send user timing information to a specific tracker * this is use to analyze page speed. * @param trackerName the name of the tracker - * Example: sendTiming().go();
+ * Example: sendTiming();
*/ UserTimingFieldBuilder sendTiming(String trackerName); /** * set options for all subsequent calls. - * Example: setGlobalSettings().general().anonymizeIp(true).go(); //anonymize ip addresses
+ * Example: setGlobalSettings().general().anonymizeIp(true); //anonymize ip addresses
*/ FieldBuilder setGlobalSettings(); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index e7debb8b9d..f658add335 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -39,13 +39,13 @@ public class UniversalAnalyticsImpl implements UniversalAnalytics { init(); this.userAccount = userAccount; if (autoCreate) { - create().go(); + create(); } } @Override public void addAccount(final String trackerName, final String userAccount) { - create(userAccount).name(trackerName).go(); + create(userAccount).name(trackerName); } private void call(final JSONValue... params) { @@ -177,31 +177,31 @@ public void trackEvent(final String category, final String action, final String @Override public void trackEventWithTracker(final String trackerName, final String category, final String action) { - sendEvent(trackerName, category, action).go(); + sendEvent(trackerName, category, action); } @Override public void trackEventWithTracker(final String trackerName, final String category, final String action, final String optLabel) { - sendEvent(trackerName, category, action).eventLabel(optLabel).go(); + sendEvent(trackerName, category, action).eventLabel(optLabel); } @Override public void trackEventWithTracker(final String trackerName, final String category, final String action, final String optLabel, final int optValue) { - sendEvent(trackerName, category, action).eventLabel(optLabel).eventValue(optValue).go(); + sendEvent(trackerName, category, action).eventLabel(optLabel).eventValue(optValue); } @Override public void trackEventWithTracker(final String trackerName, final String category, final String action, final String optLabel, final int optValue, final boolean optNonInteraction) { sendEvent(trackerName, category, action).eventLabel(optLabel).eventValue(optValue).hit() - .nonInteractionHit(optNonInteraction).go(); + .nonInteractionHit(optNonInteraction); } @Override public void trackPageview() { - sendPageView().go(); + sendPageView(); } @Override @@ -212,6 +212,6 @@ public void trackPageview(final String pageName) { @Override public void trackPageview(final String trackerName, final String pageName) { final String pName = pageName.startsWith("/") ? pageName : "/" + pageName; - sendPageView(trackerName).documentPath(pName).go(); + sendPageView(trackerName).documentPath(pName); } } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java index de8b91c28a..29f8f3cc42 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java @@ -15,6 +15,8 @@ */ package com.gwtplatform.mvp.client.googleanalytics.universalanalytics.fields; +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONValue; import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HasFields; @@ -23,42 +25,36 @@ public abstract class AbstractFieldBuilder implements HasFields { private final JSONObject jsonObject; - private final OptionsCallback callback; - AbstractFieldBuilder(final JSONObject jsonObject, - final OptionsCallback callback) { + AbstractFieldBuilder(final JSONObject jsonObject) { this.jsonObject = jsonObject; - this.callback = callback; } AbstractFieldBuilder(final OptionsCallback callback) { - this(new JSONObject(), callback); + this(new JSONObject()); + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + + @Override + public void execute() { + callback.onCallback(build()); + } + }); + } + + public void addHitCallback(final HitCallback callback) { + addHitCallback(jsonObject, callback); } private native void addHitCallback(JSONObject jsonObject, HitCallback callback) /*-{ jsonObject.hitCallback = function() { callback.@com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HitCallback::onCallback()(); } - }-*/; JSONObject build() { return jsonObject; } - OptionsCallback getCallback() { - return callback; - } - - public void go() { - callback.onCallback(build()); - }; - - public void go(final HitCallback callback) { - addHitCallback(jsonObject, callback); - this.callback.onCallback(build()); - } - @Override public void put(final String fieldName, final JSONValue value) { jsonObject.put(fieldName, value); diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java index f49362cddf..ad67c08c5f 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AppTrackingFieldBuilder.java @@ -17,12 +17,10 @@ import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class AppTrackingFieldBuilder extends FieldBuilder { - AppTrackingFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + AppTrackingFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java index 79de64c51b..1318892ad2 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java @@ -17,12 +17,10 @@ import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class ContentExperimentsFieldBuilder extends FieldBuilder { - ContentExperimentsFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + ContentExperimentsFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java index f8db421b04..a55282d381 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentFieldBuilder.java @@ -17,12 +17,10 @@ import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class ContentFieldBuilder extends FieldBuilder { - ContentFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + ContentFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java index 32e1c14c1d..9a940d94f9 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CreateOnlyFieldBuilder.java @@ -19,12 +19,10 @@ import com.google.gwt.json.client.JSONNumber; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class CreateOnlyFieldBuilder extends FieldBuilder { - CreateOnlyFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + CreateOnlyFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java index bc5d30aee7..f679702568 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/CustomDimensionsFieldBuilder.java @@ -18,12 +18,10 @@ import com.google.gwt.json.client.JSONNumber; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class CustomDimensionsFieldBuilder extends FieldBuilder { - CustomDimensionsFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + CustomDimensionsFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java index f8173e6ade..26d384e956 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/EventFieldBuilder.java @@ -18,14 +18,12 @@ import com.google.gwt.json.client.JSONNumber; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class EventFieldBuilder extends FieldBuilder { EventFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback, final String category, final String action) { - super(jsonObject, optionsCallback); + super(jsonObject); put("eventCategory", new JSONString(category)); put("eventAction", new JSONString(action)); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java index 64b3b4d0a0..a63a5c0085 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ExceptionFieldBuilder.java @@ -18,12 +18,10 @@ import com.google.gwt.json.client.JSONBoolean; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class ExceptionFieldBuilder extends FieldBuilder { - ExceptionFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + ExceptionFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java index 32e7e6a8e1..47421e0b66 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java @@ -19,9 +19,8 @@ import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class FieldBuilder extends AbstractFieldBuilder { - FieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + FieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } public FieldBuilder(final OptionsCallback optionsCallback) { @@ -29,59 +28,59 @@ public FieldBuilder(final OptionsCallback optionsCallback) { } public AppTrackingFieldBuilder appTracking() { - return new AppTrackingFieldBuilder(build(), getCallback()); + return new AppTrackingFieldBuilder(build()); } public ContentFieldBuilder content() { - return new ContentFieldBuilder(build(), getCallback()); + return new ContentFieldBuilder(build()); } public ContentExperimentsFieldBuilder contentExpirements() { - return new ContentExperimentsFieldBuilder(build(), getCallback()); + return new ContentExperimentsFieldBuilder(build()); } public CreateOnlyFieldBuilder createOnlyFields() { - return new CreateOnlyFieldBuilder(build(), getCallback()); + return new CreateOnlyFieldBuilder(build()); } public CustomDimensionsFieldBuilder customDimensions() { - return new CustomDimensionsFieldBuilder(build(), getCallback()); + return new CustomDimensionsFieldBuilder(build()); } public EventFieldBuilder event(final String category, final String action) { - return new EventFieldBuilder(build(), getCallback(), category, action); + return new EventFieldBuilder(build(), category, action); } public ExceptionFieldBuilder exception() { - return new ExceptionFieldBuilder(build(), getCallback()); + return new ExceptionFieldBuilder(build()); } public GeneralFieldBuilder general() { - return new GeneralFieldBuilder(build(), getCallback()); + return new GeneralFieldBuilder(build()); } public HitFieldBuilder hit() { - return new HitFieldBuilder(build(), getCallback()); + return new HitFieldBuilder(build()); } public SessionFieldBuilder session() { - return new SessionFieldBuilder(build(), getCallback()); + return new SessionFieldBuilder(build()); } public SocialNetworkFieldBuilder socialNetwork(final String socialNetwork, final String socialAction, final String socialTarget) { - return new SocialNetworkFieldBuilder(build(), getCallback(), socialNetwork, socialAction, socialTarget); + return new SocialNetworkFieldBuilder(build(), socialNetwork, socialAction, socialTarget); } public SystemInfoFieldBuilder systemInfo() { - return new SystemInfoFieldBuilder(build(), getCallback()); + return new SystemInfoFieldBuilder(build()); } public TrafficSourcesFieldBuilder trafficSources() { - return new TrafficSourcesFieldBuilder(build(), getCallback()); + return new TrafficSourcesFieldBuilder(build()); } public UserTimingFieldBuilder userTiming() { - return new UserTimingFieldBuilder(build(), getCallback()); + return new UserTimingFieldBuilder(build()); } } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java index 7e5e00f365..5edb613bdf 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/GeneralFieldBuilder.java @@ -17,12 +17,10 @@ import com.google.gwt.json.client.JSONBoolean; import com.google.gwt.json.client.JSONObject; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class GeneralFieldBuilder extends FieldBuilder { - GeneralFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + GeneralFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java index 03b947a231..5abddead2f 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/HitFieldBuilder.java @@ -19,12 +19,10 @@ import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HitType; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class HitFieldBuilder extends FieldBuilder { - HitFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + HitFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java index 5bb332b81c..21c7534245 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SessionFieldBuilder.java @@ -17,12 +17,10 @@ import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class SessionFieldBuilder extends FieldBuilder { - SessionFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + SessionFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java index c2e0096702..fcbcfa0708 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SocialNetworkFieldBuilder.java @@ -17,15 +17,13 @@ import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class SocialNetworkFieldBuilder extends FieldBuilder { SocialNetworkFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback, final String socialNetwork, final String socialAction, final String socialTarget) { - super(jsonObject, optionsCallback); + super(jsonObject); put("socialNetwork", new JSONString(socialNetwork)); put("socialAction", new JSONString(socialAction)); put("socialTarget", new JSONString(socialTarget)); diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java index 1098edef9d..86b19ac7e3 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/SystemInfoFieldBuilder.java @@ -18,12 +18,10 @@ import com.google.gwt.json.client.JSONBoolean; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class SystemInfoFieldBuilder extends FieldBuilder { - SystemInfoFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + SystemInfoFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java index f20156e96a..8b910a61bb 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/TrafficSourcesFieldBuilder.java @@ -17,12 +17,10 @@ import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class TrafficSourcesFieldBuilder extends FieldBuilder { - TrafficSourcesFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + TrafficSourcesFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java index a02a9d4d51..c0373df2aa 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java @@ -18,12 +18,10 @@ import com.google.gwt.json.client.JSONNumber; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; public class UserTimingFieldBuilder extends FieldBuilder { - UserTimingFieldBuilder(final JSONObject jsonObject, - final OptionsCallback optionsCallback) { - super(jsonObject, optionsCallback); + UserTimingFieldBuilder(final JSONObject jsonObject) { + super(jsonObject); } /** From 8f20e823715153f3d96409191e77bd5c0a3bbb57 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 19:04:31 +0200 Subject: [PATCH 18/27] update javadoc --- .../universalanalytics/UniversalAnalyticsModule.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java index 3fadc559a0..2c98750bea 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsModule.java @@ -32,8 +32,8 @@ public Builder(final String userAccount) { } /** - * Set this to false if you want to create the universal analytics tracker with extra option. - * You can manually create the tracker by calling analytics.create().options().go() from your bootstrapper; + * Set this to false if you want to create the universal analytics tracker with custom options. + * You can manually create the tracker by calling analytics.create() from your bootstrapper; * @param autoCreate * @return */ From 1e1f1050a38f6736fe12d2583a15545b96da0946 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 19:12:01 +0200 Subject: [PATCH 19/27] spelling --- .../googleanalytics/universalanalytics/fields/FieldBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java index 47421e0b66..78f394830b 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java @@ -35,7 +35,7 @@ public ContentFieldBuilder content() { return new ContentFieldBuilder(build()); } - public ContentExperimentsFieldBuilder contentExpirements() { + public ContentExperimentsFieldBuilder contentExperiments() { return new ContentExperimentsFieldBuilder(build()); } From 8a31e131930af7d9b0c1ce5cbfaca323ab00e1a7 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Thu, 10 Jul 2014 19:46:40 +0200 Subject: [PATCH 20/27] fix expVar method --- .../fields/ContentExperimentsFieldBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java index 1318892ad2..b8f37e22e0 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/ContentExperimentsFieldBuilder.java @@ -45,7 +45,7 @@ public ContentExperimentsFieldBuilder experimentID(final String experimentID) { * Example Value: 1 */ public ContentExperimentsFieldBuilder experimentVariant(final String experimentVariant) { - put("expId", new JSONString(experimentVariant)); + put("expVar", new JSONString(experimentVariant)); return this; } } From cc33b481165bf8bd43a9bc00e6e203e82d4d75c8 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Fri, 11 Jul 2014 07:53:16 +0200 Subject: [PATCH 21/27] improve javadoc --- .../UniversalAnalytics.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java index 960627eb4d..3d9b9b3b94 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java @@ -31,7 +31,6 @@ public interface UniversalAnalytics extends GoogleAnalytics { * Create a new tracker using the user id bound to GaAccount.
* Example: create();
* create().name("My Tracker") //create a custom named tracker - * */ CreateOnlyFieldBuilder create(); @@ -39,7 +38,6 @@ public interface UniversalAnalytics extends GoogleAnalytics { * Create a new tracker using a supplied user id.
* Example: create("UA-XXXXXXX-X");
* create("UA-XXXXXXX-X").name("My Tracker") //create a custom named tracker - * */ CreateOnlyFieldBuilder create(String userAccount); @@ -61,7 +59,7 @@ public interface UniversalAnalytics extends GoogleAnalytics { FieldBuilder send(String trackerName, HitType hitType); /** - * send an event + * send an event. * @param category the event category * @param action the event action
* see https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#events @@ -70,7 +68,7 @@ public interface UniversalAnalytics extends GoogleAnalytics { EventFieldBuilder sendEvent(String category, String action); /** - * send an event to a specific tracker + * send an event to a specific tracker. * @param trackerName the name of the tracker * @param category the event category * @param action the event action
@@ -80,24 +78,31 @@ public interface UniversalAnalytics extends GoogleAnalytics { EventFieldBuilder sendEvent(String trackerName, String category, String action); /** - * send a pageview to a specific tracker + * send a pageview to a specific tracker. * Example: sendPageView();
* sendPageView().documentPath("/foo"); //send a pageview for /foo */ ContentFieldBuilder sendPageView(); /** - * send a pageview to a specific tracker + * send a pageview to a specific tracker. * @param trackerName the name of the tracker * Example: sendPageView();
* sendPageView().documentPath("/foo"); //send a pageview for /foo */ ContentFieldBuilder sendPageView(String trackerName); + /** + * send a social event. + * @param socialNetwork the social network + * @param socialAction the action taken + * @param socialTarget the target of the action + * Example: sendSocial("facebook", "like", "http://www.example.com");
+ */ SocialNetworkFieldBuilder sendSocial(String socialNetwork, String socialAction, String socialTarget); /** - * send a social event to a specific tracker + * send a social event to a specific tracker. * @param trackerName the name of the tracker * @param socialNetwork the social network * @param socialAction the action taken @@ -108,14 +113,14 @@ SocialNetworkFieldBuilder sendSocial(String trackerName, String socialNetwork, S String socialTarget); /** - * send user timing information to a specific tracker + * send user timing information to a specific tracker. * this is use to analyze page speed. * Example: sendTiming();
*/ UserTimingFieldBuilder sendTiming(); /** - * send user timing information to a specific tracker + * send user timing information to a specific tracker. * this is use to analyze page speed. * @param trackerName the name of the tracker * Example: sendTiming();
From 3ceed583bf3e969ee5c8e2ad199f3adf05d8ac99 Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Fri, 11 Jul 2014 07:57:46 +0200 Subject: [PATCH 22/27] remove HasFields interface --- .../universalanalytics/HasFields.java | 22 ------------------- .../fields/AbstractFieldBuilder.java | 4 +--- 2 files changed, 1 insertion(+), 25 deletions(-) delete mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java deleted file mode 100644 index 77b5262966..0000000000 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HasFields.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2014 ArcBees Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; - -import com.google.gwt.json.client.JSONValue; - -public interface HasFields { - void put(String fieldName, JSONValue value); -} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java index 29f8f3cc42..ee3361b8d3 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java @@ -19,11 +19,10 @@ import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONValue; -import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HasFields; import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HitCallback; import com.gwtplatform.mvp.client.googleanalytics.universalanalytics.OptionsCallback; -public abstract class AbstractFieldBuilder implements HasFields { +public abstract class AbstractFieldBuilder { private final JSONObject jsonObject; AbstractFieldBuilder(final JSONObject jsonObject) { @@ -55,7 +54,6 @@ JSONObject build() { return jsonObject; } - @Override public void put(final String fieldName, final JSONValue value) { jsonObject.put(fieldName, value); } From 2631a21e34afa5406528ea62087ac688cf136dbf Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Fri, 11 Jul 2014 10:31:45 +0200 Subject: [PATCH 23/27] Ensure HitCallback always fires --- .../universalanalytics/HitCallback.java | 34 +++++++++++++++++-- .../fields/AbstractFieldBuilder.java | 2 +- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java index 68ee3bbb12..f05b50aacc 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java @@ -15,6 +15,36 @@ */ package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; -public interface HitCallback { - void onCallback(); +import java.util.logging.Logger; + +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.core.client.Scheduler.RepeatingCommand; + +public abstract class HitCallback { + private static final Logger logger = Logger.getLogger(HitCallback.class.getName()); + + private boolean hasRun; + + public HitCallback() { + // ensures the HitCallback always fires even if analytics is blocked from running + Scheduler.get().scheduleFixedDelay(new RepeatingCommand() { + + @Override + public boolean execute() { + if (!hasRun) { + logger.warning("Analytics HitCallback has not fired after 300ms. Firing manually."); + callback(); + } + return false; + } + + }, 300); + } + + void callback() { + hasRun = true; + onCallback(); + } + + abstract void onCallback(); } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java index ee3361b8d3..2e051a0bbc 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/AbstractFieldBuilder.java @@ -46,7 +46,7 @@ public void addHitCallback(final HitCallback callback) { private native void addHitCallback(JSONObject jsonObject, HitCallback callback) /*-{ jsonObject.hitCallback = function() { - callback.@com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HitCallback::onCallback()(); + callback.@com.gwtplatform.mvp.client.googleanalytics.universalanalytics.HitCallback::callback()(); } }-*/; From e15b8eebb15b618201853ec7ec05d5292724943f Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Fri, 11 Jul 2014 10:33:58 +0200 Subject: [PATCH 24/27] change onCallbac() modifier --- .../client/googleanalytics/universalanalytics/HitCallback.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java index f05b50aacc..38332dff5e 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java @@ -46,5 +46,5 @@ void callback() { onCallback(); } - abstract void onCallback(); + protected abstract void onCallback(); } From 3dabd6461c521dd34970bd3c45ea13d67f0e040f Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Fri, 11 Jul 2014 10:47:38 +0200 Subject: [PATCH 25/27] prevent hitcallback from firing twice --- .../googleanalytics/universalanalytics/HitCallback.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java index 38332dff5e..dac69e5641 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/HitCallback.java @@ -42,8 +42,10 @@ public boolean execute() { } void callback() { - hasRun = true; - onCallback(); + if (!hasRun) { + hasRun = true; + onCallback(); + } } protected abstract void onCallback(); From 5b062c6be3cd8c845c129306e7d87990cd56e96b Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Fri, 11 Jul 2014 11:03:24 +0200 Subject: [PATCH 26/27] Add support for plugins --- .../universalanalytics/AnalyticsPlugin.java | 30 +++++++++++++++++++ .../UniversalAnalytics.java | 8 +++++ .../UniversalAnalyticsImpl.java | 7 ++++- 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/AnalyticsPlugin.java diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/AnalyticsPlugin.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/AnalyticsPlugin.java new file mode 100644 index 0000000000..378dc34b43 --- /dev/null +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/AnalyticsPlugin.java @@ -0,0 +1,30 @@ +/** + * Copyright 2014 ArcBees Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.gwtplatform.mvp.client.googleanalytics.universalanalytics; + +public enum AnalyticsPlugin { + DISPLAY("displayfeatures"); + + private final String fieldName; + + AnalyticsPlugin(final String fieldName) { + this.fieldName = fieldName; + } + + public String getFieldName() { + return fieldName; + } +} diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java index 3d9b9b3b94..c698087daa 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java @@ -41,6 +41,14 @@ public interface UniversalAnalytics extends GoogleAnalytics { */ CreateOnlyFieldBuilder create(String userAccount); + /** + * Enable an analytics plugin. This must be called immediately after create(); + * If you are using plugins you should probably turn off autoCreate when building the + * UniversalAnalyticsModule and create your tracker manually in your bootstrapper. + * @param plugin + */ + void enablePlugin(AnalyticsPlugin plugin); + /** * send a specific HitType. * @param hitType diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index f658add335..2dc45716de 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -72,6 +72,11 @@ public void onCallback(final JSONObject options) { }).createOnlyFields(); } + @Override + public void enablePlugin(final AnalyticsPlugin plugin) { + call(new JSONString("require"), new JSONString(plugin.getFieldName())); + } + private native void init()/*-{ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), @@ -196,7 +201,7 @@ public void trackEventWithTracker(final String trackerName, final String categor public void trackEventWithTracker(final String trackerName, final String category, final String action, final String optLabel, final int optValue, final boolean optNonInteraction) { sendEvent(trackerName, category, action).eventLabel(optLabel).eventValue(optValue).hit() - .nonInteractionHit(optNonInteraction); + .nonInteractionHit(optNonInteraction); } @Override From 03fcf558dc8715e706c3145f95dda2a84e3eb43f Mon Sep 17 00:00:00 2001 From: Richard Wallis Date: Fri, 11 Jul 2014 15:31:13 +0200 Subject: [PATCH 27/27] enforce required paramaters for user timing --- .../UniversalAnalytics.java | 19 ++++++--- .../UniversalAnalyticsImpl.java | 10 +++-- .../fields/FieldBuilder.java | 5 ++- .../fields/UserTimingFieldBuilder.java | 40 ++----------------- 4 files changed, 26 insertions(+), 48 deletions(-) diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java index c698087daa..c399da443d 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalytics.java @@ -121,19 +121,26 @@ SocialNetworkFieldBuilder sendSocial(String trackerName, String socialNetwork, S String socialTarget); /** - * send user timing information to a specific tracker. + * send user timing information to the default tracker. * this is use to analyze page speed. - * Example: sendTiming();
+ * @param timingCategory - a category used to group related timing data + * @param timingVar - a string to identify the variable being recorded + * @param timingValue - the number of milliseconds of elapsed time. + * Example: sendTiming("jQuery", "Load Library", 20);
*/ - UserTimingFieldBuilder sendTiming(); + UserTimingFieldBuilder sendTiming(final String timingCategory, final String timingVar, final int timingValue); /** * send user timing information to a specific tracker. * this is use to analyze page speed. - * @param trackerName the name of the tracker - * Example: sendTiming();
+ * @param trackerName - the name of the tracker + * @param timingCategory - a category used to group related timing data + * @param timingVar - a string to identify the variable being recorded + * @param timingValue - the number of milliseconds of elapsed time. + * Example: sendTiming("jQuery", "Load Library", 20);
*/ - UserTimingFieldBuilder sendTiming(String trackerName); + UserTimingFieldBuilder sendTiming(String trackerName, final String timingCategory, final String timingVar, + final int timingValue); /** * set options for all subsequent calls. diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java index 2dc45716de..da7bf3ff45 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/UniversalAnalyticsImpl.java @@ -138,13 +138,15 @@ public SocialNetworkFieldBuilder sendSocial(final String trackerName, final Stri } @Override - public UserTimingFieldBuilder sendTiming() { - return sendTiming(null); + public UserTimingFieldBuilder sendTiming(final String timingCategory, + final String timingVar, final int timingValue) { + return sendTiming(null, timingCategory, timingVar, timingValue); } @Override - public UserTimingFieldBuilder sendTiming(final String trackerName) { - return send(trackerName, HitType.TIMING).userTiming(); + public UserTimingFieldBuilder sendTiming(final String trackerName, final String timingCategory, + final String timingVar, final int timingValue) { + return send(trackerName, HitType.TIMING).userTiming(timingCategory, timingVar, timingValue); } @Override diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java index 78f394830b..178fefe562 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/FieldBuilder.java @@ -80,7 +80,8 @@ public TrafficSourcesFieldBuilder trafficSources() { return new TrafficSourcesFieldBuilder(build()); } - public UserTimingFieldBuilder userTiming() { - return new UserTimingFieldBuilder(build()); + public UserTimingFieldBuilder userTiming(final String timingCategory, + final String timingVar, final int timingValue) { + return new UserTimingFieldBuilder(build(), timingCategory, timingVar, timingValue); } } diff --git a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java index c0373df2aa..9519678bfc 100644 --- a/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java +++ b/gwtp-core/gwtp-mvp-client/src/main/java/com/gwtplatform/mvp/client/googleanalytics/universalanalytics/fields/UserTimingFieldBuilder.java @@ -20,20 +20,12 @@ import com.google.gwt.json.client.JSONString; public class UserTimingFieldBuilder extends FieldBuilder { - UserTimingFieldBuilder(final JSONObject jsonObject) { + UserTimingFieldBuilder(final JSONObject jsonObject, final String timingCategory, final String timingVar, + final int timingValue) { super(jsonObject); - } - - /** - * Optional. - * Specifies the user timing category. - * @param timingCategory
- * Default: none
- * Example Value: category - */ - public UserTimingFieldBuilder timingCategory(final String timingCategory) { put("timingCategory", new JSONString(timingCategory)); - return this; + put("timingVar", new JSONString(timingVar)); + put("timingValue", new JSONNumber(timingValue)); } /** @@ -47,28 +39,4 @@ public UserTimingFieldBuilder timingLabel(final String timingLabel) { put("timingLabel", new JSONString(timingLabel)); return this; } - - /** - * Optional. - * Specifies the user timing value. The value is in milliseconds. - * @param timingValue
- * Default: none
- * Example Value: 123 - */ - public UserTimingFieldBuilder timingValue(final int timingValue) { - put("timingValue", new JSONNumber(timingValue)); - return this; - } - - /** - * Optional. - * Specifies the user timing variable. - * @param timingVar
- * Default: none
- * Example Value: lookup - */ - public UserTimingFieldBuilder timingVariableName(final String timingVar) { - put("timingVar", new JSONString(timingVar)); - return this; - } }