aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo/geocaching/mapcommon/ItemizedOverlayBase.java
blob: 99bf2fd6b147a247874d1d7fe394e9e90454b267 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package cgeo.geocaching.mapcommon;

import android.graphics.Canvas;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import cgeo.geocaching.mapinterfaces.ItemizedOverlayImpl;
import cgeo.geocaching.mapinterfaces.MapProjectionImpl;
import cgeo.geocaching.mapinterfaces.MapViewImpl;
import cgeo.geocaching.mapinterfaces.OverlayBase;
import cgeo.geocaching.mapinterfaces.OverlayImpl;
import cgeo.geocaching.mapinterfaces.OverlayItemImpl;

/**
 * Base class for itemized overlays. Delegates calls from deriving classes to the contained
 * provider-specific implementation.
 * @author rsudev
 *
 */
public abstract class ItemizedOverlayBase implements OverlayBase {
	
	private ItemizedOverlayImpl ovlImpl;

	protected ItemizedOverlayBase(ItemizedOverlayImpl ovlImplIn) {
		ovlImpl = ovlImplIn;
	}

	void populate() {
		ovlImpl.superPopulate();
	}
	
	public boolean onTap(int index) {
		return ovlImpl.superOnTap(index);
	}
	
	Drawable boundCenter(Drawable markerIn) {
		return ovlImpl.superBoundCenter(markerIn);
	}
	
	Drawable boundCenterBottom(Drawable markerIn) {
		return ovlImpl.superBoundCenterBottom(markerIn);
	}
	
	void setLastFocusedItemIndex(int index){
		ovlImpl.superSetLastFocusedItemIndex(index);
	}
	
	public void draw(Canvas canvas, MapViewImpl mapView, boolean shadow) {
		ovlImpl.superDraw(canvas, mapView, shadow);
	}
	
	public void drawOverlayBitmap(Canvas canvas, Point drawPosition,
			MapProjectionImpl projection, byte drawZoomLevel) {
		ovlImpl.superDrawOverlayBitmap(canvas, drawPosition, projection, drawZoomLevel);
	}
	
	@Override
	public OverlayImpl getOverlayImpl() {
		return ovlImpl;
	}

	public abstract OverlayItemImpl createItem(int index);
	
	public abstract int size();
}