1) Search for bibliographic references now implemented. Attendant concurreny error...
authorp.ciardelli <p.ciardelli@localhost>
Fri, 14 Nov 2008 15:09:30 +0000 (15:09 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Fri, 14 Nov 2008 15:09:30 +0000 (15:09 +0000)
14 files changed:
.gitattributes
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/SaveAllAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNameRelationWizardAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/LineBreakListener.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmUtil.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/description/DescriptionElementPropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/description/TaxonDescriptionPropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/name/NonViralNamePropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/name/TaxonBasePropertySource.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/namerelationswizard/ListNameRelationsWizardPage.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/IReferenceSearch.java [new file with mode: 0644]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/ReferenceSearchDescriptor.java [moved from eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/NomRefSearchDescriptor.java with 81% similarity]
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/ReferenceSearchDialog.java

index 8ca60dfd1ebf94f0f6cae14ae0feb697fa265789..2c48c6ea19340351980de502026ec08b1211259d 100644 (file)
@@ -538,7 +538,8 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/namerelationswizard/NameRelationWizard.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/namerelationswizard/NameRelationWizardModel.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/namerelationswizard/NameRelationsListWizard.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/NomRefSearchDescriptor.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/IReferenceSearch.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/NomenclaturalReferencePropertySource.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/ReferencePropertySource.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/ReferenceSearchDescriptor.java -text
 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/ReferenceSearchDialog.java -text
index 4b1641148d0faefd4ef3db80326dd4bceb3da508..4e5cdacd458511ed20433660db9e608685d6fb2c 100644 (file)
@@ -12,6 +12,7 @@ package eu.etaxonomy.taxeditor.actions;
 import org.apache.log4j.Logger;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
@@ -19,6 +20,8 @@ import org.eclipse.ui.IWorkbenchWindowActionDelegate;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.TaxEditorPlugin;
 import eu.etaxonomy.taxeditor.UiUtil;
+import eu.etaxonomy.taxeditor.actions.cdm.SaveTaxonAction;
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.model.CdmUtil;
 
 /**
@@ -55,6 +58,15 @@ public class SaveAllAction implements IWorkbenchWindowActionDelegate {
 
                        // Save the dirty ones
                        if (taxonEditor.isDirty()) {
+                               IEditorInput input = taxonEditor.getEditorInput();
+                               if (input.getAdapter(Taxon.class) != null) {
+                                       Taxon taxon = (Taxon) input.getAdapter(Taxon.class);
+                                       new SaveTaxonAction(taxon).run();
+                                       if (taxonEditor instanceof MultiPageTaxonEditor) {
+                                               ((MultiPageTaxonEditor) taxonEditor).setDirtyExtern(false);
+                                       }
+                               } 
+                               
                                taxonEditor.doSave(null);
                        }
                }
index 13a951f891d54a3c7e2e148dfce3b6f1c43a782f..e5750610541c6b0f7fa5a3d2596066bb0c4c031a 100644 (file)
@@ -19,7 +19,6 @@ import org.eclipse.jface.wizard.WizardDialog;
 \r
 import eu.etaxonomy.cdm.model.name.NameRelationship;\r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.occurrence.Collection;\r
 import eu.etaxonomy.taxeditor.UiUtil;\r
 import eu.etaxonomy.taxeditor.propertysheet.namerelationswizard.NameRelationWizard;\r
 import eu.etaxonomy.taxeditor.propertysheet.namerelationswizard.NameRelationWizardModel;\r
@@ -73,5 +72,9 @@ public class OpenNameRelationWizardAction extends Action {
                }\r
                \r
                Wizard wizard = new NameRelationWizard(relationModel);\r
+               \r
+               WizardDialog dialog = new WizardDialog(UiUtil.getShell(), wizard);\r
+               dialog.create();\r
+               dialog.open();\r
        }\r
 }
\ No newline at end of file
index 6fe55df635a8af59c4e38f13c11a9e2808df7bcb..9fb070d17e179d4ce1e2aebe1e8c7026dba8e5f8 100644 (file)
@@ -45,8 +45,9 @@ public abstract class LineBreakListener implements VerifyListener {
                int cursorPosition = styledText.getCaretOffset();\r
                \r
                // If no line break in verifyText, Parse text normally\r
-               if (!verifyText.contains(System.getProperty("line.separator")))\r
+               if (!verifyText.contains(System.getProperty("line.separator"))) {\r
                        return;\r
+               }\r
                \r
                // Don't add verifyText without further processing\r
                e.doit = false;\r
index 31941d33c71949e2392329e291d92da50652042b..ad365301bacd5bb87575da5fde3c8595544ac2e7 100644 (file)
@@ -22,6 +22,7 @@ import org.springframework.transaction.TransactionStatus;
 \r
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.actions.SaveAllAction;\r
 import eu.etaxonomy.taxeditor.actions.cdm.SaveTaxonAction;\r
 import eu.etaxonomy.taxeditor.editor.description.TaxonDescriptionEditorView;\r
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditorView;\r
@@ -86,12 +87,17 @@ public class MultiPageTaxonEditor extends MultiPageEditorPart {
        \r
        @Override\r
        public void doSave(IProgressMonitor monitor) {\r
-//             monitor.beginTask(name, totalWork)\r
-               new SaveTaxonAction(taxon).run();\r
-//             CdmUtil.commitTransaction(tx);\r
-               setDirty(false);\r
-//             tx = CdmUtil.startTransaction();\r
-//             CdmUtil.getTaxonService().saveTaxon(taxon);\r
+               \r
+               // Bummer quick fix - saving individual taxa leads to too many\r
+               //      concurrency errors\r
+               new SaveAllAction().run(null);\r
+               \r
+////           monitor.beginTask(name, totalWork)\r
+//             new SaveTaxonAction(taxon).run();\r
+////           CdmUtil.commitTransaction(tx);\r
+//             setDirty(false);\r
+////           tx = CdmUtil.startTransaction();\r
+////           CdmUtil.getTaxonService().saveTaxon(taxon);\r
        }\r
 \r
        private void setDirty(boolean dirty) {\r
@@ -180,4 +186,13 @@ public class MultiPageTaxonEditor extends MultiPageEditorPart {
 \r
         setPartName(partName);\r
     }\r
+    \r
+    /**\r
+     * SaveAllAction needs to set this.\r
+     * \r
+     * @param IS_DIRTY\r
+     */\r
+    public void setDirtyExtern(boolean IS_DIRTY) {\r
+       setDirty(IS_DIRTY);\r
+    }\r
 }
