controlP5
Class Chart

java.lang.Object
  extended by controlP5.Controller
      extended by controlP5.Chart
All Implemented Interfaces:
CDrawable, ControllerInterface, ControlP5Constants

public class Chart
extends Controller

Use charts to display float array data as line chart, yet experimental, but see the ControlP5chart example for more details.

+Example
/**
* ControlP5 Chart
*
* find a list of public methods available for the Chart Controller
* at the bottom of this sketch.
*
* by Andreas Schlegel, 2012
* www.sojamo.de/libraries/controlp5
*
*/


import controlP5.*;

ControlP5 cp5;

Chart myChart;

void setup() {
  size(400, 700);
  smooth();
  cp5 = new ControlP5(this);
  cp5.printPublicMethodsFor(Chart.class);
  myChart = cp5.addChart("hello")
               .setPosition(50, 50)
               .setSize(200, 200)
               .setRange(-20, 20)
               .setView(Chart.BAR) // use Chart.LINE, Chart.PIE, Chart.AREA, Chart.BAR_CENTERED
               ;

  myChart.getColor().setBackground(color(255, 100));


  myChart.addDataSet("world");
  myChart.setColors("world", color(255,0,255),color(255,0,0));
  myChart.setData("world", new float[4]);

  myChart.setStrokeWeight(1.5);

  myChart.addDataSet("earth");
  myChart.setColors("earth", color(255), color(0, 255, 0));
  myChart.updateData("earth", 1, 2, 10, 3);

}


void draw() {
  background(0);
  // unshift: add data from left to right (first in)
  myChart.unshift("world", (sin(frameCount*0.01)*10));
  
  // push: add data from right to left (last in)
  myChart.push("earth", (sin(frameCount*0.1)*10));
}







