package net.sourceforge.phpdt.phphelp;

import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FileFieldEditor;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;

public class PHPHelpPreferencePage
  extends PreferencePage
  implements IWorkbenchPreferencePage {

  FileFieldEditor phpCHMHelpFile;
  BooleanFieldEditor phpCHMHelpEnabled;
  StringFieldEditor phpCHMHelpCommand;

  public PHPHelpPreferencePage() {
    super();
    setPreferenceStore(PHPHelpPlugin.getDefault().getPreferenceStore());
    setDescription(PHPHelpPreferenceMessages.getString("PHPHelpPreferencePage.PHPHelpSettings"));   //$NON-NLS-1$
  }

  public void init(IWorkbench workbench) {
  }

  protected void performDefaults() {
    phpCHMHelpFile.loadDefault();
    phpCHMHelpEnabled.loadDefault();
    phpCHMHelpCommand.loadDefault();
    super.performDefaults();
  }

  public boolean performOk() {
    phpCHMHelpFile.store();
    phpCHMHelpEnabled.store();
    phpCHMHelpCommand.store();
    return super.performOk();
  }

  protected Control createContents(Composite parent) {
    initializeDialogUnits(parent);
    final IPreferenceStore store =
      PHPHelpPlugin.getDefault().getPreferenceStore();
    Composite composite = new Composite(parent, SWT.LEFT);
    composite.setLayout(new GridLayout());
    composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    //    Composite helpSettingsComposite = new Composite(composite, SWT.NONE);
    //    helpSettingsComposite.setLayout(new GridLayout());
    //    helpSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    //    Group helpSettingsGroup = new Group(helpSettingsComposite, SWT.NONE);
    //    helpSettingsGroup.setText("Windows CHM settings");
    //    helpSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    //    helpSettingsGroup.setLayout(new GridLayout());

    phpCHMHelpEnabled =
      new BooleanFieldEditor(
        PHPHelpPlugin.PHP_CHM_ENABLED,
        PHPHelpPreferenceMessages.getString("PHPHelpPreferencePage.PHPHelp.format"), //$NON-NLS-1$
        composite);
    phpCHMHelpEnabled.setPreferencePage(this);
    phpCHMHelpEnabled.setPreferenceStore(getPreferenceStore());
    phpCHMHelpEnabled.load();

    new Label(composite, SWT.NONE);
    phpCHMHelpFile =
      new FileFieldEditor(
        PHPHelpPlugin.PHP_CHM_FILE,
        PHPHelpPreferenceMessages.getString("PHPHelpPreferencePage.PHPHelp.chm.file"), //$NON-NLS-1$
        composite);
    phpCHMHelpFile.setPreferencePage(this);
    phpCHMHelpFile.setPreferenceStore(getPreferenceStore());
    phpCHMHelpFile.load();

    new Label(composite, SWT.NONE);
    phpCHMHelpCommand =
      new StringFieldEditor(
        PHPHelpPlugin.PHP_CHM_COMMAND,
        PHPHelpPreferenceMessages.getString("PHPHelpPreferencePage.PHPHelp.command"), //$NON-NLS-1$
        composite);
    phpCHMHelpCommand.setPreferencePage(this);
    phpCHMHelpCommand.setPreferenceStore(getPreferenceStore());
    phpCHMHelpCommand.load();

    return composite;
  }
}