package com.sysdeo.eclipse.tomcat; /* * (c) Copyright Sysdeo SA 2001, 2002. * All Rights Reserved. */ import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.FieldEditor; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; 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.Group; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import com.sysdeo.eclipse.tomcat.editors.ProjectListEditor; public class TomcatSourcePathPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, TomcatPluginResources { private ProjectListEditor projectListEditor; private BooleanFieldEditor automaticEditor; public TomcatSourcePathPreferencePage() { super(); setPreferenceStore(TomcatLauncherPlugin.getDefault().getPreferenceStore()); } /* * @see PreferencePage#createContents(Composite) */ protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NULL); composite.setLayout(new GridLayout()); // Group securityGroup = new Group(composite,SWT.NONE); automaticEditor = new BooleanFieldEditor( TomcatLauncherPlugin.TOMCAT_PREF_COMPUTESOURCEPATH_KEY, PREF_PAGE_COMPUTESOURCEPATH_LABEL, composite); this.initField(automaticEditor); final Group projectListGroup = new Group(composite, SWT.NULL); projectListGroup.setLayout(new GridLayout()); projectListEditor = new ProjectListEditor(); projectListEditor.setLabel(PREF_PAGE_PROJECTINSOURCEPATH_LABEL); final Control projectList = projectListEditor.getControl(projectListGroup); projectListGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); projectList.setLayoutData(new GridData(GridData.FILL_BOTH)); projectListEditor.setCheckedElements(TomcatLauncherPlugin.getDefault().readProjectsInSourcePathFromPref()); projectListEditor.setEnabled(!automaticEditor.getBooleanValue()); //projectListEditor.setEnabled(false); automaticEditor.setPropertyChangeListener(new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { projectListEditor.setEnabled(!automaticEditor.getBooleanValue()); } }); return composite; } /* * @see IWorkbenchPreferencePage#init(IWorkbench) */ public void init(IWorkbench workbench) { } public boolean performOk() { automaticEditor.store(); TomcatLauncherPlugin.getDefault().setProjectsInSourcePath(projectListEditor.getCheckedElements()); // TomcatLauncherPlugin.getDefault().savePluginPreferences(); return true; } private void initField(FieldEditor field) { field.setPreferenceStore(getPreferenceStore()); field.setPreferencePage(this); field.load(); } }