Android Open Source - clusterkraf Options






From Project

Back to project page clusterkraf.

License

The source code is released under:

Apache License

If you think the Android project clusterkraf listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.twotoasters.clusterkraf;
//w  w w .  j a  v a 2  s.  com
import android.view.animation.Interpolator;
import android.view.animation.LinearInterpolator;

import com.twotoasters.clusterkraf.Clusterkraf.ProcessingListener;

/**
 * Specify options for the Clusterkraf instance here
 */
public class Options {

  private static final int DEFAULT_TRANSITION_DURATION = 300;
  /**
   * The length of the animated cluster transition in milliseconds
   */
  private int transitionDuration = DEFAULT_TRANSITION_DURATION;

  /**
   * The Interpolator used for animating the cluster transition.
   */
  private Interpolator transitionInterpolator = new LinearInterpolator();

  private static final int DEFAULT_PIXEL_DISTANCE_TO_JOIN_CLUSTER = 150;
  /**
   * The pixel distance under which an InputPoint will cluster into a
   * neighbor.
   */
  private int pixelDistanceToJoinCluster = DEFAULT_PIXEL_DISTANCE_TO_JOIN_CLUSTER;

  private static final double DEFAULT_EXPAND_BOUNDS_FACTOR = 0;
  /**
   * Defines how much the visible region bounds should be expanded when
   * considering whether an InputPoint is to be considered for clustering.
   * Lower values will result in higher drawing performance when many
   * InputPoint objects are off screen, but clusters will be more likely to
   * pop into view after the camera has finished moving when panning or
   * zooming out. Higher values will result in cluster sliding onto the map
   * smoothly when panning and zooming out, less prone to popping into view,
   * but at the expense of lower performance because many markers will need to
   * be drawn off screen.
   */
  private double expandBoundsFactor = DEFAULT_EXPAND_BOUNDS_FACTOR;

  /**
   * The MarkerOptionsChooser to use for customizing MarkerOptions objects.
   */
  private MarkerOptionsChooser markerOptionsChooser;

  /**
   * The OnMarkerClickDownstreamListener to receive callbacks when a marker is
   * clicked
   */
  private OnMarkerClickDownstreamListener onMarkerClickDownstreamListener;

  /**
   * The OnInfoWindowClickDownstreamListener to receive callbacks when an info
   * window is clicked
   */
  private OnInfoWindowClickDownstreamListener onInfoWindowClickDownstreamListener;

    /**
     * The InfoWindowDownstreamAdapter to receive callbacks when an info window
     * needs to be displayed.
     */
    private InfoWindowDownstreamAdapter infoWindowDownstreamAdapter;

  /**
   * When zooming to the bounds of a marker's backing ClusterPoint, zoom until
   * all of the points are at least this far from the edge of the GoogleMap's
   * bounds
   */
  private int zoomToBoundsPadding = 75;

  private final int DEFAULT_ZOOM_TO_BOUNDS_ANIMATION_DURATION = 300;
  /**
   * The length of the zoom to bounds animation in milliseconds
   */
  private int zoomToBoundsAnimationDuration = DEFAULT_ZOOM_TO_BOUNDS_ANIMATION_DURATION;

  private final int DEFAULT_SHOW_INFO_WINDOW_ANIMATION_DURATION = 300;
  /**
   * The length of the show info window animation in milliseconds
   */
  private int showInfoWindowAnimationDuration = DEFAULT_SHOW_INFO_WINDOW_ANIMATION_DURATION;

  /**
   * The behavior when a cluster's marker is clicked
   */
  private ClusterClickBehavior clusterClickBehavior = ClusterClickBehavior.ZOOM_TO_BOUNDS;

  /**
   * The behavior when a cluster's info window is clicked
   */
  private ClusterInfoWindowClickBehavior clusterInfoWindowClickBehavior = ClusterInfoWindowClickBehavior.HIDE_INFO_WINDOW;

  /**
   * The behavior when a single point's marker is clicked
   */
  private SinglePointClickBehavior singlePointClickBehavior = SinglePointClickBehavior.SHOW_INFO_WINDOW;

  /**
   * The behavior when a single point's info window is clicked
   */
  private SinglePointInfoWindowClickBehavior singlePointInfoWindowClickBehavior = SinglePointInfoWindowClickBehavior.HIDE_INFO_WINDOW;

  /**
   * How long the ClusteringOnCameraChangeListener should remain dirty. This
   * should be set to slightly less than the duration of transition animation,
   * during which time you would not want the user to trigger a cluster update
   * process, but not so low that panning the map results in continuously
   * triggering cluster update processes.
   */
  private long clusteringOnCameraChangeListenerDirtyLifetimeMillis = 200l;

  /**
   * 
   */
  private ProcessingListener processingListener;

  /**
   * @return the transitionDuration
   */
  int getTransitionDuration() {
    return transitionDuration;
  }

  /**
   * @param transitionDuration
   *            the transitionDuration to set
   */
  public void setTransitionDuration(int transitionDuration) {
    this.transitionDuration = transitionDuration;
  }

  /**
   * @return the transitionInterpolator
   */
  Interpolator getTransitionInterpolator() {
    return transitionInterpolator;
  }