/*
a list of all methods available for the Chart Controller
use ControlP5.printPublicMethodsFor(Chart.class);
to print the following list into the console.

You can find further details about class Chart in the javadoc.

Format:
ClassName : returnType methodName(parameter type)


controlP5.Chart : Chart addData(ChartData) 
controlP5.Chart : Chart addData(ChartDataSet, float) 
controlP5.Chart : Chart addData(String, ChartData) 
controlP5.Chart : Chart addData(String, float) 
controlP5.Chart : Chart addData(float) 
controlP5.Chart : Chart addDataSet(String) 
controlP5.Chart : Chart addFirst(String, float) 
controlP5.Chart : Chart addFirst(float) 
controlP5.Chart : Chart removeData(ChartData) 
controlP5.Chart : Chart removeData(String, ChartData) 
controlP5.Chart : Chart removeData(String, int) 
controlP5.Chart : Chart removeData(int) 
controlP5.Chart : Chart removeDataSet(String) 
controlP5.Chart : Chart removeLast() 
controlP5.Chart : Chart removeLast(String) 
controlP5.Chart : Chart setData(String, int, ChartData) 
controlP5.Chart : Chart setData(int, ChartData) 
controlP5.Chart : Chart setDataSet(ChartDataSet) 
controlP5.Chart : Chart setDataSet(String, ChartDataSet) 
controlP5.Chart : Chart setRange(float, float) 
controlP5.Chart : Chart setResolution(int) 
controlP5.Chart : Chart setStrokeWeight(float) 
controlP5.Chart : Chart setValue(float) 
controlP5.Chart : Chart setView(int) 
controlP5.Chart : Chart unshift(String, float) 
controlP5.Chart : Chart unshift(float) 
controlP5.Chart : ChartData getData(String, int) 
controlP5.Chart : ChartDataSet getDataSet(String) 
controlP5.Chart : LinkedHashMap getDataSet() 
controlP5.Chart : String getInfo() 
controlP5.Chart : String toString() 
controlP5.Chart : float getStrokeWeight() 
controlP5.Chart : float[] getValuesFrom(String) 
controlP5.Chart : int getResolution() 
controlP5.Chart : int size() 
controlP5.Chart : void onEnter() 
controlP5.Chart : void onLeave() 
controlP5.Controller : CColor getColor() 
controlP5.Controller : Chart addCallback(CallbackListener) 
controlP5.Controller : Chart addListener(ControlListener) 
controlP5.Controller : Chart align(int, int, int, int) 
controlP5.Controller : Chart bringToFront() 
controlP5.Controller : Chart bringToFront(ControllerInterface) 
controlP5.Controller : Chart hide() 
controlP5.Controller : Chart linebreak() 
controlP5.Controller : Chart listen(boolean) 
controlP5.Controller : Chart lock() 
controlP5.Controller : Chart plugTo(Object) 
controlP5.Controller : Chart plugTo(Object, String) 
controlP5.Controller : Chart plugTo(Object[]) 
controlP5.Controller : Chart plugTo(Object[], String) 
controlP5.Controller : Chart registerProperty(String) 
controlP5.Controller : Chart registerProperty(String, String) 
controlP5.Controller : Chart registerTooltip(String) 
controlP5.Controller : Chart removeBehavior() 
controlP5.Controller : Chart removeCallback() 
controlP5.Controller : Chart removeCallback(CallbackListener) 
controlP5.Controller : Chart removeListener(ControlListener) 
controlP5.Controller : Chart removeProperty(String) 
controlP5.Controller : Chart removeProperty(String, String) 
controlP5.Controller : Chart setArrayValue(float[]) 
controlP5.Controller : Chart setArrayValue(int, float) 
controlP5.Controller : Chart setBehavior(ControlBehavior) 
controlP5.Controller : Chart setBroadcast(boolean) 
controlP5.Controller : Chart setCaptionLabel(String) 
controlP5.Controller : Chart setColor(CColor) 
controlP5.Controller : Chart setColorActive(int) 
controlP5.Controller : Chart setColorBackground(int) 
controlP5.Controller : Chart setColorCaptionLabel(int) 
controlP5.Controller : Chart setColorForeground(int) 
controlP5.Controller : Chart setColorValueLabel(int) 
controlP5.Controller : Chart setDecimalPrecision(int) 
controlP5.Controller : Chart setDefaultValue(float) 
controlP5.Controller : Chart setHeight(int) 
controlP5.Controller : Chart setId(int) 
controlP5.Controller : Chart setImages(PImage, PImage, PImage) 
controlP5.Controller : Chart setImages(PImage, PImage, PImage, PImage) 
controlP5.Controller : Chart setLabelVisible(boolean) 
controlP5.Controller : Chart setLock(boolean) 
controlP5.Controller : Chart setMax(float) 
controlP5.Controller : Chart setMin(float) 
controlP5.Controller : Chart setMouseOver(boolean) 
controlP5.Controller : Chart setMoveable(boolean) 
controlP5.Controller : Chart setPosition(PVector) 
controlP5.Controller : Chart setPosition(float, float) 
controlP5.Controller : Chart setSize(PImage) 
controlP5.Controller : Chart setSize(int, int) 
controlP5.Controller : Chart setStringValue(String) 
controlP5.Controller : Chart setUpdate(boolean) 
controlP5.Controller : Chart setValueLabel(String) 
controlP5.Controller : Chart setView(ControllerView) 
controlP5.Controller : Chart setVisible(boolean) 
controlP5.Controller : Chart setWidth(int) 
controlP5.Controller : Chart show() 
controlP5.Controller : Chart unlock() 
controlP5.Controller : Chart unplugFrom(Object) 
controlP5.Controller : Chart unplugFrom(Object[]) 
controlP5.Controller : Chart unregisterTooltip() 
controlP5.Controller : Chart update() 
controlP5.Controller : Chart updateSize() 
controlP5.Controller : ControlBehavior getBehavior() 
controlP5.Controller : ControlWindow getControlWindow() 
controlP5.Controller : ControlWindow getWindow() 
controlP5.Controller : ControllerProperty getProperty(String) 
controlP5.Controller : ControllerProperty getProperty(String, String) 
controlP5.Controller : Label getCaptionLabel() 
controlP5.Controller : Label getValueLabel() 
controlP5.Controller : List getControllerPlugList() 
controlP5.Controller : PImage setImage(PImage) 
controlP5.Controller : PImage setImage(PImage, int) 
controlP5.Controller : PVector getAbsolutePosition() 
controlP5.Controller : PVector getPosition() 
controlP5.Controller : String getAddress() 
controlP5.Controller : String getInfo() 
controlP5.Controller : String getName() 
controlP5.Controller : String getStringValue() 
controlP5.Controller : String toString() 
controlP5.Controller : Tab getTab() 
controlP5.Controller : boolean isActive() 
controlP5.Controller : boolean isBroadcast() 
controlP5.Controller : boolean isInside() 
controlP5.Controller : boolean isLabelVisible() 
controlP5.Controller : boolean isListening() 
controlP5.Controller : boolean isLock() 
controlP5.Controller : boolean isMouseOver() 
controlP5.Controller : boolean isMousePressed() 
controlP5.Controller : boolean isMoveable() 
controlP5.Controller : boolean isUpdate() 
controlP5.Controller : boolean isVisible() 
controlP5.Controller : float getArrayValue(int) 
controlP5.Controller : float getDefaultValue() 
controlP5.Controller : float getMax() 
controlP5.Controller : float getMin() 
controlP5.Controller : float getValue() 
controlP5.Controller : float[] getArrayValue() 
controlP5.Controller : int getDecimalPrecision() 
controlP5.Controller : int getHeight() 
controlP5.Controller : int getId() 
controlP5.Controller : int getWidth() 
controlP5.Controller : int listenerSize() 
controlP5.Controller : void remove() 
controlP5.Controller : void setView(ControllerView, int) 
java.lang.Object : String toString() 
java.lang.Object : boolean equals(Object) 


*/




