refactor: IRenderCallback -> IRenderTheme.Callback

- more consistent function names
This commit is contained in:
Hannes Janetzek 2013-09-15 19:50:18 +02:00
parent 1137f48882
commit 876b8b6d37
12 changed files with 120 additions and 152 deletions

View File

@ -30,7 +30,6 @@ import org.oscim.renderer.elements.LineTexLayer;
import org.oscim.renderer.elements.PolygonLayer;
import org.oscim.renderer.elements.SymbolItem;
import org.oscim.renderer.elements.TextItem;
import org.oscim.theme.IRenderCallback;
import org.oscim.theme.IRenderTheme;
import org.oscim.theme.renderinstruction.Area;
import org.oscim.theme.renderinstruction.Circle;
@ -58,7 +57,7 @@ import org.oscim.utils.pool.Inlist;
* 5. RenderTheme calls IRenderCallback functions with style information
* 6. Styled items become added to MapTile.layers... roughly
*/
public class VectorTileLoader extends TileLoader implements IRenderCallback, ITileDataSink {
public class VectorTileLoader extends TileLoader implements IRenderTheme.Callback, ITileDataSink {
private static final String TAG = VectorTileLoader.class.getName();
@ -472,7 +471,7 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi
}
@Override
public void renderAreaCaption(Text text) {
public void renderAreaText(Text text) {
// TODO place somewhere on polygon
String value = textValueForKey(text);
@ -486,7 +485,7 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi
}
@Override
public void renderPointOfInterestCaption(Text text) {
public void renderPointText(Text text) {
String value = textValueForKey(text);
if (value == null)
return;
@ -517,11 +516,11 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi
}
@Override
public void renderPointOfInterestCircle(Circle circle, int level) {
public void renderPointCircle(Circle circle, int level) {
}
@Override
public void renderPointOfInterestSymbol(Symbol symbol) {
public void renderPointSymbol(Symbol symbol) {
if (symbol.texture == null) {
Log.d(TAG, "missing symbol for " + mElement.tags.asString());
return;

View File

@ -16,6 +16,7 @@ package org.oscim.layers.tile.vector;
import static org.oscim.tiling.MapTile.STATE_NONE;
import org.oscim.backend.Log;
import org.oscim.core.GeometryBuffer.GeometryType;
import org.oscim.core.MapElement;
import org.oscim.core.MercatorProjection;
@ -24,14 +25,13 @@ import org.oscim.core.TagSet;
import org.oscim.core.Tile;
import org.oscim.layers.tile.vector.labeling.WayDecorator;
import org.oscim.map.DebugSettings;
import org.oscim.renderer.elements.ExtrusionLayer;
import org.oscim.renderer.elements.ElementLayers;
import org.oscim.renderer.elements.ExtrusionLayer;
import org.oscim.renderer.elements.LineLayer;
import org.oscim.renderer.elements.LineTexLayer;
import org.oscim.renderer.elements.PolygonLayer;
import org.oscim.renderer.elements.SymbolItem;
import org.oscim.renderer.elements.TextItem;
import org.oscim.theme.IRenderCallback;
import org.oscim.theme.IRenderTheme;
import org.oscim.theme.renderinstruction.Area;
import org.oscim.theme.renderinstruction.Circle;
@ -49,8 +49,6 @@ import org.oscim.tiling.source.ITileDataSource.QueryResult;
import org.oscim.utils.LineClipper;
import org.oscim.utils.pool.Inlist;
import org.oscim.backend.Log;
/**
* @note
* 0.
@ -62,7 +60,7 @@ import org.oscim.backend.Log;
* 5. RenderTheme calls IRenderCallback functions with style information
* 6. Styled items become added to MapTile.layers...
*/
public class VectorTileLoader extends TileLoader implements IRenderCallback, ITileDataSink {
public class VectorTileLoader extends TileLoader implements IRenderTheme.Callback, ITileDataSink {
private static final String TAG = VectorTileLoader.class.getName();
@ -453,7 +451,7 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi
}
@Override
public void renderAreaCaption(Text text) {
public void renderAreaText(Text text) {
// TODO place somewhere on polygon
String value = textValueForKey(text);
@ -467,7 +465,7 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi
}
@Override
public void renderPointOfInterestCaption(Text text) {
public void renderPointText(Text text) {
String value = textValueForKey(text);
if (value == null)
return;
@ -498,11 +496,11 @@ public class VectorTileLoader extends TileLoader implements IRenderCallback, ITi
}
@Override
public void renderPointOfInterestCircle(Circle circle, int level) {
public void renderPointCircle(Circle circle, int level) {
}
@Override
public void renderPointOfInterestSymbol(Symbol symbol) {
public void renderPointSymbol(Symbol symbol) {
if (symbol.texture == null){
Log.d(TAG, "missing symbol for " + mElement.tags.asString());
return;

View File

@ -1,106 +0,0 @@
/*
* Copyright 2010, 2011, 2012 mapsforge.org
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.oscim.theme;
import org.oscim.theme.renderinstruction.Area;
import org.oscim.theme.renderinstruction.Circle;
import org.oscim.theme.renderinstruction.Line;
import org.oscim.theme.renderinstruction.LineSymbol;
import org.oscim.theme.renderinstruction.Symbol;
import org.oscim.theme.renderinstruction.Text;
/**
* Callback methods for rendering areas, ways and points of interest (POIs).
*/
public interface IRenderCallback {
/**
* Renders an area with the given parameters.
*
* @param area
* ...
* @param level
* ...
*/
void renderArea(Area area, int level);
/**
* Renders an area symbol with the given bitmap.
*
* @param symbol
* the symbol to be rendered.
*/
void renderAreaSymbol(Symbol symbol);
/**
* Renders a point of interest circle with the given parameters.
*
* @param circle
* the circle.
* @param level
* the drawing level on which the circle should be rendered.
*/
void renderPointOfInterestCircle(Circle circle, int level);
/**
* Renders a point of interest symbol with the given bitmap.
*
* @param symbol
* the symbol to be rendered.
*/
void renderPointOfInterestSymbol(Symbol symbol);
/**
* Renders a way with the given parameters.
*
* @param line
* ...
* @param level
* ...
*/
void renderWay(Line line, int level);
/**
* Renders a way with the given symbol along the way path.
*
* @param symbol
* the symbol to be rendered.
*/
void renderWaySymbol(LineSymbol symbol);
/**
* Renders a way with the given text along the way path.
*
* @param text
* ...
*/
void renderWayText(Text text);
/**
* Renders an area caption with the given text.
*
* @param text
* the text to be rendered.
*/
void renderAreaCaption(Text text);
/**
* Renders a point of interest caption with the given text.
*
* @param text
* the text to be rendered.
*/
void renderPointOfInterestCaption(Text text);
}

View File

@ -16,7 +16,13 @@
package org.oscim.theme;
import org.oscim.core.MapElement;
import org.oscim.theme.renderinstruction.Area;
import org.oscim.theme.renderinstruction.Circle;
import org.oscim.theme.renderinstruction.Line;
import org.oscim.theme.renderinstruction.LineSymbol;
import org.oscim.theme.renderinstruction.RenderInstruction;
import org.oscim.theme.renderinstruction.Symbol;
import org.oscim.theme.renderinstruction.Text;
public interface IRenderTheme {
@ -63,4 +69,83 @@ public interface IRenderTheme {
*/
public abstract void scaleTextSize(float scaleFactor);
/**
* Callback methods for rendering areas, ways and points of interest (POIs).
*/
public interface Callback {
/**
* Renders an area with the given parameters.
*
* @param area
* @param level
*/
void renderArea(Area area, int level);
/**
* Renders an area symbol with the given bitmap.
*
* @param symbol
* the symbol to be rendered.
*/
void renderAreaSymbol(Symbol symbol);
/**
* Renders an area caption with the given text.
*
* @param text
* the text to be rendered.
*/
void renderAreaText(Text text);
/**
* Renders a point of interest circle with the given parameters.
*
* @param circle
* the circle.
* @param level
* the drawing level on which the circle should be rendered.
*/
void renderPointCircle(Circle circle, int level);
/**
* Renders a point of interest symbol with the given bitmap.
*
* @param symbol
* the symbol to be rendered.
*/
void renderPointSymbol(Symbol symbol);
/**
* Renders a point of interest caption with the given text.
*
* @param text
* the text to be rendered.
*/
void renderPointText(Text text);
/**
* Renders a way with the given parameters.
*
* @param line
* @param level
*/
void renderWay(Line line, int level);
/**
* Renders a way with the given symbol along the way path.
*
* @param symbol
* the symbol to be rendered.
*/
void renderWaySymbol(LineSymbol symbol);
/**
* Renders a way with the given text along the way path.
*
* @param text
*/
void renderWayText(Text text);
}
}

View File

@ -15,7 +15,7 @@
package org.oscim.theme.renderinstruction;
import org.oscim.renderer.elements.TextureItem;
import org.oscim.theme.IRenderCallback;
import org.oscim.theme.IRenderTheme.Callback;
/**
* Represents a closed polygon on the map.
@ -65,7 +65,7 @@ public final class Area extends RenderInstruction {
}
@Override
public void renderWay(IRenderCallback renderCallback) {
public void renderWay(Callback renderCallback) {
renderCallback.renderArea(this, this.level);
}
@ -76,6 +76,5 @@ public final class Area extends RenderInstruction {
public final int fade;
public final int blendColor;
public final int blend;
public final TextureItem texture;
}

View File

@ -14,7 +14,7 @@
*/
package org.oscim.theme.renderinstruction;
import org.oscim.theme.IRenderCallback;
import org.oscim.theme.IRenderTheme.Callback;
public class AreaLevel extends RenderInstruction {
private final Area area;
@ -26,7 +26,7 @@ public class AreaLevel extends RenderInstruction {
}
@Override
public void renderWay(IRenderCallback renderCallback) {
public void renderWay(Callback renderCallback) {
renderCallback.renderArea(this.area, level);
}
}

View File

@ -14,7 +14,7 @@
*/
package org.oscim.theme.renderinstruction;
import org.oscim.theme.IRenderCallback;
import org.oscim.theme.IRenderTheme.Callback;
/**
@ -44,17 +44,10 @@ public final class Circle extends RenderInstruction {
this.strokeWidth = strokeWidth;
this.level = level;
//if (!mScaleRadius) {
// mRenderRadius = mRadius;
// if (mOutline != null) {
// mOutline.setStrokeWidth(mStrokeWidth);
// }
//}
}
@Override
public void renderNode(IRenderCallback renderCallback) {
renderCallback.renderPointOfInterestCircle(this, this.level);
public void renderNode(Callback renderCallback) {
renderCallback.renderPointCircle(this, this.level);
}
}

View File

@ -15,7 +15,7 @@
package org.oscim.theme.renderinstruction;
import org.oscim.backend.canvas.Paint.Cap;
import org.oscim.theme.IRenderCallback;
import org.oscim.theme.IRenderTheme.Callback;
/**
* Represents a polyline on the map.
@ -100,7 +100,7 @@ public final class Line extends RenderInstruction {
}
@Override
public void renderWay(IRenderCallback renderCallback) {
public void renderWay(Callback renderCallback) {
renderCallback.renderWay(this, level);
}
}

View File

@ -14,7 +14,7 @@
*/
package org.oscim.theme.renderinstruction;
import org.oscim.theme.IRenderCallback;
import org.oscim.theme.IRenderTheme.Callback;
/**
* Represents an icon along a polyline on the map.
@ -36,7 +36,7 @@ public final class LineSymbol extends RenderInstruction {
}
@Override
public void renderWay(IRenderCallback renderCallback) {
public void renderWay(Callback renderCallback) {
renderCallback.renderWaySymbol(this);
}
}

View File

@ -14,7 +14,7 @@
*/
package org.oscim.theme.renderinstruction;
import org.oscim.theme.IRenderCallback;
import org.oscim.theme.IRenderTheme.Callback;
/**
* A RenderInstruction is a basic graphical primitive to draw a map.
@ -30,14 +30,14 @@ public abstract class RenderInstruction {
* @param renderCallback
* a reference to the receiver of all render callbacks.
*/
public void renderNode(IRenderCallback renderCallback) {
public void renderNode(Callback renderCallback) {
}
/**
* @param renderCallback
* a reference to the receiver of all render callbacks.
*/
public void renderWay(IRenderCallback renderCallback) {
public void renderWay(Callback renderCallback) {
}
/**

View File

@ -15,7 +15,7 @@
package org.oscim.theme.renderinstruction;
import org.oscim.renderer.atlas.TextureRegion;
import org.oscim.theme.IRenderCallback;
import org.oscim.theme.IRenderTheme.Callback;
/**
* Represents an icon on the map.
@ -34,12 +34,12 @@ public final class Symbol extends RenderInstruction {
}
@Override
public void renderNode(IRenderCallback renderCallback) {
renderCallback.renderPointOfInterestSymbol(this);
public void renderNode(Callback renderCallback) {
renderCallback.renderPointSymbol(this);
}
@Override
public void renderWay(IRenderCallback renderCallback) {
public void renderWay(Callback renderCallback) {
renderCallback.renderAreaSymbol(this);
}
}

View File

@ -20,7 +20,7 @@ import org.oscim.backend.canvas.Paint.Align;
import org.oscim.backend.canvas.Paint.FontFamily;
import org.oscim.backend.canvas.Paint.FontStyle;
import org.oscim.renderer.atlas.TextureRegion;
import org.oscim.theme.IRenderCallback;
import org.oscim.theme.IRenderTheme.Callback;
/**
* Represents a text along a polyline on the map.
@ -101,15 +101,15 @@ public final class Text extends RenderInstruction {
}
@Override
public void renderNode(IRenderCallback renderCallback) {
public void renderNode(Callback renderCallback) {
if (caption)
renderCallback.renderPointOfInterestCaption(this);
renderCallback.renderPointText(this);
}
@Override
public void renderWay(IRenderCallback renderCallback) {
public void renderWay(Callback renderCallback) {
if (caption)
renderCallback.renderAreaCaption(this);
renderCallback.renderAreaText(this);
else
renderCallback.renderWayText(this);
}