protected function objectsFromUrl($objDC)
    {
        if ($this->Input->get('do') != 'metamodels' || (is_object($objDC) && $objDC->table != 'tl_metamodel_filtersetting' || !is_object($objDC) && $objDC != 'tl_metamodel_filtersetting')) {
            return;
        }
        // TODO: detect all other ways we might end up here and fetch $objMetaModel accordingly.
        if ($this->objMetaModel) {
            return;
        }
        if (is_object($objDC) && $objDC->getCurrentModel()) {
            $this->strSettingType = $objDC->getCurrentModel()->getProperty('type');
            $this->objFilter = $this->Database->prepare('SELECT * FROM tl_metamodel_filter WHERE id=?')->execute($objDC->getCurrentModel()->getProperty('fid'));
            $this->objMetaModel = MetaModelFactory::byId($this->objFilter->pid);
        }
        if ($this->Input->get('act')) {
            // act present, but we have an id
            switch ($this->Input->get('act')) {
                case 'edit':
                    if ($this->Input->get('id')) {
                        $this->objFilter = $this->Database->prepare('
							SELECT tl_metamodel_filter.*,
								tl_metamodel_filtersetting.type AS tl_metamodel_filtersetting_type,
								tl_metamodel_filtersetting.id AS tl_metamodel_filtersetting_id
							FROM tl_metamodel_filtersetting
							LEFT JOIN tl_metamodel_filter
							ON (tl_metamodel_filtersetting.fid = tl_metamodel_filter.id)
							WHERE (tl_metamodel_filtersetting.id=?)')->execute($this->Input->get('id'));
                        $this->strSettingType = $this->objFilter->tl_metamodel_filtersetting_type;
                        $this->objMetaModel = MetaModelFactory::byId($this->objFilter->pid);
                    }
                    break;
                case 'paste':
                    if ($this->Input->get('id')) {
                        switch ($this->Input->get('mode')) {
                            case 'create':
                                $this->objFilter = $this->Database->prepare('SELECT * FROM tl_metamodel_filter WHERE id=?')->execute($this->Input->get('id'));
                                $this->objMetaModel = MetaModelFactory::byId($this->objFilter->pid);
                                break;
                            case 'cut':
                                $this->objFilter = $this->Database->prepare('
									SELECT tl_metamodel_filter.*,
										tl_metamodel_filtersetting.type AS tl_metamodel_filtersetting_type,
										tl_metamodel_filtersetting.id AS tl_metamodel_filtersetting_id
									FROM tl_metamodel_filtersetting
									LEFT JOIN tl_metamodel_filter
									ON (tl_metamodel_filtersetting.fid = tl_metamodel_filter.id)
									WHERE (tl_metamodel_filtersetting.id=?)')->execute($this->Input->get('source'));
                                $this->strSettingType = $this->objFilter->tl_metamodel_filtersetting_type;
                                $this->objMetaModel = MetaModelFactory::byId($this->objFilter->pid);
                                break;
                        }
                    }
                    break;
                case 'create':
                    $this->objFilter = $this->Database->prepare('SELECT * FROM tl_metamodel_filter WHERE id=?')->execute($this->Input->get('id'));
                    $this->objMetaModel = MetaModelFactory::byId($this->objFilter->pid);
                    break;
                default:
            }
        } else {
            // no act but we have an id, should be list mode then, no type name available.
            if ($this->Input->get('id')) {
                $this->objFilter = $this->Database->prepare('SELECT * FROM tl_metamodel_filter WHERE id=?')->execute($this->Input->get('id'));
                $this->objMetaModel = MetaModelFactory::byId($this->objFilter->pid);
            }
        }
        // select all root entries for the current filter.
        $GLOBALS['TL_DCA']['tl_metamodel_filtersetting']['list']['sorting']['root'] = $this->Database->prepare('SELECT * FROM tl_metamodel_filtersetting WHERE fid=? AND pid=0')->execute($this->objFilter->id)->fetchEach('id');
        $GLOBALS['TL_DCA']['tl_metamodel_filtersetting']['list']['sorting']['rootPaste'] = true;
        if ($this->objMetaModel) {
            $GLOBALS['TL_LANG']['MSC']['editRecord'] = sprintf($GLOBALS['TL_LANG']['MSC']['metamodel_filtersetting']['editRecord'], $this->objFilter->name, $this->objMetaModel->getName());
            $GLOBALS['TL_DCA']['tl_metamodel_filtersetting']['config']['label'] = sprintf($GLOBALS['TL_LANG']['MSC']['metamodel_filtersetting']['label'], $this->objFilter->name, $this->objMetaModel->getName());
        }
    }