  /**
   * @param transitionInterpolator
   *            the transitionInterpolator to set
   */
  public void setTransitionInterpolator(Interpolator transitionInterpolator) {
    this.transitionInterpolator = transitionInterpolator;
  }

  /**
   * @return the pixelDistanceToJoinCluster
   */
  int getPixelDistanceToJoinCluster() {
    return pixelDistanceToJoinCluster;
  }

  /**
   * @param pixelDistanceToJoinCluster
   *            the pixelDistanceToJoinCluster to set. This value should be
   *            scaled appropriately if you are planning to support multiple
   *            screen densities. Suggested value: the greater of the width or
   *            height of your largest marker asset plus 25 percent.
   */
  public void setPixelDistanceToJoinCluster(int pixelDistanceToJoinCluster) {
    this.pixelDistanceToJoinCluster = pixelDistanceToJoinCluster;
  }

  /**
   * @return the expandBoundsFactor
   */
  double getExpandBoundsFactor() {
    return expandBoundsFactor;
  }

  /**
   * @param expandBoundsFactor
   */
  public void setExpandBoundsFactor(double expandBoundsFactor) {
    this.expandBoundsFactor = expandBoundsFactor;
  }

  /**
   * @return the markerOptionsChooser
   */
  MarkerOptionsChooser getMarkerOptionsChooser() {
    return markerOptionsChooser;
  }

  /**
   * @param markerOptionsChooser
   *            the markerIconChooser to set
   */
  public void setMarkerOptionsChooser(MarkerOptionsChooser markerOptionsChooser) {
    this.markerOptionsChooser = markerOptionsChooser;
  }

  /**
   * @return the onMarkerClickDownstreamListener
   */
  OnMarkerClickDownstreamListener getOnMarkerClickDownstreamListener() {
    return onMarkerClickDownstreamListener;
  }

  /**
   * @param onMarkerClickDownstreamListener
   *            the onMarkerClickDownstreamListener to set
   */
  public void setOnMarkerClickDownstreamListener(OnMarkerClickDownstreamListener onMarkerClickDownstreamListener) {
    this.onMarkerClickDownstreamListener = onMarkerClickDownstreamListener;
  }

  /**
   * @return the onInfoWindowClickDownstreamListener
   */
  OnInfoWindowClickDownstreamListener getOnInfoWindowClickDownstreamListener() {
    return onInfoWindowClickDownstreamListener;
  }

  /**
   * @param onInfoWindowClickDownstreamListener
   *            the onInfoWindowClickDownstreamListener to set
   */
  public void setOnInfoWindowClickDownstreamListener(OnInfoWindowClickDownstreamListener onInfoWindowClickDownstreamListener) {
    this.onInfoWindowClickDownstreamListener = onInfoWindowClickDownstreamListener;
  }

    /**
     * @return the infoWindowDownstreamAdapter
     */
    public InfoWindowDownstreamAdapter getInfoWindowDownstreamAdapter() {
        return this.infoWindowDownstreamAdapter;
    }

    /**
     * @param infoWindowDownstreamAdapter
     *            the infoWindowDownstreamAdapter to set
     */
    public void setInfoWindowDownstreamAdapter(InfoWindowDownstreamAdapter infoWindowDownstreamAdapter) {
        this.infoWindowDownstreamAdapter = infoWindowDownstreamAdapter;
    }

    /**
   * @return the clusterClickBehavior
   */
  ClusterClickBehavior getClusterClickBehavior() {
    return clusterClickBehavior;
  }

  /**
   * @param clusterClickBehavior
   *            the clusterClickBehavior to set
   */
  public void setClusterClickBehavior(ClusterClickBehavior clusterClickBehavior) {
    this.clusterClickBehavior = clusterClickBehavior;
  }

  /**
   * @return the clusterInfoWindowClickBehavior
   */
  ClusterInfoWindowClickBehavior getClusterInfoWindowClickBehavior() {
    return clusterInfoWindowClickBehavior;
  }

  /**
   * @param clusterInfoWindowClickBehavior
   *            the clusterInfoWindowClickBehavior to set
   */
  public void setClusterInfoWindowClickBehavior(ClusterInfoWindowClickBehavior clusterInfoWindowClickBehavior) {
    this.clusterInfoWindowClickBehavior = clusterInfoWindowClickBehavior;
  }

  /**
   * @return the zoomToBoundsPadding
   */
  int getZoomToBoundsPadding() {
    return zoomToBoundsPadding;
  }

  /**
   * @param zoomToBoundsPadding
   *            the zoomToBoundsPadding to set
   */
  public void setZoomToBoundsPadding(int zoomToBoundsPadding) {
    this.zoomToBoundsPadding = zoomToBoundsPadding;
  }

  /**
   * @return the zoomToBoundsAnimationDuration
   */
  int getZoomToBoundsAnimationDuration() {
    return zoomToBoundsAnimationDuration;
  }

  /**
   * @param zoomToBoundsAnimationDuration
   *            the zoomToBoundsAnimationDuration to set
   */
  public void setZoomToBoundsAnimationDuration(int zoomToBoundsAnimationDuration) {
    this.zoomToBoundsAnimationDuration = zoomToBoundsAnimationDuration;
  }

