firePropertyChange(PROP_DIRTY);\r
}\r
}\r
- }; \r
+ };\r
+\r
+ private Composite partComposite;\r
\r
@Override\r
public void doSave(IProgressMonitor monitor) {}\r
@Override\r
public void createPartControl(final Composite composite) {\r
\r
+ this.partComposite = composite;\r
+ \r
super.createPartControl(composite);\r
\r
Taxon taxon = getTaxon();\r
}\r
\r
FreeTextElementFactory.getDefault().createConcept(taxon, relationship);\r
- }\r
- \r
-// // Create a homotypic group composite for the accepted taxon\r
-// HomotypicalGroup homotypicGroup = taxon.getHomotypicGroup();\r
-// EditorGroupComposite homotypicGroupComposite = new EditorGroupComposite(parent, managedForm, homotypicGroup); \r
-// homotypicGroupComposite.setData(ITaxEditorConstants.TAXON, taxon);\r
-// \r
-// NameComposite nameCompositeWithWarning = null;\r
-// \r
-// // Add accepted taxon to the group\r
-// NameComposite acceptedNameComposite = new NameComposite(homotypicGroupComposite, managedForm, NameComposite.ACCEPTED_TAXON, taxon);\r
-// \r
-// warnIfNameConflictWithParent(acceptedNameComposite);\r
-// \r
-// IterableSynonymyList synonymyList = new IterableSynonymyList(taxon);\r
-// HomotypicalGroup lastHeterotypicGroup = null;\r
-// HomotypicalGroup currentHeterotypicGroup = null;\r
-// EditorGroupComposite heterotypicGroupComposite = null;\r
-// EditorGroupComposite misappliedNameGroupComposite = null;\r
-// \r
-// for (TaxonBase synonymOrMisName : synonymyList) {\r
-// if (synonymOrMisName instanceof Synonym) {\r
-// \r
-// Synonym synonym = (Synonym) synonymOrMisName;\r
-// currentHeterotypicGroup = synonym.getHomotypicGroup();\r
-// \r
-// if (currentHeterotypicGroup.equals(homotypicGroup)) {\r
-// \r
-// NameComposite homotypicSynonymComposite = new NameComposite(homotypicGroupComposite, managedForm, NameComposite.HOMOTYPIC_SYNONYM, synonym);\r
-// \r
-// } else {\r
-// \r
-// if (!currentHeterotypicGroup.equals(lastHeterotypicGroup)) {\r
-// \r
-// // Create a new group composite\r
-// heterotypicGroupComposite = new EditorGroupComposite(parent, managedForm, currentHeterotypicGroup);\r
-// heterotypicGroupComposite.setData(ITaxEditorConstants.TAXON, taxon);\r
-// lastHeterotypicGroup = currentHeterotypicGroup;\r
-// }\r
-// \r
-// NameComposite heterotypicSynonymComposite = new NameComposite(heterotypicGroupComposite, managedForm, NameComposite.HETEROTYPIC_SYNONYM, synonym);\r
-// }\r
-// } else {\r
-// \r
-// Taxon misappliedName = (Taxon) synonymOrMisName;\r
-// if (UiUtil.getMisappliedNameGroupComposite(managedForm) == null) {\r
-// misappliedNameGroupComposite = UiUtil.createMisappliedNameGroupComposite(managedForm);\r
-// }\r
-// NameComposite misappliedNameComposite = new NameComposite(misappliedNameGroupComposite, managedForm, NameComposite.MISAPPLIED_NAME, misappliedName);\r
-// }\r
-// }\r
+ } \r
\r
// Listen for names being dragged outside of existing homotypic groups -\r
// user wants to create a new group\r
setSelection(acceptedNameComposite);\r
acceptedNameComposite.drawBorder();\r
}\r
- \r
- private void recursiveDisposeChildren(Composite composite) {\r
- for (Control child : composite.getChildren()) {\r
- if (child instanceof Composite) {\r
- recursiveDisposeChildren((Composite) child);\r
- }\r
- try {\r
- child.dispose();\r
- } catch (RuntimeException e) {\r
- // TODO Auto-generated catch block\r
- e.printStackTrace();\r
- }\r
- }\r
- }\r
- \r
+ \r
public boolean redraw(){\r
+ \r
+ managedForm.getForm().dispose();\r
\r
-// managedForm = new ManagedForm(composite) {\r
-// public void dirtyStateChanged() {\r
-// firePropertyChange(PROP_DIRTY);\r
-// }\r
-// public boolean setInput(Object input) {\r
-// if (input instanceof IHasPropertySource) {\r
-// setSelection((IHasPropertySource)input);\r
-// }\r
-// return super.setInput(input); \r
-// } \r
-// };\r
-// scrolledForm = managedForm.getForm();\r
-// parent = scrolledForm.getBody();\r
+ createManagedForm(partComposite);\r
\r
Taxon taxon = getTaxon();\r
- \r
-// Composite bla = managedForm.getForm().getParent();\r
-// managedForm.getForm().dispose();\r
-// managedForm = null;\r
-// \r
-// createManagedForm(bla);\r
- for (Control child : parent.getChildren()){\r
- child.dispose();\r
- }\r
-// recursiveDisposeChildren(parent);\r
- \r
+ \r
this.selectedObject = null;\r
\r
// Create accepted name\r
- FreeTextElementFactory.getDefault().\r
+ NameComposite acceptedNameComposite = (NameComposite) FreeTextElementFactory.getDefault().\r
createAcceptedTaxon(managedForm, taxon);\r
\r
for (TaxonBase taxonBase : new IterableSynonymyList(taxon)) {\r
FreeTextElementFactory.getDefault().createConcept(taxon, relationship);\r
}\r
\r
- scrolledForm.reflow(true);\r
- \r
+ acceptedNameComposite.drawBorder();\r
+ \r
+ partComposite.layout();\r
+ \r
return true;\r
}\r
\r
- private NameComposite warnIfNameConflictWithParent(NameComposite nameComposite) {\r
\r
- // TODO put this into annotations\r
- \r
- String message = null;\r
- Taxon taxon = getTaxon();\r
- \r
- if (nameComposite.getData() instanceof Taxon) {\r
- taxon = (Taxon) nameComposite.getData();\r
- Taxon parentTaxon = taxon.getTaxonomicParent();\r
- \r
- if (parentTaxon != null && taxon.getName() instanceof NonViralName \r
- && parentTaxon.getName() instanceof NonViralName) {\r
- NonViralName name = (NonViralName) taxon.getName();\r
- NonViralName parentName = (NonViralName) parentTaxon.getName();\r
- \r
- Rank rank = name.getRank();\r
- if (rank != null) {\r
- if (rank.equals(Rank.SPECIES())) {\r
- String genus = name.getGenusOrUninomial();\r
- String parentGenus = parentName.getGenusOrUninomial();\r
-\r
- // If either taxon has a problem, name fields will be null\r
- if (genus != null && parentGenus != null) {\r
- if (!parentGenus.equals(genus)) {\r
- message = "Warning: taxon's genus does not match parent taxon's genus.";\r
- }\r
- }\r
- }\r
- \r
- if (rank.equals(Rank.SUBSPECIES())) {\r
- String specificEpithet = name.getSpecificEpithet();\r
- String parentSpecificEpithet = parentName.getSpecificEpithet();\r
- \r
- // If either taxon has a problem, name fields will be null\r
- if (specificEpithet != null && parentSpecificEpithet != null) {\r
- if (!parentSpecificEpithet.equals(specificEpithet)) {\r
- message = "Warning: taxon's specific epithet does not match parent taxon's specific epithet.";\r
- }\r
- }\r
- }\r
- }\r
- \r
- }\r
- }\r
- \r
- if (message != null && nameComposite.getTextViewer() != null) {\r
- managedForm.getMessageManager().addMessage\r
- ("TEST2", message, null, IMessageProvider.WARNING, \r
- nameComposite.getTextViewer().getTextWidget());\r
- scrolledForm.setMessage(null, 0, null);\r
- }\r
- return nameComposite;\r
- }\r
\r
\r
private HashSet<Composite> getAllComposites(){\r
}\r
return null;\r
}\r
+ \r
+ private NameComposite warnIfNameConflictWithParent(NameComposite nameComposite) {\r
+\r
+ // TODO put this into annotations\r
+ \r
+ String message = null;\r
+ Taxon taxon = getTaxon();\r
+ \r
+ if (nameComposite.getData() instanceof Taxon) {\r
+ taxon = (Taxon) nameComposite.getData();\r
+ Taxon parentTaxon = taxon.getTaxonomicParent();\r
+ \r
+ if (parentTaxon != null && taxon.getName() instanceof NonViralName \r
+ && parentTaxon.getName() instanceof NonViralName) {\r
+ NonViralName name = (NonViralName) taxon.getName();\r
+ NonViralName parentName = (NonViralName) parentTaxon.getName();\r
+ \r
+ Rank rank = name.getRank();\r
+ if (rank != null) {\r
+ if (rank.equals(Rank.SPECIES())) {\r
+ String genus = name.getGenusOrUninomial();\r
+ String parentGenus = parentName.getGenusOrUninomial();\r
+\r
+ // If either taxon has a problem, name fields will be null\r
+ if (genus != null && parentGenus != null) {\r
+ if (!parentGenus.equals(genus)) {\r
+ message = "Warning: taxon's genus does not match parent taxon's genus.";\r
+ }\r
+ }\r
+ }\r
+ \r
+ if (rank.equals(Rank.SUBSPECIES())) {\r
+ String specificEpithet = name.getSpecificEpithet();\r
+ String parentSpecificEpithet = parentName.getSpecificEpithet();\r
+ \r
+ // If either taxon has a problem, name fields will be null\r
+ if (specificEpithet != null && parentSpecificEpithet != null) {\r
+ if (!parentSpecificEpithet.equals(specificEpithet)) {\r
+ message = "Warning: taxon's specific epithet does not match parent taxon's specific epithet.";\r
+ }\r
+ }\r
+ }\r
+ }\r
+ \r
+ }\r
+ }\r
+ \r
+ if (message != null && nameComposite.getTextViewer() != null) {\r
+ managedForm.getMessageManager().addMessage\r
+ ("TEST2", message, null, IMessageProvider.WARNING, \r
+ nameComposite.getTextViewer().getTextWidget());\r
+ scrolledForm.setMessage(null, 0, null);\r
+ }\r
+ return nameComposite;\r
+ }\r
}
\ No newline at end of file