Nested Class Summary
 class Chart.ChartViewArea
           
 class Chart.ChartViewBar
           
 class Chart.ChartViewBarCentered
           
 class Chart.ChartViewLine
           
 class Chart.ChartViewPie
           
 
Field Summary
static int AREA
           
static int BAR
           
static int BAR_CENTERED
           
static int HISTOGRAM
           
static int LINE
           
static int PIE
           
 
Fields inherited from class controlP5.Controller
autoHeight, autoSpacing, autoWidth
 
Fields inherited from interface controlP5.ControlP5Constants
acceptClassList, ACTION_BROADCAST, ACTION_ENTER, ACTION_LEAVE, ACTION_PRESSED, ACTION_RELEASED, ACTION_RELEASEDOUTSIDE, ACTIVE, ALL, ALT, ARC, ARRAY, BACKSPACE, BASELINE, BITFONT, BOOLEAN, BOTTOM, BOTTOM_OUTSIDE, CAPTIONLABEL, CENTER, COMMANDKEY, CONTROL, controlEventClass, CUSTOM, DECREASE, DEFAULT, DELETE, DONE, DOWN, ELLIPSE, ENTER, ESCAPE, EVENT, eventMethod, FADEIN, FADEOUT, FIELD, FLOAT, HALF_PI, HIDE, HIGHLIGHT, HORIZONTAL, IDLE, IMAGE, INACTIVE, INCREASE, INTEGER, INVALID, KEYCONTROL, LEFT, LEFT_OUTSIDE, LOAD, MENU, METHOD, MOVE, MULTI, MULTIPLES, OVER, PI, PRESSED, PRINT, RELEASE, RESET, RIGHT, RIGHT_OUTSIDE, SAVE, SHIFT, SINGLE, SINGLE_COLUMN, SINGLE_ROW, SPRITE, STRING, SWITCH, SWITCH_BACK, SWITCH_FORE, TAB, TOP, TOP_OUTSIDE, TRANSITION_WAIT_FADEIN, TWO_PI, UP, VALUELABEL, VERBOSE, VERTICAL, WAIT
 
Constructor Summary
Chart(ControlP5 theControlP5, java.lang.String theName)
          Convenience constructor to extend Chart.
 
