/******************************************************************************* * 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.wizards; import java.util.HashMap; import net.bioclipse.nmrshiftdb.util.Bc_nmrshiftdbConstants; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; public class NewFromNmrshiftdbWizardPage extends WizardPage { private Text txtName; private Combo searchfields; private Combo searchtype; private HashMap<String,String> typemap=new HashMap<String,String>(); private HashMap<String,String> fieldmap=new HashMap<String,String>(); public NewFromNmrshiftdbWizardPage() { super("Query NMRShiftDB"); setTitle("Query NMRShiftDB"); setDescription("Give a search term and choose search type!"); } public void createControl(Composite parent) { Composite container = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); container.setLayout(layout); layout.numColumns = 5; layout.verticalSpacing = 9; container.setLayout(layout); final Label lblSmiles = new Label(container, SWT.NONE); lblSmiles.setBounds(25, 40, 210, 25); lblSmiles.setText("Search expression:"); txtName=new Text(container, SWT.BORDER); txtName.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { checkForCompletion(); } }); GridData gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.horizontalSpan = 2; gridData.widthHint=200; txtName.setLayoutData(gridData); typemap.put("Exact",Bc_nmrshiftdbConstants.EXACT); typemap.put("Fragment",Bc_nmrshiftdbConstants.FRAGMENT); typemap.put("Regular Expression",Bc_nmrshiftdbConstants.REGEXP); typemap.put("Fuzzy",Bc_nmrshiftdbConstants.FUZZY); searchtype = new Combo (container, SWT.READ_ONLY); searchtype.setItems ((String[])typemap.keySet().toArray(new String[0])); searchtype.setText("Exact"); fieldmap.put("Chemical Name (with Pubchem name resultion)", Bc_nmrshiftdbConstants.CHEMNAMEPUBCHEM); fieldmap.put("Chemical Name", Bc_nmrshiftdbConstants.CHEMNAME); fieldmap.put("Literature/Author", Bc_nmrshiftdbConstants.LITERATURE_AUTHOR); fieldmap.put("CAS number", Bc_nmrshiftdbConstants.CASNUMBER); fieldmap.put("Chemical Formula", Bc_nmrshiftdbConstants.FORMULA); fieldmap.put("Chemical Formula (with other elements)", Bc_nmrshiftdbConstants.FORMULA_WITH_OTHER); fieldmap.put("Literature/Title", Bc_nmrshiftdbConstants.LITERATURE_TITLE); fieldmap.put("Comment", Bc_nmrshiftdbConstants.COMMENT); fieldmap.put("Canonical Name", Bc_nmrshiftdbConstants.CANNAME); fieldmap.put("Molecule Hyperlink Description", Bc_nmrshiftdbConstants.MOLLINK); fieldmap.put("Spectrum Hyperlink Description", Bc_nmrshiftdbConstants.SPECLINK); fieldmap.put("Molecule Keyword", Bc_nmrshiftdbConstants.MOLKEY); fieldmap.put("Spectrum Keyword", Bc_nmrshiftdbConstants.SPECKEY); fieldmap.put("Multiplicities", Bc_nmrshiftdbConstants.MULTIPLICITY); fieldmap.put("Potential C13-Multiplicities", Bc_nmrshiftdbConstants.POTMULTIPLICITY); fieldmap.put("Spectrum NMRShiftDB-Number", Bc_nmrshiftdbConstants.SPECTRUM_NR); fieldmap.put("Molecule NMRShiftDB-Number", Bc_nmrshiftdbConstants.MOLECULE_NR); fieldmap.put("HOSE code", Bc_nmrshiftdbConstants.HOSECODE); fieldmap.put("double bond equivalents/smallest set of smallest rings", Bc_nmrshiftdbConstants.DBE_RINGS); fieldmap.put("Molecular weight (format: from-to)", Bc_nmrshiftdbConstants.WEIGHT); fieldmap.put("Substance Comment", Bc_nmrshiftdbConstants.COMMENT); searchfields = new Combo (container, SWT.READ_ONLY); searchfields.setItems ((String[])fieldmap.keySet().toArray(new String[0])); searchfields.setText("Chemical Name (with Pubchem name resultion)"); setControl(container); checkForCompletion(); } public static Object createObject(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessException { return Class.forName(className).newInstance(); } /** * If page not complete, set error messages */ protected void checkForCompletion() { if (txtName.getText() == null || txtName.getText().compareTo("") == 0){ this.setErrorMessage("You need to enter a search term!"); } else { setErrorMessage(null); ((NewFromNmrshiftdbWizard)getWizard()).searchtext = txtName.getText(); ((NewFromNmrshiftdbWizard)getWizard()).searchfield=searchfields.getText(); ((NewFromNmrshiftdbWizard)getWizard()).searchmode=searchtype.getText(); this.setPageComplete(true); } getWizard().getContainer().updateButtons(); } public String getSearchstring() { return txtName.getText(); } public String getSearchtype(){ return searchtype.getText(); } public String getSearchfield(){ return searchfields.getText(); } public HashMap<String, String> getTypemap() { return typemap; } public HashMap<String, String> getFieldmap() { return fieldmap; } }