\ No newline at end of file
index 2420b33780b0934c3ccd80c338642ac8125dfb14..d21298c1e929694d2d421d37335ff5b2cb8570b0 100644 (file)
@@ -16,6 +16,7 @@ import java.util.Set;
 import java.util.SortedSet;\r
 \r
 import org.apache.log4j.Logger;\r
+import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.springframework.transaction.TransactionStatus;\r
 \r
 import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
@@ -495,7 +496,14 @@ public class CdmUtil {
        public static List getReferencesByTitle(String reference) {\r
                \r
                reference = reference.replace("*", "%");\r
-               \r
-               return getReferenceService().getReferencesByTitle(reference);\r
+               List resultsList = null;\r
+               try {\r
+                       resultsList = getReferenceService().getReferencesByTitle(reference);\r
+               } catch (RuntimeException e) {\r
+                       MessageDialog.openError(UiUtil.getShell(), "Search reference error", \r
+                                       "Reference search returned an error. This could be a Hibernate concurrency problem. " +\r
+                                       "Please try saving your work, then searching again.");\r
+               }\r
+               return resultsList;\r
        }\r
 }\r
index e82e1d574dc2a8e9aa325b1c6478de3ae7594f2e..3d5dadad68e76b2369fd107b6dade58175fcf9c1 100644 (file)
@@ -20,7 +20,6 @@ import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
 import org.eclipse.ui.views.properties.IPropertyDescriptor;\r
 import org.eclipse.ui.views.properties.IPropertySource;\r
 import org.eclipse.ui.views.properties.PropertyDescriptor;\r
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;\r
 \r
 import eu.etaxonomy.cdm.model.description.CommonTaxonName;\r
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
@@ -32,7 +31,10 @@ import eu.etaxonomy.cdm.model.description.TaxonInteraction;
 import eu.etaxonomy.cdm.model.description.TextData;\r
 import eu.etaxonomy.cdm.model.reference.Generic;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.propertysheet.reference.IReferenceSearch;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.ReferencePropertySource;\r