Method Summary
 Chart addData(ChartData theItem)
           
 Chart addData(ChartDataSet theChartData, float theValue)
           
 Chart addData(float theValue)
           
 Chart addData(java.lang.String theSetIndex, ChartData theItem)
           
 Chart addData(java.lang.String theSetIndex, float theValue)
           
 Chart addDataSet(java.lang.String theName)
           
 Chart addFirst(float theValue)
           
 Chart addFirst(java.lang.String theSetIndex, float theValue)
           
 Chart addLast(float theValue)
           
 Chart addLast(java.lang.String theSetIndex, float theValue)
           
 ChartData getData(java.lang.String theIndex, int theItemIndex)
           
 java.util.LinkedHashMap getDataSet()
           
 ChartDataSet getDataSet(java.lang.String theIndex)
           
 java.lang.String getInfo()
           
 int getResolution()
           
 float getStrokeWeight()
           
 float[] getValuesFrom(java.lang.String theIndex)
           
 void onEnter()
           
 void onLeave()
           
 Chart push(float theValue)
           
 Chart push(java.lang.String theSetIndex, float theValue)
           
 Chart removeData(ChartData theItem)
           
 Chart removeData(int theItemIndex)
           
 Chart removeData(java.lang.String theSetIndex, ChartData theItem)
           
 Chart removeData(java.lang.String theSetIndex, int theItemIndex)
           
 Chart removeDataSet(java.lang.String theIndex)
           
 Chart removeFirst()
           
 Chart removeFirst(java.lang.String theSetIndex)
           
 Chart removeLast()
           
 Chart removeLast(java.lang.String theSetIndex)
           
 Chart setColors(java.lang.String theSetIndex, int[] theColors)
           
 Chart setData(float[] theValues)
           
 Chart setData(int theItemIndex, ChartData theItem)
           
 Chart setData(java.lang.String theSetIndex, float[] theValues)
           
 Chart setData(java.lang.String theSetItem, int theItemIndex, ChartData theItem)
           
 Chart setDataSet(ChartDataSet theItems)
           
 Chart setDataSet(java.lang.String theSetIndex, ChartDataSet theChartData)
           
 Chart setRange(float theMin, float theMax)
           
 Chart setResolution(int theValue)
          ?
 Chart setStrokeWeight(float theWeight)
           
 Chart setValue(float theValue)
           
 Chart setView(int theType)
           
 int size()
           
 java.lang.String toString()
           
 Chart unshift(float theValue)
          adds a new float at the beginning of the data set.
 Chart unshift(java.lang.String theSetIndex, float theValue)
           
 Chart updateData(float[] theValues)
           
 Chart updateData(java.lang.String theSetIndex, float[] theValues)
           
 
Methods inherited from class controlP5.Controller
add, addCallback, addListener, align, bringToFront, bringToFront, changeValue, getAbsolutePosition, getAddress, getArrayValue, getArrayValue, getBehavior, getCaptionLabel, getColor, getControllerPlugList, getControlWindow, getDecimalPrecision, getDefaultValue, getHeight, getId, getLabel, getMax, getMin, getName, getParent, getPickingColor, getPointer, getPosition, getProperty, getProperty, getStringValue, getTab, getValue, getValueLabel, getWidth, getWindow, hide, init, isActive, isBroadcast, isInside, isLabelVisible, isListening, isLock, isMouseOver, isMousePressed, isMoveable, isUpdate, isVisible, keyEvent, linebreak, listen, listenerSize, lock, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, plugTo, plugTo, plugTo, plugTo, registerProperty, registerProperty, registerTooltip, remove, remove, removeBehavior, removeCallback, removeCallback, removeListener, removeProperty, removeProperty, setAbsolutePosition, setAddress, setArrayValue, setArrayValue, setBehavior, setBroadcast, setCaptionLabel, setColor, setColorActive, setColorBackground, setColorCaptionLabel, setColorForeground, setColorValueLabel, setDecimalPrecision, setDefaultValue, setGroup, setGroup, setHeight, setId, setImage, setImage, setImages, setImages, setImages, setLabelVisible, setLock, setMax, setMin, setMouseOver, setMousePressed, setMoveable, setParent, setPosition, setPosition, setSize, setSize, setStringValue, setTab, setTab, setUpdate, setValueLabel, setView, setView, setVisible, setWidth, show, unlock, unplugFrom, unplugFrom, unregisterTooltip, update, updateAbsolutePosition, updateEvents, updateInternalEvents, updateSize
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface controlP5.ControllerInterface
continuousUpdateEvents, draw, parent, setColorLabel, setColorValue, setLabel
 
