Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## controlP5
Class Chart

    java.lang.Object
      controlP5.Controller
          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);
        // push (which should add an element at the end)
        // will be renamed to unshift (adds new elements at the beginning)
        myChart.unshift("world", (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)`
`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` | `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` | `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)

### 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()

### 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)

### 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)

Package | Class | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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