  /**
   * @return the showInfoWindowAnimationDuration
   */
  int getShowInfoWindowAnimationDuration() {
    return showInfoWindowAnimationDuration;
  }

  /**
   * @param showInfoWindowAnimationDuration
   *            the showInfoWindowAnimationDuration to set
   */
  public void setShowInfoWindowAnimationDuration(int showInfoWindowAnimationDuration) {
    this.showInfoWindowAnimationDuration = showInfoWindowAnimationDuration;
  }

  /**
   * @return the singlePointClickBehavior
   */
  SinglePointClickBehavior getSinglePointClickBehavior() {
    return singlePointClickBehavior;
  }

  /**
   * @param singlePointClickBehavior
   *            the singlePointClickBehavior to set
   */
  public void setSinglePointClickBehavior(SinglePointClickBehavior singlePointClickBehavior) {
    this.singlePointClickBehavior = singlePointClickBehavior;
  }

  /**
   * @return the singlePointInfoWindowClickBehavior
   */
  SinglePointInfoWindowClickBehavior getSinglePointInfoWindowClickBehavior() {
    return singlePointInfoWindowClickBehavior;
  }

  /**
   * @param singlePointInfoWindowClickBehavior
   *            the singlePointInfoWindowClickBehavior to set
   */
  public void setSinglePointInfoWindowClickBehavior(SinglePointInfoWindowClickBehavior singlePointInfoWindowClickBehavior) {
    this.singlePointInfoWindowClickBehavior = singlePointInfoWindowClickBehavior;
  }

  /**
   * @return the clusteringOnCameraChangeListenerDirtyLifetimeMillis
   */
  long getClusteringOnCameraChangeListenerDirtyLifetimeMillis() {
    return clusteringOnCameraChangeListenerDirtyLifetimeMillis;
  }

  /**
   * @param clusteringOnCameraChangeListenerDirtyLifetimeMillis
   */
  public void setClusteringOnCameraChangeListenerDirtyLifetimeMillis(long clusteringOnCameraChangeListenerDirtyLifetimeMillis) {
    this.clusteringOnCameraChangeListenerDirtyLifetimeMillis = clusteringOnCameraChangeListenerDirtyLifetimeMillis;
  }

  ProcessingListener getProcessingListener() {
    return processingListener;
  }

  public void setProcessingListener(ProcessingListener processingListener) {
    this.processingListener = processingListener;
  }

  public enum ClusterClickBehavior {
    ZOOM_TO_BOUNDS, SHOW_INFO_WINDOW, NO_OP
  }

  public enum ClusterInfoWindowClickBehavior {
    ZOOM_TO_BOUNDS, HIDE_INFO_WINDOW, NO_OP
  }

  public enum SinglePointClickBehavior {
    SHOW_INFO_WINDOW, NO_OP
  }

  public enum SinglePointInfoWindowClickBehavior {
    HIDE_INFO_WINDOW, NO_OP
  }
}




Java Source Code List

android.UnusedStub.java
com.twotoasters.clusterkraf.AnimatedTransition.java
com.twotoasters.clusterkraf.BasePoint.java
com.twotoasters.clusterkraf.ClusterPoint.java
com.twotoasters.clusterkraf.ClusterTransitionsAnimation.java
com.twotoasters.clusterkraf.ClusterTransitionsBuildingTask.java
com.twotoasters.clusterkraf.ClusterTransitions.java
com.twotoasters.clusterkraf.ClusteringOnCameraChangeListener.java
com.twotoasters.clusterkraf.ClusteringTask.java
com.twotoasters.clusterkraf.Clusterkraf.java
com.twotoasters.clusterkraf.ClustersBuilder.java
com.twotoasters.clusterkraf.InfoWindowDownstreamAdapter.java
com.twotoasters.clusterkraf.InputPoint.java
com.twotoasters.clusterkraf.MarkerOptionsChooser.java
com.twotoasters.clusterkraf.OnInfoWindowClickDownstreamListener.java
com.twotoasters.clusterkraf.OnMarkerClickDownstreamListener.java
com.twotoasters.clusterkraf.Options.java
com.twotoasters.clusterkraf.sample.AdvancedModeFragment.java
com.twotoasters.clusterkraf.sample.DelayedIndeterminateProgressBarRunnable.java
com.twotoasters.clusterkraf.sample.MainActivity.java
com.twotoasters.clusterkraf.sample.MarkerData.java
com.twotoasters.clusterkraf.sample.NormalModeFragment.java
com.twotoasters.clusterkraf.sample.RandomPointsProvider.java
com.twotoasters.clusterkraf.sample.SampleActivity.java
com.twotoasters.clusterkraf.sample.SingleChoiceDialogFragment.java
com.twotoasters.clusterkraf.sample.ToastedMarkerOptionsChooser.java
com.twotoasters.clusterkraf.sample.ToastedOnMarkerClickDownstreamListener.java
com.twotoasters.clusterkraf.sample.TwoToastersActivity.java
com.twotoasters.clusterkraf.util.Distance.java