Methods inherited from interface controlP5.CDrawable
draw
 

Field Detail

AREA

public static final int AREA
See Also:
Constant Field Values

BAR

public static final int BAR
See Also:
Constant Field Values

BAR_CENTERED

public static final int BAR_CENTERED
See Also:
Constant Field Values

HISTOGRAM

public static final int HISTOGRAM
See Also:
Constant Field Values

LINE

public static final int LINE
See Also:
Constant Field Values

PIE

public static final int PIE
See Also:
Constant Field Values
Constructor Detail

Chart

public Chart(ControlP5 theControlP5,
             java.lang.String theName)
Convenience constructor to extend Chart.

Parameters:
theControlP5 -
theName -
+Example
/**
 * ControlP5 extending Controllers
 *
 * the following example shows how to extend the Controller class to 
 * create customizable Controllers. You can either extend the Controller class itself,
 * or any class that extends Controller itself like the Slider, Button, DropdownList, etc. 
 * 
 * How to:
 *
 * 1) do a super call to the convenience constructor requiring 
 * 2 parameter (ControlP5 instance, name)  
 *
 * 2) the Controller class has a set of empty methods that allow you to capture
 * inputs from the mouse including 
 * onEnter(), onLeave(), onPress(), onRelease(), onClick(), onScroll(int), onDrag()
 * These you can override and include functionality as needed.
 *
 * 3) use method getPointer() to return the local (relative) 
 * xy-coordinates of the controller
 *  
 * 4) after instantiation custom controllers are treated the same 
 * as default controlP5 controllers.
 *  
 * by Andreas Schlegel, 2012
 * www.sojamo.de/libraries/controlp5
 *
 */

import controlP5.*;

ControlP5 cp5;
PApplet p;

void setup() {
  size(400, 400);
  cp5 = new ControlP5(this);
  
  // create 2 groups to show nesting of custom controllers and
  //   
  Group g1 = cp5.addGroup("a").setPosition(0,100).setWidth(180);
  Group g2 = cp5.addGroup("b").setPosition(0,10).setWidth(180);
  g2.moveTo(g1);
  
  // create 2 custom Controllers from class MyButton
  // MyButton extends Controller and inherits all methods accordingly.
  new MyButton(cp5, "b1").setPosition(0, 0).setSize(180, 200).moveTo(g2);
  new MyButton(cp5, "b2").setPosition(205, 15).setSize(180, 200);
  
}


void draw() {
  background(0);
}

// b1 will be called from Controller b1
public void b1(float theValue) {
  println("yay button "+theValue);
}

public void controlEvent(ControlEvent theEvent) {
  println("controlEvent : "+theEvent);
}


// Create a custom Controller, please not that 
// MyButton extends Controller, 
// is an indicator for the super class about the type of 
// custom controller to be created.

class MyButton extends Controller {

  int current = 0xffff0000;

  float a = 128;
  
  float na;
  
  int y;
  
  // use the convenience constructor of super class Controller
  // MyButton will automatically registered and move to the 
  // default controlP5 tab.
  
  MyButton(ControlP5 cp5, String theName) {
    super(cp5, theName);
    
    // replace the default view with a custom view.
    setView(new ControllerView() {
      public void display(PApplet p, Object b) {
        // draw button background
        na += (a-na) * 0.1; 
        p.fill(current,na);
        p.rect(0, 0, getWidth(), getHeight());
        
        // draw horizontal line which can be moved on the x-axis 
        // using the scroll wheel. 
        p.fill(0,255,0);
        p.rect(0,y,width,10);
        
        // draw the custom label 
        p.fill(128);
        translate(0,getHeight()+14);
        p.text(getName(),0,0);
        p.text(getName(),0,0);
        
      }
    }
    );
  }

  // override various input methods for mouse input control
  void onEnter() {
    cursor(HAND);
    println("enter");
    a = 255;
  }
  
  void onScroll(int n) {
    println("scrolling");
    y -= n;
    y = constrain(y,0,getHeight()-10);
  }
  
  void onPress() {
    println("press");
    current = 0xffffff00;
  }
  
