001 package com.google.gwt.maps.client.adsense; 002 003 import com.google.gwt.dom.client.Element; 004 import com.google.gwt.event.shared.HandlerRegistration; 005 import com.google.gwt.maps.client.MapWidget; 006 import com.google.gwt.maps.client.controls.ControlPosition; 007 import com.google.gwt.maps.client.events.channelnumber.ChannelNumberChangeMapHandler; 008 import com.google.gwt.maps.client.events.format.FormatChangeMapHandler; 009 import com.google.gwt.maps.client.events.mapchange.MapChangeMapHandler; 010 import com.google.gwt.maps.client.events.position.PositionChangeMapHandler; 011 import com.google.gwt.maps.client.mvc.MVCObjectWidget; 012 import com.google.gwt.user.client.DOM; 013 014 /** 015 * Implements AdSense for Content advertising on an associated map. To use an 016 * AdUnit, you must obtain and specify an AdSense for Content publisher ID 017 * within the AdUnit's constructor options. This class extends MVCObject. 018 * <br><br> 019 * See <a href="https://developers.google.com/maps/documentation/javascript/reference#AdUnit">AdUnit API Doc</a> 020 */ 021 public class AdUnitWidget extends MVCObjectWidget<AdUnitImpl> { 022 023 /** 024 * jso 025 */ 026 private AdUnitImpl impl; 027 028 /** 029 * create AdUnit widget 030 * @param options 031 */ 032 public AdUnitWidget(AdUnitOptions options) { 033 Element div = DOM.createDiv(); 034 impl = AdUnitImpl.newInstance(div, options); 035 setElement(div); 036 } 037 038 /** 039 * This event is fired when the AdUnit's channelNumber property changes. 040 * @param handler 041 */ 042 public final HandlerRegistration addChannelNumberChangeHandler(ChannelNumberChangeMapHandler handler) { 043 return impl.addChannelNumberChangeHandler(handler); 044 } 045 046 /** 047 * This event is fired when the AdUnit's format property changes. 048 * @param handler 049 */ 050 public final HandlerRegistration addFormatChangeHandler(FormatChangeMapHandler handler) { 051 return impl.addFormatChangeHandler(handler); 052 } 053 054 /** 055 * This event is fired when the AdUnit's map property changes. 056 * @param handler 057 */ 058 public final HandlerRegistration addMapChangeHandler(MapChangeMapHandler handler) { 059 return impl.addMapChangeHandler(handler); 060 } 061 062 /** 063 * This event is fired when the AdUnit's position property changes. 064 * @param handler 065 */ 066 public final HandlerRegistration addPositionChangeHandler(PositionChangeMapHandler handler) { 067 return impl.addPositionChangeHandler(handler); 068 } 069 070 /** 071 * Returns the channel number in use by this AdUnit. 072 */ 073 public final String getChannelNumber() { 074 return impl.getChannelNumber(); 075 }; 076 077 /** 078 * Returns the containing element of the AdUnit. 079 */ 080 public final Element getContainer() { 081 return impl.getContainer(); 082 }; 083 084 /** 085 * Returns the format in use by this AdUnit. 086 */ 087 public final AdFormat getFormat() { 088 return impl.getFormat(); 089 }; 090 091 /** 092 * Returns the map to which this AdUnit's ads are targeted. 093 */ 094 public final MapWidget getMap() { 095 return impl.getMap(); 096 } 097 098 /** 099 * Returns the ControlPosition at which this AdUnit is displayed on the map. 100 */ 101 public final ControlPosition getPosition() { 102 return impl.getPosition(); 103 } 104 105 /** 106 * Returns the specified AdSense For Content publisher ID. 107 */ 108 public final String getPublisherId() { 109 return impl.getPublisherId(); 110 }; 111 112 /** 113 * Specifies the channel number for this AdUnit. Channel numbers are optional and can be created for Google AdSense tracking. 114 * @param channelNumber 115 */ 116 public final void setChannelNumber(String channelNumber) { 117 impl.setChannelNumber(channelNumber); 118 }; 119 120 /** 121 * Specifies the display format for this AdUnit. 122 * @param format 123 */ 124 public final void setFormat(AdFormat format) { 125 impl.setFormat(format); 126 }; 127 128 /** 129 * Associates this AdUnit with the specified map. Ads will be targeted to the map's viewport. The map must be specified in order to display ads. 130 * @param mapWidget 131 */ 132 public final void setMap(MapWidget mapWidget) { 133 impl.setMap(mapWidget); 134 } 135 136 /** 137 * Sets the ControlPosition at which to display the AdUnit on the map. If the position is set to null, the AdUnit is removed from the map. 138 * @param position {@link ControlPosition} 139 */ 140 public final void setPosition(ControlPosition position) { 141 impl.setPosition(position); 142 } 143 144 }