protected function updateViewportFields()
    {
        foreach ($this->getViewports() as $viewport) {
            
            // Obtain Field:
            
            if (!($field = $this->getViewportField($viewport))) {
                continue;
            }
            
            // Update Title:
            
            $field->setTitle($this->getViewportLabel($viewport));
            
            // Update Hidden Status:
            
            if ($this->isViewportHidden($viewport)) {
                $field->addExtraClass('hidden');
            } else {
                $field->removeExtraClass('hidden');
            }
            
            // Update Dropdown Fields:
            
            if ($field instanceof DropdownField) {
                
                // Update Empty Strings:
                
                if ($field->hasMethod('setEmptyString')) {
                    $field->setEmptyString(' ')->setAttribute('data-placeholder', $this->emptyString);
                }
                
                // Update Source:
                
                $field->setSource($this->getSource());
                
            }
            
            // Update Disabled Flags:
            
            $field->setDisabled($this->disabled);
            
            // Update Readonly Flags:
            
            $field->setReadonly($this->readonly);
            
        }
    }