+import eu.etaxonomy.taxeditor.propertysheet.reference.ReferenceSearchDescriptor;\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -69,7 +71,8 @@ public class DescriptionElementPropertySource implements IPropertySource {
        public static final String P_FEATURE = "00:Feature";\r
        public static final String P_BIBREF = "02:Bibliographic Reference";\r
        \r
-       protected static final String[] TOP_LEVEL_PROPERTIES = new String[] {P_ID_ELEMENT_CLASS, P_ID_FEATURE, P_ID_BIBREF};            \r
+//     protected static final String[] TOP_LEVEL_PROPERTIES = new String[] {P_ID_ELEMENT_CLASS, P_ID_FEATURE, P_ID_BIBREF};\r
+       protected static final String[] TOP_LEVEL_PROPERTIES = new String[] {P_ID_BIBREF};\r
        \r
        private String[] P_FEATURE_CLASS_NAME_MENU;\r
        private Class[] P_FEATURE_CLASSES;\r
@@ -149,8 +152,12 @@ public class DescriptionElementPropertySource implements IPropertySource {
                }\r
                \r
                if (id.equals(P_ID_BIBREF)) {\r
-                       descriptors.addElement(new TextPropertyDescriptor(P_ID_BIBREF, P_BIBREF));\r
-//                     descriptors.addElement(new PropertyDescriptor(P_ID_BIBREF, P_BIBREF));\r
+                       descriptors.addElement(new ReferenceSearchDescriptor(P_ID_BIBREF, P_BIBREF, IReferenceSearch.BIBREF) {\r
+                               protected void saveReference(ReferenceBase reference) {\r
+                                       setPropertyValue(P_ID_BIBREF, reference);\r
+                               }\r
+                       });                     \r
+//                     descriptors.addElement(new TextPropertyDescriptor(P_ID_BIBREF, P_BIBREF));\r
                }\r
        }\r
        \r
@@ -229,6 +236,14 @@ public class DescriptionElementPropertySource implements IPropertySource {
                }\r
                \r
                if (id.equals(P_ID_BIBREF)) {\r
+                       \r
+                       if (value instanceof ReferenceBase) {\r
+                               descriptionElement.setCitation((ReferenceBase) value);\r
+                       }\r
+                       \r
+                       if (value instanceof String) {\r
+                               \r
+                       }\r
                        ReferenceBase bibRef = descriptionElement.getCitation();\r
                        if (bibRef == null) {\r
                                bibRef = Generic.NewInstance();\r
@@ -239,5 +254,7 @@ public class DescriptionElementPropertySource implements IPropertySource {
                        // toString() method\r
                        bibRef.setTitleCache(value.toString());\r
                }\r
+               \r
+               descriptionElement.firePropertyChange(ITaxEditorConstants.PROPERTY_SHEET_CHANGE, null, null);\r
        }\r
 }\r
