controlP5
Class MultiList

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

public class MultiList
extends Controller
implements ControlListener

A Multilist is a multi-menu-tree controller. see the example for more information and how to use.

+Example
/**
 * ControlP5 MultiList
 * by andreas schlegel, 2009
 */

import controlP5.*;

ControlP5 controlP5;
MultiList l;

void setup() {
  size(400,400);
  frameRate(30);
  controlP5 = new ControlP5(this);
  
  // add a multiList to controlP5.
  // elements of the list have default dimensions
  // here, a width of 100 and a height of 12
  l = controlP5.addMultiList("myList",0,10,100,12);
  
  // create a multiListButton which we will use to
  // add new buttons to the multilist
  MultiListButton b;
  b = l.add("level1",1);
  
  // add items to a sublist of button "level1"
  b.add("level11",11).setLabel("level1 item1");
  b.add("level12",12).setLabel("level1 item2");

  b = l.add("level2",2);
  
  int cnt = 100;
  
  // add some more sublists.
  for(int i=0;i<10;i++) {
    MultiListButton c = b.add("level2"+(i+1),20+i+1);
    c.setLabel("level2 item"+(i+1));
    c.setColorBackground(color(64 + 18*i,0,0));
    
    if(i==4) {
    // changing the width and the height of a button
    // will be inherited by its sublists.
    c.setWidth(100);
    c.setHeight(20);
    }
    cnt++;
    
    if(i==4) {
      for(int j=0;j<10;j++) {
        cnt++;
        MultiListButton d;
        d = c.add("level2"+i+""+j,250+j+1);
        d.setLabel("level2 item"+(i+1)+" "+"item"+(j+1));
        d.setColorBackground(color(64 + 18*j,(64 + 18*j)/2,0));
        d.setId(cnt);
        d.setWidth(200);
      }
    }
  }
  
  MultiListButton cc = (MultiListButton)controlP5.controller("level21");
  cc.setHeight(40);
}


void controlEvent(ControlEvent theEvent) {
  println(theEvent.controller().name()+" = "+theEvent.value());  
  // uncomment the line below to remove a multilist item when clicked.
  // theEvent.controller().remove();
}


void draw() {
  background(0);
}

void keyPressed() {
  if(controlP5.controller("level23")!=null) {
    println("removing multilist button level23.");
    controlP5.controller("level23").remove();
  }
}

Field Summary
 int closeDelay
           
 
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, LINE, LOAD, MENU, METHOD, MOVE, 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
MultiList(ControlP5 theControlP5, Tab theParent, java.lang.String theName, int theX, int theY, int theWidth, int theHeight)
           
 
Method Summary
 MultiListButton add(java.lang.String theName, int theValue)
          adds multilist buttons to the multilist.
 void close()
          
 void close(controlP5.MultiListInterface theInterface)
           
 void controlEvent(ControlEvent theEvent)
          controlEvent is called by controlP5's ControlBroadcaster to inform available listeners about value changes.
 void draw(processing.core.PApplet theApplet)
          the default draw function for each controller extending superclass Controller.
 java.util.List getChildren()
           
 int getDirection()
           
 void mouseReleased()
          
 java.lang.String name()
           
 boolean observe()
           
 void occupied(boolean theFlag)
           
 void open()
          
 void remove()
          removes the multilist.
 void setup()
           
 MultiList setValue(float theValue)
          
 java.util.List subelements()
          Deprecated. 
 MultiList toUpperCase(boolean theValue)
           
 MultiList update()
          updates the value of the controller without having to set the value explicitly.
 boolean update(processing.core.PApplet theApplet)
           
 void updateLocation(float theX, float theY)
           
 
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, 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, 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, updateAbsolutePosition, updateEvents, updateInternalEvents, updateSize
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface controlP5.ControllerInterface
continuousUpdateEvents, parent, setColorLabel, setColorValue, setLabel
 

Field Detail

closeDelay

public int closeDelay
Constructor Detail

MultiList

public MultiList(ControlP5 theControlP5,
                 Tab theParent,
                 java.lang.String theName,
                 int theX,
                 int theY,
                 int theWidth,
                 int theHeight)
Method Detail

add

public MultiListButton add(java.lang.String theName,
                           int theValue)
adds multilist buttons to the multilist.

Parameters:
theName - String
theValue - int
Returns:
MultiListButton

close

public void close()


close

public void close(controlP5.MultiListInterface theInterface)
Parameters:
theInterface - MultiListInterface

controlEvent

public void controlEvent(ControlEvent theEvent)
Description copied from interface: ControlListener
controlEvent is called by controlP5's ControlBroadcaster to inform available listeners about value changes. Use the CallbackListener to get informed when actions such as pressed, release, drag, etc are performed.

Specified by:
controlEvent in interface ControlListener
Parameters:
theEvent -
See Also:
CallbackListener, CallbackEvent

draw

public void draw(processing.core.PApplet theApplet)
the default draw function for each controller extending superclass Controller. This draw function will take care of default matrix operations and will call the display function of the current ControllerView object active for this particular controller.

Specified by:
draw in interface CDrawable
Specified by:
draw in interface ControllerInterface
Overrides:
draw in class Controller
Parameters:
theApplet - PApplet
See Also:
ControllerView

getChildren

public java.util.List getChildren()

getDirection

public int getDirection()

mouseReleased

public void mouseReleased()


observe

public boolean observe()
Returns:
boolean

occupied

public void occupied(boolean theFlag)
Parameters:
theFlag - boolean

open

public void open()


remove

public void remove()
removes the multilist.

Specified by:
remove in interface ControllerInterface
Overrides:
remove in class Controller

setup

public void setup()

setValue

public MultiList setValue(float theValue)

Specified by:
setValue in interface ControllerInterface
Specified by:
setValue in class Controller
Parameters:
theValue - float

subelements

@Deprecated
public java.util.List subelements()
Deprecated. 


toUpperCase

public MultiList toUpperCase(boolean theValue)

update

public MultiList update()
updates the value of the controller without having to set the value explicitly. update does not visually update the controller. the updating status can be set with setUpdate(true/false) and checked with isUpdate().

Specified by:
update in interface ControllerInterface
Overrides:
update in class Controller
Returns:
Controller
See Also:
Controller.setUpdate(boolean), Controller.isUpdate()

update

public boolean update(processing.core.PApplet theApplet)
Parameters:
theApplet -
Returns:
boolean

updateLocation

public void updateLocation(float theX,
                           float theY)
Parameters:
theX - float
theY - float

name

public java.lang.String name()


processing library controlP5 by Andreas Schlegel. (c) 2012