blob: 514f5b2b7330d02524c71f27480fb1e594c0e653 [file] [log] [blame]
package org.eclipse.jst.j2ee.internal.ui.preferences;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.Preferences;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
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;
public class JavaEEPreferencePage extends PreferencePage implements
IWorkbenchPreferencePage {
private Preferences preferences;
private String name = J2EEPlugin.DYNAMIC_TRANSLATION_OF_JET_TEMPLATES_PREF_KEY;
private Button showReferences;
private boolean dynamicTranslation;
private ArrayList<IJavaEEPreferencePageExtender> extenders = new ArrayList();
public JavaEEPreferencePage() {
setDescription(J2EEUIMessages.getResourceString(J2EEUIMessages.JAVA_EE_PREFERENCE_PAGE_NAME));
}
@Override
protected void performDefaults() {
preferences.setToDefault(name);
J2EEPlugin.getDefault().savePluginPreferences();
dynamicTranslation = preferences.getBoolean(name);
showReferences.setSelection(dynamicTranslation);
for(IJavaEEPreferencePageExtender extender : extenders ){
extender.performDefaults();
}
super.performDefaults();
}
@Override
protected Control createContents(Composite parent) {
Composite result= new Composite(parent, SWT.NONE);
GridLayout layout= new GridLayout();
layout.marginHeight= convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
layout.marginWidth= 0;
layout.verticalSpacing= convertVerticalDLUsToPixels(10);
layout.horizontalSpacing= convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
result.setLayout(layout);
Group buttonComposite= new Group(result, SWT.NONE);
buttonComposite.setLayout(new GridLayout());
buttonComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
buttonComposite.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.JAVA_EE_PREFERENCE_PAGE_JET_TEMPLATE));
showReferences = new Button(buttonComposite, SWT.CHECK);
showReferences.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.JAVA_EE_PREFERENCE_PAGE_DYN_TRANSLATION_BTN_NAME));
showReferences.setSelection(dynamicTranslation);
showReferences.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
dynamicTranslation = showReferences.getSelection();
}
});
invokeExtensions(result);
return result;
}
public void init(IWorkbench workbench) {
preferences = J2EEPlugin.getDefault().getPluginPreferences();
dynamicTranslation = preferences.getBoolean(name);
}
@Override
public boolean performOk() {
preferences.setValue(name, showReferences.getSelection());
J2EEPlugin.getDefault().savePluginPreferences();
boolean result = false;
for(IJavaEEPreferencePageExtender extender : extenders ){
result = extender.performOk();
}
result = super.performOk();
return result;
}
protected void invokeExtensions(Composite parent){
List<JavaEEPreferencePageExtension> list = JavaEEPreferencePageExtensionReader.getInstance().getJavaEEPageExtenders();
for(JavaEEPreferencePageExtension pageExtension : list ){
IJavaEEPreferencePageExtender extender = pageExtension.getInstance();
extenders.add(extender);
extender.extendPage(parent);
}
}
@Override
public void dispose(){
for(IJavaEEPreferencePageExtender extender : extenders ){
extender.dispose();
}
}
}