Added "Save all" button - still needs testing.
authorp.ciardelli <p.ciardelli@localhost>
Thu, 9 Oct 2008 11:27:39 +0000 (11:27 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Thu, 9 Oct 2008 11:27:39 +0000 (11:27 +0000)
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/SaveAllAction.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmUtil.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/propertysheet/name/NonViralNamePropertySource.java

index d25227c0d30a3dfe0d45a3fbf7a54ca32019bdbd..6ef9c9b03055308dd278a9d59131b1162393b79d 100644 (file)
@@ -1,5 +1,15 @@
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy 
+ * http://www.e-taxonomy.eu
+ * 
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
+
 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.IEditorPart;
@@ -10,14 +20,19 @@ import eu.etaxonomy.taxeditor.TaxEditorPlugin;
 import eu.etaxonomy.taxeditor.UiUtil;
 
 /**
- * Our sample action implements workbench action delegate.
- * The action proxy will be created by the workbench and
- * shown in the UI. When the user tries to use the action,
- * this delegate will be created and execution will be 
- * delegated to it.
+ * Calls <code>MultiPageTaxonEditor.doSave()</code> method for all
+ * open <code>MultiPageTaxonEditor</code>s. Commits universal transaction,
+ * then opens a new one.
+ * 
  * @see IWorkbenchWindowActionDelegate
+ * 
+ * @author p.ciardelli
+ * @created 07.10.2008
+ * @version 1.0
  */
 public class SaveAllAction implements IWorkbenchWindowActionDelegate {
+       private static final Logger logger = Logger.getLogger(SaveAllAction.class);
+
        private IWorkbenchWindow window;
        /**
         * The constructor.
index 8819ed9e83bd902e41c8b6376b6ba238a211b15b..f17a5a7e01c8ba84725b3ff8e2a6bcec9039376d 100644 (file)
@@ -123,6 +123,16 @@ public class NameComposite extends EditorGroupedComposite {
 \r
        private static final String EMPTY_NAME_PROMPT = "Click to add name";\r
 \r
+       private NameViewer nameViewer;\r
+\r
+       /**\r
+        * Used to turn parser on and off.\r
+        * \r
+        * @see activateParser\r
+        * @see deactivateParser\r
+        */\r
+       private boolean isUseParser = false;\r
+\r
        /**\r
         * The constructor for a DescriptionElementComposite. Takes a parent Composite on which to\r
         * create itself, and an IManagedForm for Composite life cycle methods, i.e.\r
@@ -143,6 +153,9 @@ public class NameComposite extends EditorGroupedComposite {
                transform(compositeType);\r
                \r
                createEmptyViewerPrompt(EMPTY_NAME_PROMPT);\r
+               \r
+               createParser();\r
+               \r
                setFocus();\r
        }\r
 \r
@@ -244,7 +257,7 @@ public class NameComposite extends EditorGroupedComposite {
                Assert.isTrue((data instanceof TaxonBase), \r
                                "NameComposite's data field must contain a TaxonBase object");\r
                \r
-               String text = CdmUtil.getDisplayName((TaxonBase) data);\r
+               String text = CdmUtil.getDisplayNameAndRef((TaxonBase) data);\r
                getTextViewer().getTextWidget().setText(text);\r
 \r
                if (getTextViewer() instanceof NameViewer) {\r
@@ -270,10 +283,41 @@ public class NameComposite extends EditorGroupedComposite {
                        super.setSelection();\r
                }\r
        }\r
+\r
+       private void createParser() {\r
+               nameViewer.setParseListener(new ParseListener() {\r
+\r
+                       @Override\r
+                       public void parse(String text) {\r
+\r
+                               if (!isUseParser) {\r
+                                       return;\r
+                               }\r
+                               \r
+                               TaxonBase taxonBase = (TaxonBase) getData();\r
+                               NonViralName nonViralName = (NonViralName) taxonBase.getName();\r
+                               \r
+                               if (nonViralName != null) {\r
+                                       CdmUtil.parseFullReference(nonViralName, text, null, true);\r
+                                       nameViewer.setShowError(nonViralName.getHasProblem());\r
+                               }\r
+\r
+                               setDirty(true);\r
+                       }\r
+               });\r
+               activateParser();\r
+       }\r
+\r
+       public void activateParser() {\r
+               isUseParser = true;\r
+       }\r
+       \r
+       public void deactivateParser() {\r
+               isUseParser = false;\r
+       }\r
        \r
        private NameViewer createNameViewer() {\r
-               final NameViewer nameViewer = new NameViewer(this);\r
-\r
+               nameViewer = new NameViewer(this);\r
                nameViewer.setLineBreakListener(new LineBreakListener() {\r
 \r
                        @Override\r
@@ -289,26 +333,6 @@ public class NameComposite extends EditorGroupedComposite {
                        }\r
 \r
                });\r
-               nameViewer.setParseListener(new ParseListener() {\r
-\r
-                       @Override\r
-                       public void parse(String text) {\r
-\r
-                               TaxonBase taxonBase = (TaxonBase) getData();\r
-\r
-                               NonViralName nonViralName = (NonViralName) taxonBase.getName();\r
-                               if (nonViralName != null) {\r
-//                                     CdmUtil.parseFullName(nonViralName, text, null, true);\r
-                                       \r
-                                       // Changed makeEmpty from true -> false\r
-                                       CdmUtil.parseFullReference(nonViralName, text, null, true);\r
-                                       \r
-                                       nameViewer.setShowError(nonViralName.getHasProblem());\r
-                               }\r
-\r
-                               setDirty(true);\r
-                       }\r
-               });\r
 \r
                nameViewer.getTextWidget().addFocusListener(new FocusAdapter() {\r
                        public void focusGained(FocusEvent e) {\r
@@ -439,6 +463,5 @@ public class NameComposite extends EditorGroupedComposite {
 \r
                }\r
                return false;\r
-       }\r
-\r
+       }       \r
 }
\ No newline at end of file
index 7687bab87b7b9032781cbc298a260894c8fa9513..02efd93840a0ae424681cd627a3c88f6813435fa 100644 (file)
@@ -219,8 +219,15 @@ public class CdmUtil {
         */\r
        public static String getDisplayName(TaxonNameBase name) {\r
                if (name != null) {\r
-//                     return name.getTitleCache();\r
-                       return name.getFullTitleCache();                        \r
+                       return name.getTitleCache();                    \r
+               }\r
+               return "";\r
+       }\r
+       \r
+       public static String getDisplayNameAndRef(TaxonBase taxonBase) {\r
+               TaxonNameBase name = taxonBase.getName();\r
+               if (name != null) {\r
+                       return name.getFullTitleCache();\r
                }\r
                return "";\r
        }\r
@@ -268,7 +275,8 @@ public class CdmUtil {
         */\r
        public static void parseFullReference(NonViralName nameToBeFilled, String fullReference, Rank rank, boolean makeEmpty) {\r
                getNonViralNameParser().parseFullReference(nameToBeFilled, fullReference, rank, makeEmpty);\r
-               nameToBeFilled.setFullTitleCache(nameToBeFilled.generateFullTitle(), false);\r
+//             nameToBeFilled.setFullTitleCache(nameToBeFilled.generateFullTitle(), false);\r
+//             nameToBeFilled.setFullTitleCache(fullReference, false);\r
        }\r
        \r
        /**\r
index 8da74a124f70df4aef809608a5f3d5ed4b29dac3..82fa25d97f098dbef04d3a89453576b36d899bc6 100644 (file)
@@ -345,8 +345,7 @@ public class NonViralNamePropertySource implements IPropertySource {
                // If the name has not been parsed, only show the title cache\r
 //             if (name.getHasProblem()) {\r
                if (name.getRank() == null) {\r
-//                     return subEmptyForNull(name.getTitleCache());\r
-                       return subEmptyForNull(name.getFullTitleCache());\r
+                       return subEmptyForNull(name.getTitleCache());\r
                } else {\r
                        return new NonViralNamePropertySource(name, P_ID_TITLECACHE, getNameFields());\r
                }\r
@@ -594,8 +593,8 @@ public class NonViralNamePropertySource implements IPropertySource {
        @Override\r
        public String toString() {\r
                if (parentid.equals(P_ID_TITLECACHE))\r
-//                     return name.getTitleCache(); \r
-                       return name.getFullTitleCache();\r
+                       return name.getTitleCache(); \r
+//                     return name.getFullTitleCache();\r
                return super.toString();\r
        }\r
        \r