controlP5
Class ControllerProperties

java.lang.Object
  extended by controlP5.ControllerProperties

public class ControllerProperties
extends java.lang.Object

Values of controllers can be stored inside properties files which can be saved to file or memory.

+Example
/**
 * ControlP5 Properties 
 *
 *
 * saves controller values to a properties-file
 * loads controller values from a properties-file
 *
 * Properties will only save values not the Controller itself.
 * 
 * Also take a look at the use/ControlP5snapshot example to 
 * save controller values to memory.
 *
 * Use ControllerProperties to load and save serialized controller properties 
 * to a properties file. 
 * The controllers implementing save/load properties so far are 
 * Slider, Knob, Numberbox, Toggle, Checkbox, RadioButton, Textlabel, 
 * Matrix, Range, Textarea, ListBox, Dropdown, ColorPicker. 
 * Properties are currently saved in the java serialization format.
 *
 * saveProperties(String theFilename) and loadProperties(String theFilename) 
 * by default properties will be saved to your sketch folder as controlP5.ser
 * if that file already exists it will be overwritten. for custom property files
 * see the comments inside keyPressed() below.
 *
 * find a list of public methods available for the ControllerProperties class 
 * at the bottom of this sketch's source code
 *
 * default properties load/save key combinations are 
 * alt+shift+l to load properties
 * alt+shift+s to save properties
 *
 * by andreas schlegel, 2012
 * www.sojamo.de/libraries/controlp5
 *
 */

import controlP5.*;

ControlP5 cp5;
public int myColor = color(0, 0, 0);

public int sliderValue = 100;
public int sliderTicks1 = 100;
public int sliderTicks2 = 30;


void setup() {
  size(700, 400);
  noStroke();
  
  cp5 = new ControlP5(this);
  
  cp5.addSlider("slider")
     .setBroadcast(false)
     .setRange(0, 200)
     .setPosition(20, 100)
     .setSize(10, 100)
     .setBroadcast(true)
     .setValue(100)
     ;
  
  cp5.addSlider("sliderTicks1")
     .setRange(0, 255)
     .setPosition(100, 100)
     .setSize(10, 100)
     .setNumberOfTickMarks(5)
     ;

  cp5.addSlider("sliderValue")
     .setRange(0, 255)
     .setValue(128)
     .setPosition(200, 180)
     .setSize(100, 10)
     ;
     
  cp5.addSlider("sliderTicks2")
     .setRange(0, 255)
     .setValue(128)
     .setPosition(200, 220)
     .setSize(100, 10)
     .setNumberOfTickMarks(7)
     .setSliderMode(Slider.FLEXIBLE)
     ;
     
}

void draw() {
  background(sliderTicks1);

  fill(sliderValue);
  rect(0, 0, width, 100);

  fill(myColor);
  rect(0, 300, width, 70);

  fill(sliderTicks2);
  rect(0, 370, width, 30);
}

public void slider(float theColor) {
  myColor = color(theColor);
  println("a slider event. setting background to "+theColor);
}

void keyPressed() {
  // default properties load/save key combinations are 
  // alt+shift+l to load properties
  // alt+shift+s to save properties
  if (key=='1') {
    cp5.saveProperties(("hello.properties"));
  } 
  else if (key=='2') {
    cp5.loadProperties(("hello.properties"));
  }
}

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

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

Format:
ClassName : returnType methodName(parameter type)


controlP5.ControllerProperties : ArrayList getSnapshotIndices() 
controlP5.ControllerProperties : ControllerProperties addSet(String) 
controlP5.ControllerProperties : ControllerProperties delete(ControllerProperty) 
controlP5.ControllerProperties : ControllerProperties getSnapshot(String) 
controlP5.ControllerProperties : ControllerProperties move(ControllerInterface, String, String) 
controlP5.ControllerProperties : ControllerProperties move(ControllerProperty, String, String) 
controlP5.ControllerProperties : ControllerProperties only(ControllerProperty, String) 
controlP5.ControllerProperties : ControllerProperties print() 
controlP5.ControllerProperties : ControllerProperties register(ControllerInterface, String) 
controlP5.ControllerProperties : ControllerProperties remove(ControllerInterface) 
controlP5.ControllerProperties : ControllerProperties remove(ControllerInterface, String) 
controlP5.ControllerProperties : ControllerProperties remove(ControllerInterface, String, String) 
controlP5.ControllerProperties : ControllerProperties removeSnapshot(String) 
controlP5.ControllerProperties : ControllerProperties saveSnapshot(String) 
controlP5.ControllerProperties : ControllerProperties saveSnapshotAs(String, String) 
controlP5.ControllerProperties : ControllerProperties setSnapshot(String) 
controlP5.ControllerProperties : ControllerProperties updateSnapshot(String) 
controlP5.ControllerProperties : ControllerProperty getProperty(ControllerInterface, String) 
controlP5.ControllerProperties : ControllerProperty getProperty(ControllerInterface, String, String) 
controlP5.ControllerProperties : ControllerProperty register(ControllerInterface, String, String) 
controlP5.ControllerProperties : HashSet getPropertySet(ControllerInterface) 
controlP5.ControllerProperties : List get(ControllerInterface) 
controlP5.ControllerProperties : Map get() 
controlP5.ControllerProperties : String toString() 
controlP5.ControllerProperties : boolean load() 
controlP5.ControllerProperties : boolean load(String) 
controlP5.ControllerProperties : boolean save() 
controlP5.ControllerProperties : boolean saveAs(String) 
controlP5.ControllerProperties : void setFormat(Format) 
java.lang.Object : String toString() 
java.lang.Object : boolean equals(Object) 


