\r
initializeComposite();\r
\r
-// createParser();\r
createListener();\r
\r
\r
textViewer.getTextWidget().removeModifyListener(nameCompositeModifyListener);\r
textViewer.getTextWidget().removeFocusListener(nameCompositeFocusListener);\r
}\r
- \r
- /**\r
- * If the user entering text requires parsing, call this method and override\r
- * the method parse().\r
- */\r
-// protected void createParser() {\r
-// if (textViewer != null) {\r
-// parseListener = new ParseListener() {\r
-// @Override\r
-// public void parse(String text) {\r
-// NameComposite.this.parse(text);\r
-// }\r
-// };\r
-// textViewer.getTextWidget().addModifyListener(parseListener);\r
-// \r
-// } else {\r
-// logger.warn("Can't create parser because textViewer has not been initalized.");\r
-// }\r
-// }\r
- \r
+ \r
/**\r
* Initialize the composite specific code\r
* \r
}\r
calculateErrors();\r
}\r
- \r
-// protected void parse(String unparsedNameString) {\r
-// \r
-// // Either composite is not yet fully built, or\r
-// // the property sheet is writing to it\r
-// if (!isUseParser) {\r
-// return;\r
-// }\r
-// \r
-// // Let others know the parser is active\r
-// isParsing = true;\r
-// \r
-// // Parse the name and paint the text field w any errors\r
-// if (getName() != null) {\r
-// \r
-// setParsedName(CdmParserUtil.parseReferencedName(unparsedNameString, getName().getRank()));\r
-// }\r
-// \r
-// // The parser is no longer active\r
-// isParsing = false;\r
-// \r
-// // Manually refresh the property sheet to reflect changes\r
-// setSelection();\r
-// \r
-// // Show any errors in the name viewer\r
-// calculateErrors();\r
-// }\r
- \r
- /**\r
- * @param parseReferencedName\r
- */\r
-// private void setParsedName(TaxonNameBase parsedReferencedName) {\r
-// // if the parsed name changes or gets set, the name is considered dirty\r
-// setDirty(true);\r
-// parsedName = parsedReferencedName;\r
-// }\r
- \r
+ \r
// FIXME we do have a naming conflict here \r
public abstract TaxonNameBase<?, ?> getName();\r
\r
// Lay out the viewer's widgets\r
getControl().setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
TableWrapData twdata = new TableWrapData(TableWrapData.FILL_GRAB);\r
- twdata.heightHint = 20;\r
getTextWidget().setLayoutData(twdata);\r
+ getTextWidget().setLineSpacing(5);\r
\r
// Default implentation adds ruler after the text widget, then \r
// uses a custom layout to display it before the text widget\r
import org.eclipse.ui.views.properties.TextPropertyDescriptor;\r
\r
import eu.etaxonomy.cdm.common.CdmUtils;\r
-import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;\r
-import eu.etaxonomy.cdm.model.common.User;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
if (id.equals(P_ID_PARSED)) {\r
String str = null;\r
for (ParserProblem problem : name.getParsingProblems()) {\r
- str = str == null ? problem.toString() : str + problem.toString();\r
+ str = str == null ? problem.toString() : str + " / " + problem.toString();\r
}\r
return str == null ? "parsed" : str;\r
}\r
* @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)\r
*/\r
public void setPropertyValue(Object id, Object value) {\r
- \r
- // Since this is only called when the property value changes,\r
- // it is a reliable place to fire the name's property change\r
- // listener.\r
-// name.firePropertyChange(Resources.PROPERTY_SHEET_CHANGE, null, null);\r
- \r
+ \r
// Rank menu \r
if (id.equals(P_ID_RANK)) {\r
int index = ((Integer) value).intValue();\r
name.setNomenclaturalMicroReference((String) value);\r
}\r
\r
- // If there is no rank, generated caches will be blank, wiping out the freetext area\r
- if (name.getRank() != null) {\r
- \r
- // Reset both caches to reflect property sheet changes\r
- if (!name.isProtectedTitleCache()) {\r
- name.setTitleCache(name.generateTitle(), false);\r
- }\r
-\r
- if (!name.isProtectedFullTitleCache()) {\r
- name.setFullTitleCache(name.generateFullTitle(), false);\r
- }\r
- }\r
- \r
-// name.firePropertyChange(ITaxEditorConstants.REFRESH_NAMEVIEWER, null, null);\r
- \r
+// // If there is no rank, generated caches will be blank, wiping out the freetext area\r
+// if (name.getRank() != null) {\r
+// \r
+// // Reset both caches to reflect property sheet changes\r
+// if (!name.isProtectedTitleCache()) {\r
+// name.setTitleCache(name.generateTitle(), false);\r
+// }\r
+//\r
+// if (!name.isProtectedFullTitleCache()) {\r
+// name.setFullTitleCache(name.generateFullTitle(), false);\r
+// }\r
+// } \r
+ new NameCacheHandler(name).update();\r
}\r
\r
/** \r
// Protect cache? \r
if (id.equals(P_ID_PROTECT_CACHE)) {\r
logger.warn(((Integer) value).intValue() == CACHE_PROTECTED);\r
- name.setProtectedTitleCache(\r
- ((Integer) value).intValue() == CACHE_PROTECTED);\r
+ boolean protect = ((Integer) value).intValue() == CACHE_PROTECTED;\r
+ new NameCacheHandler(name).protect(protect);\r
}\r
\r
// Uninomial (aka Genus) \r
name.setAppendedPhrase((String) value);\r
}\r
\r
- // Authorship cache \r
-// if (id.equals(P_ID_AUTHORSHIPCACHE)) {\r
-//// name.setProtectedAuthorshipCache(true);\r
-// name.setAuthorshipCache((String) value);\r
-// }\r
- \r
// Editable cache\r
if (id.equals(P_ID_EDITABLECACHE)) {\r
+ NameCacheHandler cacheHandler = new NameCacheHandler(name);\r
+ cacheHandler.protect(false);\r
name.setTitleCache((String) value);\r
-// } else {\r
-// name.setTitleCache(name.generateTitle(), name.isProtectedTitleCache());\r
+ cacheHandler.protect(true);\r
}\r
- \r
+\r
+ new NameCacheHandler(name).update();\r
propertyChangeSupport.firePropertyChange(Resources.PROPERTY_SHEET_CHANGE, null, name);\r
}\r
\r