/*
* #%L
* Wheelmap - App
* %%
* Copyright (C) 2011 - 2012 Michal Harakal - Michael Kroez - Sozialhelden e.V.
* %%
* Wheelmap App based on the Wheelmap Service by Sozialhelden e.V.
*
* 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.
* #L%
*/
package org.wheelmap.android.overlays;
import org.mapsforge.android.maps.GeoPoint;
import org.mapsforge.android.maps.overlay.ItemizedOverlay;
import org.mapsforge.android.maps.overlay.OverlayItem;
import org.wheelmap.android.manager.SupportManager.NodeType;
import org.wheelmap.android.model.WheelchairFilterState;
import org.wheelmap.android.model.Wheelmap.POIs;
import android.content.ContentValues;
import android.graphics.drawable.Drawable;
import android.util.Log;
public class SingleItemOverlay extends ItemizedOverlay<OverlayItem> {
private OverlayItem item = new OverlayItem();
private ContentValues itemValues;
private int items;
private OnTapListener mListener;
public SingleItemOverlay(OnTapListener listener) {
super(null);
items = 0;
mListener = listener;
}
public void setItem(ContentValues values, NodeType nodeType,
WheelchairFilterState state) {
itemValues = values;
//Drawable marker = nodeType.stateDrawables.get(state);
Drawable marker = nodeType.getStateDrawable(state);
item.setTitle(values.getAsString(POIs.NAME));
item.setSnippet(values.getAsString(POIs.DESCRIPTION));
item.setMarker(marker);
item.setPoint(new GeoPoint(values.getAsDouble(POIs.LATITUDE), values
.getAsDouble(POIs.LONGITUDE)));
Log.d("singleitemoverlay", "item point = " + item.getPoint().toString());
items = 1;
populate();
}
@Override
public int size() {
return items;
}
@Override
protected OverlayItem createItem(int index) {
if (index > 0) {
return null;
}
return item;
}
@Override
public boolean onTap(int index) {
if (mListener != null) {
mListener.onTap(item, itemValues);
return true;
}
return false;
}
}