*/



Field Summary
static int CLOSE
           
static java.lang.String defaultName
           
static ControllerProperties.Format format
           
static java.util.logging.Logger logger
           
static int OPEN
           
 
Constructor Summary
ControllerProperties(ControlP5 theControlP5)
           
 
Method Summary
 ControllerProperties addSet(java.lang.String theSet)
           
 ControllerProperties copy(ControllerInterface theController, java.lang.String[] theSet)
           
 ControllerProperties copy(ControllerProperty theProperty, java.lang.String[] theSet)
          copies a ControllerProperty from one set to other(s);
 ControllerProperties delete(ControllerProperty theProperty)
          deletes a ControllerProperty from all Sets including the default set.
 java.util.Map get()
           
 java.util.List get(ControllerInterface theController)
           
 ControllerProperty getProperty(ControllerInterface theController, java.lang.String theProperty)
           
 ControllerProperty getProperty(ControllerInterface theController, java.lang.String theSetter, java.lang.String theGetter)
           
 java.util.HashSet getPropertySet(ControllerInterface theController)
           
 ControllerProperties getSnapshot(java.lang.String theKey)
          restores properties previously stored as snapshot in memory.
 java.util.ArrayList getSnapshotIndices()
          properties stored in memory can be accessed by index, getSnapshotIndices() returns the index of the snapshot list.
 boolean load()
          load properties from the default properties file 'controlP5.properties'
 boolean load(java.lang.String thePropertiesPath)
           
 ControllerProperties move(ControllerInterface theController, java.lang.String fromSet, java.lang.String toSet)
           
 ControllerProperties move(ControllerProperty theProperty, java.lang.String fromSet, java.lang.String toSet)
          Moves a ControllerProperty from one set to another.
 ControllerProperties only(ControllerProperty theProperty, java.lang.String theSet)
          stores a ControllerProperty in one particular set only.
 ControllerProperties print()
           
 ControllerProperties register(ControllerInterface theController, java.lang.String theProperty)
          registering a property with only one parameter assumes that there is a setter and getter function present for the Controller.
 ControllerProperty register(ControllerInterface theController, java.lang.String thePropertySetter, java.lang.String thePropertyGetter)
          adds a property based on names of setter and getter methods of a controller.
 ControllerProperties remove(ControllerInterface theController)
           
 ControllerProperties remove(ControllerInterface theController, java.lang.String theProperty)
           
 ControllerProperties remove(ControllerInterface theController, java.lang.String[] theSet)
           
 ControllerProperties remove(ControllerInterface theController, java.lang.String theSetter, java.lang.String theGetter)
           
 ControllerProperties remove(ControllerProperty theProperty, java.lang.String[] theSet)
          removes a ControllerProperty from one or multiple sets.
 ControllerProperties removeSnapshot(java.lang.String theKey)
          removes a snapshot by key.
 boolean save()
          saves all registered properties into the default 'controlP5.properties' file into your sketch folder.
 boolean saveAs(java.lang.String thePropertiesPath)
          saves all registered properties into a file specified by parameter thePropertiesPath.
 boolean saveAs(java.lang.String thePropertiesPath, java.lang.String[] theSets)
          saves a list of properties sets into a file specified by parameter thePropertiesPath.
 ControllerProperties saveSnapshot(java.lang.String theKey)
          saves a snapshot into your sketch's sketch folder.
 ControllerProperties saveSnapshotAs(java.lang.String thePropertiesPath, java.lang.String theKey)
          saves a snapshot to the file with path given by the first parameter (thePropertiesPath).
 void setFormat(ControllerProperties.Format theFormatId)
          use ControllerProperties.SERIALIZED, ControllerProperties.XML or ControllerProperties.JSON as parameter.
 ControllerProperties setSnapshot(java.lang.String theKey)
          logs all registered properties in memory.
 ControllerProperties updateSnapshot(java.lang.String theKey)
          convenience method, setSnapshot(String) also works here since it will override existing log with the same key.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLOSE

public static final int CLOSE
See Also:
Constant Field Values

