aboutsummaryrefslogtreecommitdiff
path: root/MPChartLib
diff options
context:
space:
mode:
authorDaniel Cohen Gindi <danielgindi@gmail.com>2016-08-08 09:46:06 +0300
committerDaniel Cohen Gindi <danielgindi@gmail.com>2016-08-08 09:56:04 +0300
commit79f5ed02004e8a80f1c4ecfc5cefa50d75dc9703 (patch)
treeff01b06f97becb1af98c9d95fe07b3eee7ec4294 /MPChartLib
parent99379d7bcffd3247bde40fbe06bab8ec58066586 (diff)
downloadMPAndroidChart-79f5ed02004e8a80f1c4ecfc5cefa50d75dc9703.tar.gz
Simplified scatter shape enum model
(Why would anyone try to subclass an enum?)
Diffstat (limited to 'MPChartLib')
-rw-r--r--MPChartLib/src/main/java/com/github/mikephil/charting/charts/ScatterChart.java7
-rw-r--r--MPChartLib/src/main/java/com/github/mikephil/charting/data/ScatterDataSet.java31
-rw-r--r--MPChartLib/src/main/java/com/github/mikephil/charting/utils/ShapeRendererHandler.java59
3 files changed, 28 insertions, 69 deletions
diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/charts/ScatterChart.java b/MPChartLib/src/main/java/com/github/mikephil/charting/charts/ScatterChart.java
index 0f68457b..decf1e85 100644
--- a/MPChartLib/src/main/java/com/github/mikephil/charting/charts/ScatterChart.java
+++ b/MPChartLib/src/main/java/com/github/mikephil/charting/charts/ScatterChart.java
@@ -48,7 +48,12 @@ public class ScatterChart extends BarLineChartBase<ScatterData> implements Scatt
*/
public enum ScatterShape {
- SQUARE("SQUARE"), CIRCLE("CIRCLE"), TRIANGLE("TRIANGLE"), CROSS("CROSS"), X("X"), CHEVRON_UP("CHEVRON_UP"),
+ SQUARE("SQUARE"),
+ CIRCLE("CIRCLE"),
+ TRIANGLE("TRIANGLE"),
+ CROSS("CROSS"),
+ X("X"),
+ CHEVRON_UP("CHEVRON_UP"),
CHEVRON_DOWN("CHEVRON_DOWN");
private final String shapeIdentifier;
diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/data/ScatterDataSet.java b/MPChartLib/src/main/java/com/github/mikephil/charting/data/ScatterDataSet.java
index 446bce3b..a9d73885 100644
--- a/MPChartLib/src/main/java/com/github/mikephil/charting/data/ScatterDataSet.java
+++ b/MPChartLib/src/main/java/com/github/mikephil/charting/data/ScatterDataSet.java
@@ -3,10 +3,15 @@ package com.github.mikephil.charting.data;
import com.github.mikephil.charting.charts.ScatterChart;
import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet;
+import com.github.mikephil.charting.renderer.scatter.ChevronDownShapeRenderer;
+import com.github.mikephil.charting.renderer.scatter.ChevronUpShapeRenderer;
+import com.github.mikephil.charting.renderer.scatter.CircleShapeRenderer;
+import com.github.mikephil.charting.renderer.scatter.CrossShapeRenderer;
import com.github.mikephil.charting.renderer.scatter.IShapeRenderer;
import com.github.mikephil.charting.renderer.scatter.SquareShapeRenderer;
+import com.github.mikephil.charting.renderer.scatter.TriangleShapeRenderer;
+import com.github.mikephil.charting.renderer.scatter.XShapeRenderer;
import com.github.mikephil.charting.utils.ColorTemplate;
-import com.github.mikephil.charting.utils.ShapeRendererHandler;
import java.util.ArrayList;
import java.util.List;
@@ -36,11 +41,6 @@ public class ScatterDataSet extends LineScatterCandleRadarDataSet<Entry> impleme
*/
private int mScatterShapeHoleColor = ColorTemplate.COLOR_NONE;
- /**
- * Custom path object the user can provide that is drawn where the values
- * are at. This is used when ScatterShape.CUSTOM is set for a DataSet.
- */
- //private Path mCustomScatterPath = null;
public ScatterDataSet(List<Entry> yVals, String label) {
super(yVals, label);
}
@@ -91,9 +91,7 @@ public class ScatterDataSet extends LineScatterCandleRadarDataSet<Entry> impleme
* @param shape
*/
public void setScatterShape(ScatterChart.ScatterShape shape) {
-
- ShapeRendererHandler handler = new ShapeRendererHandler();
- mShapeRenderer = handler.getShapeRenderer(shape);
+ mShapeRenderer = getRendererForShape(shape);
}
/**
@@ -139,4 +137,19 @@ public class ScatterDataSet extends LineScatterCandleRadarDataSet<Entry> impleme
public int getScatterShapeHoleColor() {
return mScatterShapeHoleColor;
}
+
+ public static IShapeRenderer getRendererForShape(ScatterChart.ScatterShape shape) {
+
+ switch (shape) {
+ case SQUARE: return new SquareShapeRenderer();
+ case CIRCLE: return new CircleShapeRenderer();
+ case TRIANGLE: return new TriangleShapeRenderer();
+ case CROSS: return new CrossShapeRenderer();
+ case X: return new XShapeRenderer();
+ case CHEVRON_UP: return new ChevronUpShapeRenderer();
+ case CHEVRON_DOWN: return new ChevronDownShapeRenderer();
+ }
+
+ return null;
+ }
}
diff --git a/MPChartLib/src/main/java/com/github/mikephil/charting/utils/ShapeRendererHandler.java b/MPChartLib/src/main/java/com/github/mikephil/charting/utils/ShapeRendererHandler.java
deleted file mode 100644
index c2093e6e..00000000
--- a/MPChartLib/src/main/java/com/github/mikephil/charting/utils/ShapeRendererHandler.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.github.mikephil.charting.utils;
-
-import com.github.mikephil.charting.charts.ScatterChart;
-import com.github.mikephil.charting.renderer.scatter.ChevronDownShapeRenderer;
-import com.github.mikephil.charting.renderer.scatter.ChevronUpShapeRenderer;
-import com.github.mikephil.charting.renderer.scatter.CircleShapeRenderer;
-import com.github.mikephil.charting.renderer.scatter.CrossShapeRenderer;
-import com.github.mikephil.charting.renderer.scatter.IShapeRenderer;
-import com.github.mikephil.charting.renderer.scatter.SquareShapeRenderer;
-import com.github.mikephil.charting.renderer.scatter.TriangleShapeRenderer;
-import com.github.mikephil.charting.renderer.scatter.XShapeRenderer;
-
-import java.util.HashMap;
-
-/**
- * Created by Philipp Jahoda on 27/06/16.
- * Class allowing to determine the corresponding IShapeRenderer for a given ScatterShape.
- */
-public final class ShapeRendererHandler {
-
- /**
- * Dictionary of IShapeRenderer which are responsible for drawing custom shapes.
- * Can add to it your custom shapes.
- * CustomShapeRenderer Implements IShapeRenderer{}
- */
- protected HashMap<String, IShapeRenderer> shapeRendererList;
-
- /**
- * Constructor
- */
- public ShapeRendererHandler() {
- initShapeRenderers();
- }
-
- /**
- * Returns the corresponding IShapeRenderer for a given ScatterShape.
- *
- * @param shape
- * @return
- */
- public IShapeRenderer getShapeRenderer(ScatterChart.ScatterShape shape) {
- return shapeRendererList.get(shape.toString());
- }
-
- /**
- * Init default ShapeRenderers.
- */
- protected void initShapeRenderers() {
- shapeRendererList = new HashMap<>();
-
- shapeRendererList.put(ScatterChart.ScatterShape.SQUARE.toString(), new SquareShapeRenderer());
- shapeRendererList.put(ScatterChart.ScatterShape.CIRCLE.toString(), new CircleShapeRenderer());
- shapeRendererList.put(ScatterChart.ScatterShape.TRIANGLE.toString(), new TriangleShapeRenderer());
- shapeRendererList.put(ScatterChart.ScatterShape.CROSS.toString(), new CrossShapeRenderer());
- shapeRendererList.put(ScatterChart.ScatterShape.X.toString(), new XShapeRenderer());
- shapeRendererList.put(ScatterChart.ScatterShape.CHEVRON_UP.toString(), new ChevronUpShapeRenderer());
- shapeRendererList.put(ScatterChart.ScatterShape.CHEVRON_DOWN.toString(), new ChevronDownShapeRenderer());
- }
-}