/******************************************************************************* * Copyright (c) 2008 The Bioclipse Project and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Stefan Kuhn * ******************************************************************************/ package net.bioclipse.nmrshiftdb; import net.bioclipse.nmrshiftdb.util.Bc_nmrshiftdbConstants; import net.bioclipse.nmrshiftdb.wizards.ServerWizardPage; import net.bioclipse.nmrshiftdb.wizards.SubmitWizard; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; 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.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; public class NmrshiftdbPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { private Text usernameValue; private Text passwordValue; private Text serverValue; private Button checkServer; private Button check; @Override protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; layout.numColumns = 2; composite.setLayout(layout); Label checkLabel = new Label(composite, SWT.NULL); checkLabel.setText("Save username/password?"); check = new Button(composite, SWT.CHECK); if (net.bioclipse.nmrshiftdb.Activator.getDefault().getPluginPreferences().getBoolean(SubmitWizard.REMEMBER_NMRSHIFTDB_VALUE)) { check.setSelection(true); } check.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } public void widgetSelected(SelectionEvent e) { Button button = (Button) e.getSource(); if (!button.getSelection()) { if (usernameValue != null) { usernameValue.setEnabled(false); passwordValue.setEnabled(false); } } else { usernameValue.setEnabled(true); passwordValue.setEnabled(true); } } }); Label setLabel = new Label(composite, SWT.NULL); setLabel.setText("Username: "); usernameValue = new Text(composite, SWT.BORDER | SWT.SINGLE); usernameValue.setText(net.bioclipse.nmrshiftdb.Activator.getDefault().getPluginPreferences().getString(SubmitWizard.REMEMBER_NMRSHIFTDB_USER)); if (!check.getSelection()) { usernameValue.setEnabled(false); } else { usernameValue.setEnabled(true); } Label passwordLabel = new Label(composite, SWT.NULL); passwordLabel.setText("Password: "); passwordValue = new Text(composite, SWT.BORDER | SWT.SINGLE); passwordValue.setText(net.bioclipse.nmrshiftdb.Activator.getDefault().getPluginPreferences().getString(SubmitWizard.REMEMBER_NMRSHIFTDB_PW)); if (!check.getSelection()) { passwordValue.setEnabled(false); } else { passwordValue.setEnabled(true); } Label checkServerLabel = new Label(composite, SWT.NULL); checkServerLabel.setText("Save servername?"); checkServer = new Button(composite, SWT.CHECK); if (net.bioclipse.nmrshiftdb.Activator.getDefault().getPluginPreferences().getBoolean(ServerWizardPage.SAVE_SERVER)) { checkServer.setSelection(true); } checkServer.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } public void widgetSelected(SelectionEvent e) { Button button = (Button) e.getSource(); if (!button.getSelection()) { if (serverValue != null) { serverValue.setEnabled(false); } } else { serverValue.setEnabled(true); } } }); Label serverLabel = new Label(composite, SWT.NULL); serverLabel.setText("Server: "); serverValue = new Text(composite, SWT.BORDER | SWT.SINGLE); serverValue.setText(net.bioclipse.nmrshiftdb.Activator.getDefault().getPluginPreferences().getString(ServerWizardPage.NMRSHIFTDB_SERVER)); if (!checkServer.getSelection()) { serverValue.setEnabled(false); } else { serverValue.setEnabled(true); } return composite; } public void init(IWorkbench workbench) { } private void saveValues(){ net.bioclipse.nmrshiftdb.Activator.getDefault().getPluginPreferences().setValue(ServerWizardPage.SAVE_SERVER,checkServer.getSelection()); net.bioclipse.nmrshiftdb.Activator.getDefault().getPluginPreferences().setValue(ServerWizardPage.NMRSHIFTDB_SERVER,serverValue.getText()); net.bioclipse.nmrshiftdb.Activator.getDefault().getPluginPreferences().setValue(SubmitWizard.REMEMBER_NMRSHIFTDB_VALUE,check.getSelection()); net.bioclipse.nmrshiftdb.Activator.getDefault().getPluginPreferences().setValue(SubmitWizard.REMEMBER_NMRSHIFTDB_USER,usernameValue.getText()); net.bioclipse.nmrshiftdb.Activator.getDefault().getPluginPreferences().setValue(SubmitWizard.REMEMBER_NMRSHIFTDB_PW,passwordValue.getText()); } @Override protected void performApply() { saveValues(); super.performApply(); } @Override public boolean performOk() { saveValues(); return super.performOk(); } @Override protected void performDefaults() { check.setSelection(false); checkServer.setSelection(false); serverValue.setText(Bc_nmrshiftdbConstants.server); serverValue.setEnabled(false); usernameValue.setText(""); usernameValue.setEnabled(false); passwordValue.setText(""); passwordValue.setEnabled(false); } }