  void onClick() {
    Pointer p1 = getPointer();
    println("clicked at "+p1.x()+", "+p1.y());
    current = 0xffffff00;
    setValue(y);
  }

  void onRelease() {
    println("release");
    current = 0xffffffff;
  }
  
  void onMove() {
    println("moving "+this+" "+_myControlWindow.getMouseOverList());
  }

  void onDrag() {
    current = 0xff0000ff;
    Pointer p1 = getPointer();
    float dif = dist(p1.px(),p1.py(),p1.x(),p1.y());
    println("dragging at "+p1.x()+", "+p1.y()+" "+dif);
  }
  
  void onReleaseOutside() {
    onLeave();
  }

  void onLeave() {
    println("leave");
    cursor(ARROW);
    a = 128;
  }
}

Method Detail

addData

public Chart addData(ChartData theItem)

addData

public Chart addData(ChartDataSet theChartData,
                     float theValue)

addData

public Chart addData(float theValue)

addData

public Chart addData(java.lang.String theSetIndex,
                     ChartData theItem)

addData

public Chart addData(java.lang.String theSetIndex,
                     float theValue)

addDataSet

public Chart addDataSet(java.lang.String theName)

addFirst

public Chart addFirst(float theValue)

addFirst

public Chart addFirst(java.lang.String theSetIndex,
                      float theValue)

addLast

public Chart addLast(float theValue)

addLast

public Chart addLast(java.lang.String theSetIndex,
                     float theValue)

getData

public ChartData getData(java.lang.String theIndex,
                         int theItemIndex)

getDataSet

public java.util.LinkedHashMap getDataSet()

getDataSet

public ChartDataSet getDataSet(java.lang.String theIndex)

getInfo

public java.lang.String getInfo()
Overrides:
getInfo in class Controller
Returns:
String

getResolution

public int getResolution()

getStrokeWeight

public float getStrokeWeight()

getValuesFrom

public float[] getValuesFrom(java.lang.String theIndex)

onEnter

public void onEnter()

onLeave

public void onLeave()

push

public Chart push(float theValue)

push

public Chart push(java.lang.String theSetIndex,
                  float theValue)

removeData

public Chart removeData(ChartData theItem)

removeData

public Chart removeData(int theItemIndex)

removeData

public Chart removeData(java.lang.String theSetIndex,
                        ChartData theItem)

removeData

public Chart removeData(java.lang.String theSetIndex,
                        int theItemIndex)

removeDataSet

public Chart removeDataSet(java.lang.String theIndex)

removeFirst

public Chart removeFirst()

removeFirst

public Chart removeFirst(java.lang.String theSetIndex)

removeLast

public Chart removeLast()

removeLast

public Chart removeLast(java.lang.String theSetIndex)

setColors

public Chart setColors(java.lang.String theSetIndex,
                       int[] theColors)

setData

public Chart setData(float[] theValues)

setData

public Chart setData(int theItemIndex,
                     ChartData theItem)

setData

public Chart setData(java.lang.String theSetIndex,
                     float[] theValues)

setData

public Chart setData(java.lang.String theSetItem,
                     int theItemIndex,
                     ChartData theItem)

setDataSet

public Chart setDataSet(ChartDataSet theItems)

setDataSet

public Chart setDataSet(java.lang.String theSetIndex,
                        ChartDataSet theChartData)

setRange

public Chart setRange(float theMin,
                      float theMax)

setResolution

public Chart setResolution(int theValue)
?

Parameters:
theValue -
Returns:

setStrokeWeight

public Chart setStrokeWeight(float theWeight)

setValue

public Chart setValue(float theValue)
Specified by:
setValue in interface ControllerInterface
Overrides:
setValue in class Controller
Parameters:
theValue - float

setView

public Chart setView(int theType)

size

public int size()

toString

public java.lang.String toString()
Overrides:
toString in class Controller

unshift

public Chart unshift(float theValue)
adds a new float at the beginning of the data set.


unshift

public Chart unshift(java.lang.String theSetIndex,
                     float theValue)

updateData

public Chart updateData(float[] theValues)

updateData

public Chart updateData(java.lang.String theSetIndex,
                        float[] theValues)


processing library controlP5 by Andreas Schlegel. (c) 2006-2012