defaultName

public static java.lang.String defaultName

format

public static ControllerProperties.Format format

logger

public static final java.util.logging.Logger logger

OPEN

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

ControllerProperties

public ControllerProperties(ControlP5 theControlP5)
Method Detail

addSet

public ControllerProperties addSet(java.lang.String theSet)

copy

public ControllerProperties copy(ControllerInterface theController,
                                 java.lang.String[] theSet)

copy

public ControllerProperties copy(ControllerProperty theProperty,
                                 java.lang.String[] theSet)
copies a ControllerProperty from one set to other(s);


delete

public ControllerProperties delete(ControllerProperty theProperty)
deletes a ControllerProperty from all Sets including the default set.


get

public java.util.Map get()

get

public java.util.List get(ControllerInterface theController)

getProperty

public ControllerProperty getProperty(ControllerInterface theController,
                                      java.lang.String theProperty)

getProperty

public ControllerProperty getProperty(ControllerInterface theController,
                                      java.lang.String theSetter,
                                      java.lang.String theGetter)

getPropertySet

public java.util.HashSet getPropertySet(ControllerInterface theController)

getSnapshot

public ControllerProperties getSnapshot(java.lang.String theKey)
restores properties previously stored as snapshot in memory.

See Also:
ControllerProperties.setSnapshot(String)

getSnapshotIndices

public java.util.ArrayList getSnapshotIndices()
properties stored in memory can be accessed by index, getSnapshotIndices() returns the index of the snapshot list.


load

public boolean load()
load properties from the default properties file 'controlP5.properties'


load

public boolean load(java.lang.String thePropertiesPath)

move

public ControllerProperties move(ControllerInterface theController,
                                 java.lang.String fromSet,
                                 java.lang.String toSet)

move

public ControllerProperties move(ControllerProperty theProperty,
                                 java.lang.String fromSet,
                                 java.lang.String toSet)
Moves a ControllerProperty from one set to another.


only

public ControllerProperties only(ControllerProperty theProperty,
                                 java.lang.String theSet)
stores a ControllerProperty in one particular set only.


print

public ControllerProperties print()

register

public ControllerProperties register(ControllerInterface theController,
                                     java.lang.String theProperty)
registering a property with only one parameter assumes that there is a setter and getter function present for the Controller. register("value") for example would create a property reference to setValue and getValue. Notice that the first letter of value is being capitalized.

Parameters:
theProperty -
Returns:

register

public ControllerProperty register(ControllerInterface theController,
                                   java.lang.String thePropertySetter,
                                   java.lang.String thePropertyGetter)
adds a property based on names of setter and getter methods of a controller.

Parameters:
thePropertySetter -
thePropertyGetter -

remove

public ControllerProperties remove(ControllerInterface theController)

remove

public ControllerProperties remove(ControllerInterface theController,
                                   java.lang.String theProperty)

remove

public ControllerProperties remove(ControllerInterface theController,
                                   java.lang.String[] theSet)

remove

public ControllerProperties remove(ControllerInterface theController,
                                   java.lang.String theSetter,
                                   java.lang.String theGetter)

remove

public ControllerProperties remove(ControllerProperty theProperty,
                                   java.lang.String[] theSet)
removes a ControllerProperty from one or multiple sets.


removeSnapshot

public ControllerProperties removeSnapshot(java.lang.String theKey)
removes a snapshot by key.


save

public boolean save()
saves all registered properties into the default 'controlP5.properties' file into your sketch folder.


saveAs

public boolean saveAs(java.lang.String thePropertiesPath)
saves all registered properties into a file specified by parameter thePropertiesPath.


saveAs

public boolean saveAs(java.lang.String thePropertiesPath,
                      java.lang.String[] theSets)
saves a list of properties sets into a file specified by parameter thePropertiesPath.


saveSnapshot

public ControllerProperties saveSnapshot(java.lang.String theKey)
saves a snapshot into your sketch's sketch folder.


saveSnapshotAs

public ControllerProperties saveSnapshotAs(java.lang.String thePropertiesPath,
                                           java.lang.String theKey)
saves a snapshot to the file with path given by the first parameter (thePropertiesPath).


setFormat

public void setFormat(ControllerProperties.Format theFormatId)
use ControllerProperties.SERIALIZED, ControllerProperties.XML or ControllerProperties.JSON as parameter.


setSnapshot

public ControllerProperties setSnapshot(java.lang.String theKey)
logs all registered properties in memory. Here, clones of properties are stored inside a map and can be accessed by key using the getLog method.

Parameters:
theKey -
Returns:
ControllerProperties
See Also:
ControllerProperties.getSnapshot(String)

updateSnapshot

public ControllerProperties updateSnapshot(java.lang.String theKey)
convenience method, setSnapshot(String) also works here since it will override existing log with the same key.



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