index dff9d437606b868270ef6a109805535b51817df6..a825688437aea78cf27ef1dd325df608cb2f0b2d 100644 (file)
@@ -44,8 +44,10 @@ public class TaxonDescriptionPropertySource implements IPropertySource {
        public static final String P_LABEL = "00:Description Text";\r
        public static final String P_UUID = "01:UUID";  \r
        \r
+//     protected static final String[] TOP_LEVEL_PROPERTIES = new String[] {\r
+//                     P_ID_LABEL, P_ID_UUID};\r
        protected static final String[] TOP_LEVEL_PROPERTIES = new String[] {\r
-                       P_ID_LABEL, P_ID_UUID};         \r
+               P_ID_UUID};             \r
                \r
        /**\r
         * Constructor for top level property fields. All fields that are not subfields\r
@@ -90,7 +92,7 @@ public class TaxonDescriptionPropertySource implements IPropertySource {
                }\r
                if (id.equals(P_ID_UUID)) {\r
                        descriptors.addElement(\r
-                                       new TextPropertyDescriptor(P_ID_UUID, P_UUID));\r
+                                       new PropertyDescriptor(P_ID_UUID, P_UUID));\r
                }\r
        }\r
        \r
index bbf47827d37e619c03e875555fd8785679ebfaf7..60df8ef6170ecb0c60777c640c8f6f7bc5b3955d 100644 (file)
@@ -42,7 +42,8 @@ import eu.etaxonomy.taxeditor.UiUtil;
 import eu.etaxonomy.taxeditor.propertysheet.AnnotationPropertySource;\r
 import eu.etaxonomy.taxeditor.propertysheet.AnnotationsPropertyDescriptor;\r
 import eu.etaxonomy.taxeditor.propertysheet.MarkersPropertySource;\r
-import eu.etaxonomy.taxeditor.propertysheet.reference.NomRefSearchDescriptor;\r
+import eu.etaxonomy.taxeditor.propertysheet.reference.IReferenceSearch;\r
+import eu.etaxonomy.taxeditor.propertysheet.reference.ReferenceSearchDescriptor;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.NomenclaturalReferencePropertySource;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.ReferencePropertySource;\r
 \r
@@ -297,7 +298,7 @@ public class NonViralNamePropertySource implements IPropertySource {
                \r
                if (id.equals(P_ID_NOMENCLATURAL_REF)) {\r
                        descriptors.addElement(\r
-                                       new NomRefSearchDescriptor(P_ID_NOMENCLATURAL_REF, P_NOMENCLATURAL_REF) {\r
+                                       new ReferenceSearchDescriptor(P_ID_NOMENCLATURAL_REF, P_NOMENCLATURAL_REF, IReferenceSearch.NOMREF) {\r
                                                protected void saveReference(ReferenceBase reference) {\r
                                                        if (reference instanceof INomenclaturalReference) {\r
                                                                setPropertyValue(P_ID_NOMENCLATURAL_REF, reference);\r
index 79d6b91ffb6a869cbddb8fd1d090b691caad6552..f3cd5fcc173f1222326d57071283961fafec6ca5 100644 (file)
@@ -14,6 +14,7 @@ import java.beans.PropertyChangeListener;
 import java.util.Vector;\r
 \r
 import org.apache.log4j.Logger;\r
+import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.ui.views.properties.IPropertyDescriptor;\r
 import org.eclipse.ui.views.properties.IPropertySource;\r
 import org.eclipse.ui.views.properties.PropertyDescriptor;\r
@@ -24,9 +25,13 @@ import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
 import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
 import eu.etaxonomy.cdm.model.reference.Generic;\r
+import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;\r
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.propertysheet.reference.IReferenceSearch;\r
 import eu.etaxonomy.taxeditor.propertysheet.reference.ReferencePropertySource;\r
+import eu.etaxonomy.taxeditor.propertysheet.reference.ReferenceSearchDescriptor;\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -60,11 +65,13 @@ public class TaxonBasePropertySource implements IPropertySource {
                if (id.equals(P_ID_TAXONNAME)) {\r
                        descriptors.addElement(\r
                                        new PropertyDescriptor(P_ID_TAXONNAME, P_TAXONNAME));\r
-               }\r
-               \r
+               }               \r
                if (id.equals(P_ID_TAXONSEC)) {\r
-                       descriptors.addElement(\r
-                                       new PropertyDescriptor(P_ID_TAXONSEC, P_TAXONSEC));\r
+                       descriptors.addElement(new ReferenceSearchDescriptor(P_ID_TAXONSEC, P_TAXONSEC, IReferenceSearch.BIBREF) {\r
+                               protected void saveReference(ReferenceBase reference) {\r
+                                       setPropertyValue(P_ID_TAXONSEC, reference);\r
+                               }\r
+                       });\r
                }\r
        }\r
        \r
@@ -116,11 +123,6 @@ public class TaxonBasePropertySource implements IPropertySource {
                        \r
                        ReferenceBase sec = taxon.getSec();\r
                        \r
-                       // Create sec reference as necessary\r
-                       if (sec == null) {\r
-                               sec = Generic.NewInstance();\r
-                       }\r
-                       \r
                        // Create property source for submenu\r
                        ReferencePropertySource secPropertySource = new ReferencePropertySource(sec);\r
                        \r
@@ -154,6 +156,10 @@ public class TaxonBasePropertySource implements IPropertySource {
         * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)\r
         */\r
        public void setPropertyValue(Object id, Object value) {\r
-               // All setting done in submenus\r
+        if (id.equals(P_ID_TAXONSEC)) {\r
+               if (value instanceof ReferenceBase) {\r
+                       taxon.setSec((ReferenceBase) value);\r
+               }\r
+        }\r
        }\r
 }\r
