+/**
+ * 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;
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.
\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
transform(compositeType);\r
\r
createEmptyViewerPrompt(EMPTY_NAME_PROMPT);\r
+ \r
+ createParser();\r
+ \r
setFocus();\r
}\r
\r
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
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
}\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
\r
}\r
return false;\r
- }\r
-\r
+ } \r
}
\ No newline at end of file
*/\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
*/\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
// 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
@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