/**
  * Save settings. 
  */
 function execute()
 {
     $plugin =& $this->plugin;
     $journalId = $this->journalId;
     $css = '';
     // Header and footer colours
     $customThemeHeaderColour = $this->getData('customThemeHeaderColour');
     $plugin->updateSetting($journalId, 'customThemeHeaderColour', $customThemeHeaderColour, 'string');
     $css .= "#header {background-color: {$customThemeHeaderColour};}\n";
     $css .= "#footer {background-color: {$customThemeHeaderColour};}\n";
     $css .= "table.listing tr.fastTracked {background-color: {$customThemeHeaderColour};}\n";
     // Link colours
     $customThemeLinkColour = $this->getData('customThemeLinkColour');
     $plugin->updateSetting($journalId, 'customThemeLinkColour', $customThemeLinkColour, 'string');
     $css .= "a {color: {$customThemeLinkColour};}\n";
     $css .= "a:link {color: {$customThemeLinkColour};}\n";
     $css .= "a:active {color: {$customThemeLinkColour};}\n";
     $css .= "a:visited {color: {$customThemeLinkColour};}\n";
     $css .= "a:hover {color: {$customThemeLinkColour};}\n";
     $css .= "input.defaultButton {color: {$customThemeLinkColour};}\n";
     // Background colours
     $customThemeBackgroundColour = $this->getData('customThemeBackgroundColour');
     $plugin->updateSetting($journalId, 'customThemeBackgroundColour', $customThemeBackgroundColour, 'string');
     $css .= "body {background-color: {$customThemeBackgroundColour};}\n";
     $css .= "input.defaultButton {background-color: {$customThemeBackgroundColour};}\n";
     // Foreground colours
     $customThemeForegroundColour = $this->getData('customThemeForegroundColour');
     $plugin->updateSetting($journalId, 'customThemeForegroundColour', $customThemeForegroundColour, 'string');
     $css .= "body {color: {$customThemeForegroundColour};}\n";
     $css .= "input.defaultButton {color: {$customThemeForegroundColour};}\n";
     import('classes.file.PublicFileManager');
     $fileManager = new PublicFileManager();
     $customThemePerJournal = $this->getData('customThemePerJournal');
     if (!$customThemePerJournal && !$this->_canUsePluginPath()) {
         $customThemePerJournal = true;
     }
     $plugin->updateSetting($journalId, 'customThemePerJournal', $customThemePerJournal, 'boolean');
     if ($customThemePerJournal) {
         $fileManager->writeJournalFile($journalId, $this->plugin->getStylesheetFilename(), $css);
     } else {
         $fileManager->writeFile(dirname(__FILE__) . '/' . $this->plugin->getStylesheetFilename(), $css);
     }
 }