function __construct($name, $title = "", $sourceClass = "SiteTree", $value = "", $labelField = "Title", $form = null, $emptyString = null, $parentID = 0, $cache = false)
 {
     $this->labelField = $labelField;
     $this->parentID = $parentID;
     $this->useCache = $cache;
     parent::__construct($name, $title, null, $value, $form, $emptyString);
     //so that we mimic the behaviour of TreeDropDownField,
     // if you pass an array, we will treat it as the source.
     if (is_array($sourceClass)) {
         $this->source = $sourceClass;
     } else {
         $this->sourceClass = $sourceClass;
     }
 }
 function __construct($name, $title = "", $sourceClass = "SiteTree", $value = "", $labelField = "Title", $form = null, $emptyString = null, $parentID = 0)
 {
     $this->sourceClass = $sourceClass;
     $this->labelField = $labelField;
     parent::__construct($name, $title, $this->getHierarchy((int) $parentID), $value, $form, $emptyString);
 }