Skip to content

Commit

Permalink
Added ViewportChangeListener
Browse files Browse the repository at this point in the history
  • Loading branch information
lecho committed Aug 2, 2014
1 parent d8a76e2 commit 029db81
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 0 deletions.
2 changes: 2 additions & 0 deletions hellocharts-library/src/lecho/lib/hellocharts/Chart.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ public interface Chart {

public void setViewportAnimationListener(ChartAnimationListener animationListener);

public void setViewportChangeListener(ViewportChangeListener viewportChangeListener);

public void callTouchListener(SelectedValue selectedValue);

public boolean isInteractive();
Expand Down
12 changes: 12 additions & 0 deletions hellocharts-library/src/lecho/lib/hellocharts/ChartCalculator.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ public class ChartCalculator {
protected float minViewportWidth;
protected float minViewportHeight;

private ViewportChangeListener viewportChangeListener = new DummyVieportChangeListener();

/**
* Calculates available width and height. Should be called when chart dimensions or chart data change.
*/
Expand Down Expand Up @@ -72,6 +74,8 @@ public void constrainViewport(float left, float top, float right, float bottom)
currentViewport.top = Math.max(maxViewport.top, top);
currentViewport.bottom = Math.max(Utils.nextUpF(top), Math.min(maxViewport.bottom, bottom));
currentViewport.right = Math.max(Utils.nextUpF(left), Math.min(maxViewport.right, right));

viewportChangeListener.onViewportChanged(currentViewport);
}

/**
Expand Down Expand Up @@ -183,4 +187,12 @@ public float getMinimumViewportHeight() {
return minViewportHeight;
}

public void setViewportChangeListener(ViewportChangeListener viewportChangeListener) {
if (null == viewportChangeListener) {
this.viewportChangeListener = new DummyVieportChangeListener();
} else {
this.viewportChangeListener = viewportChangeListener;
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package lecho.lib.hellocharts;

import android.graphics.RectF;
import android.util.Log;

public class DummyVieportChangeListener implements ViewportChangeListener {

@Override
public void onViewportChanged(RectF newViewport) {
// Do nothing
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package lecho.lib.hellocharts;

import android.graphics.RectF;

public interface ViewportChangeListener {

public void onViewportChanged(RectF newViewport);

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import lecho.lib.hellocharts.Chart;
import lecho.lib.hellocharts.ChartCalculator;
import lecho.lib.hellocharts.ViewportChangeListener;
import lecho.lib.hellocharts.anim.ChartAnimationListener;
import lecho.lib.hellocharts.anim.ChartDataAnimator;
import lecho.lib.hellocharts.anim.ChartDataAnimatorV14;
Expand Down Expand Up @@ -107,6 +108,11 @@ public void setViewportAnimationListener(ChartAnimationListener animationListene
viewportAnimator.setChartAnimationListener(animationListener);
}

@Override
public void setViewportChangeListener(ViewportChangeListener viewportChangeListener) {
chartCalculator.setViewportChangeListener(viewportChangeListener);
}

public ChartRenderer getChartRenderer() {
return chartRenderer;
}
Expand Down

0 comments on commit 029db81

Please sign in to comment.