index a61baeb1f34ba928401b38de8713645b769d6cfe..a990f280c4ea63eb6109f55833db6391329797be 100644 (file)
@@ -178,7 +178,7 @@ public class ListNameRelationsWizardPage extends WizardPage {
                if (relation == null) {\r
                        new OpenNameRelationWizardAction(name, nameRelationsList).run();\r
                } else {\r
-//                     new OpenNameRelationWizardAction(name, relation).run();\r
+                       new OpenNameRelationWizardAction(name, relation).run();\r
                }\r
        }\r
 \r
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/IReferenceSearch.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/reference/IReferenceSearch.java
new file mode 100644 (file)
index 0000000..77bae7b
--- /dev/null
@@ -0,0 +1,22 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.taxeditor.propertysheet.reference;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 14.11.2008\r
+ * @version 1.0\r
+ */\r
+public interface IReferenceSearch {\r
+\r
+       public static final int NOMREF = 1;\r
+       public static final int BIBREF = 1;\r
+       \r
+}\r
@@ -24,12 +24,16 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
  * @created 19.05.2008\r
  * @version 1.0\r
  */\r
-abstract public class NomRefSearchDescriptor extends PropertyDescriptor {\r
+abstract public class ReferenceSearchDescriptor extends PropertyDescriptor {\r
        private static final Logger logger = Logger\r
-                       .getLogger(NomRefSearchDescriptor.class);\r
+                       .getLogger(ReferenceSearchDescriptor.class);\r
                \r
-       public NomRefSearchDescriptor(Object id, String displayName) {\r
+       int searchType;\r
+       \r
+       public ReferenceSearchDescriptor(Object id, String displayName, int searchType) {\r
                super(id, displayName);\r
+               \r
+               this.searchType = searchType;\r
        }\r
 \r
     public CellEditor createPropertyEditor(Composite parent) {\r
@@ -38,7 +42,7 @@ abstract public class NomRefSearchDescriptor extends PropertyDescriptor {
                        protected Object openDialogBox(\r
                                        Control cellEditorWindow) {\r
                        Dialog dialog = new ReferenceSearchDialog(cellEditorWindow.getShell(), \r
-                                       ReferenceSearchDialog.NOMREF);\r
+                                       searchType);\r
                        Object value = ((ReferenceSearchDialog) dialog).open();\r
                                if (value instanceof ReferenceBase) {\r
                                        \r
index 2e0c2033afc62fc8ecf00d9d18329f679eb3b402..5a6ef2e824b8f426d00b2f4aa703ffc93cb0d7a5 100644 (file)
@@ -21,6 +21,8 @@ import org.eclipse.swt.events.MouseAdapter;
 import org.eclipse.swt.events.MouseEvent;\r
 import org.eclipse.swt.events.SelectionAdapter;\r
 import org.eclipse.swt.events.SelectionEvent;\r
+import org.eclipse.swt.events.VerifyEvent;\r
+import org.eclipse.swt.events.VerifyListener;\r
 import org.eclipse.swt.layout.GridData;\r
 import org.eclipse.swt.layout.GridLayout;\r
 import org.eclipse.swt.widgets.Button;\r
@@ -46,15 +48,13 @@ public class ReferenceSearchDialog extends Dialog {
        private Text searchTermText;\r
        private static final Logger logger = Logger\r
                        .getLogger(ReferenceSearchDialog.class);\r
-       \r
-       public static final int NOMREF = 1;\r
-       private int searchType = 0;\r
-       \r
+               \r
        protected Object result;\r
        private Shell shell;\r
        private Button okButton;\r
        private TableViewer resultsTableViewer;\r
        private ReferenceBase selectedReference;\r
+       private int searchType;\r
        \r
        public ReferenceSearchDialog(Shell parent, int searchType) {\r
                super(parent, SWT.NONE);\r
@@ -114,6 +114,20 @@ public class ReferenceSearchDialog extends Dialog {
                searchTermText = new Text(searchComposite, SWT.BORDER);\r
                final GridData gd_searchTermText = new GridData(SWT.FILL, SWT.CENTER, true, false);\r
                searchTermText.setLayoutData(gd_searchTermText);\r
+               \r
+               // Listen for user hitting <CR> in input field\r
+//             searchTermText.addVerifyListener(new VerifyListener () {\r
+//                     public void verifyText(VerifyEvent e) {\r
+////                           if (e.text.contains(System.getProperty("line.separator"))) {\r
+//                             if (e.text.equals(System.getProperty("line.separator"))) {\r
+//                                     \r
+//                                     // Suppress <CR> being added to search term\r
+//                                     e.doit = false;\r
+//                                     \r
+//                                     populateSearchResults();\r
+//                             }\r
+//                     }\r
+//             });\r
 \r
                // Create "Search" button\r
                final Button searchButton = new Button(searchComposite, SWT.NONE);\r
@@ -123,29 +137,7 @@ public class ReferenceSearchDialog extends Dialog {
                        \r
                        // Populate search results table after clicking button\r
                        public void mouseUp(MouseEvent e) {\r
-                               \r
-                               // Get search results\r
-                               List resultsArray = CdmUtil.getReferencesByTitle(searchTermText.getText());\r
-\r
-                               // Delete non-nomenclatural references as needed\r
-                               if (searchType == NOMREF) {\r
-                                       for (Object result : resultsArray) {\r
-                                               if (!(result instanceof INomenclaturalReference)) {\r
-                                                       resultsArray.remove(result);\r
-                                               }\r
-                                       }\r
-                               }\r
-                               \r
-                               // Tell user if there are no results\r
-                               if (resultsArray.size() == 0) {\r
-                                       resultsArray.add("Query returned no results.");\r
-                               }\r
-                               \r
-                               // Send results to results table\r
-                               resultsTableViewer.setInput(resultsArray.toArray());\r
-                               \r
-                               // Disable OK button\r
-                               okButton.setEnabled(false);\r
+                               populateSearchResults();\r
                        }\r
                });\r
 \r
@@ -226,6 +218,32 @@ public class ReferenceSearchDialog extends Dialog {
                });\r
 \r
        }\r
+       \r
+       private void populateSearchResults() {\r
+               // Get search results\r
+               List resultsArray = CdmUtil.getReferencesByTitle(searchTermText.getText());\r
+\r
+               // Delete non-nomenclatural references as needed\r
+               if (searchType == IReferenceSearch.NOMREF) {\r
+                       for (Object result : resultsArray) {\r
+                               if (!(result instanceof INomenclaturalReference)) {\r
+                                       resultsArray.remove(result);\r
+                               }\r
+                       }\r
+               }\r
+               \r
+               // Tell user if there are no results\r
+               if (resultsArray.size() == 0) {\r
+                       resultsArray.add("Query returned no results.");\r
+               }\r
+               \r
+               // Send results to results table\r
+               resultsTableViewer.setInput(resultsArray.toArray());\r
+               \r
+               // Disable OK button\r
+               okButton.setEnabled(false);             \r
+       }\r
+       \r
        private void setSelectedReference(ReferenceBase selectedReference) {\r
                this.selectedReference = selectedReference;\r
        }\r